CMakeified almost everything. Test code in python/ and apps other than uhd_modes.py still need minor updating.
This commit is contained in:
parent
4fcf7a4498
commit
8522bc0b25
126
CMakeLists.txt
Normal file
126
CMakeLists.txt
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
# Copyright 2011 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is part of GNU Radio
|
||||||
|
#
|
||||||
|
# GNU Radio is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 3, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# GNU Radio is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with GNU Radio; see the file COPYING. If not, write to
|
||||||
|
# the Free Software Foundation, Inc., 51 Franklin Street,
|
||||||
|
# Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Project setup
|
||||||
|
########################################################################
|
||||||
|
cmake_minimum_required(VERSION 2.6)
|
||||||
|
project(gr-gr-air-modes CXX)
|
||||||
|
enable_testing()
|
||||||
|
|
||||||
|
#select the release build type by default to get optimization flags
|
||||||
|
if(NOT CMAKE_BUILD_TYPE)
|
||||||
|
set(CMAKE_BUILD_TYPE "Release")
|
||||||
|
message(STATUS "Build type not specified: defaulting to release.")
|
||||||
|
endif(NOT CMAKE_BUILD_TYPE)
|
||||||
|
set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE STRING "")
|
||||||
|
|
||||||
|
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules)
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Compiler specific setup
|
||||||
|
########################################################################
|
||||||
|
if(CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32)
|
||||||
|
#http://gcc.gnu.org/wiki/Visibility
|
||||||
|
add_definitions(-fvisibility=hidden)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Find boost
|
||||||
|
########################################################################
|
||||||
|
if(UNIX AND EXISTS "/usr/lib64")
|
||||||
|
list(APPEND BOOST_LIBRARYDIR "/usr/lib64") #fedora 64-bit fix
|
||||||
|
endif(UNIX AND EXISTS "/usr/lib64")
|
||||||
|
set(Boost_ADDITIONAL_VERSIONS
|
||||||
|
"1.35.0" "1.35" "1.36.0" "1.36" "1.37.0" "1.37" "1.38.0" "1.38" "1.39.0" "1.39"
|
||||||
|
"1.40.0" "1.40" "1.41.0" "1.41" "1.42.0" "1.42" "1.43.0" "1.43" "1.44.0" "1.44"
|
||||||
|
"1.45.0" "1.45" "1.46.0" "1.46" "1.47.0" "1.47" "1.48.0" "1.48" "1.49.0" "1.49"
|
||||||
|
"1.50.0" "1.50" "1.51.0" "1.51" "1.52.0" "1.52" "1.53.0" "1.53" "1.54.0" "1.54"
|
||||||
|
"1.55.0" "1.55" "1.56.0" "1.56" "1.57.0" "1.57" "1.58.0" "1.58" "1.59.0" "1.59"
|
||||||
|
"1.60.0" "1.60" "1.61.0" "1.61" "1.62.0" "1.62" "1.63.0" "1.63" "1.64.0" "1.64"
|
||||||
|
"1.65.0" "1.65" "1.66.0" "1.66" "1.67.0" "1.67" "1.68.0" "1.68" "1.69.0" "1.69"
|
||||||
|
)
|
||||||
|
find_package(Boost "1.35")
|
||||||
|
|
||||||
|
if(NOT Boost_FOUND)
|
||||||
|
message(FATAL_ERROR "Boost required to compile gr-air-modes")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Install directories
|
||||||
|
########################################################################
|
||||||
|
include(GrPlatform) #define LIB_SUFFIX
|
||||||
|
set(GR_RUNTIME_DIR bin)
|
||||||
|
set(GR_LIBRARY_DIR lib${LIB_SUFFIX})
|
||||||
|
set(GR_INCLUDE_DIR include)
|
||||||
|
set(GR_DATA_DIR share)
|
||||||
|
set(GR_PKG_DATA_DIR ${GR_DATA_DIR}/${CMAKE_PROJECT_NAME})
|
||||||
|
set(GR_DOC_DIR ${GR_DATA_DIR}/doc)
|
||||||
|
set(GR_PKG_DOC_DIR ${GR_DOC_DIR}/${CMAKE_PROJECT_NAME})
|
||||||
|
set(GR_CONF_DIR etc)
|
||||||
|
set(GR_PKG_CONF_DIR ${GR_CONF_DIR}/${CMAKE_PROJECT_NAME}/conf.d)
|
||||||
|
set(GR_LIBEXEC_DIR libexec)
|
||||||
|
set(GR_PKG_LIBEXEC_DIR ${GR_LIBEXEC_DIR}/${CMAKE_PROJECT_NAME})
|
||||||
|
set(GRC_BLOCKS_DIR ${GR_PKG_DATA_DIR}/grc/blocks)
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Find gnuradio build dependencies
|
||||||
|
########################################################################
|
||||||
|
find_package(Gruel)
|
||||||
|
find_package(GnuradioCore)
|
||||||
|
|
||||||
|
if(NOT GRUEL_FOUND)
|
||||||
|
message(FATAL_ERROR "Gruel required to compile gr-air-modes")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT GNURADIO_CORE_FOUND)
|
||||||
|
message(FATAL_ERROR "GnuRadio Core required to compile gr-air-modes")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Setup the include and linker paths
|
||||||
|
########################################################################
|
||||||
|
include_directories(
|
||||||
|
${CMAKE_SOURCE_DIR}/include
|
||||||
|
${Boost_INCLUDE_DIRS}
|
||||||
|
${GRUEL_INCLUDE_DIRS}
|
||||||
|
${GNURADIO_CORE_INCLUDE_DIRS}
|
||||||
|
)
|
||||||
|
|
||||||
|
link_directories(
|
||||||
|
${Boost_LIBRARY_DIRS}
|
||||||
|
${GRUEL_LIBRARY_DIRS}
|
||||||
|
${GNURADIO_CORE_LIBRARY_DIRS}
|
||||||
|
)
|
||||||
|
|
||||||
|
# Set component parameters
|
||||||
|
set(GR_GR-AIR-MODES_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/include CACHE INTERNAL "" FORCE)
|
||||||
|
set(GR_GR-AIR-MODES_SWIG_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/swig CACHE INTERNAL "" FORCE)
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Add subdirectories
|
||||||
|
########################################################################
|
||||||
|
add_subdirectory(include)
|
||||||
|
add_subdirectory(lib)
|
||||||
|
add_subdirectory(swig)
|
||||||
|
add_subdirectory(python)
|
||||||
|
add_subdirectory(grc)
|
||||||
|
add_subdirectory(apps)
|
||||||
|
add_subdirectory(docs)
|
365
INSTALL
365
INSTALL
@ -1,365 +0,0 @@
|
|||||||
Installation Instructions
|
|
||||||
*************************
|
|
||||||
|
|
||||||
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
|
|
||||||
2006, 2007, 2008, 2009 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
Copying and distribution of this file, with or without modification,
|
|
||||||
are permitted in any medium without royalty provided the copyright
|
|
||||||
notice and this notice are preserved. This file is offered as-is,
|
|
||||||
without warranty of any kind.
|
|
||||||
|
|
||||||
Basic Installation
|
|
||||||
==================
|
|
||||||
|
|
||||||
Briefly, the shell commands `./configure; make; make install' should
|
|
||||||
configure, build, and install this package. The following
|
|
||||||
more-detailed instructions are generic; see the `README' file for
|
|
||||||
instructions specific to this package. Some packages provide this
|
|
||||||
`INSTALL' file but do not implement all of the features documented
|
|
||||||
below. The lack of an optional feature in a given package is not
|
|
||||||
necessarily a bug. More recommendations for GNU packages can be found
|
|
||||||
in *note Makefile Conventions: (standards)Makefile Conventions.
|
|
||||||
|
|
||||||
The `configure' shell script attempts to guess correct values for
|
|
||||||
various system-dependent variables used during compilation. It uses
|
|
||||||
those values to create a `Makefile' in each directory of the package.
|
|
||||||
It may also create one or more `.h' files containing system-dependent
|
|
||||||
definitions. Finally, it creates a shell script `config.status' that
|
|
||||||
you can run in the future to recreate the current configuration, and a
|
|
||||||
file `config.log' containing compiler output (useful mainly for
|
|
||||||
debugging `configure').
|
|
||||||
|
|
||||||
It can also use an optional file (typically called `config.cache'
|
|
||||||
and enabled with `--cache-file=config.cache' or simply `-C') that saves
|
|
||||||
the results of its tests to speed up reconfiguring. Caching is
|
|
||||||
disabled by default to prevent problems with accidental use of stale
|
|
||||||
cache files.
|
|
||||||
|
|
||||||
If you need to do unusual things to compile the package, please try
|
|
||||||
to figure out how `configure' could check whether to do them, and mail
|
|
||||||
diffs or instructions to the address given in the `README' so they can
|
|
||||||
be considered for the next release. If you are using the cache, and at
|
|
||||||
some point `config.cache' contains results you don't want to keep, you
|
|
||||||
may remove or edit it.
|
|
||||||
|
|
||||||
The file `configure.ac' (or `configure.in') is used to create
|
|
||||||
`configure' by a program called `autoconf'. You need `configure.ac' if
|
|
||||||
you want to change it or regenerate `configure' using a newer version
|
|
||||||
of `autoconf'.
|
|
||||||
|
|
||||||
The simplest way to compile this package is:
|
|
||||||
|
|
||||||
1. `cd' to the directory containing the package's source code and type
|
|
||||||
`./configure' to configure the package for your system.
|
|
||||||
|
|
||||||
Running `configure' might take a while. While running, it prints
|
|
||||||
some messages telling which features it is checking for.
|
|
||||||
|
|
||||||
2. Type `make' to compile the package.
|
|
||||||
|
|
||||||
3. Optionally, type `make check' to run any self-tests that come with
|
|
||||||
the package, generally using the just-built uninstalled binaries.
|
|
||||||
|
|
||||||
4. Type `make install' to install the programs and any data files and
|
|
||||||
documentation. When installing into a prefix owned by root, it is
|
|
||||||
recommended that the package be configured and built as a regular
|
|
||||||
user, and only the `make install' phase executed with root
|
|
||||||
privileges.
|
|
||||||
|
|
||||||
5. Optionally, type `make installcheck' to repeat any self-tests, but
|
|
||||||
this time using the binaries in their final installed location.
|
|
||||||
This target does not install anything. Running this target as a
|
|
||||||
regular user, particularly if the prior `make install' required
|
|
||||||
root privileges, verifies that the installation completed
|
|
||||||
correctly.
|
|
||||||
|
|
||||||
6. You can remove the program binaries and object files from the
|
|
||||||
source code directory by typing `make clean'. To also remove the
|
|
||||||
files that `configure' created (so you can compile the package for
|
|
||||||
a different kind of computer), type `make distclean'. There is
|
|
||||||
also a `make maintainer-clean' target, but that is intended mainly
|
|
||||||
for the package's developers. If you use it, you may have to get
|
|
||||||
all sorts of other programs in order to regenerate files that came
|
|
||||||
with the distribution.
|
|
||||||
|
|
||||||
7. Often, you can also type `make uninstall' to remove the installed
|
|
||||||
files again. In practice, not all packages have tested that
|
|
||||||
uninstallation works correctly, even though it is required by the
|
|
||||||
GNU Coding Standards.
|
|
||||||
|
|
||||||
8. Some packages, particularly those that use Automake, provide `make
|
|
||||||
distcheck', which can by used by developers to test that all other
|
|
||||||
targets like `make install' and `make uninstall' work correctly.
|
|
||||||
This target is generally not run by end users.
|
|
||||||
|
|
||||||
Compilers and Options
|
|
||||||
=====================
|
|
||||||
|
|
||||||
Some systems require unusual options for compilation or linking that
|
|
||||||
the `configure' script does not know about. Run `./configure --help'
|
|
||||||
for details on some of the pertinent environment variables.
|
|
||||||
|
|
||||||
You can give `configure' initial values for configuration parameters
|
|
||||||
by setting variables in the command line or in the environment. Here
|
|
||||||
is an example:
|
|
||||||
|
|
||||||
./configure CC=c99 CFLAGS=-g LIBS=-lposix
|
|
||||||
|
|
||||||
*Note Defining Variables::, for more details.
|
|
||||||
|
|
||||||
Compiling For Multiple Architectures
|
|
||||||
====================================
|
|
||||||
|
|
||||||
You can compile the package for more than one kind of computer at the
|
|
||||||
same time, by placing the object files for each architecture in their
|
|
||||||
own directory. To do this, you can use GNU `make'. `cd' to the
|
|
||||||
directory where you want the object files and executables to go and run
|
|
||||||
the `configure' script. `configure' automatically checks for the
|
|
||||||
source code in the directory that `configure' is in and in `..'. This
|
|
||||||
is known as a "VPATH" build.
|
|
||||||
|
|
||||||
With a non-GNU `make', it is safer to compile the package for one
|
|
||||||
architecture at a time in the source code directory. After you have
|
|
||||||
installed the package for one architecture, use `make distclean' before
|
|
||||||
reconfiguring for another architecture.
|
|
||||||
|
|
||||||
On MacOS X 10.5 and later systems, you can create libraries and
|
|
||||||
executables that work on multiple system types--known as "fat" or
|
|
||||||
"universal" binaries--by specifying multiple `-arch' options to the
|
|
||||||
compiler but only a single `-arch' option to the preprocessor. Like
|
|
||||||
this:
|
|
||||||
|
|
||||||
./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
|
|
||||||
CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
|
|
||||||
CPP="gcc -E" CXXCPP="g++ -E"
|
|
||||||
|
|
||||||
This is not guaranteed to produce working output in all cases, you
|
|
||||||
may have to build one architecture at a time and combine the results
|
|
||||||
using the `lipo' tool if you have problems.
|
|
||||||
|
|
||||||
Installation Names
|
|
||||||
==================
|
|
||||||
|
|
||||||
By default, `make install' installs the package's commands under
|
|
||||||
`/usr/local/bin', include files under `/usr/local/include', etc. You
|
|
||||||
can specify an installation prefix other than `/usr/local' by giving
|
|
||||||
`configure' the option `--prefix=PREFIX', where PREFIX must be an
|
|
||||||
absolute file name.
|
|
||||||
|
|
||||||
You can specify separate installation prefixes for
|
|
||||||
architecture-specific files and architecture-independent files. If you
|
|
||||||
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
|
|
||||||
PREFIX as the prefix for installing programs and libraries.
|
|
||||||
Documentation and other data files still use the regular prefix.
|
|
||||||
|
|
||||||
In addition, if you use an unusual directory layout you can give
|
|
||||||
options like `--bindir=DIR' to specify different values for particular
|
|
||||||
kinds of files. Run `configure --help' for a list of the directories
|
|
||||||
you can set and what kinds of files go in them. In general, the
|
|
||||||
default for these options is expressed in terms of `${prefix}', so that
|
|
||||||
specifying just `--prefix' will affect all of the other directory
|
|
||||||
specifications that were not explicitly provided.
|
|
||||||
|
|
||||||
The most portable way to affect installation locations is to pass the
|
|
||||||
correct locations to `configure'; however, many packages provide one or
|
|
||||||
both of the following shortcuts of passing variable assignments to the
|
|
||||||
`make install' command line to change installation locations without
|
|
||||||
having to reconfigure or recompile.
|
|
||||||
|
|
||||||
The first method involves providing an override variable for each
|
|
||||||
affected directory. For example, `make install
|
|
||||||
prefix=/alternate/directory' will choose an alternate location for all
|
|
||||||
directory configuration variables that were expressed in terms of
|
|
||||||
`${prefix}'. Any directories that were specified during `configure',
|
|
||||||
but not in terms of `${prefix}', must each be overridden at install
|
|
||||||
time for the entire installation to be relocated. The approach of
|
|
||||||
makefile variable overrides for each directory variable is required by
|
|
||||||
the GNU Coding Standards, and ideally causes no recompilation.
|
|
||||||
However, some platforms have known limitations with the semantics of
|
|
||||||
shared libraries that end up requiring recompilation when using this
|
|
||||||
method, particularly noticeable in packages that use GNU Libtool.
|
|
||||||
|
|
||||||
The second method involves providing the `DESTDIR' variable. For
|
|
||||||
example, `make install DESTDIR=/alternate/directory' will prepend
|
|
||||||
`/alternate/directory' before all installation names. The approach of
|
|
||||||
`DESTDIR' overrides is not required by the GNU Coding Standards, and
|
|
||||||
does not work on platforms that have drive letters. On the other hand,
|
|
||||||
it does better at avoiding recompilation issues, and works well even
|
|
||||||
when some directory options were not specified in terms of `${prefix}'
|
|
||||||
at `configure' time.
|
|
||||||
|
|
||||||
Optional Features
|
|
||||||
=================
|
|
||||||
|
|
||||||
If the package supports it, you can cause programs to be installed
|
|
||||||
with an extra prefix or suffix on their names by giving `configure' the
|
|
||||||
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
|
|
||||||
|
|
||||||
Some packages pay attention to `--enable-FEATURE' options to
|
|
||||||
`configure', where FEATURE indicates an optional part of the package.
|
|
||||||
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
|
|
||||||
is something like `gnu-as' or `x' (for the X Window System). The
|
|
||||||
`README' should mention any `--enable-' and `--with-' options that the
|
|
||||||
package recognizes.
|
|
||||||
|
|
||||||
For packages that use the X Window System, `configure' can usually
|
|
||||||
find the X include and library files automatically, but if it doesn't,
|
|
||||||
you can use the `configure' options `--x-includes=DIR' and
|
|
||||||
`--x-libraries=DIR' to specify their locations.
|
|
||||||
|
|
||||||
Some packages offer the ability to configure how verbose the
|
|
||||||
execution of `make' will be. For these packages, running `./configure
|
|
||||||
--enable-silent-rules' sets the default to minimal output, which can be
|
|
||||||
overridden with `make V=1'; while running `./configure
|
|
||||||
--disable-silent-rules' sets the default to verbose, which can be
|
|
||||||
overridden with `make V=0'.
|
|
||||||
|
|
||||||
Particular systems
|
|
||||||
==================
|
|
||||||
|
|
||||||
On HP-UX, the default C compiler is not ANSI C compatible. If GNU
|
|
||||||
CC is not installed, it is recommended to use the following options in
|
|
||||||
order to use an ANSI C compiler:
|
|
||||||
|
|
||||||
./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
|
|
||||||
|
|
||||||
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
|
|
||||||
|
|
||||||
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
|
|
||||||
parse its `<wchar.h>' header file. The option `-nodtk' can be used as
|
|
||||||
a workaround. If GNU CC is not installed, it is therefore recommended
|
|
||||||
to try
|
|
||||||
|
|
||||||
./configure CC="cc"
|
|
||||||
|
|
||||||
and if that doesn't work, try
|
|
||||||
|
|
||||||
./configure CC="cc -nodtk"
|
|
||||||
|
|
||||||
On Solaris, don't put `/usr/ucb' early in your `PATH'. This
|
|
||||||
directory contains several dysfunctional programs; working variants of
|
|
||||||
these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
|
|
||||||
in your `PATH', put it _after_ `/usr/bin'.
|
|
||||||
|
|
||||||
On Haiku, software installed for all users goes in `/boot/common',
|
|
||||||
not `/usr/local'. It is recommended to use the following options:
|
|
||||||
|
|
||||||
./configure --prefix=/boot/common
|
|
||||||
|
|
||||||
Specifying the System Type
|
|
||||||
==========================
|
|
||||||
|
|
||||||
There may be some features `configure' cannot figure out
|
|
||||||
automatically, but needs to determine by the type of machine the package
|
|
||||||
will run on. Usually, assuming the package is built to be run on the
|
|
||||||
_same_ architectures, `configure' can figure that out, but if it prints
|
|
||||||
a message saying it cannot guess the machine type, give it the
|
|
||||||
`--build=TYPE' option. TYPE can either be a short name for the system
|
|
||||||
type, such as `sun4', or a canonical name which has the form:
|
|
||||||
|
|
||||||
CPU-COMPANY-SYSTEM
|
|
||||||
|
|
||||||
where SYSTEM can have one of these forms:
|
|
||||||
|
|
||||||
OS
|
|
||||||
KERNEL-OS
|
|
||||||
|
|
||||||
See the file `config.sub' for the possible values of each field. If
|
|
||||||
`config.sub' isn't included in this package, then this package doesn't
|
|
||||||
need to know the machine type.
|
|
||||||
|
|
||||||
If you are _building_ compiler tools for cross-compiling, you should
|
|
||||||
use the option `--target=TYPE' to select the type of system they will
|
|
||||||
produce code for.
|
|
||||||
|
|
||||||
If you want to _use_ a cross compiler, that generates code for a
|
|
||||||
platform different from the build platform, you should specify the
|
|
||||||
"host" platform (i.e., that on which the generated programs will
|
|
||||||
eventually be run) with `--host=TYPE'.
|
|
||||||
|
|
||||||
Sharing Defaults
|
|
||||||
================
|
|
||||||
|
|
||||||
If you want to set default values for `configure' scripts to share,
|
|
||||||
you can create a site shell script called `config.site' that gives
|
|
||||||
default values for variables like `CC', `cache_file', and `prefix'.
|
|
||||||
`configure' looks for `PREFIX/share/config.site' if it exists, then
|
|
||||||
`PREFIX/etc/config.site' if it exists. Or, you can set the
|
|
||||||
`CONFIG_SITE' environment variable to the location of the site script.
|
|
||||||
A warning: not all `configure' scripts look for a site script.
|
|
||||||
|
|
||||||
Defining Variables
|
|
||||||
==================
|
|
||||||
|
|
||||||
Variables not defined in a site shell script can be set in the
|
|
||||||
environment passed to `configure'. However, some packages may run
|
|
||||||
configure again during the build, and the customized values of these
|
|
||||||
variables may be lost. In order to avoid this problem, you should set
|
|
||||||
them in the `configure' command line, using `VAR=value'. For example:
|
|
||||||
|
|
||||||
./configure CC=/usr/local2/bin/gcc
|
|
||||||
|
|
||||||
causes the specified `gcc' to be used as the C compiler (unless it is
|
|
||||||
overridden in the site shell script).
|
|
||||||
|
|
||||||
Unfortunately, this technique does not work for `CONFIG_SHELL' due to
|
|
||||||
an Autoconf bug. Until the bug is fixed you can use this workaround:
|
|
||||||
|
|
||||||
CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
|
|
||||||
|
|
||||||
`configure' Invocation
|
|
||||||
======================
|
|
||||||
|
|
||||||
`configure' recognizes the following options to control how it
|
|
||||||
operates.
|
|
||||||
|
|
||||||
`--help'
|
|
||||||
`-h'
|
|
||||||
Print a summary of all of the options to `configure', and exit.
|
|
||||||
|
|
||||||
`--help=short'
|
|
||||||
`--help=recursive'
|
|
||||||
Print a summary of the options unique to this package's
|
|
||||||
`configure', and exit. The `short' variant lists options used
|
|
||||||
only in the top level, while the `recursive' variant lists options
|
|
||||||
also present in any nested packages.
|
|
||||||
|
|
||||||
`--version'
|
|
||||||
`-V'
|
|
||||||
Print the version of Autoconf used to generate the `configure'
|
|
||||||
script, and exit.
|
|
||||||
|
|
||||||
`--cache-file=FILE'
|
|
||||||
Enable the cache: use and save the results of the tests in FILE,
|
|
||||||
traditionally `config.cache'. FILE defaults to `/dev/null' to
|
|
||||||
disable caching.
|
|
||||||
|
|
||||||
`--config-cache'
|
|
||||||
`-C'
|
|
||||||
Alias for `--cache-file=config.cache'.
|
|
||||||
|
|
||||||
`--quiet'
|
|
||||||
`--silent'
|
|
||||||
`-q'
|
|
||||||
Do not print messages saying which checks are being made. To
|
|
||||||
suppress all normal output, redirect it to `/dev/null' (any error
|
|
||||||
messages will still be shown).
|
|
||||||
|
|
||||||
`--srcdir=DIR'
|
|
||||||
Look for the package's source code in directory DIR. Usually
|
|
||||||
`configure' can determine that directory automatically.
|
|
||||||
|
|
||||||
`--prefix=DIR'
|
|
||||||
Use DIR as the installation prefix. *note Installation Names::
|
|
||||||
for more details, including other options available for fine-tuning
|
|
||||||
the installation locations.
|
|
||||||
|
|
||||||
`--no-create'
|
|
||||||
`-n'
|
|
||||||
Run the configure checks, but stop before creating any output
|
|
||||||
files.
|
|
||||||
|
|
||||||
`configure' also accepts some other, not widely useful, options. Run
|
|
||||||
`configure --help' for more details.
|
|
||||||
|
|
34
Makefile.am
34
Makefile.am
@ -1,34 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright 2010 Nick Foster
|
|
||||||
#
|
|
||||||
# This file is part of gr-air-modes
|
|
||||||
#
|
|
||||||
# gr-air-modes is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 3, or (at your option)
|
|
||||||
# any later version.
|
|
||||||
#
|
|
||||||
# gr-air-modes is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with gr-air-modes; see the file COPYING. If not, write to
|
|
||||||
# the Free Software Foundation, Inc., 51 Franklin Street,
|
|
||||||
# Boston, MA 02110-1301, USA.
|
|
||||||
#
|
|
||||||
|
|
||||||
|
|
||||||
ACLOCAL_AMFLAGS = -I config
|
|
||||||
|
|
||||||
include $(top_srcdir)/Makefile.common
|
|
||||||
|
|
||||||
EXTRA_DIST = bootstrap configure config.h.in \
|
|
||||||
Makefile.swig Makefile.swig.gen.t
|
|
||||||
|
|
||||||
SUBDIRS = config src
|
|
||||||
DIST_SUBDIRS = config src
|
|
||||||
|
|
||||||
pkgconfigdir = $(libdir)/pkgconfig
|
|
||||||
pkgconfig_DATA =
|
|
@ -1,67 +0,0 @@
|
|||||||
# -*- Makefile -*-
|
|
||||||
#
|
|
||||||
# Copyright 2004,2006,2009 Free Software Foundation, Inc.
|
|
||||||
#
|
|
||||||
# This file is part of GNU Radio
|
|
||||||
#
|
|
||||||
# GNU Radio is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 3, or (at your option)
|
|
||||||
# any later version.
|
|
||||||
#
|
|
||||||
# GNU Radio is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with GNU Radio; see the file COPYING. If not, write to
|
|
||||||
# the Free Software Foundation, Inc., 51 Franklin Street,
|
|
||||||
# Boston, MA 02110-1301, USA.
|
|
||||||
#
|
|
||||||
|
|
||||||
# these flags are used when compiling non-SWIG-wrapper files
|
|
||||||
# when going in to non-SWIG libraries
|
|
||||||
AM_CXXFLAGS = @autoconf_default_CXXFLAGS@
|
|
||||||
|
|
||||||
# these flags are used when compiling any CXX file
|
|
||||||
AM_CPPFLAGS = \
|
|
||||||
$(STD_DEFINES_AND_INCLUDES) \
|
|
||||||
$(PYTHON_CPPFLAGS) \
|
|
||||||
$(CPPUNIT_INCLUDES) \
|
|
||||||
$(GNURADIO_CORE_CPPFLAGS)
|
|
||||||
|
|
||||||
# these are used by both SWIG and CXX
|
|
||||||
STD_DEFINES_AND_INCLUDES = \
|
|
||||||
$(DEFINES) \
|
|
||||||
-I$(GNURADIO_CORE_INCLUDEDIR) \
|
|
||||||
-I$(GNURADIO_CORE_INCLUDEDIR)/swig
|
|
||||||
|
|
||||||
# includes
|
|
||||||
grincludedir = $(includedir)/gnuradio
|
|
||||||
|
|
||||||
# swig includes
|
|
||||||
swigincludedir = $(grincludedir)/swig
|
|
||||||
|
|
||||||
# Install this stuff in the appropriate subdirectory
|
|
||||||
# This usually ends up at:
|
|
||||||
# ${prefix}/lib/python${python_version}/site-packages/gnuradio
|
|
||||||
|
|
||||||
grpythondir = $(pythondir)/gnuradio
|
|
||||||
grpyexecdir = $(pyexecdir)/gnuradio
|
|
||||||
|
|
||||||
# Don't assume that make predefines $(RM), because BSD make does
|
|
||||||
# not. We define it now in configure.ac using AM_PATH_PROG, but now
|
|
||||||
# here have to add a -f to be like GNU make.
|
|
||||||
RM=$(RM_PROG) -f
|
|
||||||
|
|
||||||
# Other common defines; use "+=" to add to these
|
|
||||||
STAMPS =
|
|
||||||
MOSTLYCLEANFILES = $(BUILT_SOURCES) $(STAMPS) *.pyc *.pyo *~ *.tmp *.loT
|
|
||||||
|
|
||||||
# Don't distribute the files defined in the variable 'no_dist_files'
|
|
||||||
dist-hook:
|
|
||||||
@for file in $(no_dist_files); do \
|
|
||||||
echo $(RM) $(distdir)/$$file; \
|
|
||||||
$(RM) $(distdir)/$$file; \
|
|
||||||
done;
|
|
117
Makefile.swig
117
Makefile.swig
@ -1,117 +0,0 @@
|
|||||||
# -*- Makefile -*-
|
|
||||||
#
|
|
||||||
# Copyright 2009 Free Software Foundation, Inc.
|
|
||||||
#
|
|
||||||
# This file is part of GNU Radio
|
|
||||||
#
|
|
||||||
# GNU Radio is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 3, or (at your option)
|
|
||||||
# any later version.
|
|
||||||
#
|
|
||||||
# GNU Radio is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with GNU Radio; see the file COPYING. If not, write to
|
|
||||||
# the Free Software Foundation, Inc., 51 Franklin Street,
|
|
||||||
# Boston, MA 02110-1301, USA.
|
|
||||||
#
|
|
||||||
|
|
||||||
## This makefile should be included using
|
|
||||||
## include $(top_srcdir)/Makefile.swig
|
|
||||||
## in Makefile.am's which require SWIG wrapping / compilation.
|
|
||||||
## For just installing .i files, this Makefile is not required.
|
|
||||||
|
|
||||||
## swig flags
|
|
||||||
## -w511 turns off keyword argument warning
|
|
||||||
## "-outdir $(builddir)" writes all generated output files to
|
|
||||||
## the local builddir (which should always be '.')
|
|
||||||
## In some older autotools, $(builddir) is not defined, so
|
|
||||||
## just use '.' instead.
|
|
||||||
|
|
||||||
SWIG_PYTHON_FLAGS = \
|
|
||||||
-fvirtual \
|
|
||||||
-python \
|
|
||||||
-modern \
|
|
||||||
-keyword \
|
|
||||||
-w511 \
|
|
||||||
-outdir .
|
|
||||||
|
|
||||||
## standard swig flags used by most components
|
|
||||||
|
|
||||||
STD_SWIG_PYTHON_ARGS = \
|
|
||||||
$(SWIG_PYTHON_FLAGS) \
|
|
||||||
$(STD_DEFINES_AND_INCLUDES) \
|
|
||||||
$(WITH_SWIG_INCLUDES) \
|
|
||||||
$(WITH_INCLUDES)
|
|
||||||
|
|
||||||
## standard SWIG LD flags for library creation
|
|
||||||
|
|
||||||
STD_SWIG_LA_LD_FLAGS = \
|
|
||||||
$(PYTHON_LDFLAGS) \
|
|
||||||
-module \
|
|
||||||
-avoid-version \
|
|
||||||
$(NO_UNDEFINED)
|
|
||||||
|
|
||||||
## standard SWIG library additions for library creation
|
|
||||||
|
|
||||||
STD_SWIG_LA_LIB_ADD = \
|
|
||||||
-lstdc++
|
|
||||||
|
|
||||||
## standard SWIG CXXFLAGS
|
|
||||||
## This allows for code to be compiled with "-O1" instead of "-g -O2"
|
|
||||||
## for some systems, avoiding some optimization issues.
|
|
||||||
|
|
||||||
STD_SWIG_CXX_FLAGS = @swig_CXXFLAGS@
|
|
||||||
|
|
||||||
## SWIG suffix for automake to know about
|
|
||||||
|
|
||||||
SUFFIXES = .i
|
|
||||||
|
|
||||||
## Create $(srcdir)/Makefile.swig.gen, containing all of the rules
|
|
||||||
## for running SWIG to generate or re-generate outputs. SWIG file
|
|
||||||
## names are to be defined in TOP_SWIG_IFILES, and must include the
|
|
||||||
## full path to the file and full filename including extension. This
|
|
||||||
## Makefile addition will be made only if either it does not exist or
|
|
||||||
## if the top-level template has been modified.
|
|
||||||
|
|
||||||
generate-makefile-swig $(srcdir)/Makefile.swig.gen: $(top_srcdir)/Makefile.swig.gen.t
|
|
||||||
## recreate $(srcdir)/Makefile.swig.gen only if ...
|
|
||||||
@do_recreate=0; \
|
|
||||||
if test -f $(srcdir)/Makefile.swig.gen; then \
|
|
||||||
## the file exists and can be removed; or ...
|
|
||||||
if $(RM) $(srcdir)/Makefile.swig.gen 2>/dev/null; then \
|
|
||||||
if touch $(srcdir)/Makefile.swig.gen 2>/dev/null; then \
|
|
||||||
do_recreate=1; \
|
|
||||||
fi; \
|
|
||||||
fi; \
|
|
||||||
else \
|
|
||||||
## the file doesn't exist, but can be created (e.g., by touching it).
|
|
||||||
if touch $(srcdir)/Makefile.swig.gen 2>/dev/null; then \
|
|
||||||
do_recreate=1; \
|
|
||||||
fi; \
|
|
||||||
fi; \
|
|
||||||
if test "$$do_recreate" == "1"; then \
|
|
||||||
echo "Regenerating $(srcdir)/Makefile.swig.gen"; \
|
|
||||||
for TFILE in $(TOP_SWIG_IFILES); do \
|
|
||||||
## retrieve just the filename, without path or extension
|
|
||||||
TNAME=`python -c "import os.path as op; (dN, fN) = op.split ('$$TFILE'); (fbN, fE) = op.splitext (fN); print fbN;"`; \
|
|
||||||
## Replace the @-named strings in the template Makefile for SWIG.
|
|
||||||
$(SED) -e 's|@NAME@|'$$TNAME'|g;' < $(top_srcdir)/Makefile.swig.gen.t >> $(srcdir)/Makefile.swig.gen; \
|
|
||||||
echo "" >> $(srcdir)/Makefile.swig.gen; \
|
|
||||||
done; \
|
|
||||||
else \
|
|
||||||
echo "Cannot recreate $(srcdir)/Makefile.swig.gen because the directory or file is write-protected."; \
|
|
||||||
exit -1; \
|
|
||||||
fi;
|
|
||||||
|
|
||||||
swig_built_sources =
|
|
||||||
|
|
||||||
## include the built Makefile.swig.gen, always the one from the
|
|
||||||
## srcdir; this must be included as the last item, because it depends
|
|
||||||
## on variables defined above.
|
|
||||||
|
|
||||||
include $(srcdir)/Makefile.swig.gen
|
|
@ -1,258 +0,0 @@
|
|||||||
# -*- Makefile -*-
|
|
||||||
#
|
|
||||||
# Copyright 2009 Free Software Foundation, Inc.
|
|
||||||
#
|
|
||||||
# This file is part of GNU Radio
|
|
||||||
#
|
|
||||||
# GNU Radio is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 3, or (at your option)
|
|
||||||
# any later version.
|
|
||||||
#
|
|
||||||
# GNU Radio is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with GNU Radio; see the file COPYING. If not, write to
|
|
||||||
# the Free Software Foundation, Inc., 51 Franklin Street,
|
|
||||||
# Boston, MA 02110-1301, USA.
|
|
||||||
#
|
|
||||||
|
|
||||||
# Makefile.swig.gen for @NAME@.i
|
|
||||||
|
|
||||||
## Default install locations for these files:
|
|
||||||
##
|
|
||||||
## Default location for the Python directory is:
|
|
||||||
## ${prefix}/lib/python${python_version}/site-packages/[category]/@NAME@
|
|
||||||
## Default location for the Python exec directory is:
|
|
||||||
## ${exec_prefix}/lib/python${python_version}/site-packages/[category]/@NAME@
|
|
||||||
##
|
|
||||||
## The following can be overloaded to change the install location, but
|
|
||||||
## this has to be done in the including Makefile.am -before-
|
|
||||||
## Makefile.swig is included.
|
|
||||||
|
|
||||||
@NAME@_pythondir_category ?= gnuradio/@NAME@
|
|
||||||
@NAME@_pylibdir_category ?= $(@NAME@_pythondir_category)
|
|
||||||
@NAME@_pythondir = $(pythondir)/$(@NAME@_pythondir_category)
|
|
||||||
@NAME@_pylibdir = $(pyexecdir)/$(@NAME@_pylibdir_category)
|
|
||||||
|
|
||||||
## SWIG headers are always installed into the same directory.
|
|
||||||
|
|
||||||
@NAME@_swigincludedir = $(swigincludedir)
|
|
||||||
|
|
||||||
## This is a template file for a "generated" Makefile addition (in
|
|
||||||
## this case, "Makefile.swig.gen"). By including the top-level
|
|
||||||
## Makefile.swig, this file will be used to generate the SWIG
|
|
||||||
## dependencies. Assign the variable TOP_SWIG_FILES to be the list of
|
|
||||||
## SWIG .i files to generated wrappings for; there can be more than 1
|
|
||||||
## so long as the names are unique (no sorting is done on the
|
|
||||||
## TOP_SWIG_FILES list). This file explicitly assumes that a SWIG .i
|
|
||||||
## file will generate .cc, .py, and possibly .h files -- meaning that
|
|
||||||
## all of these files will have the same base name (that provided for
|
|
||||||
## the SWIG .i file).
|
|
||||||
##
|
|
||||||
## This code is setup to ensure parallel MAKE ("-j" or "-jN") does the
|
|
||||||
## right thing. For more info, see <
|
|
||||||
## http://sources.redhat.com/automake/automake.html#Multiple-Outputs >
|
|
||||||
|
|
||||||
## Stamps used to ensure parallel make does the right thing. These
|
|
||||||
## are removed by "make clean", but otherwise unused except during the
|
|
||||||
## parallel built. These will not be included in a tarball, because
|
|
||||||
## the SWIG-generated files will be removed from the distribution.
|
|
||||||
|
|
||||||
STAMPS += $(DEPDIR)/@NAME@-generate-*
|
|
||||||
|
|
||||||
## Other cleaned files: dependency files generated by SWIG or this Makefile
|
|
||||||
|
|
||||||
MOSTLYCLEANFILES += $(DEPDIR)/*.S*
|
|
||||||
|
|
||||||
## Add the .py and .cc files to the list of SWIG built sources. The
|
|
||||||
## .h file is sometimes built, but not always ... so that one has to
|
|
||||||
## be added manually by the including Makefile.am .
|
|
||||||
|
|
||||||
swig_built_sources += @NAME@.py @NAME@.cc
|
|
||||||
|
|
||||||
## Various SWIG variables. These can be overloaded in the including
|
|
||||||
## Makefile.am by setting the variable value there, then including
|
|
||||||
## Makefile.swig .
|
|
||||||
|
|
||||||
@NAME@_swiginclude_HEADERS = \
|
|
||||||
@NAME@.i \
|
|
||||||
$(@NAME@_swiginclude_headers)
|
|
||||||
|
|
||||||
@NAME@_pylib_LTLIBRARIES = \
|
|
||||||
_@NAME@.la
|
|
||||||
|
|
||||||
_@NAME@_la_SOURCES = \
|
|
||||||
@NAME@.cc \
|
|
||||||
$(@NAME@_la_swig_sources)
|
|
||||||
|
|
||||||
_@NAME@_la_LIBADD = \
|
|
||||||
$(STD_SWIG_LA_LIB_ADD) \
|
|
||||||
$(@NAME@_la_swig_libadd)
|
|
||||||
|
|
||||||
_@NAME@_la_LDFLAGS = \
|
|
||||||
$(STD_SWIG_LA_LD_FLAGS) \
|
|
||||||
$(@NAME@_la_swig_ldflags)
|
|
||||||
|
|
||||||
_@NAME@_la_CXXFLAGS = \
|
|
||||||
$(STD_SWIG_CXX_FLAGS) \
|
|
||||||
$(@NAME@_la_swig_cxxflags)
|
|
||||||
|
|
||||||
@NAME@_python_PYTHON = \
|
|
||||||
@NAME@.py \
|
|
||||||
$(@NAME@_python)
|
|
||||||
|
|
||||||
## Entry rule for running SWIG
|
|
||||||
|
|
||||||
@NAME@.h @NAME@.py @NAME@.cc: @NAME@.i
|
|
||||||
## This rule will get called only when MAKE decides that one of the
|
|
||||||
## targets needs to be created or re-created, because:
|
|
||||||
##
|
|
||||||
## * The .i file is newer than any or all of the generated files;
|
|
||||||
##
|
|
||||||
## * Any or all of the .cc, .h, or .py files does not exist and is
|
|
||||||
## needed (in the case this file is not needed, the rule for it is
|
|
||||||
## ignored); or
|
|
||||||
##
|
|
||||||
## * Some SWIG-based dependecy of the .cc file isn't met and hence the
|
|
||||||
## .cc file needs be be regenerated. Explanation: Because MAKE
|
|
||||||
## knows how to handle dependencies for .cc files (regardless of
|
|
||||||
## their name or extension), then the .cc file is used as a target
|
|
||||||
## instead of the .i file -- but with the dependencies of the .i
|
|
||||||
## file. It is this last reason why the line:
|
|
||||||
##
|
|
||||||
## if test -f $@; then :; else
|
|
||||||
##
|
|
||||||
## cannot be used in this case: If a .i file dependecy is not met,
|
|
||||||
## then the .cc file needs to be rebuilt. But if the stamp is newer
|
|
||||||
## than the .cc file, and the .cc file exists, then in the original
|
|
||||||
## version (with the 'test' above) the internal MAKE call will not
|
|
||||||
## be issued and hence the .cc file will not be rebuilt.
|
|
||||||
##
|
|
||||||
## Once execution gets to here, it should always proceed no matter the
|
|
||||||
## state of a stamp (as discussed in link above). The
|
|
||||||
## $(DEPDIR)/@NAME@-generate stuff is used to allow for parallel
|
|
||||||
## builds to "do the right thing". The stamp has no relationship with
|
|
||||||
## either the target files or dependency file; it is used solely for
|
|
||||||
## the protection of multiple builds during a given call to MAKE.
|
|
||||||
##
|
|
||||||
## Catch signals SIGHUP (1), SIGINT (2), SIGPIPE (13), and SIGTERM
|
|
||||||
## (15). At a caught signal, the quoted command will be issued before
|
|
||||||
## exiting. In this case, remove any stamp, whether temporary of not.
|
|
||||||
## The trap is valid until the process exits; the process includes all
|
|
||||||
## commands appended via "\"s.
|
|
||||||
##
|
|
||||||
trap 'rm -rf $(DEPDIR)/@NAME@-generate-*' 1 2 13 15; \
|
|
||||||
##
|
|
||||||
## Create a temporary directory, which acts as a lock. The first
|
|
||||||
## process to create the directory will succeed and issue the MAKE
|
|
||||||
## command to do the actual work, while all subsequent processes will
|
|
||||||
## fail -- leading them to wait for the first process to finish.
|
|
||||||
##
|
|
||||||
if mkdir $(DEPDIR)/@NAME@-generate-lock 2>/dev/null; then \
|
|
||||||
##
|
|
||||||
## This code is being executed by the first process to succeed in
|
|
||||||
## creating the directory lock.
|
|
||||||
##
|
|
||||||
## Remove the stamp associated with this filename.
|
|
||||||
##
|
|
||||||
rm -f $(DEPDIR)/@NAME@-generate-stamp; \
|
|
||||||
##
|
|
||||||
## Tell MAKE to run the rule for creating this stamp.
|
|
||||||
##
|
|
||||||
$(MAKE) $(AM_MAKEFLAGS) $(DEPDIR)/@NAME@-generate-stamp WHAT=$<; \
|
|
||||||
##
|
|
||||||
## Now that the .cc, .h, and .py files have been (re)created from the
|
|
||||||
## .i file, future checking of this rule during the same MAKE
|
|
||||||
## execution will come back that the rule doesn't need to be executed
|
|
||||||
## because none of the conditions mentioned at the start of this rule
|
|
||||||
## will be positive. Remove the the directory lock, which frees up
|
|
||||||
## any waiting process(es) to continue.
|
|
||||||
##
|
|
||||||
rmdir $(DEPDIR)/@NAME@-generate-lock; \
|
|
||||||
else \
|
|
||||||
##
|
|
||||||
## This code is being executed by any follower processes while the
|
|
||||||
## directory lock is in place.
|
|
||||||
##
|
|
||||||
## Wait until the first process is done, testing once per second.
|
|
||||||
##
|
|
||||||
while test -d $(DEPDIR)/@NAME@-generate-lock; do \
|
|
||||||
sleep 1; \
|
|
||||||
done; \
|
|
||||||
##
|
|
||||||
## Succeed if and only if the first process succeeded; exit this
|
|
||||||
## process returning the status of the generated stamp.
|
|
||||||
##
|
|
||||||
test -f $(DEPDIR)/@NAME@-generate-stamp; \
|
|
||||||
exit $$?; \
|
|
||||||
fi;
|
|
||||||
|
|
||||||
$(DEPDIR)/@NAME@-generate-stamp:
|
|
||||||
## This rule will be called only by the first process issuing the
|
|
||||||
## above rule to succeed in creating the lock directory, after
|
|
||||||
## removing the actual stamp file in order to guarantee that MAKE will
|
|
||||||
## execute this rule.
|
|
||||||
##
|
|
||||||
## Call SWIG to generate the various output files; special
|
|
||||||
## post-processing on 'mingw32' host OS for the dependency file.
|
|
||||||
##
|
|
||||||
if $(SWIG) $(STD_SWIG_PYTHON_ARGS) $(@NAME@_swig_args) \
|
|
||||||
-MD -MF $(DEPDIR)/@NAME@.Std \
|
|
||||||
-module @NAME@ -o @NAME@.cc $(WHAT); then \
|
|
||||||
if test $(host_os) = mingw32; then \
|
|
||||||
$(RM) $(DEPDIR)/@NAME@.Sd; \
|
|
||||||
$(SED) 's,\\\\,/,g' < $(DEPDIR)/@NAME@.Std \
|
|
||||||
> $(DEPDIR)/@NAME@.Sd; \
|
|
||||||
$(RM) $(DEPDIR)/@NAME@.Std; \
|
|
||||||
$(MV) $(DEPDIR)/@NAME@.Sd $(DEPDIR)/@NAME@.Std; \
|
|
||||||
fi; \
|
|
||||||
else \
|
|
||||||
$(RM) $(DEPDIR)/@NAME@.S*; exit 1; \
|
|
||||||
fi;
|
|
||||||
##
|
|
||||||
## Mess with the SWIG output .Std dependency file, to create a
|
|
||||||
## dependecy file valid for the input .i file: Basically, simulate the
|
|
||||||
## dependency file created for libraries by GNU's libtool for C++,
|
|
||||||
## where all of the dependencies for the target are first listed, then
|
|
||||||
## each individual dependency is listed as a target with no further
|
|
||||||
## dependencies.
|
|
||||||
##
|
|
||||||
## (1) remove the current dependency file
|
|
||||||
##
|
|
||||||
$(RM) $(DEPDIR)/@NAME@.d
|
|
||||||
##
|
|
||||||
## (2) Copy the whole SWIG file:
|
|
||||||
##
|
|
||||||
cp $(DEPDIR)/@NAME@.Std $(DEPDIR)/@NAME@.d
|
|
||||||
##
|
|
||||||
## (3) all a carriage return to the end of the dependency file.
|
|
||||||
##
|
|
||||||
echo "" >> $(DEPDIR)/@NAME@.d
|
|
||||||
##
|
|
||||||
## (4) from the SWIG file, remove the first line (the target); remove
|
|
||||||
## trailing " \" and " " from each line. Append ":" to each line,
|
|
||||||
## followed by 2 carriage returns, then append this to the end of
|
|
||||||
## the dependency file.
|
|
||||||
##
|
|
||||||
$(SED) -e '1d;s, \\,,g;s, ,,g' < $(DEPDIR)/@NAME@.Std | \
|
|
||||||
awk '{ printf "%s:\n\n", $$0 }' >> $(DEPDIR)/@NAME@.d
|
|
||||||
##
|
|
||||||
## (5) remove the SWIG-generated file
|
|
||||||
##
|
|
||||||
$(RM) $(DEPDIR)/@NAME@.Std
|
|
||||||
##
|
|
||||||
## Create the stamp for this filename generation, to signal success in
|
|
||||||
## executing this rule; allows other threads waiting on this process
|
|
||||||
## to continue.
|
|
||||||
##
|
|
||||||
touch $(DEPDIR)/@NAME@-generate-stamp
|
|
||||||
|
|
||||||
# KLUDGE: Force runtime include of a SWIG dependency file. This is
|
|
||||||
# not guaranteed to be portable, but will probably work. If it works,
|
|
||||||
# we have accurate dependencies for our swig stuff, which is good.
|
|
||||||
|
|
||||||
@am__include@ @am__quote@./$(DEPDIR)/@NAME@.d@am__quote@
|
|
@ -1,5 +1,4 @@
|
|||||||
#
|
# Copyright 2011 Free Software Foundation, Inc.
|
||||||
# Copyright 2004 Free Software Foundation, Inc.
|
|
||||||
#
|
#
|
||||||
# This file is part of GNU Radio
|
# This file is part of GNU Radio
|
||||||
#
|
#
|
||||||
@ -17,6 +16,11 @@
|
|||||||
# along with GNU Radio; see the file COPYING. If not, write to
|
# along with GNU Radio; see the file COPYING. If not, write to
|
||||||
# the Free Software Foundation, Inc., 51 Franklin Street,
|
# the Free Software Foundation, Inc., 51 Franklin Street,
|
||||||
# Boston, MA 02110-1301, USA.
|
# Boston, MA 02110-1301, USA.
|
||||||
#
|
|
||||||
|
|
||||||
SUBDIRS = lib python
|
include(GrPython)
|
||||||
|
|
||||||
|
GR_PYTHON_INSTALL(
|
||||||
|
PROGRAMS
|
||||||
|
uhd_modes.py
|
||||||
|
DESTINATION bin
|
||||||
|
)
|
@ -23,17 +23,13 @@ my_position = [37.76225, -122.44254]
|
|||||||
#my_position = [37.409066,-122.077836]
|
#my_position = [37.409066,-122.077836]
|
||||||
#my_position = None
|
#my_position = None
|
||||||
|
|
||||||
from gnuradio import gr, gru, optfir, eng_notation, blks2, air
|
from gnuradio import gr, gru, optfir, eng_notation, blks2
|
||||||
from gnuradio import uhd
|
from gnuradio import uhd
|
||||||
from gnuradio.eng_option import eng_option
|
from gnuradio.eng_option import eng_option
|
||||||
from optparse import OptionParser
|
from optparse import OptionParser
|
||||||
import time, os, sys, threading
|
import time, os, sys, threading
|
||||||
from string import split, join
|
from string import split, join
|
||||||
from modes_print import modes_output_print
|
import air_modes
|
||||||
from modes_sql import modes_output_sql
|
|
||||||
from modes_sbs1 import modes_output_sbs1
|
|
||||||
from modes_kml import modes_kml
|
|
||||||
from modes_raw_server import modes_raw_server
|
|
||||||
import gnuradio.gr.gr_threading as _threading
|
import gnuradio.gr.gr_threading as _threading
|
||||||
import csv
|
import csv
|
||||||
|
|
||||||
@ -99,9 +95,9 @@ class adsb_rx_block (gr.top_block):
|
|||||||
self.lpfiltcoeffs = gr.firdes.low_pass(1, rate, 1.8e6, 100e3)
|
self.lpfiltcoeffs = gr.firdes.low_pass(1, rate, 1.8e6, 100e3)
|
||||||
self.lpfilter = gr.fir_filter_ccf(1, self.lpfiltcoeffs)
|
self.lpfilter = gr.fir_filter_ccf(1, self.lpfiltcoeffs)
|
||||||
|
|
||||||
self.preamble = air.modes_preamble(rate, options.threshold)
|
self.preamble = air_modes.modes_preamble(rate, options.threshold)
|
||||||
#self.framer = air.modes_framer(rate)
|
#self.framer = air_modes.modes_framer(rate)
|
||||||
self.slicer = air.modes_slicer(rate, queue)
|
self.slicer = air_modes.modes_slicer(rate, queue)
|
||||||
|
|
||||||
self.connect(self.u, self.lpfilter, self.demod)
|
self.connect(self.u, self.lpfilter, self.demod)
|
||||||
self.connect(self.demod, self.avg)
|
self.connect(self.demod, self.avg)
|
||||||
@ -157,21 +153,21 @@ if __name__ == '__main__':
|
|||||||
updates = [] #registry of plugin update functions
|
updates = [] #registry of plugin update functions
|
||||||
|
|
||||||
if options.kml is not None:
|
if options.kml is not None:
|
||||||
sqlport = modes_output_sql(my_position, 'adsb.db') #create a SQL parser to push stuff into SQLite
|
sqlport = air_modes.modes_output_sql(my_position, 'adsb.db') #create a SQL parser to push stuff into SQLite
|
||||||
outputs.append(sqlport.insert)
|
outputs.append(sqlport.insert)
|
||||||
#also we spawn a thread to run every 30 seconds (or whatever) to generate KML
|
#also we spawn a thread to run every 30 seconds (or whatever) to generate KML
|
||||||
kmlgen = modes_kml('adsb.db', options.kml, my_position) #create a KML generating thread which reads the database
|
kmlgen = modes_kml('adsb.db', options.kml, my_position) #create a KML generating thread which reads the database
|
||||||
|
|
||||||
if options.sbs1 is True:
|
if options.sbs1 is True:
|
||||||
sbs1port = modes_output_sbs1(my_position)
|
sbs1port = air_modes.modes_output_sbs1(my_position)
|
||||||
outputs.append(sbs1port.output)
|
outputs.append(sbs1port.output)
|
||||||
updates.append(sbs1port.add_pending_conns)
|
updates.append(sbs1port.add_pending_conns)
|
||||||
|
|
||||||
if options.no_print is not True:
|
if options.no_print is not True:
|
||||||
outputs.append(modes_output_print(my_position).parse)
|
outputs.append(air_modes.modes_output_print(my_position).parse)
|
||||||
|
|
||||||
if options.raw is True:
|
if options.raw is True:
|
||||||
rawport = modes_raw_server()
|
rawport = air_modes.modes_raw_server()
|
||||||
outputs.append(rawport.output)
|
outputs.append(rawport.output)
|
||||||
outputs.append(printraw)
|
outputs.append(printraw)
|
||||||
updates.append(rawport.add_pending_conns)
|
updates.append(rawport.add_pending_conns)
|
138
cmake/Modules/CMakeParseArgumentsCopy.cmake
Normal file
138
cmake/Modules/CMakeParseArgumentsCopy.cmake
Normal file
@ -0,0 +1,138 @@
|
|||||||
|
# CMAKE_PARSE_ARGUMENTS(<prefix> <options> <one_value_keywords> <multi_value_keywords> args...)
|
||||||
|
#
|
||||||
|
# CMAKE_PARSE_ARGUMENTS() is intended to be used in macros or functions for
|
||||||
|
# parsing the arguments given to that macro or function.
|
||||||
|
# It processes the arguments and defines a set of variables which hold the
|
||||||
|
# values of the respective options.
|
||||||
|
#
|
||||||
|
# The <options> argument contains all options for the respective macro,
|
||||||
|
# i.e. keywords which can be used when calling the macro without any value
|
||||||
|
# following, like e.g. the OPTIONAL keyword of the install() command.
|
||||||
|
#
|
||||||
|
# The <one_value_keywords> argument contains all keywords for this macro
|
||||||
|
# which are followed by one value, like e.g. DESTINATION keyword of the
|
||||||
|
# install() command.
|
||||||
|
#
|
||||||
|
# The <multi_value_keywords> argument contains all keywords for this macro
|
||||||
|
# which can be followed by more than one value, like e.g. the TARGETS or
|
||||||
|
# FILES keywords of the install() command.
|
||||||
|
#
|
||||||
|
# When done, CMAKE_PARSE_ARGUMENTS() will have defined for each of the
|
||||||
|
# keywords listed in <options>, <one_value_keywords> and
|
||||||
|
# <multi_value_keywords> a variable composed of the given <prefix>
|
||||||
|
# followed by "_" and the name of the respective keyword.
|
||||||
|
# These variables will then hold the respective value from the argument list.
|
||||||
|
# For the <options> keywords this will be TRUE or FALSE.
|
||||||
|
#
|
||||||
|
# All remaining arguments are collected in a variable
|
||||||
|
# <prefix>_UNPARSED_ARGUMENTS, this can be checked afterwards to see whether
|
||||||
|
# your macro was called with unrecognized parameters.
|
||||||
|
#
|
||||||
|
# As an example here a my_install() macro, which takes similar arguments as the
|
||||||
|
# real install() command:
|
||||||
|
#
|
||||||
|
# function(MY_INSTALL)
|
||||||
|
# set(options OPTIONAL FAST)
|
||||||
|
# set(oneValueArgs DESTINATION RENAME)
|
||||||
|
# set(multiValueArgs TARGETS CONFIGURATIONS)
|
||||||
|
# cmake_parse_arguments(MY_INSTALL "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} )
|
||||||
|
# ...
|
||||||
|
#
|
||||||
|
# Assume my_install() has been called like this:
|
||||||
|
# my_install(TARGETS foo bar DESTINATION bin OPTIONAL blub)
|
||||||
|
#
|
||||||
|
# After the cmake_parse_arguments() call the macro will have set the following
|
||||||
|
# variables:
|
||||||
|
# MY_INSTALL_OPTIONAL = TRUE
|
||||||
|
# MY_INSTALL_FAST = FALSE (this option was not used when calling my_install()
|
||||||
|
# MY_INSTALL_DESTINATION = "bin"
|
||||||
|
# MY_INSTALL_RENAME = "" (was not used)
|
||||||
|
# MY_INSTALL_TARGETS = "foo;bar"
|
||||||
|
# MY_INSTALL_CONFIGURATIONS = "" (was not used)
|
||||||
|
# MY_INSTALL_UNPARSED_ARGUMENTS = "blub" (no value expected after "OPTIONAL"
|
||||||
|
#
|
||||||
|
# You can the continue and process these variables.
|
||||||
|
#
|
||||||
|
# Keywords terminate lists of values, e.g. if directly after a one_value_keyword
|
||||||
|
# another recognized keyword follows, this is interpreted as the beginning of
|
||||||
|
# the new option.
|
||||||
|
# E.g. my_install(TARGETS foo DESTINATION OPTIONAL) would result in
|
||||||
|
# MY_INSTALL_DESTINATION set to "OPTIONAL", but MY_INSTALL_DESTINATION would
|
||||||
|
# be empty and MY_INSTALL_OPTIONAL would be set to TRUE therefor.
|
||||||
|
|
||||||
|
#=============================================================================
|
||||||
|
# Copyright 2010 Alexander Neundorf <neundorf@kde.org>
|
||||||
|
#
|
||||||
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
|
#=============================================================================
|
||||||
|
# (To distribute this file outside of CMake, substitute the full
|
||||||
|
# License text for the above reference.)
|
||||||
|
|
||||||
|
|
||||||
|
if(__CMAKE_PARSE_ARGUMENTS_INCLUDED)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
set(__CMAKE_PARSE_ARGUMENTS_INCLUDED TRUE)
|
||||||
|
|
||||||
|
|
||||||
|
function(CMAKE_PARSE_ARGUMENTS prefix _optionNames _singleArgNames _multiArgNames)
|
||||||
|
# first set all result variables to empty/FALSE
|
||||||
|
foreach(arg_name ${_singleArgNames} ${_multiArgNames})
|
||||||
|
set(${prefix}_${arg_name})
|
||||||
|
endforeach(arg_name)
|
||||||
|
|
||||||
|
foreach(option ${_optionNames})
|
||||||
|
set(${prefix}_${option} FALSE)
|
||||||
|
endforeach(option)
|
||||||
|
|
||||||
|
set(${prefix}_UNPARSED_ARGUMENTS)
|
||||||
|
|
||||||
|
set(insideValues FALSE)
|
||||||
|
set(currentArgName)
|
||||||
|
|
||||||
|
# now iterate over all arguments and fill the result variables
|
||||||
|
foreach(currentArg ${ARGN})
|
||||||
|
list(FIND _optionNames "${currentArg}" optionIndex) # ... then this marks the end of the arguments belonging to this keyword
|
||||||
|
list(FIND _singleArgNames "${currentArg}" singleArgIndex) # ... then this marks the end of the arguments belonging to this keyword
|
||||||
|
list(FIND _multiArgNames "${currentArg}" multiArgIndex) # ... then this marks the end of the arguments belonging to this keyword
|
||||||
|
|
||||||
|
if(${optionIndex} EQUAL -1 AND ${singleArgIndex} EQUAL -1 AND ${multiArgIndex} EQUAL -1)
|
||||||
|
if(insideValues)
|
||||||
|
if("${insideValues}" STREQUAL "SINGLE")
|
||||||
|
set(${prefix}_${currentArgName} ${currentArg})
|
||||||
|
set(insideValues FALSE)
|
||||||
|
elseif("${insideValues}" STREQUAL "MULTI")
|
||||||
|
list(APPEND ${prefix}_${currentArgName} ${currentArg})
|
||||||
|
endif()
|
||||||
|
else(insideValues)
|
||||||
|
list(APPEND ${prefix}_UNPARSED_ARGUMENTS ${currentArg})
|
||||||
|
endif(insideValues)
|
||||||
|
else()
|
||||||
|
if(NOT ${optionIndex} EQUAL -1)
|
||||||
|
set(${prefix}_${currentArg} TRUE)
|
||||||
|
set(insideValues FALSE)
|
||||||
|
elseif(NOT ${singleArgIndex} EQUAL -1)
|
||||||
|
set(currentArgName ${currentArg})
|
||||||
|
set(${prefix}_${currentArgName})
|
||||||
|
set(insideValues "SINGLE")
|
||||||
|
elseif(NOT ${multiArgIndex} EQUAL -1)
|
||||||
|
set(currentArgName ${currentArg})
|
||||||
|
set(${prefix}_${currentArgName})
|
||||||
|
set(insideValues "MULTI")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
endforeach(currentArg)
|
||||||
|
|
||||||
|
# propagate the result variables to the caller:
|
||||||
|
foreach(arg_name ${_singleArgNames} ${_multiArgNames} ${_optionNames})
|
||||||
|
set(${prefix}_${arg_name} ${${prefix}_${arg_name}} PARENT_SCOPE)
|
||||||
|
endforeach(arg_name)
|
||||||
|
set(${prefix}_UNPARSED_ARGUMENTS ${${prefix}_UNPARSED_ARGUMENTS} PARENT_SCOPE)
|
||||||
|
|
||||||
|
endfunction(CMAKE_PARSE_ARGUMENTS _options _singleArgs _multiArgs)
|
26
cmake/Modules/FindGnuradioCore.cmake
Normal file
26
cmake/Modules/FindGnuradioCore.cmake
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
INCLUDE(FindPkgConfig)
|
||||||
|
PKG_CHECK_MODULES(PC_GNURADIO_CORE gnuradio-core QUIET)
|
||||||
|
|
||||||
|
FIND_PATH(
|
||||||
|
GNURADIO_CORE_INCLUDE_DIRS
|
||||||
|
NAMES gr_random.h
|
||||||
|
HINTS $ENV{GNURADIO_CORE_DIR}/include/gnuradio
|
||||||
|
${PC_GNURADIO_CORE_INCLUDE_DIR}
|
||||||
|
PATHS /usr/local/include/gnuradio
|
||||||
|
/usr/include/gnuradio
|
||||||
|
)
|
||||||
|
|
||||||
|
FIND_LIBRARY(
|
||||||
|
GNURADIO_CORE_LIBRARIES
|
||||||
|
NAMES gnuradio-core
|
||||||
|
HINTS $ENV{GNURADIO_CORE_DIR}/lib
|
||||||
|
${PC_GNURADIO_CORE_LIBDIR}
|
||||||
|
PATHS /usr/local/lib
|
||||||
|
/usr/local/lib64
|
||||||
|
/usr/lib
|
||||||
|
/usr/lib64
|
||||||
|
)
|
||||||
|
|
||||||
|
INCLUDE(FindPackageHandleStandardArgs)
|
||||||
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GNURADIO_CORE DEFAULT_MSG GNURADIO_CORE_LIBRARIES GNURADIO_CORE_INCLUDE_DIRS)
|
||||||
|
MARK_AS_ADVANCED(GNURADIO_CORE_LIBRARIES GNURADIO_CORE_INCLUDE_DIRS)
|
26
cmake/Modules/FindGruel.cmake
Normal file
26
cmake/Modules/FindGruel.cmake
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
INCLUDE(FindPkgConfig)
|
||||||
|
PKG_CHECK_MODULES(PC_GRUEL gnuradio-core QUIET)
|
||||||
|
|
||||||
|
FIND_PATH(
|
||||||
|
GRUEL_INCLUDE_DIRS
|
||||||
|
NAMES gruel/attributes.h
|
||||||
|
HINTS $ENV{GRUEL_DIR}/include
|
||||||
|
${PC_GRUEL_INCLUDE_DIR}
|
||||||
|
PATHS /usr/local/include
|
||||||
|
/usr/include
|
||||||
|
)
|
||||||
|
|
||||||
|
FIND_LIBRARY(
|
||||||
|
GRUEL_LIBRARIES
|
||||||
|
NAMES gruel
|
||||||
|
HINTS $ENV{GRUEL_DIR}/lib
|
||||||
|
${PC_GRUEL_LIBDIR}
|
||||||
|
PATHS /usr/local/lib
|
||||||
|
/usr/local/lib64
|
||||||
|
/usr/lib
|
||||||
|
/usr/lib64
|
||||||
|
)
|
||||||
|
|
||||||
|
INCLUDE(FindPackageHandleStandardArgs)
|
||||||
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GRUEL DEFAULT_MSG GRUEL_LIBRARIES GRUEL_INCLUDE_DIRS)
|
||||||
|
MARK_AS_ADVANCED(GRUEL_LIBRARIES GRUEL_INCLUDE_DIRS)
|
210
cmake/Modules/GrMiscUtils.cmake
Normal file
210
cmake/Modules/GrMiscUtils.cmake
Normal file
@ -0,0 +1,210 @@
|
|||||||
|
# Copyright 2010-2011 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is part of GNU Radio
|
||||||
|
#
|
||||||
|
# GNU Radio is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 3, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# GNU Radio is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with GNU Radio; see the file COPYING. If not, write to
|
||||||
|
# the Free Software Foundation, Inc., 51 Franklin Street,
|
||||||
|
# Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
|
if(DEFINED __INCLUDED_GR_MISC_UTILS_CMAKE)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
set(__INCLUDED_GR_MISC_UTILS_CMAKE TRUE)
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Set global variable macro.
|
||||||
|
# Used for subdirectories to export settings.
|
||||||
|
# Example: include and library paths.
|
||||||
|
########################################################################
|
||||||
|
function(GR_SET_GLOBAL var)
|
||||||
|
set(${var} ${ARGN} CACHE INTERNAL "" FORCE)
|
||||||
|
endfunction(GR_SET_GLOBAL)
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Set the pre-processor definition if the condition is true.
|
||||||
|
# - def the pre-processor definition to set and condition name
|
||||||
|
########################################################################
|
||||||
|
function(GR_ADD_COND_DEF def)
|
||||||
|
if(${def})
|
||||||
|
add_definitions(-D${def})
|
||||||
|
endif(${def})
|
||||||
|
endfunction(GR_ADD_COND_DEF)
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Check for a header and conditionally set a compile define.
|
||||||
|
# - hdr the relative path to the header file
|
||||||
|
# - def the pre-processor definition to set
|
||||||
|
########################################################################
|
||||||
|
function(GR_CHECK_HDR_N_DEF hdr def)
|
||||||
|
include(CheckIncludeFileCXX)
|
||||||
|
CHECK_INCLUDE_FILE_CXX(${hdr} ${def})
|
||||||
|
GR_ADD_COND_DEF(${def})
|
||||||
|
endfunction(GR_CHECK_HDR_N_DEF)
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Include subdirectory macro.
|
||||||
|
# Sets the CMake directory variables,
|
||||||
|
# includes the subdirectory CMakeLists.txt,
|
||||||
|
# resets the CMake directory variables.
|
||||||
|
#
|
||||||
|
# This macro includes subdirectories rather than adding them
|
||||||
|
# so that the subdirectory can affect variables in the level above.
|
||||||
|
# This provides a work-around for the lack of convenience libraries.
|
||||||
|
# This way a subdirectory can append to the list of library sources.
|
||||||
|
########################################################################
|
||||||
|
macro(GR_INCLUDE_SUBDIRECTORY subdir)
|
||||||
|
#insert the current directories on the front of the list
|
||||||
|
list(INSERT _cmake_source_dirs 0 ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
list(INSERT _cmake_binary_dirs 0 ${CMAKE_CURRENT_BINARY_DIR})
|
||||||
|
|
||||||
|
#set the current directories to the names of the subdirs
|
||||||
|
set(CMAKE_CURRENT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/${subdir})
|
||||||
|
set(CMAKE_CURRENT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${subdir})
|
||||||
|
|
||||||
|
#include the subdirectory CMakeLists to run it
|
||||||
|
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||||
|
include(${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt)
|
||||||
|
|
||||||
|
#reset the value of the current directories
|
||||||
|
list(GET _cmake_source_dirs 0 CMAKE_CURRENT_SOURCE_DIR)
|
||||||
|
list(GET _cmake_binary_dirs 0 CMAKE_CURRENT_BINARY_DIR)
|
||||||
|
|
||||||
|
#pop the subdir names of the front of the list
|
||||||
|
list(REMOVE_AT _cmake_source_dirs 0)
|
||||||
|
list(REMOVE_AT _cmake_binary_dirs 0)
|
||||||
|
endmacro(GR_INCLUDE_SUBDIRECTORY)
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Check if a compiler flag works and conditionally set a compile define.
|
||||||
|
# - flag the compiler flag to check for
|
||||||
|
# - have the variable to set with result
|
||||||
|
########################################################################
|
||||||
|
macro(GR_ADD_CXX_COMPILER_FLAG_IF_AVAILABLE flag have)
|
||||||
|
include(CheckCXXCompilerFlag)
|
||||||
|
CHECK_CXX_COMPILER_FLAG(${flag} ${have})
|
||||||
|
if(${have})
|
||||||
|
add_definitions(${flag})
|
||||||
|
endif(${have})
|
||||||
|
endmacro(GR_ADD_CXX_COMPILER_FLAG_IF_AVAILABLE)
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Generates the .la libtool file
|
||||||
|
# This appears to generate libtool files that cannot be used by auto*.
|
||||||
|
# Usage GR_LIBTOOL(TARGET [target] DESTINATION [dest])
|
||||||
|
# Notice: there is not COMPONENT option, these will not get distributed.
|
||||||
|
########################################################################
|
||||||
|
function(GR_LIBTOOL)
|
||||||
|
if(NOT DEFINED GENERATE_LIBTOOL)
|
||||||
|
set(GENERATE_LIBTOOL OFF) #disabled by default
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(GENERATE_LIBTOOL)
|
||||||
|
include(CMakeParseArgumentsCopy)
|
||||||
|
CMAKE_PARSE_ARGUMENTS(GR_LIBTOOL "" "TARGET;DESTINATION" "" ${ARGN})
|
||||||
|
|
||||||
|
find_program(LIBTOOL libtool)
|
||||||
|
if(LIBTOOL)
|
||||||
|
include(CMakeMacroLibtoolFile)
|
||||||
|
CREATE_LIBTOOL_FILE(${GR_LIBTOOL_TARGET} /${GR_LIBTOOL_DESTINATION})
|
||||||
|
endif(LIBTOOL)
|
||||||
|
endif(GENERATE_LIBTOOL)
|
||||||
|
|
||||||
|
endfunction(GR_LIBTOOL)
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Do standard things to the library target
|
||||||
|
# - set target properties
|
||||||
|
# - make install rules
|
||||||
|
# Also handle gnuradio custom naming conventions w/ extras mode.
|
||||||
|
########################################################################
|
||||||
|
function(GR_LIBRARY_FOO target)
|
||||||
|
#parse the arguments for component names
|
||||||
|
include(CMakeParseArgumentsCopy)
|
||||||
|
CMAKE_PARSE_ARGUMENTS(GR_LIBRARY "" "RUNTIME_COMPONENT;DEVEL_COMPONENT" "" ${ARGN})
|
||||||
|
|
||||||
|
#set additional target properties
|
||||||
|
set_target_properties(${target} PROPERTIES SOVERSION ${LIBVER})
|
||||||
|
|
||||||
|
#install the generated files like so...
|
||||||
|
install(TARGETS ${target}
|
||||||
|
LIBRARY DESTINATION ${GR_LIBRARY_DIR} COMPONENT ${GR_LIBRARY_RUNTIME_COMPONENT} # .so/.dylib file
|
||||||
|
ARCHIVE DESTINATION ${GR_LIBRARY_DIR} COMPONENT ${GR_LIBRARY_DEVEL_COMPONENT} # .lib file
|
||||||
|
RUNTIME DESTINATION ${GR_RUNTIME_DIR} COMPONENT ${GR_LIBRARY_RUNTIME_COMPONENT} # .dll file
|
||||||
|
)
|
||||||
|
|
||||||
|
#extras mode enabled automatically on linux
|
||||||
|
if(NOT DEFINED LIBRARY_EXTRAS)
|
||||||
|
set(LIBRARY_EXTRAS ${LINUX})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
#special extras mode to enable alternative naming conventions
|
||||||
|
if(LIBRARY_EXTRAS)
|
||||||
|
|
||||||
|
#create .la file before changing props
|
||||||
|
GR_LIBTOOL(TARGET ${target} DESTINATION ${GR_LIBRARY_DIR})
|
||||||
|
|
||||||
|
#give the library a special name with ultra-zero soversion
|
||||||
|
set_target_properties(${target} PROPERTIES LIBRARY_OUTPUT_NAME ${target}-${LIBVER} SOVERSION "0.0.0")
|
||||||
|
set(target_name lib${target}-${LIBVER}.so.0.0.0)
|
||||||
|
|
||||||
|
#custom command to generate symlinks
|
||||||
|
add_custom_command(
|
||||||
|
TARGET ${target}
|
||||||
|
POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E create_symlink ${target_name} ${CMAKE_CURRENT_BINARY_DIR}/lib${target}.so
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E create_symlink ${target_name} ${CMAKE_CURRENT_BINARY_DIR}/lib${target}-${LIBVER}.so.0
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E touch ${target_name} #so the symlinks point to something valid so cmake 2.6 will install
|
||||||
|
)
|
||||||
|
|
||||||
|
#and install the extra symlinks
|
||||||
|
install(
|
||||||
|
FILES
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/lib${target}.so
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/lib${target}-${LIBVER}.so.0
|
||||||
|
DESTINATION ${GR_LIBRARY_DIR} COMPONENT ${GR_LIBRARY_RUNTIME_COMPONENT}
|
||||||
|
)
|
||||||
|
|
||||||
|
endif(LIBRARY_EXTRAS)
|
||||||
|
endfunction(GR_LIBRARY_FOO)
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Create a dummy custom command that depends on other targets.
|
||||||
|
# Usage:
|
||||||
|
# GR_GEN_TARGET_DEPS(unique_name target_deps <target1> <target2> ...)
|
||||||
|
# ADD_CUSTOM_COMMAND(<the usual args> ${target_deps})
|
||||||
|
#
|
||||||
|
# Custom command cant depend on targets, but can depend on executables,
|
||||||
|
# and executables can depend on targets. So this is the process:
|
||||||
|
########################################################################
|
||||||
|
function(GR_GEN_TARGET_DEPS name var)
|
||||||
|
file(
|
||||||
|
WRITE ${CMAKE_CURRENT_BINARY_DIR}/${name}.cpp.in
|
||||||
|
"int main(void){return 0;}\n"
|
||||||
|
)
|
||||||
|
execute_process(
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/${name}.cpp.in
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/${name}.cpp
|
||||||
|
)
|
||||||
|
add_executable(${name} ${CMAKE_CURRENT_BINARY_DIR}/${name}.cpp)
|
||||||
|
if(ARGN)
|
||||||
|
add_dependencies(${name} ${ARGN})
|
||||||
|
endif(ARGN)
|
||||||
|
|
||||||
|
if(CMAKE_CROSSCOMPILING)
|
||||||
|
set(${var} "DEPENDS;${name}" PARENT_SCOPE) #cant call command when cross
|
||||||
|
else()
|
||||||
|
set(${var} "DEPENDS;${name};COMMAND;${name}" PARENT_SCOPE)
|
||||||
|
endif()
|
||||||
|
endfunction(GR_GEN_TARGET_DEPS)
|
46
cmake/Modules/GrPlatform.cmake
Normal file
46
cmake/Modules/GrPlatform.cmake
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
# Copyright 2011 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is part of GNU Radio
|
||||||
|
#
|
||||||
|
# GNU Radio is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 3, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# GNU Radio is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with GNU Radio; see the file COPYING. If not, write to
|
||||||
|
# the Free Software Foundation, Inc., 51 Franklin Street,
|
||||||
|
# Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
|
if(DEFINED __INCLUDED_GR_PLATFORM_CMAKE)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
set(__INCLUDED_GR_PLATFORM_CMAKE TRUE)
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Setup additional defines for OS types
|
||||||
|
########################################################################
|
||||||
|
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||||
|
set(LINUX TRUE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(LINUX AND EXISTS "/etc/debian_version")
|
||||||
|
set(DEBIAN TRUE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(LINUX AND EXISTS "/etc/redhat-release")
|
||||||
|
set(REDHAT TRUE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# when the library suffix should be 64 (applies to redhat linux family)
|
||||||
|
########################################################################
|
||||||
|
if(NOT DEFINED LIB_SUFFIX AND REDHAT AND CMAKE_SYSTEM_PROCESSOR MATCHES "64$")
|
||||||
|
set(LIB_SUFFIX 64)
|
||||||
|
endif()
|
||||||
|
set(LIB_SUFFIX ${LIB_SUFFIX} CACHE STRING "lib directory suffix")
|
227
cmake/Modules/GrPython.cmake
Normal file
227
cmake/Modules/GrPython.cmake
Normal file
@ -0,0 +1,227 @@
|
|||||||
|
# Copyright 2010-2011 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is part of GNU Radio
|
||||||
|
#
|
||||||
|
# GNU Radio is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 3, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# GNU Radio is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with GNU Radio; see the file COPYING. If not, write to
|
||||||
|
# the Free Software Foundation, Inc., 51 Franklin Street,
|
||||||
|
# Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
|
if(DEFINED __INCLUDED_GR_PYTHON_CMAKE)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
set(__INCLUDED_GR_PYTHON_CMAKE TRUE)
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Setup the python interpreter:
|
||||||
|
# This allows the user to specify a specific interpreter,
|
||||||
|
# or finds the interpreter via the built-in cmake module.
|
||||||
|
########################################################################
|
||||||
|
#this allows the user to override PYTHON_EXECUTABLE
|
||||||
|
if(PYTHON_EXECUTABLE)
|
||||||
|
|
||||||
|
set(PYTHONINTERP_FOUND TRUE)
|
||||||
|
|
||||||
|
#otherwise if not set, try to automatically find it
|
||||||
|
else(PYTHON_EXECUTABLE)
|
||||||
|
|
||||||
|
#use the built-in find script
|
||||||
|
find_package(PythonInterp)
|
||||||
|
|
||||||
|
#and if that fails use the find program routine
|
||||||
|
if(NOT PYTHONINTERP_FOUND)
|
||||||
|
find_program(PYTHON_EXECUTABLE NAMES python python2.7 python2.6 python2.5)
|
||||||
|
if(PYTHON_EXECUTABLE)
|
||||||
|
set(PYTHONINTERP_FOUND TRUE)
|
||||||
|
endif(PYTHON_EXECUTABLE)
|
||||||
|
endif(NOT PYTHONINTERP_FOUND)
|
||||||
|
|
||||||
|
endif(PYTHON_EXECUTABLE)
|
||||||
|
|
||||||
|
#make the path to the executable appear in the cmake gui
|
||||||
|
set(PYTHON_EXECUTABLE ${PYTHON_EXECUTABLE} CACHE FILEPATH "python interpreter")
|
||||||
|
|
||||||
|
#make sure we can use -B with python (introduced in 2.6)
|
||||||
|
if(PYTHON_EXECUTABLE)
|
||||||
|
execute_process(
|
||||||
|
COMMAND ${PYTHON_EXECUTABLE} -B -c ""
|
||||||
|
OUTPUT_QUIET ERROR_QUIET
|
||||||
|
RESULT_VARIABLE PYTHON_HAS_DASH_B_RESULT
|
||||||
|
)
|
||||||
|
if(PYTHON_HAS_DASH_B_RESULT EQUAL 0)
|
||||||
|
set(PYTHON_DASH_B "-B")
|
||||||
|
endif()
|
||||||
|
endif(PYTHON_EXECUTABLE)
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Check for the existence of a python module:
|
||||||
|
# - desc a string description of the check
|
||||||
|
# - mod the name of the module to import
|
||||||
|
# - cmd an additional command to run
|
||||||
|
# - have the result variable to set
|
||||||
|
########################################################################
|
||||||
|
macro(GR_PYTHON_CHECK_MODULE desc mod cmd have)
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "Python checking for ${desc}")
|
||||||
|
execute_process(
|
||||||
|
COMMAND ${PYTHON_EXECUTABLE} -c "
|
||||||
|
#########################################
|
||||||
|
try: import ${mod}
|
||||||
|
except: exit(-1)
|
||||||
|
try: assert ${cmd}
|
||||||
|
except: exit(-1)
|
||||||
|
#########################################"
|
||||||
|
RESULT_VARIABLE ${have}
|
||||||
|
)
|
||||||
|
if(${have} EQUAL 0)
|
||||||
|
message(STATUS "Python checking for ${desc} - found")
|
||||||
|
set(${have} TRUE)
|
||||||
|
else(${have} EQUAL 0)
|
||||||
|
message(STATUS "Python checking for ${desc} - not found")
|
||||||
|
set(${have} FALSE)
|
||||||
|
endif(${have} EQUAL 0)
|
||||||
|
endmacro(GR_PYTHON_CHECK_MODULE)
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Sets the python installation directory GR_PYTHON_DIR
|
||||||
|
########################################################################
|
||||||
|
execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "
|
||||||
|
from distutils import sysconfig
|
||||||
|
print sysconfig.get_python_lib(plat_specific=True, prefix='')
|
||||||
|
" OUTPUT_VARIABLE GR_PYTHON_DIR OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
)
|
||||||
|
file(TO_CMAKE_PATH ${GR_PYTHON_DIR} GR_PYTHON_DIR)
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Create an always-built target with a unique name
|
||||||
|
# Usage: GR_UNIQUE_TARGET(<description> <dependencies list>)
|
||||||
|
########################################################################
|
||||||
|
function(GR_UNIQUE_TARGET desc)
|
||||||
|
file(RELATIVE_PATH reldir ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR})
|
||||||
|
execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import re, hashlib
|
||||||
|
unique = hashlib.md5('${reldir}${ARGN}').hexdigest()[:5]
|
||||||
|
print(re.sub('\\W', '_', '${desc} ${reldir} ' + unique))"
|
||||||
|
OUTPUT_VARIABLE _target OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
add_custom_target(${_target} ALL DEPENDS ${ARGN})
|
||||||
|
endfunction(GR_UNIQUE_TARGET)
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Install python sources (also builds and installs byte-compiled python)
|
||||||
|
########################################################################
|
||||||
|
function(GR_PYTHON_INSTALL)
|
||||||
|
include(CMakeParseArgumentsCopy)
|
||||||
|
CMAKE_PARSE_ARGUMENTS(GR_PYTHON_INSTALL "" "DESTINATION;COMPONENT" "FILES;PROGRAMS" ${ARGN})
|
||||||
|
|
||||||
|
####################################################################
|
||||||
|
if(GR_PYTHON_INSTALL_FILES)
|
||||||
|
####################################################################
|
||||||
|
install(${ARGN}) #installs regular python files
|
||||||
|
|
||||||
|
#create a list of all generated files
|
||||||
|
unset(pysrcfiles)
|
||||||
|
unset(pycfiles)
|
||||||
|
unset(pyofiles)
|
||||||
|
foreach(pyfile ${GR_PYTHON_INSTALL_FILES})
|
||||||
|
get_filename_component(pyfile ${pyfile} ABSOLUTE)
|
||||||
|
list(APPEND pysrcfiles ${pyfile})
|
||||||
|
|
||||||
|
#determine if this file is in the source or binary directory
|
||||||
|
file(RELATIVE_PATH source_rel_path ${CMAKE_CURRENT_SOURCE_DIR} ${pyfile})
|
||||||
|
string(LENGTH "${source_rel_path}" source_rel_path_len)
|
||||||
|
file(RELATIVE_PATH binary_rel_path ${CMAKE_CURRENT_BINARY_DIR} ${pyfile})
|
||||||
|
string(LENGTH "${binary_rel_path}" binary_rel_path_len)
|
||||||
|
|
||||||
|
#and set the generated path appropriately
|
||||||
|
if(${source_rel_path_len} GREATER ${binary_rel_path_len})
|
||||||
|
set(pygenfile ${CMAKE_CURRENT_BINARY_DIR}/${binary_rel_path})
|
||||||
|
else()
|
||||||
|
set(pygenfile ${CMAKE_CURRENT_BINARY_DIR}/${source_rel_path})
|
||||||
|
endif()
|
||||||
|
list(APPEND pycfiles ${pygenfile}c)
|
||||||
|
list(APPEND pyofiles ${pygenfile}o)
|
||||||
|
|
||||||
|
#ensure generation path exists
|
||||||
|
get_filename_component(pygen_path ${pygenfile} PATH)
|
||||||
|
file(MAKE_DIRECTORY ${pygen_path})
|
||||||
|
|
||||||
|
endforeach(pyfile)
|
||||||
|
|
||||||
|
#the command to generate the pyc files
|
||||||
|
add_custom_command(
|
||||||
|
DEPENDS ${pysrcfiles} OUTPUT ${pycfiles}
|
||||||
|
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_BINARY_DIR}/python_compile_helper.py ${pysrcfiles} ${pycfiles}
|
||||||
|
)
|
||||||
|
|
||||||
|
#the command to generate the pyo files
|
||||||
|
add_custom_command(
|
||||||
|
DEPENDS ${pysrcfiles} OUTPUT ${pyofiles}
|
||||||
|
COMMAND ${PYTHON_EXECUTABLE} -O ${CMAKE_BINARY_DIR}/python_compile_helper.py ${pysrcfiles} ${pyofiles}
|
||||||
|
)
|
||||||
|
|
||||||
|
#create install rule and add generated files to target list
|
||||||
|
set(python_install_gen_targets ${pycfiles} ${pyofiles})
|
||||||
|
install(FILES ${python_install_gen_targets}
|
||||||
|
DESTINATION ${GR_PYTHON_INSTALL_DESTINATION}
|
||||||
|
COMPONENT ${GR_PYTHON_INSTALL_COMPONENT}
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
####################################################################
|
||||||
|
elseif(GR_PYTHON_INSTALL_PROGRAMS)
|
||||||
|
####################################################################
|
||||||
|
file(TO_NATIVE_PATH ${PYTHON_EXECUTABLE} pyexe_native)
|
||||||
|
|
||||||
|
foreach(pyfile ${GR_PYTHON_INSTALL_PROGRAMS})
|
||||||
|
get_filename_component(pyfile_name ${pyfile} NAME)
|
||||||
|
get_filename_component(pyfile ${pyfile} ABSOLUTE)
|
||||||
|
string(REPLACE "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" pyexefile "${pyfile}.exe")
|
||||||
|
list(APPEND python_install_gen_targets ${pyexefile})
|
||||||
|
|
||||||
|
get_filename_component(pyexefile_path ${pyexefile} PATH)
|
||||||
|
file(MAKE_DIRECTORY ${pyexefile_path})
|
||||||
|
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT ${pyexefile} DEPENDS ${pyfile}
|
||||||
|
COMMAND ${PYTHON_EXECUTABLE} -c
|
||||||
|
\"open('${pyexefile}', 'w').write('\#!${pyexe_native}\\n'+open('${pyfile}').read())\"
|
||||||
|
COMMENT "Shebangin ${pyfile_name}"
|
||||||
|
)
|
||||||
|
|
||||||
|
#on windows, python files need an extension to execute
|
||||||
|
get_filename_component(pyfile_ext ${pyfile} EXT)
|
||||||
|
if(WIN32 AND NOT pyfile_ext)
|
||||||
|
set(pyfile_name "${pyfile_name}.py")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
install(PROGRAMS ${pyexefile} RENAME ${pyfile_name}
|
||||||
|
DESTINATION ${GR_PYTHON_INSTALL_DESTINATION}
|
||||||
|
COMPONENT ${GR_PYTHON_INSTALL_COMPONENT}
|
||||||
|
)
|
||||||
|
endforeach(pyfile)
|
||||||
|
|
||||||
|
endif()
|
||||||
|
|
||||||
|
GR_UNIQUE_TARGET("pygen" ${python_install_gen_targets})
|
||||||
|
|
||||||
|
endfunction(GR_PYTHON_INSTALL)
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Write the python helper script that generates byte code files
|
||||||
|
########################################################################
|
||||||
|
file(WRITE ${CMAKE_BINARY_DIR}/python_compile_helper.py "
|
||||||
|
import sys, py_compile
|
||||||
|
files = sys.argv[1:]
|
||||||
|
srcs, gens = files[:len(files)/2], files[len(files)/2:]
|
||||||
|
for src, gen in zip(srcs, gens):
|
||||||
|
py_compile.compile(file=src, cfile=gen, doraise=True)
|
||||||
|
")
|
229
cmake/Modules/GrSwig.cmake
Normal file
229
cmake/Modules/GrSwig.cmake
Normal file
@ -0,0 +1,229 @@
|
|||||||
|
# Copyright 2010-2011 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is part of GNU Radio
|
||||||
|
#
|
||||||
|
# GNU Radio is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 3, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# GNU Radio is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with GNU Radio; see the file COPYING. If not, write to
|
||||||
|
# the Free Software Foundation, Inc., 51 Franklin Street,
|
||||||
|
# Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
|
if(DEFINED __INCLUDED_GR_SWIG_CMAKE)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
set(__INCLUDED_GR_SWIG_CMAKE TRUE)
|
||||||
|
|
||||||
|
include(GrPython)
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Builds a swig documentation file to be generated into python docstrings
|
||||||
|
# Usage: GR_SWIG_MAKE_DOCS(output_file input_path input_path....)
|
||||||
|
#
|
||||||
|
# Set the following variable to specify extra dependent targets:
|
||||||
|
# - GR_SWIG_DOCS_SOURCE_DEPS
|
||||||
|
# - GR_SWIG_DOCS_TARGET_DEPS
|
||||||
|
########################################################################
|
||||||
|
function(GR_SWIG_MAKE_DOCS output_file)
|
||||||
|
find_package(Doxygen)
|
||||||
|
if(DOXYGEN_FOUND)
|
||||||
|
|
||||||
|
#setup the input files variable list, quote formated
|
||||||
|
set(input_files)
|
||||||
|
unset(INPUT_PATHS)
|
||||||
|
foreach(input_path ${ARGN})
|
||||||
|
if (IS_DIRECTORY ${input_path}) #when input path is a directory
|
||||||
|
file(GLOB input_path_h_files ${input_path}/*.h)
|
||||||
|
else() #otherwise its just a file, no glob
|
||||||
|
set(input_path_h_files ${input_path})
|
||||||
|
endif()
|
||||||
|
list(APPEND input_files ${input_path_h_files})
|
||||||
|
set(INPUT_PATHS "${INPUT_PATHS} \"${input_path}\"")
|
||||||
|
endforeach(input_path)
|
||||||
|
|
||||||
|
#determine the output directory
|
||||||
|
get_filename_component(name ${output_file} NAME_WE)
|
||||||
|
get_filename_component(OUTPUT_DIRECTORY ${output_file} PATH)
|
||||||
|
set(OUTPUT_DIRECTORY ${OUTPUT_DIRECTORY}/${name}_swig_docs)
|
||||||
|
make_directory(${OUTPUT_DIRECTORY})
|
||||||
|
|
||||||
|
#generate the Doxyfile used by doxygen
|
||||||
|
configure_file(
|
||||||
|
${CMAKE_SOURCE_DIR}/docs/doxygen/Doxyfile.swig_doc.in
|
||||||
|
${OUTPUT_DIRECTORY}/Doxyfile
|
||||||
|
@ONLY)
|
||||||
|
|
||||||
|
#Create a dummy custom command that depends on other targets
|
||||||
|
include(GrMiscUtils)
|
||||||
|
GR_GEN_TARGET_DEPS(_${name}_tag tag_deps ${GR_SWIG_DOCS_TARGET_DEPS})
|
||||||
|
|
||||||
|
#call doxygen on the Doxyfile + input headers
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT ${OUTPUT_DIRECTORY}/xml/index.xml
|
||||||
|
DEPENDS ${input_files} ${GR_SWIG_DOCS_SOURCE_DEPS} ${tag_deps}
|
||||||
|
COMMAND ${DOXYGEN_EXECUTABLE} ${OUTPUT_DIRECTORY}/Doxyfile
|
||||||
|
COMMENT "Generating doxygen xml for ${name} docs"
|
||||||
|
)
|
||||||
|
|
||||||
|
#call the swig_doc script on the xml files
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT ${output_file}
|
||||||
|
DEPENDS ${input_files} ${OUTPUT_DIRECTORY}/xml/index.xml
|
||||||
|
COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
|
||||||
|
${CMAKE_SOURCE_DIR}/docs/doxygen/swig_doc.py
|
||||||
|
${OUTPUT_DIRECTORY}/xml
|
||||||
|
${output_file}
|
||||||
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/docs/doxygen
|
||||||
|
)
|
||||||
|
|
||||||
|
else(DOXYGEN_FOUND)
|
||||||
|
file(WRITE ${output_file} "\n") #no doxygen -> empty file
|
||||||
|
endif(DOXYGEN_FOUND)
|
||||||
|
endfunction(GR_SWIG_MAKE_DOCS)
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Build a swig target for the common gnuradio use case. Usage:
|
||||||
|
# GR_SWIG_MAKE(target ifile ifile ifile...)
|
||||||
|
#
|
||||||
|
# Set the following variables before calling:
|
||||||
|
# - GR_SWIG_FLAGS
|
||||||
|
# - GR_SWIG_INCLUDE_DIRS
|
||||||
|
# - GR_SWIG_LIBRARIES
|
||||||
|
# - GR_SWIG_SOURCE_DEPS
|
||||||
|
# - GR_SWIG_TARGET_DEPS
|
||||||
|
# - GR_SWIG_DOC_FILE
|
||||||
|
# - GR_SWIG_DOC_DIRS
|
||||||
|
########################################################################
|
||||||
|
macro(GR_SWIG_MAKE name)
|
||||||
|
set(ifiles ${ARGN})
|
||||||
|
|
||||||
|
#do swig doc generation if specified
|
||||||
|
if (GR_SWIG_DOC_FILE)
|
||||||
|
set(GR_SWIG_DOCS_SOURCE_DEPS ${GR_SWIG_SOURCE_DEPS})
|
||||||
|
set(GR_SWIG_DOCS_TAREGT_DEPS ${GR_SWIG_TARGET_DEPS})
|
||||||
|
GR_SWIG_MAKE_DOCS(${GR_SWIG_DOC_FILE} ${GR_SWIG_DOC_DIRS})
|
||||||
|
list(APPEND GR_SWIG_SOURCE_DEPS ${GR_SWIG_DOC_FILE})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
#append additional include directories
|
||||||
|
find_package(PythonLibs)
|
||||||
|
list(APPEND GR_SWIG_INCLUDE_DIRS ${PYTHON_INCLUDE_PATH}) #deprecated name (now dirs)
|
||||||
|
list(APPEND GR_SWIG_INCLUDE_DIRS ${PYTHON_INCLUDE_DIRS})
|
||||||
|
list(APPEND GR_SWIG_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
list(APPEND GR_SWIG_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR})
|
||||||
|
|
||||||
|
#determine include dependencies for swig file
|
||||||
|
execute_process(
|
||||||
|
COMMAND ${PYTHON_EXECUTABLE}
|
||||||
|
${CMAKE_BINARY_DIR}/get_swig_deps.py
|
||||||
|
"${ifiles}" "${GR_SWIG_INCLUDE_DIRS}"
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
OUTPUT_VARIABLE SWIG_MODULE_${name}_EXTRA_DEPS
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
)
|
||||||
|
|
||||||
|
#Create a dummy custom command that depends on other targets
|
||||||
|
include(GrMiscUtils)
|
||||||
|
GR_GEN_TARGET_DEPS(_${name}_swig_tag tag_deps ${GR_SWIG_TARGET_DEPS})
|
||||||
|
set(tag_file ${CMAKE_CURRENT_BINARY_DIR}/${name}.tag)
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT ${tag_file}
|
||||||
|
DEPENDS ${GR_SWIG_SOURCE_DEPS} ${tag_deps}
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E touch ${tag_file}
|
||||||
|
)
|
||||||
|
|
||||||
|
#append the specified include directories
|
||||||
|
include_directories(${GR_SWIG_INCLUDE_DIRS})
|
||||||
|
list(APPEND SWIG_MODULE_${name}_EXTRA_DEPS ${tag_file})
|
||||||
|
|
||||||
|
#setup the swig flags with flags and include directories
|
||||||
|
set(CMAKE_SWIG_FLAGS -fvirtual -modern -keyword -w511 -module ${name} ${GR_SWIG_FLAGS})
|
||||||
|
foreach(dir ${GR_SWIG_INCLUDE_DIRS})
|
||||||
|
list(APPEND CMAKE_SWIG_FLAGS "-I${dir}")
|
||||||
|
endforeach(dir)
|
||||||
|
|
||||||
|
#set the C++ property on the swig .i file so it builds
|
||||||
|
set_source_files_properties(${ifiles} PROPERTIES CPLUSPLUS ON)
|
||||||
|
|
||||||
|
#setup the actual swig library target to be built
|
||||||
|
include(UseSWIG)
|
||||||
|
SWIG_ADD_MODULE(${name} python ${ifiles})
|
||||||
|
SWIG_LINK_LIBRARIES(${name} ${PYTHON_LIBRARIES} ${GR_SWIG_LIBRARIES})
|
||||||
|
|
||||||
|
endmacro(GR_SWIG_MAKE)
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Install swig targets generated by GR_SWIG_MAKE. Usage:
|
||||||
|
# GR_SWIG_INSTALL(
|
||||||
|
# TARGETS target target target...
|
||||||
|
# [DESTINATION destination]
|
||||||
|
# [COMPONENT component]
|
||||||
|
# )
|
||||||
|
########################################################################
|
||||||
|
macro(GR_SWIG_INSTALL)
|
||||||
|
|
||||||
|
include(CMakeParseArgumentsCopy)
|
||||||
|
CMAKE_PARSE_ARGUMENTS(GR_SWIG_INSTALL "" "DESTINATION;COMPONENT" "TARGETS" ${ARGN})
|
||||||
|
|
||||||
|
foreach(name ${GR_SWIG_INSTALL_TARGETS})
|
||||||
|
install(TARGETS ${SWIG_MODULE_${name}_REAL_NAME}
|
||||||
|
DESTINATION ${GR_SWIG_INSTALL_DESTINATION}
|
||||||
|
COMPONENT ${GR_SWIG_INSTALL_COMPONENT}
|
||||||
|
)
|
||||||
|
|
||||||
|
include(GrPython)
|
||||||
|
GR_PYTHON_INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${name}.py
|
||||||
|
DESTINATION ${GR_SWIG_INSTALL_DESTINATION}
|
||||||
|
COMPONENT ${GR_SWIG_INSTALL_COMPONENT}
|
||||||
|
)
|
||||||
|
|
||||||
|
GR_LIBTOOL(
|
||||||
|
TARGET ${SWIG_MODULE_${name}_REAL_NAME}
|
||||||
|
DESTINATION ${GR_SWIG_INSTALL_DESTINATION}
|
||||||
|
)
|
||||||
|
|
||||||
|
endforeach(name)
|
||||||
|
|
||||||
|
endmacro(GR_SWIG_INSTALL)
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Generate a python file that can determine swig dependencies.
|
||||||
|
# Used by the make macro above to determine extra dependencies.
|
||||||
|
# When you build C++, CMake figures out the header dependencies.
|
||||||
|
# This code essentially performs that logic for swig includes.
|
||||||
|
########################################################################
|
||||||
|
file(WRITE ${CMAKE_BINARY_DIR}/get_swig_deps.py "
|
||||||
|
|
||||||
|
import os, sys, re
|
||||||
|
|
||||||
|
include_matcher = re.compile('[#|%]include\\s*[<|\"](.*)[>|\"]')
|
||||||
|
include_dirs = sys.argv[2].split(';')
|
||||||
|
|
||||||
|
def get_swig_incs(file_path):
|
||||||
|
file_contents = open(file_path, 'r').read()
|
||||||
|
return include_matcher.findall(file_contents, re.MULTILINE)
|
||||||
|
|
||||||
|
def get_swig_deps(file_path, level):
|
||||||
|
deps = [file_path]
|
||||||
|
if level == 0: return deps
|
||||||
|
for inc_file in get_swig_incs(file_path):
|
||||||
|
for inc_dir in include_dirs:
|
||||||
|
inc_path = os.path.join(inc_dir, inc_file)
|
||||||
|
if not os.path.exists(inc_path): continue
|
||||||
|
deps.extend(get_swig_deps(inc_path, level-1))
|
||||||
|
return deps
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
ifiles = sys.argv[1].split(';')
|
||||||
|
deps = sum([get_swig_deps(ifile, 3) for ifile in ifiles], [])
|
||||||
|
#sys.stderr.write(';'.join(set(deps)) + '\\n\\n')
|
||||||
|
print(';'.join(set(deps)))
|
||||||
|
")
|
133
cmake/Modules/GrTest.cmake
Normal file
133
cmake/Modules/GrTest.cmake
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
# Copyright 2010-2011 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is part of GNU Radio
|
||||||
|
#
|
||||||
|
# GNU Radio is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 3, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# GNU Radio is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with GNU Radio; see the file COPYING. If not, write to
|
||||||
|
# the Free Software Foundation, Inc., 51 Franklin Street,
|
||||||
|
# Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
|
if(DEFINED __INCLUDED_GR_TEST_CMAKE)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
set(__INCLUDED_GR_TEST_CMAKE TRUE)
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Add a unit test and setup the environment for a unit test.
|
||||||
|
# Takes the same arguments as the ADD_TEST function.
|
||||||
|
#
|
||||||
|
# Before calling set the following variables:
|
||||||
|
# GR_TEST_TARGET_DEPS - built targets for the library path
|
||||||
|
# GR_TEST_LIBRARY_DIRS - directories for the library path
|
||||||
|
# GR_TEST_PYTHON_DIRS - directories for the python path
|
||||||
|
########################################################################
|
||||||
|
function(GR_ADD_TEST test_name)
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
#Ensure that the build exe also appears in the PATH.
|
||||||
|
list(APPEND GR_TEST_TARGET_DEPS ${ARGN})
|
||||||
|
|
||||||
|
#In the land of windows, all libraries must be in the PATH.
|
||||||
|
#Since the dependent libraries are not yet installed,
|
||||||
|
#we must manually set them in the PATH to run tests.
|
||||||
|
#The following appends the path of a target dependency.
|
||||||
|
foreach(target ${GR_TEST_TARGET_DEPS})
|
||||||
|
get_target_property(location ${target} LOCATION)
|
||||||
|
if(location)
|
||||||
|
get_filename_component(path ${location} PATH)
|
||||||
|
string(REGEX REPLACE "\\$\\(.*\\)" ${CMAKE_BUILD_TYPE} path ${path})
|
||||||
|
list(APPEND GR_TEST_LIBRARY_DIRS ${path})
|
||||||
|
endif(location)
|
||||||
|
endforeach(target)
|
||||||
|
|
||||||
|
#SWIG generates the python library files into a subdirectory.
|
||||||
|
#Therefore, we must append this subdirectory into PYTHONPATH.
|
||||||
|
#Only do this for the python directories matching the following:
|
||||||
|
foreach(pydir ${GR_TEST_PYTHON_DIRS})
|
||||||
|
get_filename_component(name ${pydir} NAME)
|
||||||
|
if(name MATCHES "^(swig|lib|src)$")
|
||||||
|
list(APPEND GR_TEST_PYTHON_DIRS ${pydir}/${CMAKE_BUILD_TYPE})
|
||||||
|
endif()
|
||||||
|
endforeach(pydir)
|
||||||
|
endif(WIN32)
|
||||||
|
|
||||||
|
file(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR} srcdir)
|
||||||
|
file(TO_NATIVE_PATH "${GR_TEST_LIBRARY_DIRS}" libpath) #ok to use on dir list?
|
||||||
|
file(TO_NATIVE_PATH "${GR_TEST_PYTHON_DIRS}" pypath) #ok to use on dir list?
|
||||||
|
|
||||||
|
set(environs "GR_DONT_LOAD_PREFS=1" "srcdir=${srcdir}")
|
||||||
|
|
||||||
|
#http://www.cmake.org/pipermail/cmake/2009-May/029464.html
|
||||||
|
#Replaced this add test + set environs code with the shell script generation.
|
||||||
|
#Its nicer to be able to manually run the shell script to diagnose problems.
|
||||||
|
#ADD_TEST(${ARGV})
|
||||||
|
#SET_TESTS_PROPERTIES(${test_name} PROPERTIES ENVIRONMENT "${environs}")
|
||||||
|
|
||||||
|
if(UNIX)
|
||||||
|
set(binpath "${CMAKE_CURRENT_BINARY_DIR}:$PATH")
|
||||||
|
#set both LD and DYLD paths to cover multiple UNIX OS library paths
|
||||||
|
list(APPEND libpath "$LD_LIBRARY_PATH" "$DYLD_LIBRARY_PATH")
|
||||||
|
list(APPEND pypath "$PYTHONPATH")
|
||||||
|
|
||||||
|
#replace list separator with the path separator
|
||||||
|
string(REPLACE ";" ":" libpath "${libpath}")
|
||||||
|
string(REPLACE ";" ":" pypath "${pypath}")
|
||||||
|
list(APPEND environs "PATH=${binpath}" "LD_LIBRARY_PATH=${libpath}" "DYLD_LIBRARY_PATH=${libpath}" "PYTHONPATH=${pypath}")
|
||||||
|
|
||||||
|
#generate a bat file that sets the environment and runs the test
|
||||||
|
find_program(SHELL sh)
|
||||||
|
set(sh_file ${CMAKE_CURRENT_BINARY_DIR}/${test_name}_test.sh)
|
||||||
|
file(WRITE ${sh_file} "#!${SHELL}\n")
|
||||||
|
#each line sets an environment variable
|
||||||
|
foreach(environ ${environs})
|
||||||
|
file(APPEND ${sh_file} "export ${environ}\n")
|
||||||
|
endforeach(environ)
|
||||||
|
#load the command to run with its arguments
|
||||||
|
foreach(arg ${ARGN})
|
||||||
|
file(APPEND ${sh_file} "${arg} ")
|
||||||
|
endforeach(arg)
|
||||||
|
file(APPEND ${sh_file} "\n")
|
||||||
|
|
||||||
|
#make the shell file executable
|
||||||
|
execute_process(COMMAND chmod +x ${sh_file})
|
||||||
|
|
||||||
|
add_test(${test_name} ${SHELL} ${sh_file})
|
||||||
|
|
||||||
|
endif(UNIX)
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
list(APPEND libpath ${DLL_PATHS} "%PATH%")
|
||||||
|
list(APPEND pypath "%PYTHONPATH%")
|
||||||
|
|
||||||
|
#replace list separator with the path separator (escaped)
|
||||||
|
string(REPLACE ";" "\\;" libpath "${libpath}")
|
||||||
|
string(REPLACE ";" "\\;" pypath "${pypath}")
|
||||||
|
list(APPEND environs "PATH=${libpath}" "PYTHONPATH=${pypath}")
|
||||||
|
|
||||||
|
#generate a bat file that sets the environment and runs the test
|
||||||
|
set(bat_file ${CMAKE_CURRENT_BINARY_DIR}/${test_name}_test.bat)
|
||||||
|
file(WRITE ${bat_file} "@echo off\n")
|
||||||
|
#each line sets an environment variable
|
||||||
|
foreach(environ ${environs})
|
||||||
|
file(APPEND ${bat_file} "SET ${environ}\n")
|
||||||
|
endforeach(environ)
|
||||||
|
#load the command to run with its arguments
|
||||||
|
foreach(arg ${ARGN})
|
||||||
|
file(APPEND ${bat_file} "${arg} ")
|
||||||
|
endforeach(arg)
|
||||||
|
file(APPEND ${bat_file} "\n")
|
||||||
|
|
||||||
|
add_test(${test_name} ${bat_file})
|
||||||
|
endif(WIN32)
|
||||||
|
|
||||||
|
endfunction(GR_ADD_TEST)
|
@ -1,81 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright 2001 Free Software Foundation, Inc.
|
|
||||||
#
|
|
||||||
# This file is part of GNU Radio
|
|
||||||
#
|
|
||||||
# GNU Radio is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 3, or (at your option)
|
|
||||||
# any later version.
|
|
||||||
#
|
|
||||||
# GNU Radio is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with GNU Radio; see the file COPYING. If not, write to
|
|
||||||
# the Free Software Foundation, Inc., 51 Franklin Street,
|
|
||||||
# Boston, MA 02110-1301, USA.
|
|
||||||
#
|
|
||||||
|
|
||||||
include $(top_srcdir)/Makefile.common
|
|
||||||
|
|
||||||
# Install m4 macros in this directory
|
|
||||||
m4datadir = $(datadir)/aclocal
|
|
||||||
|
|
||||||
# List your m4 macros here
|
|
||||||
m4macros = \
|
|
||||||
acx_pthread.m4 \
|
|
||||||
ax_boost_base.m4 \
|
|
||||||
ax_boost_date_time.m4 \
|
|
||||||
ax_boost_filesystem.m4 \
|
|
||||||
ax_boost_iostreams.m4 \
|
|
||||||
ax_boost_program_options.m4 \
|
|
||||||
ax_boost_python.m4 \
|
|
||||||
ax_boost_regex.m4 \
|
|
||||||
ax_boost_serialization.m4 \
|
|
||||||
ax_boost_signals.m4 \
|
|
||||||
ax_boost_system.m4 \
|
|
||||||
ax_boost_test_exec_monitor.m4 \
|
|
||||||
ax_boost_thread.m4 \
|
|
||||||
ax_boost_unit_test_framework.m4 \
|
|
||||||
ax_boost_wserialization.m4 \
|
|
||||||
bnv_have_qt.m4 \
|
|
||||||
cppunit.m4 \
|
|
||||||
gr_check_createfilemapping.m4 \
|
|
||||||
gr_check_mc4020.m4 \
|
|
||||||
gr_check_shm_open.m4 \
|
|
||||||
gr_check_usrp.m4 \
|
|
||||||
gr_doxygen.m4 \
|
|
||||||
gr_fortran.m4 \
|
|
||||||
gr_gprof.m4 \
|
|
||||||
gr_lib64.m4 \
|
|
||||||
gr_libgnuradio_core_extra_ldflags.m4 \
|
|
||||||
gr_no_undefined.m4 \
|
|
||||||
gr_omnithread.m4 \
|
|
||||||
gr_pwin32.m4 \
|
|
||||||
gr_python.m4 \
|
|
||||||
gr_require_mc4020.m4 \
|
|
||||||
gr_scripting.m4 \
|
|
||||||
gr_set_md_cpu.m4 \
|
|
||||||
gr_standalone.m4 \
|
|
||||||
gr_subversion.m4 \
|
|
||||||
gr_swig.m4 \
|
|
||||||
gr_sysv_shm.m4 \
|
|
||||||
lf_cc.m4 \
|
|
||||||
lf_cxx.m4 \
|
|
||||||
lf_warnings.m4 \
|
|
||||||
lf_x11.m4 \
|
|
||||||
mkstemp.m4 \
|
|
||||||
onceonly.m4 \
|
|
||||||
pkg.m4 \
|
|
||||||
usrp_fusb_tech.m4 \
|
|
||||||
usrp_libusb.m4 \
|
|
||||||
usrp_sdcc.m4
|
|
||||||
|
|
||||||
|
|
||||||
# Don't install m4 macros anymore
|
|
||||||
# m4data_DATA = $(m4macros)
|
|
||||||
|
|
||||||
EXTRA_DIST = $(m4macros)
|
|
@ -1,275 +0,0 @@
|
|||||||
# ===========================================================================
|
|
||||||
# http://autoconf-archive.cryp.to/acx_pthread.html
|
|
||||||
# ===========================================================================
|
|
||||||
#
|
|
||||||
# SYNOPSIS
|
|
||||||
#
|
|
||||||
# ACX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
|
|
||||||
#
|
|
||||||
# DESCRIPTION
|
|
||||||
#
|
|
||||||
# This macro figures out how to build C programs using POSIX threads. It
|
|
||||||
# sets the PTHREAD_LIBS output variable to the threads library and linker
|
|
||||||
# flags, and the PTHREAD_CFLAGS output variable to any special C compiler
|
|
||||||
# flags that are needed. (The user can also force certain compiler
|
|
||||||
# flags/libs to be tested by setting these environment variables.)
|
|
||||||
#
|
|
||||||
# Also sets PTHREAD_CC to any special C compiler that is needed for
|
|
||||||
# multi-threaded programs (defaults to the value of CC otherwise). (This
|
|
||||||
# is necessary on AIX to use the special cc_r compiler alias.)
|
|
||||||
#
|
|
||||||
# NOTE: You are assumed to not only compile your program with these flags,
|
|
||||||
# but also link it with them as well. e.g. you should link with
|
|
||||||
# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
|
|
||||||
#
|
|
||||||
# If you are only building threads programs, you may wish to use these
|
|
||||||
# variables in your default LIBS, CFLAGS, and CC:
|
|
||||||
#
|
|
||||||
# LIBS="$PTHREAD_LIBS $LIBS"
|
|
||||||
# CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
|
||||||
# CC="$PTHREAD_CC"
|
|
||||||
#
|
|
||||||
# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant
|
|
||||||
# has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name
|
|
||||||
# (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
|
|
||||||
#
|
|
||||||
# ACTION-IF-FOUND is a list of shell commands to run if a threads library
|
|
||||||
# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it
|
|
||||||
# is not found. If ACTION-IF-FOUND is not specified, the default action
|
|
||||||
# will define HAVE_PTHREAD.
|
|
||||||
#
|
|
||||||
# Please let the authors know if this macro fails on any platform, or if
|
|
||||||
# you have any other suggestions or comments. This macro was based on work
|
|
||||||
# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help
|
|
||||||
# from M. Frigo), as well as ac_pthread and hb_pthread macros posted by
|
|
||||||
# Alejandro Forero Cuervo to the autoconf macro repository. We are also
|
|
||||||
# grateful for the helpful feedback of numerous users.
|
|
||||||
#
|
|
||||||
# LAST MODIFICATION
|
|
||||||
#
|
|
||||||
# 2008-04-12
|
|
||||||
#
|
|
||||||
# COPYLEFT
|
|
||||||
#
|
|
||||||
# Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
|
|
||||||
#
|
|
||||||
# This program is free software: you can redistribute it and/or modify it
|
|
||||||
# under the terms of the GNU General Public License as published by the
|
|
||||||
# Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
# option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful, but
|
|
||||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
|
||||||
# Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License along
|
|
||||||
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
# As a special exception, the respective Autoconf Macro's copyright owner
|
|
||||||
# gives unlimited permission to copy, distribute and modify the configure
|
|
||||||
# scripts that are the output of Autoconf when processing the Macro. You
|
|
||||||
# need not follow the terms of the GNU General Public License when using
|
|
||||||
# or distributing such scripts, even though portions of the text of the
|
|
||||||
# Macro appear in them. The GNU General Public License (GPL) does govern
|
|
||||||
# all other use of the material that constitutes the Autoconf Macro.
|
|
||||||
#
|
|
||||||
# This special exception to the GPL applies to versions of the Autoconf
|
|
||||||
# Macro released by the Autoconf Macro Archive. When you make and
|
|
||||||
# distribute a modified version of the Autoconf Macro, you may extend this
|
|
||||||
# special exception to the GPL to apply to your modified version as well.
|
|
||||||
|
|
||||||
AC_DEFUN([ACX_PTHREAD], [
|
|
||||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
|
||||||
AC_LANG_SAVE
|
|
||||||
AC_LANG_C
|
|
||||||
acx_pthread_ok=no
|
|
||||||
|
|
||||||
# We used to check for pthread.h first, but this fails if pthread.h
|
|
||||||
# requires special compiler flags (e.g. on True64 or Sequent).
|
|
||||||
# It gets checked for in the link test anyway.
|
|
||||||
|
|
||||||
# First of all, check if the user has set any of the PTHREAD_LIBS,
|
|
||||||
# etcetera environment variables, and if threads linking works using
|
|
||||||
# them:
|
|
||||||
if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
|
|
||||||
save_CFLAGS="$CFLAGS"
|
|
||||||
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
|
||||||
save_LIBS="$LIBS"
|
|
||||||
LIBS="$PTHREAD_LIBS $LIBS"
|
|
||||||
AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS])
|
|
||||||
AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes)
|
|
||||||
AC_MSG_RESULT($acx_pthread_ok)
|
|
||||||
if test x"$acx_pthread_ok" = xno; then
|
|
||||||
PTHREAD_LIBS=""
|
|
||||||
PTHREAD_CFLAGS=""
|
|
||||||
fi
|
|
||||||
LIBS="$save_LIBS"
|
|
||||||
CFLAGS="$save_CFLAGS"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# We must check for the threads library under a number of different
|
|
||||||
# names; the ordering is very important because some systems
|
|
||||||
# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
|
|
||||||
# libraries is broken (non-POSIX).
|
|
||||||
|
|
||||||
# Create a list of thread flags to try. Items starting with a "-" are
|
|
||||||
# C compiler flags, and other items are library names, except for "none"
|
|
||||||
# which indicates that we try without any flags at all, and "pthread-config"
|
|
||||||
# which is a program returning the flags for the Pth emulation library.
|
|
||||||
|
|
||||||
acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
|
|
||||||
|
|
||||||
# The ordering *is* (sometimes) important. Some notes on the
|
|
||||||
# individual items follow:
|
|
||||||
|
|
||||||
# pthreads: AIX (must check this before -lpthread)
|
|
||||||
# none: in case threads are in libc; should be tried before -Kthread and
|
|
||||||
# other compiler flags to prevent continual compiler warnings
|
|
||||||
# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
|
|
||||||
# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
|
|
||||||
# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
|
|
||||||
# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
|
|
||||||
# -pthreads: Solaris/gcc
|
|
||||||
# -mthreads: Mingw32/gcc, Lynx/gcc
|
|
||||||
# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
|
|
||||||
# doesn't hurt to check since this sometimes defines pthreads too;
|
|
||||||
# also defines -D_REENTRANT)
|
|
||||||
# ... -mt is also the pthreads flag for HP/aCC
|
|
||||||
# pthread: Linux, etcetera
|
|
||||||
# --thread-safe: KAI C++
|
|
||||||
# pthread-config: use pthread-config program (for GNU Pth library)
|
|
||||||
|
|
||||||
case "${host_cpu}-${host_os}" in
|
|
||||||
*solaris*)
|
|
||||||
|
|
||||||
# On Solaris (at least, for some versions), libc contains stubbed
|
|
||||||
# (non-functional) versions of the pthreads routines, so link-based
|
|
||||||
# tests will erroneously succeed. (We need to link with -pthreads/-mt/
|
|
||||||
# -lpthread.) (The stubs are missing pthread_cleanup_push, or rather
|
|
||||||
# a function called by this macro, so we could check for that, but
|
|
||||||
# who knows whether they'll stub that too in a future libc.) So,
|
|
||||||
# we'll just look for -pthreads and -lpthread first:
|
|
||||||
|
|
||||||
acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if test x"$acx_pthread_ok" = xno; then
|
|
||||||
for flag in $acx_pthread_flags; do
|
|
||||||
|
|
||||||
case $flag in
|
|
||||||
none)
|
|
||||||
AC_MSG_CHECKING([whether pthreads work without any flags])
|
|
||||||
;;
|
|
||||||
|
|
||||||
-*)
|
|
||||||
AC_MSG_CHECKING([whether pthreads work with $flag])
|
|
||||||
PTHREAD_CFLAGS="$flag"
|
|
||||||
;;
|
|
||||||
|
|
||||||
pthread-config)
|
|
||||||
AC_CHECK_PROG(acx_pthread_config, pthread-config, yes, no)
|
|
||||||
if test x"$acx_pthread_config" = xno; then continue; fi
|
|
||||||
PTHREAD_CFLAGS="`pthread-config --cflags`"
|
|
||||||
PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
AC_MSG_CHECKING([for the pthreads library -l$flag])
|
|
||||||
PTHREAD_LIBS="-l$flag"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
save_LIBS="$LIBS"
|
|
||||||
save_CFLAGS="$CFLAGS"
|
|
||||||
LIBS="$PTHREAD_LIBS $LIBS"
|
|
||||||
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
|
||||||
|
|
||||||
# Check for various functions. We must include pthread.h,
|
|
||||||
# since some functions may be macros. (On the Sequent, we
|
|
||||||
# need a special flag -Kthread to make this header compile.)
|
|
||||||
# We check for pthread_join because it is in -lpthread on IRIX
|
|
||||||
# while pthread_create is in libc. We check for pthread_attr_init
|
|
||||||
# due to DEC craziness with -lpthreads. We check for
|
|
||||||
# pthread_cleanup_push because it is one of the few pthread
|
|
||||||
# functions on Solaris that doesn't have a non-functional libc stub.
|
|
||||||
# We try pthread_create on general principles.
|
|
||||||
AC_TRY_LINK([#include <pthread.h>],
|
|
||||||
[pthread_t th; pthread_join(th, 0);
|
|
||||||
pthread_attr_init(0); pthread_cleanup_push(0, 0);
|
|
||||||
pthread_create(0,0,0,0); pthread_cleanup_pop(0); ],
|
|
||||||
[acx_pthread_ok=yes])
|
|
||||||
|
|
||||||
LIBS="$save_LIBS"
|
|
||||||
CFLAGS="$save_CFLAGS"
|
|
||||||
|
|
||||||
AC_MSG_RESULT($acx_pthread_ok)
|
|
||||||
if test "x$acx_pthread_ok" = xyes; then
|
|
||||||
break;
|
|
||||||
fi
|
|
||||||
|
|
||||||
PTHREAD_LIBS=""
|
|
||||||
PTHREAD_CFLAGS=""
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Various other checks:
|
|
||||||
if test "x$acx_pthread_ok" = xyes; then
|
|
||||||
save_LIBS="$LIBS"
|
|
||||||
LIBS="$PTHREAD_LIBS $LIBS"
|
|
||||||
save_CFLAGS="$CFLAGS"
|
|
||||||
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
|
||||||
|
|
||||||
# Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
|
|
||||||
AC_MSG_CHECKING([for joinable pthread attribute])
|
|
||||||
attr_name=unknown
|
|
||||||
for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
|
|
||||||
AC_TRY_LINK([#include <pthread.h>], [int attr=$attr; return attr;],
|
|
||||||
[attr_name=$attr; break])
|
|
||||||
done
|
|
||||||
AC_MSG_RESULT($attr_name)
|
|
||||||
if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
|
|
||||||
AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name,
|
|
||||||
[Define to necessary symbol if this constant
|
|
||||||
uses a non-standard name on your system.])
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([if more special flags are required for pthreads])
|
|
||||||
flag=no
|
|
||||||
case "${host_cpu}-${host_os}" in
|
|
||||||
*-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";;
|
|
||||||
*solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";;
|
|
||||||
esac
|
|
||||||
AC_MSG_RESULT(${flag})
|
|
||||||
if test "x$flag" != xno; then
|
|
||||||
PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
|
|
||||||
fi
|
|
||||||
|
|
||||||
LIBS="$save_LIBS"
|
|
||||||
CFLAGS="$save_CFLAGS"
|
|
||||||
|
|
||||||
# More AIX lossage: must compile with xlc_r or cc_r
|
|
||||||
if test x"$GCC" != xyes; then
|
|
||||||
AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC})
|
|
||||||
else
|
|
||||||
PTHREAD_CC=$CC
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
PTHREAD_CC="$CC"
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_SUBST(PTHREAD_LIBS)
|
|
||||||
AC_SUBST(PTHREAD_CFLAGS)
|
|
||||||
AC_SUBST(PTHREAD_CC)
|
|
||||||
|
|
||||||
# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
|
|
||||||
if test x"$acx_pthread_ok" = xyes; then
|
|
||||||
ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1])
|
|
||||||
:
|
|
||||||
else
|
|
||||||
acx_pthread_ok=no
|
|
||||||
$2
|
|
||||||
fi
|
|
||||||
AC_LANG_RESTORE
|
|
||||||
])dnl ACX_PTHREAD
|
|
@ -1,334 +0,0 @@
|
|||||||
# ===========================================================================
|
|
||||||
# http://autoconf-archive.cryp.to/ax_boost_base.html
|
|
||||||
# ===========================================================================
|
|
||||||
#
|
|
||||||
# SYNOPSIS
|
|
||||||
#
|
|
||||||
# AX_BOOST_BASE([MINIMUM-VERSION])
|
|
||||||
#
|
|
||||||
# DESCRIPTION
|
|
||||||
#
|
|
||||||
# Test for the Boost C++ libraries of a particular version (or newer)
|
|
||||||
#
|
|
||||||
# If no path to the installed boost library is given the macro searchs
|
|
||||||
# under /usr, /usr/local, /opt and /opt/local and evaluates the
|
|
||||||
# $BOOST_ROOT environment variable. Further documentation is available at
|
|
||||||
# <http://randspringer.de/boost/index.html>.
|
|
||||||
#
|
|
||||||
# This macro calls:
|
|
||||||
#
|
|
||||||
# AC_SUBST(BOOST_CPPFLAGS) / AC_SUBST(BOOST_LDFLAGS)
|
|
||||||
#
|
|
||||||
# And sets:
|
|
||||||
#
|
|
||||||
# HAVE_BOOST
|
|
||||||
#
|
|
||||||
# LAST MODIFICATION
|
|
||||||
#
|
|
||||||
# 2008-04-12
|
|
||||||
#
|
|
||||||
# COPYLEFT
|
|
||||||
#
|
|
||||||
# Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
|
|
||||||
# Copyright (c) 2008 Free Software Foundation, Inc.
|
|
||||||
#
|
|
||||||
# Copying and distribution of this file, with or without modification, are
|
|
||||||
# permitted in any medium without royalty provided the copyright notice
|
|
||||||
# and this notice are preserved.
|
|
||||||
|
|
||||||
AC_DEFUN([AX_BOOST_BASE],
|
|
||||||
[
|
|
||||||
AC_REQUIRE([GR_LIB64])
|
|
||||||
AC_ARG_WITH([boost],
|
|
||||||
AS_HELP_STRING([--with-boost@<:@=DIR@:>@],
|
|
||||||
[use boost (default is yes) - it is possible to specify the root directory for boost (optional)]),
|
|
||||||
[
|
|
||||||
if test "$withval" = "no"; then
|
|
||||||
want_boost="no"
|
|
||||||
elif test "$withval" = "yes"; then
|
|
||||||
want_boost="yes"
|
|
||||||
ac_boost_path=""
|
|
||||||
else
|
|
||||||
want_boost="yes"
|
|
||||||
ac_boost_path="$withval"
|
|
||||||
fi
|
|
||||||
],
|
|
||||||
[want_boost="yes"])
|
|
||||||
|
|
||||||
|
|
||||||
AC_ARG_WITH([boost-libdir],
|
|
||||||
AS_HELP_STRING([--with-boost-libdir=LIB_DIR],
|
|
||||||
[Force given directory for boost libraries. Note that this
|
|
||||||
will overwrite library path detection, so use this parameter
|
|
||||||
only if default library detection fails and you know exactly
|
|
||||||
where your boost libraries are located.]),
|
|
||||||
[
|
|
||||||
if test -d $withval
|
|
||||||
then
|
|
||||||
ac_boost_lib_path="$withval"
|
|
||||||
else
|
|
||||||
AC_MSG_ERROR(--with-boost-libdir expected directory name)
|
|
||||||
fi
|
|
||||||
],
|
|
||||||
[ac_boost_lib_path=""]
|
|
||||||
)
|
|
||||||
|
|
||||||
if test "x$want_boost" = "xyes"; then
|
|
||||||
boost_lib_version_req=ifelse([$1], ,1.20.0,$1)
|
|
||||||
boost_lib_version_req_shorten=`expr $boost_lib_version_req : '\([[0-9]]*\.[[0-9]]*\)'`
|
|
||||||
boost_lib_version_req_major=`expr $boost_lib_version_req : '\([[0-9]]*\)'`
|
|
||||||
boost_lib_version_req_minor=`expr $boost_lib_version_req : '[[0-9]]*\.\([[0-9]]*\)'`
|
|
||||||
boost_lib_version_req_sub_minor=`expr $boost_lib_version_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
|
|
||||||
if test "x$boost_lib_version_req_sub_minor" = "x" ; then
|
|
||||||
boost_lib_version_req_sub_minor="0"
|
|
||||||
fi
|
|
||||||
WANT_BOOST_VERSION=`expr $boost_lib_version_req_major \* 100000 \+ $boost_lib_version_req_minor \* 100 \+ $boost_lib_version_req_sub_minor`
|
|
||||||
AC_MSG_CHECKING(for boost >= $boost_lib_version_req)
|
|
||||||
succeeded=no
|
|
||||||
|
|
||||||
dnl first we check the system location for boost libraries
|
|
||||||
dnl this location ist chosen if boost libraries are installed with the --layout=system option
|
|
||||||
dnl or if you install boost with RPM
|
|
||||||
if test "$ac_boost_path" != ""; then
|
|
||||||
dnl Look first where we think they ought to be, accounting for a possible "64" suffix on lib.
|
|
||||||
dnl If that directory doesn't exist, fall back to the default behavior
|
|
||||||
if test -d "$ac_boost_path/lib${gr_libdir_suffix}"; then
|
|
||||||
BOOST_LDFLAGS="-L$ac_boost_path/lib${gr_libdir_suffix}"
|
|
||||||
else
|
|
||||||
BOOST_LDFLAGS="-L$ac_boost_path/lib"
|
|
||||||
fi
|
|
||||||
BOOST_CPPFLAGS="-I$ac_boost_path/include"
|
|
||||||
else
|
|
||||||
for ac_boost_path_tmp in /usr /usr/local /opt /opt/local ; do
|
|
||||||
if test -d "$ac_boost_path_tmp/include/boost" && test -r "$ac_boost_path_tmp/include/boost"; then
|
|
||||||
dnl Look first where we think they ought to be, accounting for a possible "64" suffix on lib.
|
|
||||||
dnl If that directory doesn't exist, fall back to the default behavior
|
|
||||||
if test -d "$ac_boost_path_tmp/lib${gr_libdir_suffix}"; then
|
|
||||||
BOOST_LDFLAGS="-L$ac_boost_path_tmp/lib${gr_libdir_suffix}"
|
|
||||||
else
|
|
||||||
BOOST_LDFLAGS="-L$ac_boost_path_tmp/lib"
|
|
||||||
fi
|
|
||||||
BOOST_CPPFLAGS="-I$ac_boost_path_tmp/include"
|
|
||||||
break;
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl overwrite ld flags if we have required special directory with
|
|
||||||
dnl --with-boost-libdir parameter
|
|
||||||
if test "$ac_boost_lib_path" != ""; then
|
|
||||||
BOOST_LDFLAGS="-L$ac_boost_lib_path"
|
|
||||||
fi
|
|
||||||
|
|
||||||
CPPFLAGS_SAVED="$CPPFLAGS"
|
|
||||||
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
|
|
||||||
export CPPFLAGS
|
|
||||||
|
|
||||||
LDFLAGS_SAVED="$LDFLAGS"
|
|
||||||
LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
|
|
||||||
export LDFLAGS
|
|
||||||
|
|
||||||
AC_LANG_PUSH(C++)
|
|
||||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
|
||||||
@%:@include <boost/version.hpp>
|
|
||||||
]], [[
|
|
||||||
#if BOOST_VERSION >= $WANT_BOOST_VERSION
|
|
||||||
// Everything is okay
|
|
||||||
#else
|
|
||||||
# error Boost version is too old
|
|
||||||
#endif
|
|
||||||
]])],[AC_MSG_RESULT(yes)
|
|
||||||
succeeded=yes
|
|
||||||
found_system=yes
|
|
||||||
],
|
|
||||||
[])
|
|
||||||
AC_LANG_POP([C++])
|
|
||||||
CPPFLAGS="$CPPFLAGS_SAVED"
|
|
||||||
LDFLAGS="$LDFLAGS_SAVED"
|
|
||||||
|
|
||||||
|
|
||||||
dnl if we found no boost with system layout we search for boost libraries
|
|
||||||
dnl built and installed without the --layout=system option
|
|
||||||
if test "$succeeded" != "yes"; then
|
|
||||||
_version=0
|
|
||||||
|
|
||||||
if test "$ac_boost_path" != ""; then
|
|
||||||
path_list="$ac_boost_path"
|
|
||||||
else
|
|
||||||
path_list="/usr /usr/local /opt /opt/local"
|
|
||||||
fi
|
|
||||||
for ac_boost_path in $path_list ; do
|
|
||||||
if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then
|
|
||||||
for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do
|
|
||||||
_version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's,/include/boost-,,; s,_,.,'`
|
|
||||||
V_CHECK=`expr $_version_tmp \> $_version`
|
|
||||||
if test "$V_CHECK" = "1" ; then
|
|
||||||
_version=$_version_tmp
|
|
||||||
best_path=$ac_boost_path
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
|
|
||||||
BOOST_CPPFLAGS="-I$best_path/include/boost-$VERSION_UNDERSCORE"
|
|
||||||
|
|
||||||
if test "$ac_boost_lib_path" = ""; then
|
|
||||||
dnl Look first where we think they ought to be, accounting for a possible "64" suffix on lib.
|
|
||||||
dnl If that directory doesn't exist, fall back to the default behavior
|
|
||||||
if test -d "$best_path/lib${gr_libdir_suffix}"; then
|
|
||||||
BOOST_LDFLAGS="-L$best_path/lib${gr_libdir_suffix}"
|
|
||||||
else
|
|
||||||
BOOST_LDFLAGS="-L$best_path/lib"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
|
|
||||||
export CPPFLAGS
|
|
||||||
LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
|
|
||||||
export LDFLAGS
|
|
||||||
|
|
||||||
AC_LANG_PUSH(C++)
|
|
||||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
|
||||||
@%:@include <boost/version.hpp>
|
|
||||||
]], [[
|
|
||||||
#if BOOST_VERSION >= $WANT_BOOST_VERSION
|
|
||||||
// Everything is okay
|
|
||||||
#else
|
|
||||||
# error Boost version is too old
|
|
||||||
#endif
|
|
||||||
]])],[AC_MSG_RESULT(yes)
|
|
||||||
succeeded=yes
|
|
||||||
found_system=yes
|
|
||||||
],
|
|
||||||
[])
|
|
||||||
AC_LANG_POP([C++])
|
|
||||||
CPPFLAGS="$CPPFLAGS_SAVED"
|
|
||||||
LDFLAGS="$LDFLAGS_SAVED"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$succeeded" != "yes" ; then
|
|
||||||
AC_MSG_RESULT([no])
|
|
||||||
if test "$_version" = "0" ; then
|
|
||||||
AC_MSG_ERROR([[we could not detect the boost libraries (version $boost_lib_version_req_shorten or higher).
|
|
||||||
If you are sure you have boost installed, then check your version number looking in <boost/version.hpp>.]])
|
|
||||||
else
|
|
||||||
AC_MSG_ERROR([your boost libraries seem to old (version $_version).])
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
AC_SUBST(BOOST_CPPFLAGS)
|
|
||||||
AC_SUBST(BOOST_LDFLAGS)
|
|
||||||
AC_DEFINE(HAVE_BOOST,1,[Define if the Boost headers are available])
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl Macros used by the boost items that need libraries.
|
|
||||||
dnl
|
|
||||||
|
|
||||||
dnl $1 is unit name. E.g., boost_thread
|
|
||||||
AC_DEFUN([_AX_BOOST_CHECK_LIB],[
|
|
||||||
_AX_BOOST_CHECK_LIB_($1,HAVE_[]m4_toupper($1),m4_toupper($1)_LIB)
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl $1 is unit name. E.g., boost_thread
|
|
||||||
dnl $2 is AC_DEFINE name. E.g., HAVE_BOOST_THREAD
|
|
||||||
dnl $3 is lib var name. E.g., BOOST_THREAD_LIB
|
|
||||||
AC_DEFUN([_AX_BOOST_CHECK_LIB_],[
|
|
||||||
AC_LANG_PUSH([C++])
|
|
||||||
AC_DEFINE($2,1,[Define if the $1 library is available])
|
|
||||||
BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'`
|
|
||||||
|
|
||||||
dnl See if we can find a usable library
|
|
||||||
link_ok="no"
|
|
||||||
if test "$ax_boost_user_lib" != ""; then
|
|
||||||
dnl use what the user supplied
|
|
||||||
for ax_lib in $ax_boost_user_lib $1-${ax_boost_user_lib}; do
|
|
||||||
AC_CHECK_LIB($ax_lib, exit,
|
|
||||||
[$3="-l$ax_lib"; AC_SUBST($3) link_ok="yes"; break])
|
|
||||||
done
|
|
||||||
else
|
|
||||||
dnl Look in BOOSTLIBDIR for possible candidates
|
|
||||||
head=$BOOSTLIBDIR/lib[]$1
|
|
||||||
for f in ${head}*.so* ${head}*.a* ${head}*.dll* ${head}*.dylib; do
|
|
||||||
dnl echo 1: $f
|
|
||||||
case $f in
|
|
||||||
*\**) continue;;
|
|
||||||
esac
|
|
||||||
f=`echo $f | sed -e 's,.*/,,' -e 's,^lib,,'`
|
|
||||||
dnl echo 2: $f
|
|
||||||
f=`echo $f | sed -e 's,\($1.*\)\.so.*$,\1,' -e 's,\($1.*\)\.a.*$,\1,' -e 's,\($1.*\)\.dll.*$,\1,' -e 's,\($1.*\)\.dylib.*$,\1,'`
|
|
||||||
dnl echo 3: $f
|
|
||||||
|
|
||||||
ax_lib=$f
|
|
||||||
AC_CHECK_LIB($ax_lib, exit,
|
|
||||||
[$3="-l$ax_lib"; AC_SUBST($3) link_ok="yes"; break])
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$link_ok" != "yes"; then
|
|
||||||
AC_MSG_ERROR([Could not link against lib[$1]!])
|
|
||||||
fi
|
|
||||||
AC_LANG_POP([C++])
|
|
||||||
])
|
|
||||||
|
|
||||||
|
|
||||||
dnl $1 is unit name. E.g., boost_thread
|
|
||||||
AC_DEFUN([_AX_BOOST_WITH],[
|
|
||||||
_AX_BOOST_WITH_($1,m4_bpatsubst($1,_,-))
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl $1 is unit name. E.g., boost_thread
|
|
||||||
dnl $2 is hyphenated unit name. E.g., boost-thread
|
|
||||||
AC_DEFUN([_AX_BOOST_WITH_],[
|
|
||||||
AC_ARG_WITH([$2],
|
|
||||||
AC_HELP_STRING([--with-$2@<:@=special-lib@:>@],
|
|
||||||
[Use the m4_substr($1,6) library from boost. It is possible to specify a certain
|
|
||||||
library to the linker. E.g., --with-$2=$1-gcc41-mt-1_35]),
|
|
||||||
[
|
|
||||||
if test "$withval" = "no"; then
|
|
||||||
want_boost="no"
|
|
||||||
elif test "$withval" = "yes"; then
|
|
||||||
want_boost="yes"
|
|
||||||
ax_boost_user_lib=""
|
|
||||||
else
|
|
||||||
want_boost="yes"
|
|
||||||
ax_boost_user_lib="$withval"
|
|
||||||
fi
|
|
||||||
],
|
|
||||||
[want_boost="yes"])
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl $1 is unit name. E.g., boost_thread
|
|
||||||
dnl $2 is AC_LANG_PROGRAM argument 1
|
|
||||||
dnl $3 is AC_LANG_PROGRAM argument 2
|
|
||||||
dnl $4 is cv variable name. E.g., ax_cv_boost_thread
|
|
||||||
AC_DEFUN([_AX_BOOST_CHECK_],[
|
|
||||||
_AX_BOOST_WITH($1)
|
|
||||||
if test "$want_boost" = "yes"; then
|
|
||||||
AC_REQUIRE([AC_PROG_CC])
|
|
||||||
AC_REQUIRE([AC_PROG_CXX])
|
|
||||||
CPPFLAGS_SAVED="$CPPFLAGS"
|
|
||||||
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
|
|
||||||
LDFLAGS_SAVED="$LDFLAGS"
|
|
||||||
LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
|
|
||||||
AC_CACHE_CHECK([whether the boost::m4_substr([$1],6) includes are available], [$4],
|
|
||||||
[AC_LANG_PUSH([C++])
|
|
||||||
AC_COMPILE_IFELSE(AC_LANG_PROGRAM([$2],[$3]),[$4]=yes,[$4]=no)
|
|
||||||
AC_LANG_POP([C++])
|
|
||||||
])
|
|
||||||
if test "$[$4]" = "yes"; then
|
|
||||||
_AX_BOOST_CHECK_LIB([$1])
|
|
||||||
fi
|
|
||||||
CPPFLAGS="$CPPFLAGS_SAVED"
|
|
||||||
LDFLAGS="$LDFLAGS_SAVED"
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl $1 is unit name. E.g., boost_thread
|
|
||||||
dnl $2 is AC_LANG_PROGRAM argument 1
|
|
||||||
dnl $3 is AC_LANG_PROGRAM argument 2
|
|
||||||
AC_DEFUN([_AX_BOOST_CHECK],[
|
|
||||||
_AX_BOOST_CHECK_($1,$2,$3,ax_cv_$1)
|
|
||||||
])
|
|
@ -1,34 +0,0 @@
|
|||||||
#
|
|
||||||
# SYNOPSIS
|
|
||||||
#
|
|
||||||
# AX_BOOST_DATE_TIME
|
|
||||||
#
|
|
||||||
# DESCRIPTION
|
|
||||||
#
|
|
||||||
# Test for date_time library from the Boost C++ libraries.
|
|
||||||
#
|
|
||||||
# This macro calls:
|
|
||||||
#
|
|
||||||
# AC_SUBST(BOOST_DATE_TIME_LIB)
|
|
||||||
#
|
|
||||||
# And sets:
|
|
||||||
#
|
|
||||||
# HAVE_BOOST_DATE_TIME
|
|
||||||
#
|
|
||||||
# COPYLEFT
|
|
||||||
#
|
|
||||||
# Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
|
|
||||||
# Copyright (c) 2008 Michael Tindal
|
|
||||||
# Copyright (c) 2008 Free Software Foundation, Inc.
|
|
||||||
#
|
|
||||||
# Copying and distribution of this file, with or without modification, are
|
|
||||||
# permitted in any medium without royalty provided the copyright notice
|
|
||||||
# and this notice are preserved.
|
|
||||||
|
|
||||||
AC_DEFUN([AX_BOOST_DATE_TIME],
|
|
||||||
[
|
|
||||||
AC_REQUIRE([AX_BOOST_BASE])
|
|
||||||
_AX_BOOST_CHECK([boost_date_time],
|
|
||||||
[@%:@include <boost/date_time/gregorian/gregorian_types.hpp>],
|
|
||||||
[using namespace boost::gregorian; date d(2002,Jan,10); return 0;])
|
|
||||||
])
|
|
@ -1,45 +0,0 @@
|
|||||||
#
|
|
||||||
# SYNOPSIS
|
|
||||||
#
|
|
||||||
# AX_BOOST_FILESYSTEM
|
|
||||||
#
|
|
||||||
# DESCRIPTION
|
|
||||||
#
|
|
||||||
# Test for Filesystem library from the Boost C++ libraries. The macro
|
|
||||||
# requires a preceding call to AX_BOOST_BASE.
|
|
||||||
#
|
|
||||||
# This macro calls:
|
|
||||||
#
|
|
||||||
# AC_SUBST(BOOST_FILESYSTEM_LIB)
|
|
||||||
#
|
|
||||||
# And sets:
|
|
||||||
#
|
|
||||||
# HAVE_BOOST_FILESYSTEM
|
|
||||||
#
|
|
||||||
# COPYLEFT
|
|
||||||
#
|
|
||||||
# Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
|
|
||||||
# Copyright (c) 2008 Michael Tindal
|
|
||||||
# Copyright (c) 2008 Free Software Foundation, Inc.
|
|
||||||
#
|
|
||||||
# Copying and distribution of this file, with or without modification, are
|
|
||||||
# permitted in any medium without royalty provided the copyright notice
|
|
||||||
# and this notice are preserved.
|
|
||||||
|
|
||||||
AC_DEFUN([AX_BOOST_FILESYSTEM],
|
|
||||||
[
|
|
||||||
AC_REQUIRE([AX_BOOST_BASE])
|
|
||||||
|
|
||||||
dnl depends on boost_system
|
|
||||||
AC_REQUIRE([AX_BOOST_SYSTEM])
|
|
||||||
axbf_LDFLAGS_SAVED=$LDFLAGS
|
|
||||||
LDFLAGS="$LDFLAGS $BOOST_SYSTEM_LIB"
|
|
||||||
|
|
||||||
_AX_BOOST_CHECK([boost_filesystem],
|
|
||||||
[@%:@include <boost/filesystem/path.hpp>],
|
|
||||||
[using namespace boost::filesystem;
|
|
||||||
path my_path( "foo/bar/data.txt" );
|
|
||||||
return 0;])
|
|
||||||
|
|
||||||
LDFLAGS=$axbf_LDFLAGS_SAVED
|
|
||||||
])
|
|
@ -1,39 +0,0 @@
|
|||||||
#
|
|
||||||
# SYNOPSIS
|
|
||||||
#
|
|
||||||
# AX_BOOST_IOSTREAMS
|
|
||||||
#
|
|
||||||
# DESCRIPTION
|
|
||||||
#
|
|
||||||
# Test for IOStreams library from the Boost C++ libraries. The macro
|
|
||||||
# requires a preceding call to AX_BOOST_BASE.
|
|
||||||
#
|
|
||||||
# This macro calls:
|
|
||||||
#
|
|
||||||
# AC_SUBST(BOOST_IOSTREAMS_LIB)
|
|
||||||
#
|
|
||||||
# And sets:
|
|
||||||
#
|
|
||||||
# HAVE_BOOST_IOSTREAMS
|
|
||||||
#
|
|
||||||
# COPYLEFT
|
|
||||||
#
|
|
||||||
# Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
|
|
||||||
# Copyright (c) 2008 Free Software Foundation, Inc.
|
|
||||||
#
|
|
||||||
# Copying and distribution of this file, with or without modification, are
|
|
||||||
# permitted in any medium without royalty provided the copyright notice
|
|
||||||
# and this notice are preserved.
|
|
||||||
|
|
||||||
AC_DEFUN([AX_BOOST_IOSTREAMS],
|
|
||||||
[
|
|
||||||
AC_REQUIRE([AX_BOOST_BASE])
|
|
||||||
_AX_BOOST_CHECK([boost_iostreams],
|
|
||||||
[@%:@include <boost/iostreams/filtering_stream.hpp>
|
|
||||||
@%:@include <boost/range/iterator_range.hpp>],
|
|
||||||
[std::string input = "Hello World!";
|
|
||||||
namespace io = boost::iostreams;
|
|
||||||
io::filtering_istream in(boost::make_iterator_range(input));
|
|
||||||
return 0;])
|
|
||||||
|
|
||||||
])
|
|
@ -1,35 +0,0 @@
|
|||||||
#
|
|
||||||
# SYNOPSIS
|
|
||||||
#
|
|
||||||
# AX_BOOST_PROGRAM_OPTIONS
|
|
||||||
#
|
|
||||||
# DESCRIPTION
|
|
||||||
#
|
|
||||||
# Test for program options library from the Boost C++ libraries. The macro
|
|
||||||
# requires a preceding call to AX_BOOST_BASE.
|
|
||||||
#
|
|
||||||
# This macro calls:
|
|
||||||
#
|
|
||||||
# AC_SUBST(BOOST_PROGRAM_OPTIONS_LIB)
|
|
||||||
#
|
|
||||||
# And sets:
|
|
||||||
#
|
|
||||||
# HAVE_BOOST_PROGRAM_OPTIONS
|
|
||||||
#
|
|
||||||
# COPYLEFT
|
|
||||||
#
|
|
||||||
# Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
|
|
||||||
# Copyright (c) 2008 Free Software Foundation, Inc.
|
|
||||||
#
|
|
||||||
# Copying and distribution of this file, with or without modification, are
|
|
||||||
# permitted in any medium without royalty provided the copyright notice
|
|
||||||
# and this notice are preserved.
|
|
||||||
|
|
||||||
AC_DEFUN([AX_BOOST_PROGRAM_OPTIONS],
|
|
||||||
[
|
|
||||||
AC_REQUIRE([AX_BOOST_BASE])
|
|
||||||
_AX_BOOST_CHECK([boost_program_options],
|
|
||||||
[@%:@include <boost/program_options.hpp>],
|
|
||||||
[boost::program_options::options_description generic("Generic options");
|
|
||||||
return 0;])
|
|
||||||
])
|
|
@ -1,92 +0,0 @@
|
|||||||
# ===========================================================================
|
|
||||||
# http://autoconf-archive.cryp.to/ax_boost_python.html
|
|
||||||
# ===========================================================================
|
|
||||||
#
|
|
||||||
# SYNOPSIS
|
|
||||||
#
|
|
||||||
# AX_BOOST_PYTHON
|
|
||||||
#
|
|
||||||
# DESCRIPTION
|
|
||||||
#
|
|
||||||
# This macro checks to see if the Boost.Python library is installed. It
|
|
||||||
# also attempts to guess the currect library name using several attempts.
|
|
||||||
# It tries to build the library name using a user supplied name or suffix
|
|
||||||
# and then just the raw library.
|
|
||||||
#
|
|
||||||
# If the library is found, HAVE_BOOST_PYTHON is defined and
|
|
||||||
# BOOST_PYTHON_LIB is set to the name of the library.
|
|
||||||
#
|
|
||||||
# This macro calls AC_SUBST(BOOST_PYTHON_LIB).
|
|
||||||
#
|
|
||||||
# In order to ensure that the Python headers are specified on the include
|
|
||||||
# path, this macro requires AX_PYTHON to be called.
|
|
||||||
#
|
|
||||||
# LAST MODIFICATION
|
|
||||||
#
|
|
||||||
# 2008-04-12
|
|
||||||
#
|
|
||||||
# COPYLEFT
|
|
||||||
#
|
|
||||||
# Copyright (c) 2008 Michael Tindal
|
|
||||||
#
|
|
||||||
# This program is free software; you can redistribute it and/or modify it
|
|
||||||
# under the terms of the GNU General Public License as published by the
|
|
||||||
# Free Software Foundation; either version 2 of the License, or (at your
|
|
||||||
# option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful, but
|
|
||||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
|
||||||
# Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License along
|
|
||||||
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
# As a special exception, the respective Autoconf Macro's copyright owner
|
|
||||||
# gives unlimited permission to copy, distribute and modify the configure
|
|
||||||
# scripts that are the output of Autoconf when processing the Macro. You
|
|
||||||
# need not follow the terms of the GNU General Public License when using
|
|
||||||
# or distributing such scripts, even though portions of the text of the
|
|
||||||
# Macro appear in them. The GNU General Public License (GPL) does govern
|
|
||||||
# all other use of the material that constitutes the Autoconf Macro.
|
|
||||||
#
|
|
||||||
# This special exception to the GPL applies to versions of the Autoconf
|
|
||||||
# Macro released by the Autoconf Macro Archive. When you make and
|
|
||||||
# distribute a modified version of the Autoconf Macro, you may extend this
|
|
||||||
# special exception to the GPL to apply to your modified version as well.
|
|
||||||
|
|
||||||
AC_DEFUN([AX_BOOST_PYTHON],
|
|
||||||
[AC_REQUIRE([AX_PYTHON])dnl
|
|
||||||
AC_CACHE_CHECK(whether the Boost::Python library is available,
|
|
||||||
ac_cv_boost_python,
|
|
||||||
[AC_LANG_SAVE
|
|
||||||
AC_LANG_CPLUSPLUS
|
|
||||||
CPPFLAGS_SAVE=$CPPFLAGS
|
|
||||||
if test x$PYTHON_INCLUDE_DIR != x; then
|
|
||||||
CPPFLAGS=-I$PYTHON_INCLUDE_DIR $CPPFLAGS
|
|
||||||
fi
|
|
||||||
AC_COMPILE_IFELSE(AC_LANG_PROGRAM([[
|
|
||||||
#include <boost/python/module.hpp>
|
|
||||||
using namespace boost::python;
|
|
||||||
BOOST_PYTHON_MODULE(test) { throw "Boost::Python test."; }]],
|
|
||||||
[[return 0;]]),
|
|
||||||
ac_cv_boost_python=yes, ac_cv_boost_python=no)
|
|
||||||
AC_LANG_RESTORE
|
|
||||||
CPPFLAGS=$CPPFLAGS_SAVE
|
|
||||||
])
|
|
||||||
if test "$ac_cv_boost_python" = "yes"; then
|
|
||||||
AC_LANG_PUSH([C++])
|
|
||||||
AC_DEFINE(HAVE_BOOST_PYTHON,,[define if the Boost::Python library is available])
|
|
||||||
ax_python_lib=boost_python
|
|
||||||
AC_ARG_WITH([boost-python],AS_HELP_STRING([--with-boost-python],[specify the boost python library or suffix to use]),
|
|
||||||
[if test "x$with_boost_python" != "xno"; then
|
|
||||||
ax_python_lib=$with_boost_python
|
|
||||||
ax_boost_python_lib=boost_python-$with_boost_python
|
|
||||||
fi])
|
|
||||||
for ax_lib in $ax_python_lib $ax_boost_python_lib boost_python; do
|
|
||||||
AC_CHECK_LIB($ax_lib, exit, [BOOST_PYTHON_LIB=$ax_lib break])
|
|
||||||
done
|
|
||||||
AC_SUBST(BOOST_PYTHON_LIB)
|
|
||||||
AC_LANG_POP([C++])
|
|
||||||
fi
|
|
||||||
])dnl
|
|
@ -1,35 +0,0 @@
|
|||||||
#
|
|
||||||
# SYNOPSIS
|
|
||||||
#
|
|
||||||
# AX_BOOST_REGEX
|
|
||||||
#
|
|
||||||
# DESCRIPTION
|
|
||||||
#
|
|
||||||
# Test for Regex library from the Boost C++ libraries. The macro requires
|
|
||||||
# a preceding call to AX_BOOST_BASE.
|
|
||||||
#
|
|
||||||
# This macro calls:
|
|
||||||
#
|
|
||||||
# AC_SUBST(BOOST_REGEX_LIB)
|
|
||||||
#
|
|
||||||
# And sets:
|
|
||||||
#
|
|
||||||
# HAVE_BOOST_REGEX
|
|
||||||
#
|
|
||||||
# COPYLEFT
|
|
||||||
#
|
|
||||||
# Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
|
|
||||||
# Copyright (c) 2008 Michael Tindal
|
|
||||||
# Copyright (c) 2008 Free Software Foundation, Inc.
|
|
||||||
#
|
|
||||||
# Copying and distribution of this file, with or without modification, are
|
|
||||||
# permitted in any medium without royalty provided the copyright notice
|
|
||||||
# and this notice are preserved.
|
|
||||||
|
|
||||||
AC_DEFUN([AX_BOOST_REGEX],
|
|
||||||
[
|
|
||||||
AC_REQUIRE([AX_BOOST_BASE])
|
|
||||||
_AX_BOOST_CHECK([boost_regex],
|
|
||||||
[@%:@include <boost/regex.hpp>],
|
|
||||||
[boost::regex r(); return 0;])
|
|
||||||
])
|
|
@ -1,38 +0,0 @@
|
|||||||
#
|
|
||||||
# SYNOPSIS
|
|
||||||
#
|
|
||||||
# AX_BOOST_SERIALIZATION
|
|
||||||
#
|
|
||||||
# DESCRIPTION
|
|
||||||
#
|
|
||||||
# Test for Serialization library from the Boost C++ libraries. The macro
|
|
||||||
# requires a preceding call to AX_BOOST_BASE.
|
|
||||||
#
|
|
||||||
# This macro calls:
|
|
||||||
#
|
|
||||||
# AC_SUBST(BOOST_SERIALIZATION_LIB)
|
|
||||||
#
|
|
||||||
# And sets:
|
|
||||||
#
|
|
||||||
# HAVE_BOOST_SERIALIZATION
|
|
||||||
#
|
|
||||||
# COPYLEFT
|
|
||||||
#
|
|
||||||
# Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
|
|
||||||
# Copyright (c) 2008 Free Software Foundation, Inc.
|
|
||||||
#
|
|
||||||
# Copying and distribution of this file, with or without modification, are
|
|
||||||
# permitted in any medium without royalty provided the copyright notice
|
|
||||||
# and this notice are preserved.
|
|
||||||
|
|
||||||
AC_DEFUN([AX_BOOST_SERIALIZATION],
|
|
||||||
[
|
|
||||||
AC_REQUIRE([AX_BOOST_BASE])
|
|
||||||
_AX_BOOST_CHECK([boost_serialization],
|
|
||||||
[@%:@include <fstream>
|
|
||||||
@%:@include <boost/archive/text_oarchive.hpp>
|
|
||||||
@%:@include <boost/archive/text_iarchive.hpp>],
|
|
||||||
[std::ofstream ofs("filename");
|
|
||||||
boost::archive::text_oarchive oa(ofs);
|
|
||||||
return 0;])
|
|
||||||
])
|
|
@ -1,35 +0,0 @@
|
|||||||
#
|
|
||||||
# SYNOPSIS
|
|
||||||
#
|
|
||||||
# AX_BOOST_SIGNALS
|
|
||||||
#
|
|
||||||
# DESCRIPTION
|
|
||||||
#
|
|
||||||
# Test for Signals library from the Boost C++ libraries. The macro
|
|
||||||
# requires a preceding call to AX_BOOST_BASE.
|
|
||||||
#
|
|
||||||
# This macro calls:
|
|
||||||
#
|
|
||||||
# AC_SUBST(BOOST_SIGNALS_LIB)
|
|
||||||
#
|
|
||||||
# And sets:
|
|
||||||
#
|
|
||||||
# HAVE_BOOST_SIGNALS
|
|
||||||
#
|
|
||||||
# COPYLEFT
|
|
||||||
#
|
|
||||||
# Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
|
|
||||||
# Copyright (c) 2008 Michael Tindal
|
|
||||||
# Copyright (c) 2008 Free Software Foundation, Inc.
|
|
||||||
#
|
|
||||||
# Copying and distribution of this file, with or without modification, are
|
|
||||||
# permitted in any medium without royalty provided the copyright notice
|
|
||||||
# and this notice are preserved.
|
|
||||||
|
|
||||||
AC_DEFUN([AX_BOOST_SIGNALS],
|
|
||||||
[
|
|
||||||
AC_REQUIRE([AX_BOOST_BASE])
|
|
||||||
_AX_BOOST_CHECK([boost_signals],
|
|
||||||
[@%:@include <boost/signal.hpp>],
|
|
||||||
[boost::signal<void ()> sig; return 0;])
|
|
||||||
])
|
|
@ -1,40 +0,0 @@
|
|||||||
# ===========================================================================
|
|
||||||
# started with this: http://autoconf-archive.cryp.to/ax_boost_system.html,
|
|
||||||
# virtually nothing left
|
|
||||||
# ===========================================================================
|
|
||||||
#
|
|
||||||
# SYNOPSIS
|
|
||||||
#
|
|
||||||
# AX_BOOST_SYSTEM
|
|
||||||
#
|
|
||||||
# DESCRIPTION
|
|
||||||
#
|
|
||||||
# Test for System library from the Boost C++ libraries. The macro requires
|
|
||||||
# a preceding call to AX_BOOST_BASE.
|
|
||||||
#
|
|
||||||
# This macro calls:
|
|
||||||
#
|
|
||||||
# AC_SUBST(BOOST_SYSTEM_LIB)
|
|
||||||
#
|
|
||||||
# And sets:
|
|
||||||
#
|
|
||||||
# HAVE_BOOST_SYSTEM
|
|
||||||
#
|
|
||||||
# COPYLEFT
|
|
||||||
#
|
|
||||||
# Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
|
|
||||||
# Copyright (c) 2008 Michael Tindal
|
|
||||||
# Copyright (c) 2008 Daniel Casimiro <dan.casimiro@gmail.com>
|
|
||||||
# Copyright (c) 2008 Free Software Foundation, Inc.
|
|
||||||
#
|
|
||||||
# Copying and distribution of this file, with or without modification, are
|
|
||||||
# permitted in any medium without royalty provided the copyright notice
|
|
||||||
# and this notice are preserved.
|
|
||||||
|
|
||||||
AC_DEFUN([AX_BOOST_SYSTEM],
|
|
||||||
[
|
|
||||||
AC_REQUIRE([AX_BOOST_BASE])
|
|
||||||
_AX_BOOST_CHECK([boost_system],
|
|
||||||
[@%:@include <boost/system/error_code.hpp>],
|
|
||||||
[boost::system::system_category])
|
|
||||||
])
|
|
@ -1,35 +0,0 @@
|
|||||||
#
|
|
||||||
# SYNOPSIS
|
|
||||||
#
|
|
||||||
# AX_BOOST_TEST_EXEC_MONITOR
|
|
||||||
#
|
|
||||||
# DESCRIPTION
|
|
||||||
#
|
|
||||||
# Test for Test_Exec_Monitor library from the Boost C++ libraries. The
|
|
||||||
# macro requires a preceding call to AX_BOOST_BASE.
|
|
||||||
#
|
|
||||||
# This macro calls:
|
|
||||||
#
|
|
||||||
# AC_SUBST(BOOST_TEST_EXEC_MONITOR_LIB)
|
|
||||||
#
|
|
||||||
# And sets:
|
|
||||||
#
|
|
||||||
# HAVE_BOOST_TEST_EXEC_MONITOR
|
|
||||||
#
|
|
||||||
# COPYLEFT
|
|
||||||
#
|
|
||||||
# Copyright (c) 2008 Dodji Seketeli <dodji@seketeli.org>
|
|
||||||
# Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
|
|
||||||
# Copyright (c) 2008 Free Software Foundation, Inc.
|
|
||||||
#
|
|
||||||
# Copying and distribution of this file, with or without modification, are
|
|
||||||
# permitted in any medium without royalty provided the copyright notice
|
|
||||||
# and this notice are preserved.
|
|
||||||
|
|
||||||
AC_DEFUN([AX_BOOST_TEST_EXEC_MONITOR],
|
|
||||||
[
|
|
||||||
AC_REQUIRE([AX_BOOST_BASE])
|
|
||||||
_AX_BOOST_CHECK([boost_test_exec_monitor],
|
|
||||||
[@%:@include <boost/test/test_tools.hpp>],
|
|
||||||
[int i=1 ; BOOST_REQUIRE(i==1); ; return 0;])
|
|
||||||
])
|
|
@ -1,72 +0,0 @@
|
|||||||
#
|
|
||||||
# SYNOPSIS
|
|
||||||
#
|
|
||||||
# AX_BOOST_THREAD
|
|
||||||
#
|
|
||||||
# DESCRIPTION
|
|
||||||
#
|
|
||||||
# Test for Thread library from the Boost C++ libraries.
|
|
||||||
#
|
|
||||||
# This macro calls:
|
|
||||||
#
|
|
||||||
# AC_SUBST(BOOST_THREAD_LIB)
|
|
||||||
# AC_SUBST(BOOST_CXXFLAGS)
|
|
||||||
#
|
|
||||||
# And sets:
|
|
||||||
#
|
|
||||||
# HAVE_BOOST_THREAD
|
|
||||||
#
|
|
||||||
# COPYLEFT
|
|
||||||
#
|
|
||||||
# Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
|
|
||||||
# Copyright (c) 2008 Michael Tindal
|
|
||||||
# Copyright (c) 2008 Free Software Foundation, Inc.
|
|
||||||
#
|
|
||||||
# Copying and distribution of this file, with or without modification, are
|
|
||||||
# permitted in any medium without royalty provided the copyright notice
|
|
||||||
# and this notice are preserved.
|
|
||||||
|
|
||||||
|
|
||||||
AC_DEFUN([AX_BOOST_THREAD],
|
|
||||||
[
|
|
||||||
AC_REQUIRE([AX_BOOST_BASE])
|
|
||||||
AC_REQUIRE([ACX_PTHREAD])
|
|
||||||
_AX_BOOST_WITH([boost_thread])
|
|
||||||
|
|
||||||
if test "$want_boost" = "yes"; then
|
|
||||||
AC_REQUIRE([AC_PROG_CC])
|
|
||||||
AC_REQUIRE([AC_PROG_CXX])
|
|
||||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
|
||||||
|
|
||||||
CPPFLAGS_SAVED="$CPPFLAGS"
|
|
||||||
LDFLAGS_SAVED="$LDFLAGS"
|
|
||||||
CXXFLAGS_SAVED="$CXXFLAGS"
|
|
||||||
|
|
||||||
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
|
|
||||||
LDFLAGS="$LDFLAGS $BOOST_LDFLAGS $PTHREAD_LIBS"
|
|
||||||
CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS"
|
|
||||||
|
|
||||||
AC_CACHE_CHECK(whether the boost::thread includes are available,
|
|
||||||
ax_cv_boost_thread,
|
|
||||||
[AC_LANG_PUSH([C++])
|
|
||||||
AC_COMPILE_IFELSE(AC_LANG_PROGRAM([[@%:@include <boost/thread/thread.hpp>]],
|
|
||||||
[[boost::thread_group thrds;
|
|
||||||
return 0;]]),
|
|
||||||
ax_cv_boost_thread=yes, ax_cv_boost_thread=no)
|
|
||||||
AC_LANG_POP([C++])
|
|
||||||
])
|
|
||||||
|
|
||||||
if test "$ax_cv_boost_thread" = "yes"; then
|
|
||||||
BOOST_CXXFLAGS="$PTHREAD_CFLAGS"
|
|
||||||
AC_SUBST(BOOST_CXXFLAGS)
|
|
||||||
_AX_BOOST_CHECK_LIB([boost_thread])
|
|
||||||
if test "$link_ok" = "yes" && test -n "$PTHREAD_LIBS"; then
|
|
||||||
BOOST_THREAD_LIB="$BOOST_THREAD_LIB $PTHREAD_LIBS"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
CPPFLAGS="$CPPFLAGS_SAVED"
|
|
||||||
LDFLAGS="$LDFLAGS_SAVED"
|
|
||||||
CXXFLAGS="$CXXFLAGS_SAVED"
|
|
||||||
fi
|
|
||||||
])
|
|
@ -1,36 +0,0 @@
|
|||||||
#
|
|
||||||
# SYNOPSIS
|
|
||||||
#
|
|
||||||
# AX_BOOST_UNIT_TEST_FRAMEWORK
|
|
||||||
#
|
|
||||||
# DESCRIPTION
|
|
||||||
#
|
|
||||||
# Test for Unit_Test_Framework library from the Boost C++ libraries. The
|
|
||||||
# macro requires a preceding call to AX_BOOST_BASE.
|
|
||||||
#
|
|
||||||
# This macro calls:
|
|
||||||
#
|
|
||||||
# AC_SUBST(BOOST_UNIT_TEST_FRAMEWORK_LIB)
|
|
||||||
#
|
|
||||||
# And sets:
|
|
||||||
#
|
|
||||||
# HAVE_BOOST_UNIT_TEST_FRAMEWORK
|
|
||||||
#
|
|
||||||
# COPYLEFT
|
|
||||||
#
|
|
||||||
# Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
|
|
||||||
# Copyright (c) 2008 Free Software Foundation, Inc.
|
|
||||||
#
|
|
||||||
# Copying and distribution of this file, with or without modification, are
|
|
||||||
# permitted in any medium without royalty provided the copyright notice
|
|
||||||
# and this notice are preserved.
|
|
||||||
|
|
||||||
AC_DEFUN([AX_BOOST_UNIT_TEST_FRAMEWORK],
|
|
||||||
[
|
|
||||||
AC_REQUIRE([AX_BOOST_BASE])
|
|
||||||
_AX_BOOST_CHECK([boost_unit_test_framework],
|
|
||||||
[@%:@include <boost/test/unit_test.hpp>],
|
|
||||||
[using boost::unit_test::test_suite;
|
|
||||||
test_suite* test= BOOST_TEST_SUITE( "Unit test example 1" );
|
|
||||||
return 0;])
|
|
||||||
])
|
|
@ -1,46 +0,0 @@
|
|||||||
#
|
|
||||||
# SYNOPSIS
|
|
||||||
#
|
|
||||||
# AX_BOOST_WSERIALIZATION
|
|
||||||
#
|
|
||||||
# DESCRIPTION
|
|
||||||
#
|
|
||||||
# Test for WSerialization library from the Boost C++ libraries. The macro
|
|
||||||
# requires a preceding call to AX_BOOST_BASE.
|
|
||||||
#
|
|
||||||
# This macro calls:
|
|
||||||
#
|
|
||||||
# AC_SUBST(BOOST_WSERIALIZATION_LIB)
|
|
||||||
#
|
|
||||||
# And sets:
|
|
||||||
#
|
|
||||||
# HAVE_BOOST_WSERIALIZATION
|
|
||||||
#
|
|
||||||
# COPYLEFT
|
|
||||||
#
|
|
||||||
# Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
|
|
||||||
# Copyright (c) 2008 Free Software Foundation, Inc.
|
|
||||||
#
|
|
||||||
# Copying and distribution of this file, with or without modification, are
|
|
||||||
# permitted in any medium without royalty provided the copyright notice
|
|
||||||
# and this notice are preserved.
|
|
||||||
|
|
||||||
AC_DEFUN([AX_BOOST_WSERIALIZATION],
|
|
||||||
[
|
|
||||||
AC_REQUIRE([AX_BOOST_BASE])
|
|
||||||
|
|
||||||
dnl depends on BOOST_SERIALIZATION
|
|
||||||
AC_REQUIRE([AX_BOOST_SERIALIZATION])
|
|
||||||
axbws_LDFLAGS_SAVED=$LDFLAGS
|
|
||||||
LDFLAGS="$LDFLAGS $BOOST_SERIALIZATION_LIB"
|
|
||||||
|
|
||||||
_AX_BOOST_CHECK([boost_wserialization],
|
|
||||||
[@%:@include <fstream>
|
|
||||||
@%:@include <boost/archive/text_oarchive.hpp>
|
|
||||||
@%:@include <boost/archive/text_iarchive.hpp>],
|
|
||||||
[std::ofstream ofs("filename");
|
|
||||||
boost::archive::text_oarchive oa(ofs);
|
|
||||||
return 0;])
|
|
||||||
|
|
||||||
LDFLAGS=$axbf_LDFLAGS_SAVED
|
|
||||||
])
|
|
@ -1,404 +0,0 @@
|
|||||||
dnl Available from the GNU Autoconf Macro Archive at:
|
|
||||||
dnl http://www.gnu.org/software/ac-archive/htmldoc/bnv_have_qt.html
|
|
||||||
dnl
|
|
||||||
AC_DEFUN([BNV_HAVE_QT],
|
|
||||||
[
|
|
||||||
dnl THANKS! This code includes bug fixes by:
|
|
||||||
dnl Tim McClarren.
|
|
||||||
|
|
||||||
AC_REQUIRE([AC_PROG_CXX])
|
|
||||||
AC_REQUIRE([AC_PATH_X])
|
|
||||||
AC_REQUIRE([AC_PATH_XTRA])
|
|
||||||
|
|
||||||
AC_MSG_CHECKING(for Qt)
|
|
||||||
|
|
||||||
AC_ARG_WITH([Qt-dir],
|
|
||||||
[ --with-Qt-dir=DIR DIR is equal to \$QTDIR if you have followed the
|
|
||||||
installation instructions of Trolltech. Header
|
|
||||||
files are in DIR/include, binary utilities are
|
|
||||||
in DIR/bin and the library is in DIR/lib])
|
|
||||||
AC_ARG_WITH([Qt-include-dir],
|
|
||||||
[ --with-Qt-include-dir=DIR
|
|
||||||
Qt header files are in DIR])
|
|
||||||
AC_ARG_WITH([Qt-bin-dir],
|
|
||||||
[ --with-Qt-bin-dir=DIR Qt utilities such as moc and uic are in DIR])
|
|
||||||
AC_ARG_WITH([Qt-lib-dir],
|
|
||||||
[ --with-Qt-lib-dir=DIR The Qt library is in DIR])
|
|
||||||
AC_ARG_WITH([Qt-lib],
|
|
||||||
[ --with-Qt-lib=LIB Use -lLIB to link with the Qt library])
|
|
||||||
if test x"$with_Qt_dir" = x"no" ||
|
|
||||||
test x"$with_Qt_include-dir" = x"no" ||
|
|
||||||
test x"$with_Qt_bin_dir" = x"no" ||
|
|
||||||
test x"$with_Qt_lib_dir" = x"no" ||
|
|
||||||
test x"$with_Qt_lib" = x"no"; then
|
|
||||||
# user disabled Qt. Leave cache alone.
|
|
||||||
have_qt="User disabled Qt."
|
|
||||||
else
|
|
||||||
# "yes" is a bogus option
|
|
||||||
if test x"$with_Qt_dir" = xyes; then
|
|
||||||
with_Qt_dir=
|
|
||||||
fi
|
|
||||||
if test x"$with_Qt_include_dir" = xyes; then
|
|
||||||
with_Qt_include_dir=
|
|
||||||
fi
|
|
||||||
if test x"$with_Qt_bin_dir" = xyes; then
|
|
||||||
with_Qt_bin_dir=
|
|
||||||
fi
|
|
||||||
if test x"$with_Qt_lib_dir" = xyes; then
|
|
||||||
with_Qt_lib_dir=
|
|
||||||
fi
|
|
||||||
if test x"$with_Qt_lib" = xyes; then
|
|
||||||
with_Qt_lib=
|
|
||||||
fi
|
|
||||||
# No Qt unless we discover otherwise
|
|
||||||
have_qt=no
|
|
||||||
# Check whether we are requested to link with a specific version
|
|
||||||
if test x"$with_Qt_lib" != x; then
|
|
||||||
bnv_qt_lib="$with_Qt_lib"
|
|
||||||
fi
|
|
||||||
# Check whether we were supplied with an answer already
|
|
||||||
if test x"$with_Qt_dir" != x; then
|
|
||||||
have_qt=yes
|
|
||||||
bnv_qt_dir="$with_Qt_dir"
|
|
||||||
bnv_qt_include_dir="$with_Qt_dir/include"
|
|
||||||
bnv_qt_bin_dir="$with_Qt_dir/bin"
|
|
||||||
bnv_qt_lib_dir="$with_Qt_dir/lib"
|
|
||||||
# Only search for the lib if the user did not define one already
|
|
||||||
if test x"$bnv_qt_lib" = x; then
|
|
||||||
bnv_qt_lib="`ls $bnv_qt_lib_dir/libqt* | sed -n 1p |
|
|
||||||
sed s@$bnv_qt_lib_dir/lib@@ | [sed s@[.].*@@]`"
|
|
||||||
fi
|
|
||||||
bnv_qt_LIBS="-L$bnv_qt_lib_dir -l$bnv_qt_lib $X_PRE_LIBS $X_LIBS -lX11 -lXext -lXmu -lXt -lXi $X_EXTRA_LIBS"
|
|
||||||
else
|
|
||||||
# Use cached value or do search, starting with suggestions from
|
|
||||||
# the command line
|
|
||||||
AC_CACHE_VAL(bnv_cv_have_qt,
|
|
||||||
[
|
|
||||||
# We are not given a solution and there is no cached value.
|
|
||||||
bnv_qt_dir=NO
|
|
||||||
bnv_qt_include_dir=NO
|
|
||||||
bnv_qt_lib_dir=NO
|
|
||||||
if test x"$bnv_qt_lib" = x; then
|
|
||||||
bnv_qt_lib=NO
|
|
||||||
fi
|
|
||||||
BNV_PATH_QT_DIRECT
|
|
||||||
if test "$bnv_qt_dir" = NO ||
|
|
||||||
test "$bnv_qt_include_dir" = NO ||
|
|
||||||
test "$bnv_qt_lib_dir" = NO ||
|
|
||||||
test "$bnv_qt_lib" = NO; then
|
|
||||||
# Problem with finding complete Qt. Cache the known absence of Qt.
|
|
||||||
bnv_cv_have_qt="have_qt=no"
|
|
||||||
else
|
|
||||||
# Record where we found Qt for the cache.
|
|
||||||
bnv_cv_have_qt="have_qt=yes \
|
|
||||||
bnv_qt_dir=$bnv_qt_dir \
|
|
||||||
bnv_qt_include_dir=$bnv_qt_include_dir \
|
|
||||||
bnv_qt_bin_dir=$bnv_qt_bin_dir \
|
|
||||||
bnv_qt_LIBS=\"$bnv_qt_LIBS\""
|
|
||||||
fi
|
|
||||||
])dnl
|
|
||||||
eval "$bnv_cv_have_qt"
|
|
||||||
fi # all $bnv_qt_* are set
|
|
||||||
fi # $have_qt reflects the system status
|
|
||||||
if test x"$have_qt" = xyes; then
|
|
||||||
QT_CXXFLAGS="-I$bnv_qt_include_dir"
|
|
||||||
QT_DIR="$bnv_qt_dir"
|
|
||||||
QT_LIBS="$bnv_qt_LIBS"
|
|
||||||
# If bnv_qt_dir is defined, utilities are expected to be in the
|
|
||||||
# bin subdirectory
|
|
||||||
if test x"$bnv_qt_dir" != x; then
|
|
||||||
if test -x "$bnv_qt_dir/bin/uic"; then
|
|
||||||
QT_UIC="$bnv_qt_dir/bin/uic"
|
|
||||||
else
|
|
||||||
# Old versions of Qt don't have uic
|
|
||||||
QT_UIC=
|
|
||||||
fi
|
|
||||||
QT_MOC="$bnv_qt_dir/bin/moc"
|
|
||||||
else
|
|
||||||
# Or maybe we are told where to look for the utilities
|
|
||||||
if test x"$bnv_qt_bin_dir" != x; then
|
|
||||||
if test -x "$bnv_qt_bin_dir/uic"; then
|
|
||||||
QT_UIC="$bnv_qt_bin_dir/uic"
|
|
||||||
else
|
|
||||||
# Old versions of Qt don't have uic
|
|
||||||
QT_UIC=
|
|
||||||
fi
|
|
||||||
QT_MOC="$bnv_qt_bin_dir/moc"
|
|
||||||
else
|
|
||||||
# Last possibility is that they are in $PATH
|
|
||||||
QT_UIC="`which uic`"
|
|
||||||
QT_MOC="`which moc`"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
# All variables are defined, report the result
|
|
||||||
AC_MSG_RESULT([$have_qt:
|
|
||||||
QT_CXXFLAGS=$QT_CXXFLAGS
|
|
||||||
QT_DIR=$QT_DIR
|
|
||||||
QT_LIBS=$QT_LIBS
|
|
||||||
QT_UIC=$QT_UIC
|
|
||||||
QT_MOC=$QT_MOC])
|
|
||||||
else
|
|
||||||
# Qt was not found
|
|
||||||
QT_CXXFLAGS=
|
|
||||||
QT_DIR=
|
|
||||||
QT_LIBS=
|
|
||||||
QT_UIC=
|
|
||||||
QT_MOC=
|
|
||||||
AC_MSG_RESULT($have_qt)
|
|
||||||
fi
|
|
||||||
AC_SUBST(QT_CXXFLAGS)
|
|
||||||
AC_SUBST(QT_DIR)
|
|
||||||
AC_SUBST(QT_LIBS)
|
|
||||||
AC_SUBST(QT_UIC)
|
|
||||||
AC_SUBST(QT_MOC)
|
|
||||||
|
|
||||||
#### Being paranoid:
|
|
||||||
if test x"$have_qt" = xyes; then
|
|
||||||
AC_MSG_CHECKING(correct functioning of Qt installation)
|
|
||||||
AC_CACHE_VAL(bnv_cv_qt_test_result,
|
|
||||||
[
|
|
||||||
cat > bnv_qt_test.h << EOF
|
|
||||||
#include <qobject.h>
|
|
||||||
class Test : public QObject
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
public:
|
|
||||||
Test() {}
|
|
||||||
~Test() {}
|
|
||||||
public slots:
|
|
||||||
void receive() {}
|
|
||||||
signals:
|
|
||||||
void send();
|
|
||||||
};
|
|
||||||
EOF
|
|
||||||
|
|
||||||
cat > bnv_qt_main.$ac_ext << EOF
|
|
||||||
#include "bnv_qt_test.h"
|
|
||||||
#include <qapplication.h>
|
|
||||||
int main( int argc, char **argv )
|
|
||||||
{
|
|
||||||
QApplication app( argc, argv );
|
|
||||||
Test t;
|
|
||||||
QObject::connect( &t, SIGNAL(send()), &t, SLOT(receive()) );
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
|
|
||||||
bnv_cv_qt_test_result="failure"
|
|
||||||
bnv_try_1="$QT_MOC bnv_qt_test.h -o moc_bnv_qt_test.$ac_ext >/dev/null 2>bnv_qt_test_1.out"
|
|
||||||
AC_TRY_EVAL(bnv_try_1)
|
|
||||||
bnv_err_1=`grep -v '^ *+' bnv_qt_test_1.out | grep -v "^bnv_qt_test.h\$"`
|
|
||||||
if test x"$bnv_err_1" != x; then
|
|
||||||
echo "$bnv_err_1" >&AC_FD_CC
|
|
||||||
echo "configure: could not run $QT_MOC on:" >&AC_FD_CC
|
|
||||||
cat bnv_qt_test.h >&AC_FD_CC
|
|
||||||
else
|
|
||||||
bnv_try_2="$CXX $QT_CXXFLAGS -c $CXXFLAGS -o moc_bnv_qt_test.o moc_bnv_qt_test.$ac_ext >/dev/null 2>bnv_qt_test_2.out"
|
|
||||||
AC_TRY_EVAL(bnv_try_2)
|
|
||||||
bnv_err_2=`grep -v '^ *+' bnv_qt_test_2.out | grep -v "^bnv_qt_test.{$ac_ext}\$"`
|
|
||||||
if test x"$bnv_err_2" != x; then
|
|
||||||
echo "$bnv_err_2" >&AC_FD_CC
|
|
||||||
echo "configure: could not compile:" >&AC_FD_CC
|
|
||||||
cat bnv_qt_test.$ac_ext >&AC_FD_CC
|
|
||||||
else
|
|
||||||
bnv_try_3="$CXX $QT_CXXFLAGS -c $CXXFLAGS -o bnv_qt_main.o bnv_qt_main.$ac_ext >/dev/null 2>bnv_qt_test_3.out"
|
|
||||||
AC_TRY_EVAL(bnv_try_3)
|
|
||||||
bnv_err_3=`grep -v '^ *+' bnv_qt_test_3.out | grep -v "^bnv_qt_main.{$ac_ext}\$"`
|
|
||||||
if test x"$bnv_err_3" != x; then
|
|
||||||
echo "$bnv_err_3" >&AC_FD_CC
|
|
||||||
echo "configure: could not compile:" >&AC_FD_CC
|
|
||||||
cat bnv_qt_main.$ac_ext >&AC_FD_CC
|
|
||||||
else
|
|
||||||
bnv_try_4="$CXX $QT_LIBS $LIBS -o bnv_qt_main bnv_qt_main.o moc_bnv_qt_test.o >/dev/null 2>bnv_qt_test_4.out"
|
|
||||||
AC_TRY_EVAL(bnv_try_4)
|
|
||||||
bnv_err_4=`grep -v '^ *+' bnv_qt_test_4.out`
|
|
||||||
if test x"$bnv_err_4" != x; then
|
|
||||||
echo "$bnv_err_4" >&AC_FD_CC
|
|
||||||
else
|
|
||||||
bnv_cv_qt_test_result="success"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
])dnl AC_CACHE_VAL bnv_cv_qt_test_result
|
|
||||||
AC_MSG_RESULT([$bnv_cv_qt_test_result]);
|
|
||||||
if test x"$bnv_cv_qt_test_result" = "xfailure"; then
|
|
||||||
# working Qt was not found
|
|
||||||
QT_CXXFLAGS=
|
|
||||||
QT_DIR=
|
|
||||||
QT_LIBS=
|
|
||||||
QT_UIC=
|
|
||||||
QT_MOC=
|
|
||||||
have_qt=no
|
|
||||||
AC_MSG_WARN([Failed to find matching components of a complete
|
|
||||||
Qt installation. Try using more options,
|
|
||||||
see ./configure --help.])
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -f bnv_qt_test.h moc_bnv_qt_test.$ac_ext moc_bnv_qt_test.o \
|
|
||||||
bnv_qt_main.$ac_ext bnv_qt_main.o bnv_qt_main \
|
|
||||||
bnv_qt_test_1.out bnv_qt_test_2.out bnv_qt_test_3.out bnv_qt_test_4.out
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl Internal subroutine of BNV_HAVE_QT
|
|
||||||
dnl Set bnv_qt_dir bnv_qt_include_dir bnv_qt_bin_dir bnv_qt_lib_dir bnv_qt_lib
|
|
||||||
dnl Copyright 2001 Bastiaan N. Veelo <Bastiaan.N.Veelo@immtek.ntnu.no>
|
|
||||||
AC_DEFUN([BNV_PATH_QT_DIRECT],
|
|
||||||
[
|
|
||||||
## Binary utilities ##
|
|
||||||
if test x"$with_Qt_bin_dir" != x; then
|
|
||||||
bnv_qt_bin_dir=$with_Qt_bin_dir
|
|
||||||
fi
|
|
||||||
## Look for header files ##
|
|
||||||
if test x"$with_Qt_include_dir" != x; then
|
|
||||||
bnv_qt_include_dir="$with_Qt_include_dir"
|
|
||||||
else
|
|
||||||
# The following header file is expected to define QT_VERSION.
|
|
||||||
qt_direct_test_header=qglobal.h
|
|
||||||
# Look for the header file in a standard set of common directories.
|
|
||||||
bnv_include_path_list="
|
|
||||||
/usr/include
|
|
||||||
`ls -dr /usr/include/qt* 2>/dev/null`
|
|
||||||
`ls -dr /usr/lib/qt*/include 2>/dev/null`
|
|
||||||
`ls -dr /usr/local/qt*/include 2>/dev/null`
|
|
||||||
`ls -dr /opt/qt*/include 2>/dev/null`
|
|
||||||
"
|
|
||||||
for bnv_dir in $bnv_include_path_list; do
|
|
||||||
if test -r "$bnv_dir/$qt_direct_test_header"; then
|
|
||||||
bnv_dirs="$bnv_dirs $bnv_dir"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
# Now look for the newest in this list
|
|
||||||
bnv_prev_ver=0
|
|
||||||
for bnv_dir in $bnv_dirs; do
|
|
||||||
bnv_this_ver=`egrep -w '#define QT_VERSION' $bnv_dir/$qt_direct_test_header | sed s/'#define QT_VERSION'//`
|
|
||||||
if expr $bnv_this_ver '>' $bnv_prev_ver > /dev/null; then
|
|
||||||
bnv_qt_include_dir=$bnv_dir
|
|
||||||
bnv_prev_ver=$bnv_this_ver
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi dnl Found header files.
|
|
||||||
|
|
||||||
# Are these headers located in a traditional Trolltech installation?
|
|
||||||
# That would be $bnv_qt_include_dir stripped from its last element:
|
|
||||||
bnv_possible_qt_dir=`dirname $bnv_qt_include_dir`
|
|
||||||
if test -x $bnv_possible_qt_dir/bin/moc &&
|
|
||||||
ls $bnv_possible_qt_dir/lib/libqt* > /dev/null; then
|
|
||||||
# Then the rest is a piece of cake
|
|
||||||
bnv_qt_dir=$bnv_possible_qt_dir
|
|
||||||
bnv_qt_bin_dir="$bnv_qt_dir/bin"
|
|
||||||
bnv_qt_lib_dir="$bnv_qt_dir/lib"
|
|
||||||
# Only look for lib if the user did not supply it already
|
|
||||||
if test x"$bnv_qt_lib" = xNO; then
|
|
||||||
bnv_qt_lib="`ls $bnv_qt_lib_dir/libqt* | sed -n 1p |
|
|
||||||
sed s@$bnv_qt_lib_dir/lib@@ | [sed s@[.].*@@]`"
|
|
||||||
fi
|
|
||||||
bnv_qt_LIBS="-L$bnv_qt_lib_dir -l$bnv_qt_lib $X_PRE_LIBS $X_LIBS -lX11 -lXext -lXmu -lXt -lXi $X_EXTRA_LIBS"
|
|
||||||
else
|
|
||||||
# There is no valid definition for $QTDIR as Trolltech likes to see it
|
|
||||||
bnv_qt_dir=
|
|
||||||
## Look for Qt library ##
|
|
||||||
if test x"$with_Qt_lib_dir" != x; then
|
|
||||||
bnv_qt_lib_dir="$with_Qt_lib_dir"
|
|
||||||
# Only look for lib if the user did not supply it already
|
|
||||||
if test x"$bnv_qt_lib" = xNO; then
|
|
||||||
bnv_qt_lib="`ls $bnv_qt_lib_dir/libqt* | sed -n 1p |
|
|
||||||
sed s@$bnv_qt_lib_dir/lib@@ | [sed s@[.].*@@]`"
|
|
||||||
fi
|
|
||||||
bnv_qt_LIBS="-L$bnv_qt_lib_dir -l$bnv_qt_lib $X_PRE_LIBS $X_LIBS -lX11 -lXext -lXmu -lXt -lXi $X_EXTRA_LIBS"
|
|
||||||
else
|
|
||||||
# Normally, when there is no traditional Trolltech installation,
|
|
||||||
# the library is installed in a place where the linker finds it
|
|
||||||
# automatically.
|
|
||||||
# If the user did not define the library name, try with qt
|
|
||||||
if test x"$bnv_qt_lib" = xNO; then
|
|
||||||
bnv_qt_lib=qt
|
|
||||||
fi
|
|
||||||
qt_direct_test_header=qapplication.h
|
|
||||||
qt_direct_test_main="
|
|
||||||
int argc;
|
|
||||||
char ** argv;
|
|
||||||
QApplication app(argc,argv);
|
|
||||||
"
|
|
||||||
# See if we find the library without any special options.
|
|
||||||
# Don't add top $LIBS permanently yet
|
|
||||||
bnv_save_LIBS="$LIBS"
|
|
||||||
LIBS="-l$bnv_qt_lib $X_PRE_LIBS $X_LIBS -lX11 -lXext -lXmu -lXt -lXi $X_EXTRA_LIBS"
|
|
||||||
bnv_qt_LIBS="$LIBS"
|
|
||||||
bnv_save_CXXFLAGS="$CXXFLAGS"
|
|
||||||
CXXFLAGS="-I$bnv_qt_include_dir"
|
|
||||||
AC_TRY_LINK([#include <$qt_direct_test_header>],
|
|
||||||
$qt_direct_test_main,
|
|
||||||
[
|
|
||||||
# Success.
|
|
||||||
# We can link with no special library directory.
|
|
||||||
bnv_qt_lib_dir=
|
|
||||||
], [
|
|
||||||
# That did not work. Try the multi-threaded version
|
|
||||||
echo "Non-critical error, please neglect the above." >&AC_FD_CC
|
|
||||||
bnv_qt_lib=qt-mt
|
|
||||||
LIBS="-l$bnv_qt_lib $X_PRE_LIBS $X_LIBS -lX11 -lXext -lXmu -lXt -lXi $X_EXTRA_LIBS"
|
|
||||||
AC_TRY_LINK([#include <$qt_direct_test_header>],
|
|
||||||
$qt_direct_test_main,
|
|
||||||
[
|
|
||||||
# Success.
|
|
||||||
# We can link with no special library directory.
|
|
||||||
bnv_qt_lib_dir=
|
|
||||||
], [
|
|
||||||
# That did not work. Try the OpenGL version
|
|
||||||
echo "Non-critical error, please neglect the above." >&AC_FD_CC
|
|
||||||
bnv_qt_lib=qt-gl
|
|
||||||
LIBS="-l$bnv_qt_lib $X_PRE_LIBS $X_LIBS -lX11 -lXext -lXmu -lXt -lXi $X_EXTRA_LIBS"
|
|
||||||
AC_TRY_LINK([#include <$qt_direct_test_header>],
|
|
||||||
$qt_direct_test_main,
|
|
||||||
[
|
|
||||||
# Succes.
|
|
||||||
# We can link with no special library directory.
|
|
||||||
bnv_qt_lib_dir=
|
|
||||||
], [
|
|
||||||
# That did not work. Maybe a library version I don't know about?
|
|
||||||
echo "Non-critical error, please neglect the above." >&AC_FD_CC
|
|
||||||
# Look for some Qt lib in a standard set of common directories.
|
|
||||||
bnv_dir_list="
|
|
||||||
`echo $bnv_qt_includes | sed ss/includess`
|
|
||||||
/lib
|
|
||||||
/usr/lib
|
|
||||||
/usr/local/lib
|
|
||||||
/opt/lib
|
|
||||||
`ls -dr /usr/lib/qt* 2>/dev/null`
|
|
||||||
`ls -dr /usr/local/qt* 2>/dev/null`
|
|
||||||
`ls -dr /opt/qt* 2>/dev/null`
|
|
||||||
"
|
|
||||||
for bnv_dir in $bnv_dir_list; do
|
|
||||||
if ls $bnv_dir/libqt*; then
|
|
||||||
# Gamble that it's the first one...
|
|
||||||
bnv_qt_lib="`ls $bnv_dir/libqt* | sed -n 1p |
|
|
||||||
sed s@$bnv_dir/lib@@ | sed s/[.].*//`"
|
|
||||||
bnv_qt_lib_dir="$bnv_dir"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
# Try with that one
|
|
||||||
LIBS="-l$bnv_qt_lib $X_PRE_LIBS $X_LIBS -lX11 -lXext -lXmu -lXt -lXi $X_EXTRA_LIBS"
|
|
||||||
AC_TRY_LINK([#include <$qt_direct_test_header>],
|
|
||||||
$qt_direct_test_main,
|
|
||||||
[
|
|
||||||
# Succes.
|
|
||||||
# We can link with no special library directory.
|
|
||||||
bnv_qt_lib_dir=
|
|
||||||
], [
|
|
||||||
# Leave bnv_qt_lib_dir defined
|
|
||||||
])
|
|
||||||
])
|
|
||||||
])
|
|
||||||
])
|
|
||||||
if test x"$bnv_qt_lib_dir" != x; then
|
|
||||||
bnv_qt_LIBS="-l$bnv_qt_lib_dir $LIBS"
|
|
||||||
else
|
|
||||||
bnv_qt_LIBS="$LIBS"
|
|
||||||
fi
|
|
||||||
LIBS="$bnv_save_LIBS"
|
|
||||||
CXXFLAGS="$bnv_save_CXXFLAGS"
|
|
||||||
fi dnl $with_Qt_lib_dir was not given
|
|
||||||
fi dnl Done setting up for non-traditional Trolltech installation
|
|
||||||
])
|
|
@ -1,80 +0,0 @@
|
|||||||
dnl
|
|
||||||
dnl AM_PATH_CPPUNIT(MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
|
|
||||||
dnl
|
|
||||||
AC_DEFUN([AM_PATH_CPPUNIT],
|
|
||||||
[
|
|
||||||
|
|
||||||
AC_ARG_WITH(cppunit-prefix,[ --with-cppunit-prefix=PFX Prefix where CppUnit is installed (optional)],
|
|
||||||
cppunit_config_prefix="$withval", cppunit_config_prefix="")
|
|
||||||
AC_ARG_WITH(cppunit-exec-prefix,[ --with-cppunit-exec-prefix=PFX Exec prefix where CppUnit is installed (optional)],
|
|
||||||
cppunit_config_exec_prefix="$withval", cppunit_config_exec_prefix="")
|
|
||||||
|
|
||||||
if test x$cppunit_config_exec_prefix != x ; then
|
|
||||||
cppunit_config_args="$cppunit_config_args --exec-prefix=$cppunit_config_exec_prefix"
|
|
||||||
if test x${CPPUNIT_CONFIG+set} != xset ; then
|
|
||||||
CPPUNIT_CONFIG=$cppunit_config_exec_prefix/bin/cppunit-config
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if test x$cppunit_config_prefix != x ; then
|
|
||||||
cppunit_config_args="$cppunit_config_args --prefix=$cppunit_config_prefix"
|
|
||||||
if test x${CPPUNIT_CONFIG+set} != xset ; then
|
|
||||||
CPPUNIT_CONFIG=$cppunit_config_prefix/bin/cppunit-config
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_PATH_PROG(CPPUNIT_CONFIG, cppunit-config, no)
|
|
||||||
cppunit_version_min=$1
|
|
||||||
|
|
||||||
AC_MSG_CHECKING(for Cppunit - version >= $cppunit_version_min)
|
|
||||||
no_cppunit=""
|
|
||||||
if test "$CPPUNIT_CONFIG" = "no" ; then
|
|
||||||
no_cppunit=yes
|
|
||||||
else
|
|
||||||
CPPUNIT_CFLAGS=`$CPPUNIT_CONFIG --cflags`
|
|
||||||
CPPUNIT_LIBS=`$CPPUNIT_CONFIG --libs`
|
|
||||||
cppunit_version=`$CPPUNIT_CONFIG --version`
|
|
||||||
|
|
||||||
cppunit_major_version=`echo $cppunit_version | \
|
|
||||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
|
|
||||||
cppunit_minor_version=`echo $cppunit_version | \
|
|
||||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
|
|
||||||
cppunit_micro_version=`echo $cppunit_version | \
|
|
||||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
|
|
||||||
|
|
||||||
cppunit_major_min=`echo $cppunit_version_min | \
|
|
||||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
|
|
||||||
cppunit_minor_min=`echo $cppunit_version_min | \
|
|
||||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
|
|
||||||
cppunit_micro_min=`echo $cppunit_version_min | \
|
|
||||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
|
|
||||||
|
|
||||||
cppunit_version_proper=`expr \
|
|
||||||
$cppunit_major_version \> $cppunit_major_min \| \
|
|
||||||
$cppunit_major_version \= $cppunit_major_min \& \
|
|
||||||
$cppunit_minor_version \> $cppunit_minor_min \| \
|
|
||||||
$cppunit_major_version \= $cppunit_major_min \& \
|
|
||||||
$cppunit_minor_version \= $cppunit_minor_min \& \
|
|
||||||
$cppunit_micro_version \>= $cppunit_micro_min `
|
|
||||||
|
|
||||||
if test "$cppunit_version_proper" = "1" ; then
|
|
||||||
AC_MSG_RESULT([$cppunit_major_version.$cppunit_minor_version.$cppunit_micro_version])
|
|
||||||
else
|
|
||||||
AC_MSG_RESULT(no)
|
|
||||||
no_cppunit=yes
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x$no_cppunit" = x ; then
|
|
||||||
ifelse([$2], , :, [$2])
|
|
||||||
else
|
|
||||||
CPPUNIT_CFLAGS=""
|
|
||||||
CPPUNIT_LIBS=""
|
|
||||||
ifelse([$3], , :, [$3])
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_SUBST(CPPUNIT_CFLAGS)
|
|
||||||
AC_SUBST(CPPUNIT_LIBS)
|
|
||||||
])
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,52 +0,0 @@
|
|||||||
dnl
|
|
||||||
dnl Copyright 2005 Free Software Foundation, Inc.
|
|
||||||
dnl
|
|
||||||
dnl This file is part of GNU Radio
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is free software; you can redistribute it and/or modify
|
|
||||||
dnl it under the terms of the GNU General Public License as published by
|
|
||||||
dnl the Free Software Foundation; either version 3, or (at your option)
|
|
||||||
dnl any later version.
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is distributed in the hope that it will be useful,
|
|
||||||
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
dnl GNU General Public License for more details.
|
|
||||||
dnl
|
|
||||||
dnl You should have received a copy of the GNU General Public License
|
|
||||||
dnl along with GNU Radio; see the file COPYING. If not, write to
|
|
||||||
dnl the Free Software Foundation, Inc., 51 Franklin Street,
|
|
||||||
dnl Boston, MA 02110-1301, USA.
|
|
||||||
|
|
||||||
dnl AC_DEFUN([GR_CHECK_CREATEFILEMAPPING],
|
|
||||||
dnl [
|
|
||||||
dnl AC_CHECK_FUNCS([CreateFileMapping])
|
|
||||||
dnl ])
|
|
||||||
|
|
||||||
AC_DEFUN([GR_CHECK_CREATEFILEMAPPING],[
|
|
||||||
AC_MSG_CHECKING([for CreateFileMapping function])
|
|
||||||
AC_COMPILE_IFELSE([
|
|
||||||
#include <windows.h>
|
|
||||||
int main (int argc, char **argv)
|
|
||||||
{
|
|
||||||
HANDLE handle;
|
|
||||||
int size;
|
|
||||||
char seg_name[[1024]];
|
|
||||||
handle = CreateFileMapping(
|
|
||||||
INVALID_HANDLE_VALUE, // use paging file
|
|
||||||
NULL, // default security
|
|
||||||
PAGE_READWRITE, // read/write access
|
|
||||||
0, // max. object size
|
|
||||||
size, // buffer size
|
|
||||||
seg_name); // name of mapping object
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
],[HAVE_CREATEFILEMAPPING=yes
|
|
||||||
AC_DEFINE(HAVE_CREATEFILEMAPPING,[1],[Define if you have the CreateFilemapping function(win32).])],
|
|
||||||
[HAVE_CREATEFILEMAPPING=no])
|
|
||||||
|
|
||||||
AC_MSG_RESULT($HAVE_CREATEFILEMAPPING)
|
|
||||||
AM_CONDITIONAL(HAVE_CREATEFILEMAPPING, test x$HAVE_CREATEFILEMAPPING = xyes)
|
|
||||||
])
|
|
||||||
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
|||||||
dnl
|
|
||||||
dnl Copyright 2003 Free Software Foundation, Inc.
|
|
||||||
dnl
|
|
||||||
dnl This file is part of GNU Radio
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is free software; you can redistribute it and/or modify
|
|
||||||
dnl it under the terms of the GNU General Public License as published by
|
|
||||||
dnl the Free Software Foundation; either version 3, or (at your option)
|
|
||||||
dnl any later version.
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is distributed in the hope that it will be useful,
|
|
||||||
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
dnl GNU General Public License for more details.
|
|
||||||
dnl
|
|
||||||
dnl You should have received a copy of the GNU General Public License
|
|
||||||
dnl along with GNU Radio; see the file COPYING. If not, write to
|
|
||||||
dnl the Free Software Foundation, Inc., 51 Franklin Street,
|
|
||||||
dnl Boston, MA 02110-1301, USA.
|
|
||||||
dnl
|
|
||||||
|
|
||||||
AC_DEFUN([GR_CHECK_MC4020],[
|
|
||||||
AC_MSG_CHECKING([for mc4020 A/D driver include file])
|
|
||||||
AC_COMPILE_IFELSE([
|
|
||||||
#include <mc4020.h>
|
|
||||||
int main (int argc, char **argv)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
],[HAVE_MC4020=yes
|
|
||||||
AC_DEFINE(HAVE_MC4020,[1],[Define if you have a Measurement Computing PCI-DAS4020/12 A/D])],
|
|
||||||
[HAVE_MC4020=no])
|
|
||||||
|
|
||||||
AC_MSG_RESULT($HAVE_MC4020)
|
|
||||||
AM_CONDITIONAL(HAVE_MC4020, test x$HAVE_MC4020 = xyes)
|
|
||||||
])
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
|||||||
dnl
|
|
||||||
dnl Copyright 2003 Free Software Foundation, Inc.
|
|
||||||
dnl
|
|
||||||
dnl This file is part of GNU Radio
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is free software; you can redistribute it and/or modify
|
|
||||||
dnl it under the terms of the GNU General Public License as published by
|
|
||||||
dnl the Free Software Foundation; either version 3, or (at your option)
|
|
||||||
dnl any later version.
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is distributed in the hope that it will be useful,
|
|
||||||
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
dnl GNU General Public License for more details.
|
|
||||||
dnl
|
|
||||||
dnl You should have received a copy of the GNU General Public License
|
|
||||||
dnl along with GNU Radio; see the file COPYING. If not, write to
|
|
||||||
dnl the Free Software Foundation, Inc., 51 Franklin Street,
|
|
||||||
dnl Boston, MA 02110-1301, USA.
|
|
||||||
|
|
||||||
AC_DEFUN([GR_CHECK_SHM_OPEN],
|
|
||||||
[
|
|
||||||
SHM_OPEN_LIBS=""
|
|
||||||
save_LIBS="$LIBS"
|
|
||||||
AC_SEARCH_LIBS([shm_open], [rt], [SHM_OPEN_LIBS="$LIBS"])
|
|
||||||
AC_CHECK_FUNCS([shm_open])
|
|
||||||
LIBS="$save_LIBS"
|
|
||||||
AC_SUBST(SHM_OPEN_LIBS)
|
|
||||||
])
|
|
@ -1,32 +0,0 @@
|
|||||||
dnl
|
|
||||||
dnl Copyright 2003 Free Software Foundation, Inc.
|
|
||||||
dnl
|
|
||||||
dnl This file is part of GNU Radio
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is free software; you can redistribute it and/or modify
|
|
||||||
dnl it under the terms of the GNU General Public License as published by
|
|
||||||
dnl the Free Software Foundation; either version 3, or (at your option)
|
|
||||||
dnl any later version.
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is distributed in the hope that it will be useful,
|
|
||||||
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
dnl GNU General Public License for more details.
|
|
||||||
dnl
|
|
||||||
dnl You should have received a copy of the GNU General Public License
|
|
||||||
dnl along with GNU Radio; see the file COPYING. If not, write to
|
|
||||||
dnl the Free Software Foundation, Inc., 51 Franklin Street,
|
|
||||||
dnl Boston, MA 02110-1301, USA.
|
|
||||||
dnl
|
|
||||||
|
|
||||||
dnl Check for Universal Software Radio Peripheral
|
|
||||||
|
|
||||||
AC_DEFUN([GR_CHECK_USRP],[
|
|
||||||
PKG_CHECK_MODULES(USRP, usrp >= 0.2,
|
|
||||||
[HAVE_USRP=yes
|
|
||||||
AC_DEFINE(HAVE_USRP,[1],[Define if you have a USRP])],
|
|
||||||
[HAVE_USRP=no])
|
|
||||||
|
|
||||||
AM_CONDITIONAL(HAVE_USRP, test x$HAVE_USRP = xyes)
|
|
||||||
])
|
|
||||||
|
|
@ -1,60 +0,0 @@
|
|||||||
dnl
|
|
||||||
dnl Copyright 2003,2005 Free Software Foundation, Inc.
|
|
||||||
dnl
|
|
||||||
dnl This file is part of GNU Radio
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is free software; you can redistribute it and/or modify
|
|
||||||
dnl it under the terms of the GNU General Public License as published by
|
|
||||||
dnl the Free Software Foundation; either version 3, or (at your option)
|
|
||||||
dnl any later version.
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is distributed in the hope that it will be useful,
|
|
||||||
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
dnl GNU General Public License for more details.
|
|
||||||
dnl
|
|
||||||
dnl You should have received a copy of the GNU General Public License
|
|
||||||
dnl along with GNU Radio; see the file COPYING. If not, write to
|
|
||||||
dnl the Free Software Foundation, Inc., 51 Franklin Street,
|
|
||||||
dnl Boston, MA 02110-1301, USA.
|
|
||||||
dnl
|
|
||||||
|
|
||||||
AC_DEFUN([GR_CHECK_DOXYGEN],[
|
|
||||||
AC_ARG_ENABLE(doxygen,
|
|
||||||
AC_HELP_STRING([--enable-doxygen],
|
|
||||||
[enable documentation generation with doxygen (no)]))
|
|
||||||
AC_ARG_ENABLE(dot, AC_HELP_STRING([--enable-dot],[use 'dot' to generate graphs in doxygen (auto)]))
|
|
||||||
|
|
||||||
if test "x$enable_doxygen" = xyes; then
|
|
||||||
AC_PATH_PROG(DOXYGEN, doxygen, , $PATH)
|
|
||||||
if test x$DOXYGEN = x; then
|
|
||||||
if test "x$enable_doxygen" = xyes; then
|
|
||||||
AC_MSG_ERROR([could not find doxygen])
|
|
||||||
fi
|
|
||||||
enable_doc=no
|
|
||||||
generate_docs=
|
|
||||||
else
|
|
||||||
enable_doc=yes
|
|
||||||
generate_docs=docs
|
|
||||||
AC_PATH_PROG(DOT, dot, , $PATH)
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
enable_doc=no
|
|
||||||
fi
|
|
||||||
|
|
||||||
AM_CONDITIONAL(DOC, test x$enable_doc = xyes)
|
|
||||||
|
|
||||||
if test x$DOT = x; then
|
|
||||||
if test "x$enable_dot" = xyes; then
|
|
||||||
AC_MSG_ERROR([could not find dot])
|
|
||||||
fi
|
|
||||||
enable_dot=no
|
|
||||||
else
|
|
||||||
enable_dot=yes
|
|
||||||
fi
|
|
||||||
AC_SUBST(enable_dot)
|
|
||||||
AC_SUBST(enable_xml_docs, YES)
|
|
||||||
AC_SUBST(enable_html_docs, YES)
|
|
||||||
AC_SUBST(enable_latex_docs, NO)
|
|
||||||
AC_SUBST(generate_docs)
|
|
||||||
])
|
|
@ -1,32 +0,0 @@
|
|||||||
dnl Copyright 2001,2002,2003,2004,2005,2006 Free Software Foundation, Inc.
|
|
||||||
dnl
|
|
||||||
dnl This file is part of GNU Radio
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is free software; you can redistribute it and/or modify
|
|
||||||
dnl it under the terms of the GNU General Public License as published by
|
|
||||||
dnl the Free Software Foundation; either version 3, or (at your option)
|
|
||||||
dnl any later version.
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is distributed in the hope that it will be useful,
|
|
||||||
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
dnl GNU General Public License for more details.
|
|
||||||
dnl
|
|
||||||
dnl You should have received a copy of the GNU General Public License
|
|
||||||
dnl along with GNU Radio; see the file COPYING. If not, write to
|
|
||||||
dnl the Free Software Foundation, Inc., 51 Franklin Street,
|
|
||||||
dnl Boston, MA 02110-1301, USA.
|
|
||||||
|
|
||||||
AC_DEFUN([GR_FORTRAN],[
|
|
||||||
dnl if you want to generate a different table of interpolator taps, you need fortran.
|
|
||||||
dnl we default to off, since almost no one wants to do this.
|
|
||||||
AC_ARG_ENABLE(fortran, AC_HELP_STRING([--enable-fortran],[enable fortran (no)]),
|
|
||||||
[], [enable_fortran=no])
|
|
||||||
AM_CONDITIONAL(ENABLE_FORTRAN, test "x$enable_fortran" = xyes)
|
|
||||||
|
|
||||||
if test "x$enable_fortran" = xyes
|
|
||||||
then
|
|
||||||
AC_PROG_F77
|
|
||||||
AC_F77_LIBRARY_LDFLAGS
|
|
||||||
fi
|
|
||||||
])
|
|
@ -1,72 +0,0 @@
|
|||||||
dnl
|
|
||||||
dnl Copyright 2002 Free Software Foundation, Inc.
|
|
||||||
dnl
|
|
||||||
dnl This file is part of GNU Radio
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is free software; you can redistribute it and/or modify
|
|
||||||
dnl it under the terms of the GNU General Public License as published by
|
|
||||||
dnl the Free Software Foundation; either version 3, or (at your option)
|
|
||||||
dnl any later version.
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is distributed in the hope that it will be useful,
|
|
||||||
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
dnl GNU General Public License for more details.
|
|
||||||
dnl
|
|
||||||
dnl You should have received a copy of the GNU General Public License
|
|
||||||
dnl along with GNU Radio; see the file COPYING. If not, write to
|
|
||||||
dnl the Free Software Foundation, Inc., 51 Franklin Street,
|
|
||||||
dnl Boston, MA 02110-1301, USA.
|
|
||||||
dnl
|
|
||||||
|
|
||||||
dnl FIXME probably need to add linker flag too...
|
|
||||||
|
|
||||||
AC_DEFUN([GR_SET_GPROF],[
|
|
||||||
dnl Check for --with-gprof
|
|
||||||
AC_MSG_CHECKING([whether user wants gprof])
|
|
||||||
AC_ARG_WITH(gprof,
|
|
||||||
[ --with-gprof Turn on gprof profiling],
|
|
||||||
[], [ with_gprof=no ])
|
|
||||||
AC_MSG_RESULT($with_gprof)
|
|
||||||
|
|
||||||
dnl gprof profiling flags for the two main compilers
|
|
||||||
cc_profiling_flags="-pg"
|
|
||||||
cxx_profiling_flags="-pg"
|
|
||||||
ld_profiling_flags="-pg"
|
|
||||||
if test $with_gprof = yes
|
|
||||||
then
|
|
||||||
if test -n "${CC}"
|
|
||||||
then
|
|
||||||
LF_CHECK_CC_FLAG($cc_profiling_flags)
|
|
||||||
fi
|
|
||||||
if test -n "${CXX}"
|
|
||||||
then
|
|
||||||
LF_CHECK_CXX_FLAG($cxx_profiling_flags)
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_DEFUN([GR_SET_PROF],[
|
|
||||||
dnl Check for --with-prof
|
|
||||||
AC_MSG_CHECKING([whether user wants prof])
|
|
||||||
AC_ARG_WITH(prof,
|
|
||||||
[ --with-prof Turn on prof profiling],
|
|
||||||
[], [ with_prof=no ])
|
|
||||||
AC_MSG_RESULT($with_prof)
|
|
||||||
|
|
||||||
dnl prof profiling flags for the two main compilers
|
|
||||||
cc_profiling_flags="-p"
|
|
||||||
cxx_profiling_flags="-p"
|
|
||||||
ld_profiling_flags="-p"
|
|
||||||
if test $with_prof = yes
|
|
||||||
then
|
|
||||||
if test -n "${CC}"
|
|
||||||
then
|
|
||||||
LF_CHECK_CC_FLAG($cc_profiling_flags)
|
|
||||||
fi
|
|
||||||
if test -n "${CXX}"
|
|
||||||
then
|
|
||||||
LF_CHECK_CXX_FLAG($cxx_profiling_flags)
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
])
|
|
@ -1,85 +0,0 @@
|
|||||||
dnl
|
|
||||||
dnl Copyright 2005,2008 Free Software Foundation, Inc.
|
|
||||||
dnl
|
|
||||||
dnl This file is part of GNU Radio
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is free software; you can redistribute it and/or modify
|
|
||||||
dnl it under the terms of the GNU General Public License as published by
|
|
||||||
dnl the Free Software Foundation; either version 3, or (at your option)
|
|
||||||
dnl any later version.
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is distributed in the hope that it will be useful,
|
|
||||||
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
dnl GNU General Public License for more details.
|
|
||||||
dnl
|
|
||||||
dnl You should have received a copy of the GNU General Public License
|
|
||||||
dnl along with GNU Radio; see the file COPYING. If not, write to
|
|
||||||
dnl the Free Software Foundation, Inc., 51 Franklin Street,
|
|
||||||
dnl Boston, MA 02110-1301, USA.
|
|
||||||
dnl
|
|
||||||
|
|
||||||
dnl GR_LIB64()
|
|
||||||
dnl
|
|
||||||
dnl Checks to see if we're on a x86_64 or powerpc64 machine, and if so, determine
|
|
||||||
dnl if libdir should end in "64" or not.
|
|
||||||
dnl
|
|
||||||
dnl Sets gr_libdir_suffix to "" or "64" and calls AC_SUBST(gr_libdir_suffix)
|
|
||||||
dnl May append "64" to libdir.
|
|
||||||
dnl
|
|
||||||
dnl The current heuristic is:
|
|
||||||
dnl if the host_cpu isn't x86_64 or powerpc64, then ""
|
|
||||||
dnl if the host_os isn't linux, then ""
|
|
||||||
dnl if we're cross-compiling, ask the linker, by way of the selected compiler
|
|
||||||
dnl if we're x86_64 and there's a /lib64 and it's not a symlink, then "64", else ""
|
|
||||||
dnl else ask the compiler
|
|
||||||
dnl
|
|
||||||
AC_DEFUN([GR_LIB64],[
|
|
||||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
|
||||||
AC_REQUIRE([AC_PROG_CXX])
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([gr_libdir_suffix])
|
|
||||||
gr_libdir_suffix=""
|
|
||||||
AC_SUBST(gr_libdir_suffix)
|
|
||||||
|
|
||||||
case "$host_os" in
|
|
||||||
linux*) is_linux=yes ;;
|
|
||||||
*) is_linux=no ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if test "$is_linux" = no || test "$host_cpu" != "x86_64" && test "$host_cpu" != "powerpc64"; then
|
|
||||||
gr_libdir_suffix=""
|
|
||||||
elif test "$cross_compiling" = yes; then
|
|
||||||
_GR_LIB64_ASK_COMPILER
|
|
||||||
elif test "$host_cpu" = "x86_64"; then
|
|
||||||
if test -d /lib64 && test ! -L /lib64; then
|
|
||||||
gr_libdir_suffix=64
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
_GR_LIB64_ASK_COMPILER
|
|
||||||
fi
|
|
||||||
AC_MSG_RESULT([$gr_libdir_suffix])
|
|
||||||
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether to append 64 to libdir])
|
|
||||||
t=${libdir##*/lib}
|
|
||||||
if test "$t" != 64 && test "$gr_libdir_suffix" = "64"; then
|
|
||||||
libdir=${libdir}64
|
|
||||||
AC_MSG_RESULT([yes. Setting libdir to $libdir])
|
|
||||||
else
|
|
||||||
AC_MSG_RESULT([no])
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl If we're using g++, extract the first SEARCH_DIR("...") entry from the linker script
|
|
||||||
dnl and see if it contains a suffix after the final .../lib part of the path.
|
|
||||||
dnl (This works because the linker script varies depending on whether we're generating
|
|
||||||
dnl 32-bit or 64-bit executables)
|
|
||||||
dnl
|
|
||||||
AC_DEFUN([_GR_LIB64_ASK_COMPILER],[
|
|
||||||
if test "$ac_cv_cxx_compiler_gnu" = "yes";
|
|
||||||
then
|
|
||||||
gr_libdir_suffix=`$CXX -Wl,--verbose 2>/dev/null | sed -n -e '/SEARCH_DIR/{s/;.*$//; s,^.*/,,; s/".*$//; s/^lib//; p}'`
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
@ -1,40 +0,0 @@
|
|||||||
# Check for (MinGW)win32 extra ld options. -*- Autoconf -*-
|
|
||||||
|
|
||||||
# Copyright 2003,2004,2005 Free Software Foundation, Inc.
|
|
||||||
#
|
|
||||||
# This file is part of GNU Radio
|
|
||||||
#
|
|
||||||
# GNU Radio is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 3, or (at your option)
|
|
||||||
# any later version.
|
|
||||||
#
|
|
||||||
# GNU Radio is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with GNU Radio; see the file COPYING. If not, write to
|
|
||||||
# the Free Software Foundation, Inc., 51 Franklin Street,
|
|
||||||
# Boston, MA 02110-1301, USA.
|
|
||||||
|
|
||||||
dnl
|
|
||||||
AC_DEFUN([GR_LIBGNURADIO_CORE_EXTRA_LDFLAGS], [
|
|
||||||
AC_REQUIRE([AC_PROG_LD])
|
|
||||||
# on Mingw32 extra LDFLAGS are required to ease global variable linking
|
|
||||||
LIBGNURADIO_CORE_EXTRA_LDFLAGS=""
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether $LD accepts --enable-runtime-pseudo-reloc])
|
|
||||||
if ${LD} --enable-runtime-pseudo-reloc --version >/dev/null 2>&1
|
|
||||||
then
|
|
||||||
# libtool requires the quotes
|
|
||||||
LIBGNURADIO_CORE_EXTRA_LDFLAGS="\"-Wl,--enable-runtime-pseudo-reloc\""
|
|
||||||
AC_MSG_RESULT(yes)
|
|
||||||
else
|
|
||||||
AC_MSG_RESULT(no)
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_SUBST(LIBGNURADIO_CORE_EXTRA_LDFLAGS)
|
|
||||||
|
|
||||||
])
|
|
@ -1,44 +0,0 @@
|
|||||||
dnl
|
|
||||||
dnl Copyright 2005 Free Software Foundation, Inc.
|
|
||||||
dnl
|
|
||||||
dnl This file is part of GNU Radio
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is free software; you can redistribute it and/or modify
|
|
||||||
dnl it under the terms of the GNU General Public License as published by
|
|
||||||
dnl the Free Software Foundation; either version 3, or (at your option)
|
|
||||||
dnl any later version.
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is distributed in the hope that it will be useful,
|
|
||||||
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
dnl GNU General Public License for more details.
|
|
||||||
dnl
|
|
||||||
dnl You should have received a copy of the GNU General Public License
|
|
||||||
dnl along with GNU Radio; see the file COPYING. If not, write to
|
|
||||||
dnl the Free Software Foundation, Inc., 51 Franklin Street,
|
|
||||||
dnl Boston, MA 02110-1301, USA.
|
|
||||||
dnl
|
|
||||||
|
|
||||||
# GR_NO_UNDEFINED()
|
|
||||||
#
|
|
||||||
# Detemine whether we need to use the -no-undefined linker flag
|
|
||||||
# when building shared libraries.
|
|
||||||
# Sets NO_UNDEFINED to "" or "-no-undefined"
|
|
||||||
#
|
|
||||||
# As far as I can tell, we need -no-undefined only when building
|
|
||||||
# windows DLLs. This occurs when using MinGW and Cygwin.
|
|
||||||
#
|
|
||||||
# For now, we stub this out.
|
|
||||||
|
|
||||||
AC_DEFUN([GR_NO_UNDEFINED],[
|
|
||||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
|
||||||
no_undefined=""
|
|
||||||
case "${host_os}" in
|
|
||||||
*mingw* | *cygwin*)
|
|
||||||
|
|
||||||
# on MinGW/Cygwin extra LDFLAGS are required
|
|
||||||
no_undefined="-no-undefined"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
AC_SUBST(NO_UNDEFINED,[$no_undefined])
|
|
||||||
])
|
|
@ -1,52 +0,0 @@
|
|||||||
# Check for Omnithread (pthread/NT) thread support. -*- Autoconf -*-
|
|
||||||
|
|
||||||
# Copyright 2003,2007 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 3, or (at your option)
|
|
||||||
# any later version.
|
|
||||||
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program; if not, write to the Free Software
|
|
||||||
# Foundation, Inc., 51 Franklin Street, Boston, MA
|
|
||||||
# 02110-1301, USA.
|
|
||||||
|
|
||||||
AC_DEFUN([GR_OMNITHREAD],
|
|
||||||
[
|
|
||||||
# Check first for POSIX
|
|
||||||
ACX_PTHREAD(
|
|
||||||
[ AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.])
|
|
||||||
ot_posix="yes"
|
|
||||||
DEFINES="$DEFINES -DOMNITHREAD_POSIX=1"
|
|
||||||
],[
|
|
||||||
# If no POSIX support found, then check for NT threads
|
|
||||||
AC_MSG_CHECKING([for NT threads])
|
|
||||||
|
|
||||||
AC_LINK_IFELSE([
|
|
||||||
#include <windows.h>
|
|
||||||
#include <winbase.h>
|
|
||||||
int main() { InitializeCriticalSection(NULL); return 0; }
|
|
||||||
],
|
|
||||||
[
|
|
||||||
ot_nt="yes"
|
|
||||||
DEFINES="$DEFINES -DOMNITHREAD_NT=1"
|
|
||||||
],
|
|
||||||
[AC_MSG_FAILURE([GNU Radio requires POSIX threads. pthreads not found.])]
|
|
||||||
)
|
|
||||||
AC_MSG_RESULT(yes)
|
|
||||||
])
|
|
||||||
AM_CONDITIONAL(OMNITHREAD_POSIX, test "x$ot_posix" = xyes)
|
|
||||||
AM_CONDITIONAL(OMNITHREAD_NT, test "x$ot_nt" = xyes)
|
|
||||||
|
|
||||||
save_LIBS="$LIBS"
|
|
||||||
AC_SEARCH_LIBS([clock_gettime], [rt], [PTHREAD_LIBS="$PTHREAD_LIBS $LIBS"])
|
|
||||||
AC_CHECK_FUNCS([clock_gettime gettimeofday nanosleep])
|
|
||||||
LIBS="$save_LIBS"
|
|
||||||
])
|
|
||||||
|
|
@ -1,146 +0,0 @@
|
|||||||
# Check for (mingw)win32 POSIX replacements. -*- Autoconf -*-
|
|
||||||
|
|
||||||
# Copyright 2003,2004,2005 Free Software Foundation, Inc.
|
|
||||||
#
|
|
||||||
# This file is part of GNU Radio
|
|
||||||
#
|
|
||||||
# GNU Radio is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 3, or (at your option)
|
|
||||||
# any later version.
|
|
||||||
#
|
|
||||||
# GNU Radio is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with GNU Radio; see the file COPYING. If not, write to
|
|
||||||
# the Free Software Foundation, Inc., 51 Franklin Street,
|
|
||||||
# Boston, MA 02110-1301, USA.
|
|
||||||
|
|
||||||
|
|
||||||
AC_DEFUN([GR_PWIN32],
|
|
||||||
[
|
|
||||||
AC_REQUIRE([AC_HEADER_TIME])
|
|
||||||
AC_CHECK_HEADERS([sys/types.h fcntl.h io.h])
|
|
||||||
AC_CHECK_HEADERS([windows.h])
|
|
||||||
AC_CHECK_HEADERS([winioctl.h winbase.h], [], [], [
|
|
||||||
#if HAVE_WINDOWS_H
|
|
||||||
#include <windows.h>
|
|
||||||
#endif
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_CHECK_FUNCS([getopt usleep gettimeofday nanosleep rand srand random srandom sleep sigaction])
|
|
||||||
AC_CHECK_TYPES([struct timezone, struct timespec, ssize_t],[],[],[
|
|
||||||
#if HAVE_SYS_TYPES_H
|
|
||||||
# include <sys/types.h>
|
|
||||||
#endif
|
|
||||||
#if TIME_WITH_SYS_TIME
|
|
||||||
# include <sys/time.h>
|
|
||||||
# include <time.h>
|
|
||||||
#else
|
|
||||||
# if HAVE_SYS_TIME_H
|
|
||||||
# include <sys/time.h>
|
|
||||||
# else
|
|
||||||
# include <time.h>
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl Checks for replacements
|
|
||||||
AC_REPLACE_FUNCS([getopt usleep gettimeofday])
|
|
||||||
|
|
||||||
|
|
||||||
AC_MSG_CHECKING(for Sleep)
|
|
||||||
AC_TRY_LINK([ #include <windows.h>
|
|
||||||
#include <winbase.h>
|
|
||||||
], [ Sleep(0); ],
|
|
||||||
[AC_DEFINE(HAVE_SSLEEP,1,[Define to 1 if you have win32 Sleep])
|
|
||||||
AC_MSG_RESULT(yes)],
|
|
||||||
AC_MSG_RESULT(no)
|
|
||||||
)
|
|
||||||
|
|
||||||
dnl Under Win32, mkdir prototype in io.h has only one arg
|
|
||||||
AC_MSG_CHECKING(whether mkdir accepts only one arg)
|
|
||||||
AC_TRY_COMPILE([#include <sys/types.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <fcntl.h>], [
|
|
||||||
mkdir("")
|
|
||||||
], [ AC_MSG_RESULT(yes)
|
|
||||||
AC_DEFINE(MKDIR_TAKES_ONE_ARG,[],[Define if mkdir accepts only one arg]) ],
|
|
||||||
[ AC_MSG_RESULT(no)
|
|
||||||
])
|
|
||||||
|
|
||||||
AH_BOTTOM(
|
|
||||||
[
|
|
||||||
/* Define missing prototypes, implemented in replacement lib */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef HAVE_GETOPT
|
|
||||||
int getopt (int argc, char * const argv[], const char * optstring);
|
|
||||||
extern char * optarg;
|
|
||||||
extern int optind, opterr, optopt;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef HAVE_USLEEP
|
|
||||||
int usleep(unsigned long usec); /* SUSv2 */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef HAVE_NANOSLEEP
|
|
||||||
#ifndef HAVE_STRUCT_TIMESPEC
|
|
||||||
#if HAVE_SYS_TYPES_H
|
|
||||||
# include <sys/types.h> /* need time_t */
|
|
||||||
#endif
|
|
||||||
struct timespec {
|
|
||||||
time_t tv_sec;
|
|
||||||
long tv_nsec;
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
static inline int nanosleep(const struct timespec *req, struct timespec *rem) { return usleep(req->tv_sec*1000000+req->tv_nsec/1000); }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(HAVE_SSLEEP) && !defined(HAVE_SLEEP)
|
|
||||||
#ifdef HAVE_WINBASE_H
|
|
||||||
#include <windows.h>
|
|
||||||
#include <winbase.h>
|
|
||||||
#endif
|
|
||||||
/* TODO: what about SleepEx? */
|
|
||||||
static inline unsigned int sleep (unsigned int nb_sec) { Sleep(nb_sec*1000); return 0; }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef HAVE_GETTIMEOFDAY
|
|
||||||
#ifdef HAVE_SYS_TIME_H
|
|
||||||
#include <sys/time.h>
|
|
||||||
#endif
|
|
||||||
#ifndef HAVE_STRUCT_TIMEZONE
|
|
||||||
struct timezone {
|
|
||||||
int tz_minuteswest;
|
|
||||||
int tz_dsttime;
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
int gettimeofday(struct timeval *tv, struct timezone *tz);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(HAVE_RANDOM) && defined(HAVE_RAND)
|
|
||||||
#include <stdlib.h>
|
|
||||||
static inline long int random (void) { return rand(); }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(HAVE_SRANDOM) && defined(HAVE_SRAND)
|
|
||||||
static inline void srandom (unsigned int seed) { srand(seed); }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef HAVE_SSIZE_T
|
|
||||||
typedef size_t ssize_t;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
])
|
|
||||||
|
|
||||||
|
|
||||||
])
|
|
@ -1,128 +0,0 @@
|
|||||||
dnl
|
|
||||||
dnl Copyright 2003,2004,2005 Free Software Foundation, Inc.
|
|
||||||
dnl
|
|
||||||
dnl This file is part of GNU Radio
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is free software; you can redistribute it and/or modify
|
|
||||||
dnl it under the terms of the GNU General Public License as published by
|
|
||||||
dnl the Free Software Foundation; either version 3, or (at your option)
|
|
||||||
dnl any later version.
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is distributed in the hope that it will be useful,
|
|
||||||
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
dnl GNU General Public License for more details.
|
|
||||||
dnl
|
|
||||||
dnl You should have received a copy of the GNU General Public License
|
|
||||||
dnl along with GNU Radio; see the file COPYING. If not, write to
|
|
||||||
dnl the Free Software Foundation, Inc., 51 Franklin Street,
|
|
||||||
dnl Boston, MA 02110-1301, USA.
|
|
||||||
dnl
|
|
||||||
|
|
||||||
# PYTHON_DEVEL()
|
|
||||||
#
|
|
||||||
# Checks for Python and tries to get the include path to 'Python.h'.
|
|
||||||
# It sets the $(PYTHON_CPPFLAGS), $(PYTHON_LDFLAGS) and $(pythondir) output variables,
|
|
||||||
#
|
|
||||||
AC_DEFUN([PYTHON_DEVEL],[
|
|
||||||
AC_REQUIRE([AM_PATH_PYTHON])
|
|
||||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
|
||||||
|
|
||||||
AC_ARG_WITH(pythondir,
|
|
||||||
AC_HELP_STRING([--with-pythondir=DIR],
|
|
||||||
[python installation directory (cross-compiling) [[default=$prefix/lib/python2.5/site-packages]]]),
|
|
||||||
[with_pythondir=${withval}],[with_pythondir=${prefix}/lib/python2.5/site-packages])
|
|
||||||
|
|
||||||
# if we're cross-compiling, asking the host python about any of
|
|
||||||
# this is completely useless...
|
|
||||||
|
|
||||||
if test x$cross_compiling != xno
|
|
||||||
then
|
|
||||||
pythondir=$with_pythondir
|
|
||||||
pyexecdir=$with_pythondir
|
|
||||||
AC_SUBST(PYTHON_CPPFLAGS)
|
|
||||||
AC_SUBST(PYTHON_LDFLAGS)
|
|
||||||
else
|
|
||||||
|
|
||||||
# For Fedora Core 5 and 6, see ticket:39 in Trac
|
|
||||||
if test -f '/etc/redhat-release'; then
|
|
||||||
if (echo $pyexecdir | grep -q lib64); then
|
|
||||||
pythondir="$pyexecdir"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check for Python include path
|
|
||||||
AC_MSG_CHECKING([for Python include path])
|
|
||||||
if test -z "$PYTHON" ; then
|
|
||||||
AC_MSG_ERROR([cannot find Python path])
|
|
||||||
fi
|
|
||||||
|
|
||||||
# ask distutils which include path we should use
|
|
||||||
python_cmd='
|
|
||||||
import distutils.sysconfig
|
|
||||||
import os
|
|
||||||
path = distutils.sysconfig.get_python_inc(plat_specific=False)
|
|
||||||
if os.sep == "\\":
|
|
||||||
path = path.replace("\\", "/")
|
|
||||||
print path
|
|
||||||
'
|
|
||||||
python_path=`$PYTHON -c "$python_cmd"`
|
|
||||||
AC_MSG_RESULT([$python_path])
|
|
||||||
if test -z "$python_path" ; then
|
|
||||||
AC_MSG_ERROR([cannot find Python include path])
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_SUBST(PYTHON_CPPFLAGS,[-I$python_path])
|
|
||||||
|
|
||||||
# Check for Python headers usability
|
|
||||||
python_save_CPPFLAGS=$CPPFLAGS
|
|
||||||
CPPFLAGS="$CPPFLAGS $PYTHON_CPPFLAGS"
|
|
||||||
AC_CHECK_HEADERS([Python.h], [],
|
|
||||||
[AC_MSG_ERROR([cannot find usable Python headers])])
|
|
||||||
CPPFLAGS="$python_save_CPPFLAGS"
|
|
||||||
|
|
||||||
# Only set this on mingw and cygwin hosts, (only implemented
|
|
||||||
# for mingw host, for crosscompiling you need to trick this)
|
|
||||||
|
|
||||||
PYTHON_LDFLAGS=""
|
|
||||||
case $host_os in
|
|
||||||
*mingw* | *cygwin* )
|
|
||||||
AC_MSG_CHECKING([for Python LDFLAGS])
|
|
||||||
|
|
||||||
python_cmd='
|
|
||||||
import distutils.sysconfig
|
|
||||||
import os
|
|
||||||
path = distutils.sysconfig.get_config_var("LIBPL")
|
|
||||||
if path == None:
|
|
||||||
path = distutils.sysconfig.PREFIX + "/libs"
|
|
||||||
if os.sep == "\\":
|
|
||||||
path = path.replace("\\", "/")
|
|
||||||
print path
|
|
||||||
'
|
|
||||||
python_stdlib_path=`$PYTHON -c "$python_cmd"`
|
|
||||||
|
|
||||||
python_version_nodot=`echo $PYTHON_VERSION | sed "s,\.,,"`
|
|
||||||
libpython_name="python$PYTHON_VERSION"
|
|
||||||
|
|
||||||
# Standard install of python for win32 has libpython24.a
|
|
||||||
# instead of libpython2.4.a so we check for the library
|
|
||||||
# without the dot in the version number.
|
|
||||||
|
|
||||||
python_stdlib_filename=`find $python_stdlib_path -type f -name libpython$python_version_nodot.* -print | sed "1q"`
|
|
||||||
if test -n "$python_stdlib_filename" ; then
|
|
||||||
libpython_name="python$python_version_nodot"
|
|
||||||
fi
|
|
||||||
|
|
||||||
PYTHON_LDFLAGS="-L$python_stdlib_path -l$libpython_name"
|
|
||||||
AC_MSG_RESULT($PYTHON_LDFLAGS)
|
|
||||||
# Replace all backslashes in PYTHON Paths with forward slashes
|
|
||||||
pythondir=`echo $pythondir |sed 's,\\\\,/,g'`
|
|
||||||
pkgpythondir=`echo $pkgpythondir |sed 's,\\\\,/,g'`
|
|
||||||
pyexecdir=`echo $pyexecdir |sed 's,\\\\,/,g'`
|
|
||||||
pkgpyexecdir=`echo $pkgpyexecdir |sed 's,\\\\,/,g'`
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
AC_SUBST(PYTHON_LDFLAGS)
|
|
||||||
fi
|
|
||||||
])
|
|
@ -1,33 +0,0 @@
|
|||||||
dnl
|
|
||||||
dnl Copyright 2003,2004 Free Software Foundation, Inc.
|
|
||||||
dnl
|
|
||||||
dnl This file is part of GNU Radio
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is free software; you can redistribute it and/or modify
|
|
||||||
dnl it under the terms of the GNU General Public License as published by
|
|
||||||
dnl the Free Software Foundation; either version 3, or (at your option)
|
|
||||||
dnl any later version.
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is distributed in the hope that it will be useful,
|
|
||||||
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
dnl GNU General Public License for more details.
|
|
||||||
dnl
|
|
||||||
dnl You should have received a copy of the GNU General Public License
|
|
||||||
dnl along with GNU Radio; see the file COPYING. If not, write to
|
|
||||||
dnl the Free Software Foundation, Inc., 51 Franklin Street,
|
|
||||||
dnl Boston, MA 02110-1301, USA.
|
|
||||||
dnl
|
|
||||||
|
|
||||||
AC_DEFUN([GR_REQUIRE_MC4020],[
|
|
||||||
AC_MSG_CHECKING([for mc4020 A/D driver include file])
|
|
||||||
AC_COMPILE_IFELSE([
|
|
||||||
#include <mc4020.h>
|
|
||||||
int main (int argc, char **argv)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
],[AC_MSG_RESULT([yes])],
|
|
||||||
[AC_MSG_RESULT([no])
|
|
||||||
AC_MSG_ERROR([mc4020.h not found.])])
|
|
||||||
])
|
|
@ -1,30 +0,0 @@
|
|||||||
dnl
|
|
||||||
dnl Copyright 2003 Free Software Foundation, Inc.
|
|
||||||
dnl
|
|
||||||
dnl This file is part of GNU Radio
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is free software; you can redistribute it and/or modify
|
|
||||||
dnl it under the terms of the GNU General Public License as published by
|
|
||||||
dnl the Free Software Foundation; either version 3, or (at your option)
|
|
||||||
dnl any later version.
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is distributed in the hope that it will be useful,
|
|
||||||
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
dnl GNU General Public License for more details.
|
|
||||||
dnl
|
|
||||||
dnl You should have received a copy of the GNU General Public License
|
|
||||||
dnl along with GNU Radio; see the file COPYING. If not, write to
|
|
||||||
dnl the Free Software Foundation, Inc., 51 Franklin Street,
|
|
||||||
dnl Boston, MA 02110-1301, USA.
|
|
||||||
dnl
|
|
||||||
|
|
||||||
AC_DEFUN([GR_SCRIPTING],[
|
|
||||||
AC_REQUIRE([AC_PROG_LN_S])
|
|
||||||
AC_REQUIRE([AC_PROG_CXX])
|
|
||||||
AC_REQUIRE([AC_PROG_LIBTOOL])
|
|
||||||
|
|
||||||
SWIG_PROG(1.3.31)
|
|
||||||
SWIG_ENABLE_CXX
|
|
||||||
SWIG_PYTHON
|
|
||||||
])
|
|
@ -1,44 +0,0 @@
|
|||||||
dnl
|
|
||||||
dnl Copyright 2003,2008 Free Software Foundation, Inc.
|
|
||||||
dnl
|
|
||||||
dnl This file is part of GNU Radio
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is free software; you can redistribute it and/or modify
|
|
||||||
dnl it under the terms of the GNU General Public License as published by
|
|
||||||
dnl the Free Software Foundation; either version 3, or (at your option)
|
|
||||||
dnl any later version.
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is distributed in the hope that it will be useful,
|
|
||||||
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
dnl GNU General Public License for more details.
|
|
||||||
dnl
|
|
||||||
dnl You should have received a copy of the GNU General Public License
|
|
||||||
dnl along with GNU Radio; see the file COPYING. If not, write to
|
|
||||||
dnl the Free Software Foundation, Inc., 51 Franklin Street,
|
|
||||||
dnl Boston, MA 02110-1301, USA.
|
|
||||||
dnl
|
|
||||||
|
|
||||||
AC_DEFUN([GR_SET_MD_CPU],[
|
|
||||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
|
||||||
AC_ARG_WITH(md-cpu,
|
|
||||||
[ --with-md-cpu=ARCH set machine dependent speedups (auto)],
|
|
||||||
[cf_with_md_cpu="$withval"],
|
|
||||||
[cf_with_md_cpu="$host_cpu"])
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([for machine dependent speedups])
|
|
||||||
case "$cf_with_md_cpu" in
|
|
||||||
x86 | i[[3-7]]86) MD_CPU=x86 MD_SUBCPU=x86 ;;
|
|
||||||
x86_64) MD_CPU=x86 MD_SUBCPU=x86_64 ;;
|
|
||||||
powerpc*) MD_CPU=powerpc ;;
|
|
||||||
*) MD_CPU=generic ;;
|
|
||||||
esac
|
|
||||||
AC_MSG_RESULT($MD_CPU)
|
|
||||||
AC_SUBST(MD_CPU)
|
|
||||||
AC_SUBST(MD_SUBCPU)
|
|
||||||
|
|
||||||
AM_CONDITIONAL(MD_CPU_x86, test "$MD_CPU" = "x86")
|
|
||||||
AM_CONDITIONAL(MD_SUBCPU_x86_64, test "$MD_SUBCPU" = "x86_64")
|
|
||||||
AM_CONDITIONAL(MD_CPU_powerpc, test "$MD_CPU" = "powerpc")
|
|
||||||
AM_CONDITIONAL(MD_CPU_generic, test "$MD_CPU" = "generic")
|
|
||||||
])
|
|
@ -1,119 +0,0 @@
|
|||||||
dnl
|
|
||||||
dnl Copyright 2008,2009 Free Software Foundation, Inc.
|
|
||||||
dnl
|
|
||||||
dnl This file is part of GNU Radio
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is free software; you can redistribute it and/or modify
|
|
||||||
dnl it under the terms of the GNU General Public License as published by
|
|
||||||
dnl the Free Software Foundation; either version 3, or (at your option)
|
|
||||||
dnl any later version.
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is distributed in the hope that it will be useful,
|
|
||||||
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
dnl GNU General Public License for more details.
|
|
||||||
dnl
|
|
||||||
dnl You should have received a copy of the GNU General Public License along
|
|
||||||
dnl with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
dnl 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
dnl
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl GR_STANDALONE([package],[version])
|
|
||||||
dnl
|
|
||||||
dnl Handles the bulk of the configure.ac work for an out-of-tree build
|
|
||||||
dnl
|
|
||||||
dnl N.B., this is an m4_define because if it were an AC_DEFUN it would
|
|
||||||
dnl get called too late to be useful.
|
|
||||||
|
|
||||||
m4_define([GR_STANDALONE],
|
|
||||||
[
|
|
||||||
AC_CONFIG_SRCDIR([config/gr_standalone.m4])
|
|
||||||
AM_CONFIG_HEADER(config.h)
|
|
||||||
|
|
||||||
AC_CANONICAL_BUILD
|
|
||||||
AC_CANONICAL_HOST
|
|
||||||
AC_CANONICAL_TARGET
|
|
||||||
|
|
||||||
AM_INIT_AUTOMAKE
|
|
||||||
|
|
||||||
dnl Remember if the user explicity set CXXFLAGS
|
|
||||||
if test -n "${CXXFLAGS}"; then
|
|
||||||
user_set_cxxflags=yes
|
|
||||||
fi
|
|
||||||
|
|
||||||
LF_CONFIGURE_CC
|
|
||||||
LF_CONFIGURE_CXX
|
|
||||||
GR_LIB64 dnl check for lib64 suffix after choosing compilers
|
|
||||||
|
|
||||||
dnl The three macros above are known to override CXXFLAGS if the user
|
|
||||||
dnl didn't specify them. Though I'm sure somebody thought this was
|
|
||||||
dnl a good idea, it makes it hard to use other than -g -O2 when compiling
|
|
||||||
dnl selected files. Thus we "undo" the damage here...
|
|
||||||
dnl
|
|
||||||
dnl If the user specified CXXFLAGS, we use them. Otherwise when compiling
|
|
||||||
dnl the output of swig use use -O1 if we're using g++.
|
|
||||||
dnl See Makefile.common for the rest of the magic.
|
|
||||||
if test "$user_set_cxxflags" != yes; then
|
|
||||||
autoconf_default_CXXFLAGS="$CXXFLAGS"
|
|
||||||
if test "$GXX" = yes; then
|
|
||||||
case "$host_cpu" in
|
|
||||||
powerpc*)
|
|
||||||
dnl "-O1" is broken on the PPC for some reason
|
|
||||||
dnl (at least as of g++ 4.1.1)
|
|
||||||
swig_CXXFLAGS="-g1 -O2 -Wno-strict-aliasing -Wno-parentheses"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
swig_CXXFLAGS="-g -O1 -Wno-strict-aliasing -Wno-parentheses"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
AC_SUBST(autoconf_default_CXXFLAGS)
|
|
||||||
AC_SUBST(swig_CXXFLAGS)
|
|
||||||
|
|
||||||
dnl add ${prefix}/lib${gr_libdir_suffix}/pkgconfig to the head of the PKG_CONFIG_PATH
|
|
||||||
if test x${PKG_CONFIG_PATH} = x; then
|
|
||||||
PKG_CONFIG_PATH=${prefix}/lib${gr_libdir_suffix}/pkgconfig
|
|
||||||
else
|
|
||||||
PKG_CONFIG_PATH=${prefix}/lib${gr_libdir_suffix}/pkgconfig:${PKG_CONFIG_PATH}
|
|
||||||
fi
|
|
||||||
export PKG_CONFIG_PATH
|
|
||||||
|
|
||||||
LF_SET_WARNINGS
|
|
||||||
GR_SET_GPROF
|
|
||||||
GR_SET_PROF
|
|
||||||
AM_PROG_AS
|
|
||||||
AC_PROG_LN_S
|
|
||||||
AC_PROG_MAKE_SET
|
|
||||||
AC_PROG_INSTALL
|
|
||||||
AC_PATH_PROG([RM_PROG], [rm])
|
|
||||||
|
|
||||||
AC_LIBTOOL_WIN32_DLL
|
|
||||||
AC_ENABLE_SHARED dnl do build shared libraries
|
|
||||||
AC_DISABLE_STATIC dnl don't build static libraries
|
|
||||||
m4_ifdef([LT_INIT],[LT_INIT],[AC_PROG_LIBTOOL])
|
|
||||||
dnl GR_FORTRAN
|
|
||||||
|
|
||||||
GR_NO_UNDEFINED dnl do we need the -no-undefined linker flag
|
|
||||||
GR_SCRIPTING dnl Locate python, SWIG, etc
|
|
||||||
|
|
||||||
dnl Checks for header files.
|
|
||||||
AC_HEADER_STDC
|
|
||||||
|
|
||||||
dnl Checks for typedefs, structures, and compiler characteristics.
|
|
||||||
AC_C_CONST
|
|
||||||
AC_C_INLINE
|
|
||||||
AC_TYPE_SIZE_T
|
|
||||||
AC_HEADER_TIME
|
|
||||||
AC_C_BIGENDIAN
|
|
||||||
|
|
||||||
dnl Check for Mingw support
|
|
||||||
GR_PWIN32
|
|
||||||
|
|
||||||
AC_CHECK_PROG([XMLTO],[xmlto],[yes],[])
|
|
||||||
AM_CONDITIONAL([HAS_XMLTO], [test x$XMLTO = xyes])
|
|
||||||
|
|
||||||
PKG_CHECK_MODULES(GNURADIO_CORE, gnuradio-core >= 3)
|
|
||||||
LIBS="$LIBS $GNURADIO_CORE_LIBS"
|
|
||||||
])
|
|
@ -1,36 +0,0 @@
|
|||||||
dnl
|
|
||||||
dnl Copyright 2007 Free Software Foundation, Inc.
|
|
||||||
dnl
|
|
||||||
dnl This file is part of GNU Radio
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is free software; you can redistribute it and/or modify
|
|
||||||
dnl it under the terms of the GNU General Public License as published by
|
|
||||||
dnl the Free Software Foundation; either version 3, or (at your option)
|
|
||||||
dnl any later version.
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is distributed in the hope that it will be useful,
|
|
||||||
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
dnl GNU General Public License for more details.
|
|
||||||
dnl
|
|
||||||
dnl You should have received a copy of the GNU General Public License
|
|
||||||
dnl along with GNU Radio; see the file COPYING. If not, write to
|
|
||||||
dnl the Free Software Foundation, Inc., 51 Franklin Street,
|
|
||||||
dnl Boston, MA 02110-1301, USA.
|
|
||||||
dnl
|
|
||||||
|
|
||||||
# GR_SUBVERSION()
|
|
||||||
#
|
|
||||||
# Test for presence of subversion, and create variables for
|
|
||||||
# current repository version and last changed date.
|
|
||||||
|
|
||||||
AC_DEFUN([GR_SUBVERSION],[
|
|
||||||
AC_PATH_PROG([SVN],[svn])
|
|
||||||
if test "$SVN" != "" -a -d .svn ; then
|
|
||||||
SVNVERSION=`$SVN info . | grep '^Revision' | cut -f 2- -d ' '`
|
|
||||||
SVNDATE=`$SVN info . | grep 'Last Changed Date' | cut -f 4-6 -d ' '`
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_SUBST(SVNVERSION)
|
|
||||||
AC_SUBST(SVNDATE)
|
|
||||||
])
|
|
@ -1,85 +0,0 @@
|
|||||||
dnl
|
|
||||||
dnl Copyright 2003 Free Software Foundation, Inc.
|
|
||||||
dnl
|
|
||||||
dnl This file is part of GNU Radio
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is free software; you can redistribute it and/or modify
|
|
||||||
dnl it under the terms of the GNU General Public License as published by
|
|
||||||
dnl the Free Software Foundation; either version 3, or (at your option)
|
|
||||||
dnl any later version.
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is distributed in the hope that it will be useful,
|
|
||||||
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
dnl GNU General Public License for more details.
|
|
||||||
dnl
|
|
||||||
dnl You should have received a copy of the GNU General Public License
|
|
||||||
dnl along with GNU Radio; see the file COPYING. If not, write to
|
|
||||||
dnl the Free Software Foundation, Inc., 51 Franklin Street,
|
|
||||||
dnl Boston, MA 02110-1301, USA.
|
|
||||||
dnl
|
|
||||||
|
|
||||||
# SWIG_PROG([required-version])
|
|
||||||
#
|
|
||||||
# Checks for the SWIG program. If found you can (and should) call SWIG via $(SWIG).
|
|
||||||
# You can use the optional first argument to check if the version of the available SWIG
|
|
||||||
# is greater or equal to the value of the argument. It should have the format:
|
|
||||||
# N[.N[.N]] (N is a number between 0 and 999. Only the first N is mandatory.)
|
|
||||||
AC_DEFUN([SWIG_PROG],[
|
|
||||||
AC_REQUIRE([AC_PROG_MAKE_SET])
|
|
||||||
AC_CHECK_PROG(SWIG,swig,[`which swig`])
|
|
||||||
if test -z "$SWIG" ; then
|
|
||||||
AC_MSG_ERROR([Cannot find 'swig' program. SWIG version >= $1 required])
|
|
||||||
SWIG=false
|
|
||||||
elif test -n "$1" ; then
|
|
||||||
AC_MSG_CHECKING([for SWIG version])
|
|
||||||
swig_version=`$SWIG -version 2>&1 | \
|
|
||||||
awk '/^SWIG Version [[0-9]+\.[0-9]+\.[0-9]]+.*$/ { split($[3],a,"[[^.0-9]]"); print a[[1]] }'`
|
|
||||||
AC_MSG_RESULT([$swig_version])
|
|
||||||
if test -n "$swig_version" ; then
|
|
||||||
swig_version=`echo $swig_version | \
|
|
||||||
awk '{ split($[1],a,"\."); print [a[1]*1000000+a[2]*1000+a[3]] }' 2>/dev/null`
|
|
||||||
swig_required_version=`echo $1 | \
|
|
||||||
awk '{ split($[1],a,"\."); print [a[1]*1000000+a[2]*1000+a[3]] }' 2>/dev/null`
|
|
||||||
if test $swig_required_version -gt $swig_version ; then
|
|
||||||
AC_MSG_ERROR([SWIG version >= $1 required])
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
AC_MSG_ERROR([cannot determine SWIG version])
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
# SWIG_ENABLE_CXX()
|
|
||||||
#
|
|
||||||
# Enable swig C++ support. This effects all invocations of $(SWIG).
|
|
||||||
AC_DEFUN([SWIG_ENABLE_CXX],[
|
|
||||||
AC_REQUIRE([SWIG_PROG])
|
|
||||||
AC_REQUIRE([AC_PROG_CXX])
|
|
||||||
if test "$SWIG" != "false" ; then
|
|
||||||
SWIG="$SWIG -c++"
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
# SWIG_PYTHON([use-shadow-classes])
|
|
||||||
#
|
|
||||||
# Checks for Python and provides the $(SWIG_PYTHON_CPPFLAGS),
|
|
||||||
# $(SWIG_PYTHON_LIB) and $(SWIG_PYTHON_OPT) output variables.
|
|
||||||
# $(SWIG_PYTHON_OPT) contains all necessary swig options to generate
|
|
||||||
# code for Python. If you need multi module support use
|
|
||||||
# $(SWIG_PYTHON_LIB) (provided by the SWIG_MULTI_MODULE_SUPPORT()
|
|
||||||
# macro) to link against the appropriate library. It contains the
|
|
||||||
# SWIG Python runtime library that is needed by the type check system
|
|
||||||
# for example.
|
|
||||||
|
|
||||||
AC_DEFUN([SWIG_PYTHON],[
|
|
||||||
AC_REQUIRE([SWIG_PROG])
|
|
||||||
AC_REQUIRE([PYTHON_DEVEL])
|
|
||||||
if test "$SWIG" != "false" ; then
|
|
||||||
AC_SUBST(SWIG_PYTHON_LIB,[-lswigpy])
|
|
||||||
dnl test ! "x$1" = "xno" && swig_shadow=" -shadow" || swig_shadow=""
|
|
||||||
dnl AC_SUBST(SWIG_PYTHON_OPT,[-python$swig_shadow])
|
|
||||||
AC_SUBST(SWIG_PYTHON_OPT,[-python])
|
|
||||||
fi
|
|
||||||
AC_SUBST(SWIG_PYTHON_CPPFLAGS,[$PYTHON_CPPFLAGS])
|
|
||||||
])
|
|
@ -1,36 +0,0 @@
|
|||||||
# Check for IPC System V shm support. -*- Autoconf -*-
|
|
||||||
|
|
||||||
# Copyright 2003 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 3, or (at your option)
|
|
||||||
# any later version.
|
|
||||||
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program; if not, write to the Free Software
|
|
||||||
# Foundation, Inc., 51 Franklin Street, Boston, MA
|
|
||||||
# 02110-1301, USA.
|
|
||||||
|
|
||||||
AC_DEFUN([GR_SYSV_SHM],
|
|
||||||
[
|
|
||||||
AC_LANG_SAVE
|
|
||||||
AC_LANG_C
|
|
||||||
|
|
||||||
AC_CHECK_HEADERS([sys/ipc.h sys/shm.h])
|
|
||||||
|
|
||||||
save_LIBS="$LIBS"
|
|
||||||
AC_SEARCH_LIBS(shmat, [cygipc ipc],
|
|
||||||
[ IPC_LIBS="$LIBS" ],
|
|
||||||
[ AC_MSG_WARN([SystemV IPC support not found. ]) ]
|
|
||||||
)
|
|
||||||
LIBS="$save_LIBS"
|
|
||||||
|
|
||||||
AC_LANG_RESTORE
|
|
||||||
AC_SUBST(IPC_LIBS)
|
|
||||||
])
|
|
@ -1,41 +0,0 @@
|
|||||||
dnl Autoconf support for C++
|
|
||||||
dnl Copyright (C) 1988 Eleftherios Gkioulekas <lf@amath.washington.edu>
|
|
||||||
dnl
|
|
||||||
dnl This program is free software; you can redistribute it and/or modify
|
|
||||||
dnl it under the terms of the GNU General Public License as published by
|
|
||||||
dnl the Free Software Foundation; either version 3 of the License, or
|
|
||||||
dnl (at your option) any later version.
|
|
||||||
dnl
|
|
||||||
dnl This program is distributed in the hope that it will be useful,
|
|
||||||
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
dnl GNU General Public License for more details.
|
|
||||||
dnl
|
|
||||||
dnl You should have received a copy of the GNU General Public License
|
|
||||||
dnl along with this program; if not, write to the Free Software
|
|
||||||
dnl Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301, USA.
|
|
||||||
dnl
|
|
||||||
dnl As a special exception to the GNU General Public License, if you
|
|
||||||
dnl distribute this file as part of a program that contains a configuration
|
|
||||||
dnl script generated by Autoconf, you may include it under the same
|
|
||||||
dnl distribution terms that you use for the rest of that program.
|
|
||||||
|
|
||||||
# -------------------------------------------------------------------------
|
|
||||||
# Use this macro to configure your C compiler
|
|
||||||
# When called the macro does the following things:
|
|
||||||
# 1. It finds an appropriate C compiler.
|
|
||||||
# If you passed the flag --with-cc=foo then it uses that
|
|
||||||
# particular compiler
|
|
||||||
# 2. Check whether the compiler works.
|
|
||||||
# 3. Checks whether the compiler accepts the -g
|
|
||||||
# -------------------------------------------------------------------------
|
|
||||||
|
|
||||||
AC_DEFUN([LF_CONFIGURE_CC],[
|
|
||||||
dnl Sing the song
|
|
||||||
AC_REQUIRE([AC_PROG_CC])dnl
|
|
||||||
AC_REQUIRE([AC_PROG_CPP])dnl
|
|
||||||
AC_REQUIRE([AC_AIX])dnl
|
|
||||||
AC_REQUIRE([AC_ISC_POSIX])dnl
|
|
||||||
AC_REQUIRE([AC_HEADER_STDC])dnl
|
|
||||||
])
|
|
||||||
|
|
@ -1,67 +0,0 @@
|
|||||||
dnl Autoconf support for C++
|
|
||||||
dnl Copyright (C) 1988 Eleftherios Gkioulekas <lf@amath.washington.edu>
|
|
||||||
dnl
|
|
||||||
dnl This program is free software; you can redistribute it and/or modify
|
|
||||||
dnl it under the terms of the GNU General Public License as published by
|
|
||||||
dnl the Free Software Foundation; either version 3 of the License, or
|
|
||||||
dnl (at your option) any later version.
|
|
||||||
dnl
|
|
||||||
dnl This program is distributed in the hope that it will be useful,
|
|
||||||
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
dnl GNU General Public License for more details.
|
|
||||||
dnl
|
|
||||||
dnl You should have received a copy of the GNU General Public License
|
|
||||||
dnl along with this program; if not, write to the Free Software
|
|
||||||
dnl Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301, USA.
|
|
||||||
dnl
|
|
||||||
dnl As a special exception to the GNU General Public License, if you
|
|
||||||
dnl distribute this file as part of a program that contains a configuration
|
|
||||||
dnl script generated by Autoconf, you may include it under the same
|
|
||||||
dnl distribution terms that you use for the rest of that program.
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------
|
|
||||||
# This macro should be called to configure your C++ compiler.
|
|
||||||
# When called, the macro does the following things:
|
|
||||||
# 1. It finds an appropriate C++ compiler
|
|
||||||
# If you passed the flag --with-cxx=foo, then it uses that
|
|
||||||
# particular compiler
|
|
||||||
# 2. Checks whether the compiler accepts the -g
|
|
||||||
# ------------------------------------------------------------------
|
|
||||||
|
|
||||||
AC_DEFUN([LF_CONFIGURE_CXX],[
|
|
||||||
AC_REQUIRE([AC_PROG_CXX])dnl
|
|
||||||
AC_REQUIRE([AC_PROG_CXXCPP])dnl
|
|
||||||
LF_CXX_PORTABILITY
|
|
||||||
])
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------
|
|
||||||
# This macro tests the C++ compiler for various portability problem.
|
|
||||||
# -----------------------------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
AC_DEFUN([LF_CXX_PORTABILITY],[
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl Check for common C++ portability problems
|
|
||||||
dnl
|
|
||||||
|
|
||||||
dnl AC_LANG_PUSH
|
|
||||||
dnl AC_LANG_CPLUSPLUS
|
|
||||||
AC_LANG_SAVE
|
|
||||||
AC_LANG_CPLUSPLUS
|
|
||||||
|
|
||||||
|
|
||||||
dnl Test whether C++ has std::isnan
|
|
||||||
AC_MSG_CHECKING(whether C++ has std::isnan)
|
|
||||||
AC_TRY_COMPILE([#include <cmath>], [
|
|
||||||
std::isnan(0);
|
|
||||||
], [ AC_MSG_RESULT(yes)
|
|
||||||
AC_DEFINE(CXX_HAS_STD_ISNAN,[],[Define if has std::isnan]) ],
|
|
||||||
[ AC_MSG_RESULT(no) ])
|
|
||||||
|
|
||||||
dnl Done with the portability checks
|
|
||||||
dnl AC_LANG_POP([C++])
|
|
||||||
AC_LANG_RESTORE
|
|
||||||
])
|
|
||||||
|
|
@ -1,128 +0,0 @@
|
|||||||
dnl Copyright (C) 1988 Eleftherios Gkioulekas <lf@amath.washington.edu>
|
|
||||||
dnl
|
|
||||||
dnl This program is free software; you can redistribute it and/or modify
|
|
||||||
dnl it under the terms of the GNU General Public License as published by
|
|
||||||
dnl the Free Software Foundation; either version 3 of the License, or
|
|
||||||
dnl (at your option) any later version.
|
|
||||||
dnl
|
|
||||||
dnl This program is distributed in the hope that it will be useful,
|
|
||||||
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
dnl GNU General Public License for more details.
|
|
||||||
dnl
|
|
||||||
dnl You should have received a copy of the GNU General Public License
|
|
||||||
dnl along with this program; if not, write to the Free Software
|
|
||||||
dnl Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301, USA.
|
|
||||||
dnl
|
|
||||||
dnl As a special exception to the GNU General Public License, if you
|
|
||||||
dnl distribute this file as part of a program that contains a configuration
|
|
||||||
dnl script generated by Autoconf, you may include it under the same
|
|
||||||
dnl distribution terms that you use for the rest of that program.
|
|
||||||
|
|
||||||
# --------------------------------------------------------------------------
|
|
||||||
# Check whether the C++ compiler accepts a certain flag
|
|
||||||
# If it does it adds the flag to CXXFLAGS
|
|
||||||
# If it does not then it returns an error to lf_ok
|
|
||||||
# Usage:
|
|
||||||
# LF_CHECK_CXX_FLAG(-flag1 -flag2 -flag3 ...)
|
|
||||||
# -------------------------------------------------------------------------
|
|
||||||
|
|
||||||
AC_DEFUN([LF_CHECK_CXX_FLAG],[
|
|
||||||
echo 'void f(){}' > conftest.cc
|
|
||||||
for i in $1
|
|
||||||
do
|
|
||||||
AC_MSG_CHECKING([whether $CXX accepts $i])
|
|
||||||
if test -z "`${CXX} $i -c conftest.cc 2>&1`"
|
|
||||||
then
|
|
||||||
CXXFLAGS="${CXXFLAGS} $i"
|
|
||||||
AC_MSG_RESULT(yes)
|
|
||||||
else
|
|
||||||
AC_MSG_RESULT(no)
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
rm -f conftest.cc conftest.o
|
|
||||||
])
|
|
||||||
|
|
||||||
# --------------------------------------------------------------------------
|
|
||||||
# Check whether the C compiler accepts a certain flag
|
|
||||||
# If it does it adds the flag to CFLAGS
|
|
||||||
# If it does not then it returns an error to lf_ok
|
|
||||||
# Usage:
|
|
||||||
# LF_CHECK_CC_FLAG(-flag1 -flag2 -flag3 ...)
|
|
||||||
# -------------------------------------------------------------------------
|
|
||||||
|
|
||||||
AC_DEFUN([LF_CHECK_CC_FLAG],[
|
|
||||||
echo 'void f(){}' > conftest.c
|
|
||||||
for i in $1
|
|
||||||
do
|
|
||||||
AC_MSG_CHECKING([whether $CC accepts $i])
|
|
||||||
if test -z "`${CC} $i -c conftest.c 2>&1`"
|
|
||||||
then
|
|
||||||
CFLAGS="${CFLAGS} $i"
|
|
||||||
AC_MSG_RESULT(yes)
|
|
||||||
else
|
|
||||||
AC_MSG_RESULT(no)
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
rm -f conftest.c conftest.o
|
|
||||||
])
|
|
||||||
|
|
||||||
# --------------------------------------------------------------------------
|
|
||||||
# Check whether the Fortran compiler accepts a certain flag
|
|
||||||
# If it does it adds the flag to FFLAGS
|
|
||||||
# If it does not then it returns an error to lf_ok
|
|
||||||
# Usage:
|
|
||||||
# LF_CHECK_F77_FLAG(-flag1 -flag2 -flag3 ...)
|
|
||||||
# -------------------------------------------------------------------------
|
|
||||||
|
|
||||||
AC_DEFUN([LF_CHECK_F77_FLAG],[
|
|
||||||
cat << EOF > conftest.f
|
|
||||||
c....:++++++++++++++++++++++++
|
|
||||||
PROGRAM MAIN
|
|
||||||
PRINT*,'Hello World!'
|
|
||||||
END
|
|
||||||
EOF
|
|
||||||
for i in $1
|
|
||||||
do
|
|
||||||
AC_MSG_CHECKING([whether $F77 accepts $i])
|
|
||||||
if test -z "`${F77} $i -c conftest.f 2>&1`"
|
|
||||||
then
|
|
||||||
FFLAGS="${FFLAGS} $i"
|
|
||||||
AC_MSG_RESULT(yes)
|
|
||||||
else
|
|
||||||
AC_MSG_RESULT(no)
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
rm -f conftest.f conftest.o
|
|
||||||
])
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------
|
|
||||||
# Provide the configure script with an --with-warnings option that
|
|
||||||
# turns on warnings. Call this command AFTER you have configured ALL your
|
|
||||||
# compilers.
|
|
||||||
# ----------------------------------------------------------------------
|
|
||||||
|
|
||||||
AC_DEFUN([LF_SET_WARNINGS],[
|
|
||||||
dnl Check for --with-warnings
|
|
||||||
AC_MSG_CHECKING([whether user wants warnings])
|
|
||||||
AC_ARG_WITH(warnings,
|
|
||||||
[ --with-warnings Turn on warnings],
|
|
||||||
[ lf_warnings=yes ], [ lf_warnings=no ])
|
|
||||||
lf_warnings=yes # hard code for now -eb
|
|
||||||
AC_MSG_RESULT($lf_warnings)
|
|
||||||
|
|
||||||
dnl Warnings for the two main compilers
|
|
||||||
cc_warning_flags="-Wall"
|
|
||||||
cxx_warning_flags="-Wall -Woverloaded-virtual"
|
|
||||||
if test $lf_warnings = yes
|
|
||||||
then
|
|
||||||
if test -n "${CC}"
|
|
||||||
then
|
|
||||||
LF_CHECK_CC_FLAG($cc_warning_flags)
|
|
||||||
fi
|
|
||||||
if test -n "${CXX}"
|
|
||||||
then
|
|
||||||
LF_CHECK_CXX_FLAG($cxx_warning_flags)
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
])
|
|
@ -1,39 +0,0 @@
|
|||||||
dnl Copyright (C) 1988 Eleftherios Gkioulekas <lf@amath.washington.edu>
|
|
||||||
dnl
|
|
||||||
dnl This program is free software; you can redistribute it and/or modify
|
|
||||||
dnl it under the terms of the GNU General Public License as published by
|
|
||||||
dnl the Free Software Foundation; either version 3 of the License, or
|
|
||||||
dnl (at your option) any later version.
|
|
||||||
dnl
|
|
||||||
dnl This program is distributed in the hope that it will be useful,
|
|
||||||
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
dnl GNU General Public License for more details.
|
|
||||||
dnl
|
|
||||||
dnl You should have received a copy of the GNU General Public License
|
|
||||||
dnl along with this program; if not, write to the Free Software
|
|
||||||
dnl Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301, USA.
|
|
||||||
dnl
|
|
||||||
dnl As a special exception to the GNU General Public License, if you
|
|
||||||
dnl distribute this file as part of a program that contains a configuration
|
|
||||||
dnl script generated by Autoconf, you may include it under the same
|
|
||||||
dnl distribution terms that you use for the rest of that program.
|
|
||||||
|
|
||||||
|
|
||||||
#-----------------------------------------------------------------------
|
|
||||||
# This macro searches for Xlib and when it finds it it adds the
|
|
||||||
# appropriate flags to CXXFLAGS and export the link sequence to
|
|
||||||
# the variable XLIB.
|
|
||||||
# In your configure.in file add:
|
|
||||||
# LF_PATH_XLIB
|
|
||||||
# In your Makefile.am add
|
|
||||||
# program_LDADD = .... $(XLIB)
|
|
||||||
#------------------------------------------------------------------------
|
|
||||||
|
|
||||||
AC_DEFUN([LF_PATH_XLIB],[
|
|
||||||
AC_PATH_XTRA
|
|
||||||
CXXFLAGS="$CXXFLAGS $X_CFLAGS"
|
|
||||||
XLIB="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
|
|
||||||
AC_SUBST(XLIB)
|
|
||||||
])
|
|
||||||
|
|
7851
config/libtool.m4
vendored
7851
config/libtool.m4
vendored
File diff suppressed because it is too large
Load Diff
369
config/ltoptions.m4
vendored
369
config/ltoptions.m4
vendored
@ -1,369 +0,0 @@
|
|||||||
# Helper functions for option handling. -*- Autoconf -*-
|
|
||||||
#
|
|
||||||
# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
|
|
||||||
# Inc.
|
|
||||||
# Written by Gary V. Vaughan, 2004
|
|
||||||
#
|
|
||||||
# This file is free software; the Free Software Foundation gives
|
|
||||||
# unlimited permission to copy and/or distribute it, with or without
|
|
||||||
# modifications, as long as this notice is preserved.
|
|
||||||
|
|
||||||
# serial 7 ltoptions.m4
|
|
||||||
|
|
||||||
# This is to help aclocal find these macros, as it can't see m4_define.
|
|
||||||
AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
|
|
||||||
|
|
||||||
|
|
||||||
# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
|
|
||||||
# ------------------------------------------
|
|
||||||
m4_define([_LT_MANGLE_OPTION],
|
|
||||||
[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
|
|
||||||
|
|
||||||
|
|
||||||
# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
|
|
||||||
# ---------------------------------------
|
|
||||||
# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
|
|
||||||
# matching handler defined, dispatch to it. Other OPTION-NAMEs are
|
|
||||||
# saved as a flag.
|
|
||||||
m4_define([_LT_SET_OPTION],
|
|
||||||
[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
|
|
||||||
m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
|
|
||||||
_LT_MANGLE_DEFUN([$1], [$2]),
|
|
||||||
[m4_warning([Unknown $1 option `$2'])])[]dnl
|
|
||||||
])
|
|
||||||
|
|
||||||
|
|
||||||
# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
|
|
||||||
# ------------------------------------------------------------
|
|
||||||
# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
|
|
||||||
m4_define([_LT_IF_OPTION],
|
|
||||||
[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
|
|
||||||
|
|
||||||
|
|
||||||
# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
|
|
||||||
# -------------------------------------------------------
|
|
||||||
# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
|
|
||||||
# are set.
|
|
||||||
m4_define([_LT_UNLESS_OPTIONS],
|
|
||||||
[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
|
|
||||||
[m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
|
|
||||||
[m4_define([$0_found])])])[]dnl
|
|
||||||
m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
|
|
||||||
])[]dnl
|
|
||||||
])
|
|
||||||
|
|
||||||
|
|
||||||
# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
|
|
||||||
# ----------------------------------------
|
|
||||||
# OPTION-LIST is a space-separated list of Libtool options associated
|
|
||||||
# with MACRO-NAME. If any OPTION has a matching handler declared with
|
|
||||||
# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
|
|
||||||
# the unknown option and exit.
|
|
||||||
m4_defun([_LT_SET_OPTIONS],
|
|
||||||
[# Set options
|
|
||||||
m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
|
|
||||||
[_LT_SET_OPTION([$1], _LT_Option)])
|
|
||||||
|
|
||||||
m4_if([$1],[LT_INIT],[
|
|
||||||
dnl
|
|
||||||
dnl Simply set some default values (i.e off) if boolean options were not
|
|
||||||
dnl specified:
|
|
||||||
_LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
|
|
||||||
])
|
|
||||||
_LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
|
|
||||||
])
|
|
||||||
dnl
|
|
||||||
dnl If no reference was made to various pairs of opposing options, then
|
|
||||||
dnl we run the default mode handler for the pair. For example, if neither
|
|
||||||
dnl `shared' nor `disable-shared' was passed, we enable building of shared
|
|
||||||
dnl archives by default:
|
|
||||||
_LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
|
|
||||||
_LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
|
|
||||||
_LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
|
|
||||||
_LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
|
|
||||||
[_LT_ENABLE_FAST_INSTALL])
|
|
||||||
])
|
|
||||||
])# _LT_SET_OPTIONS
|
|
||||||
|
|
||||||
|
|
||||||
## --------------------------------- ##
|
|
||||||
## Macros to handle LT_INIT options. ##
|
|
||||||
## --------------------------------- ##
|
|
||||||
|
|
||||||
# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
|
|
||||||
# -----------------------------------------
|
|
||||||
m4_define([_LT_MANGLE_DEFUN],
|
|
||||||
[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
|
|
||||||
|
|
||||||
|
|
||||||
# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
|
|
||||||
# -----------------------------------------------
|
|
||||||
m4_define([LT_OPTION_DEFINE],
|
|
||||||
[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
|
|
||||||
])# LT_OPTION_DEFINE
|
|
||||||
|
|
||||||
|
|
||||||
# dlopen
|
|
||||||
# ------
|
|
||||||
LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
|
|
||||||
])
|
|
||||||
|
|
||||||
AU_DEFUN([AC_LIBTOOL_DLOPEN],
|
|
||||||
[_LT_SET_OPTION([LT_INIT], [dlopen])
|
|
||||||
AC_DIAGNOSE([obsolete],
|
|
||||||
[$0: Remove this warning and the call to _LT_SET_OPTION when you
|
|
||||||
put the `dlopen' option into LT_INIT's first parameter.])
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl aclocal-1.4 backwards compatibility:
|
|
||||||
dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
|
|
||||||
|
|
||||||
|
|
||||||
# win32-dll
|
|
||||||
# ---------
|
|
||||||
# Declare package support for building win32 dll's.
|
|
||||||
LT_OPTION_DEFINE([LT_INIT], [win32-dll],
|
|
||||||
[enable_win32_dll=yes
|
|
||||||
|
|
||||||
case $host in
|
|
||||||
*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
|
|
||||||
AC_CHECK_TOOL(AS, as, false)
|
|
||||||
AC_CHECK_TOOL(DLLTOOL, dlltool, false)
|
|
||||||
AC_CHECK_TOOL(OBJDUMP, objdump, false)
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
test -z "$AS" && AS=as
|
|
||||||
_LT_DECL([], [AS], [1], [Assembler program])dnl
|
|
||||||
|
|
||||||
test -z "$DLLTOOL" && DLLTOOL=dlltool
|
|
||||||
_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
|
|
||||||
|
|
||||||
test -z "$OBJDUMP" && OBJDUMP=objdump
|
|
||||||
_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
|
|
||||||
])# win32-dll
|
|
||||||
|
|
||||||
AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
|
|
||||||
[AC_REQUIRE([AC_CANONICAL_HOST])dnl
|
|
||||||
_LT_SET_OPTION([LT_INIT], [win32-dll])
|
|
||||||
AC_DIAGNOSE([obsolete],
|
|
||||||
[$0: Remove this warning and the call to _LT_SET_OPTION when you
|
|
||||||
put the `win32-dll' option into LT_INIT's first parameter.])
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl aclocal-1.4 backwards compatibility:
|
|
||||||
dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
|
|
||||||
|
|
||||||
|
|
||||||
# _LT_ENABLE_SHARED([DEFAULT])
|
|
||||||
# ----------------------------
|
|
||||||
# implement the --enable-shared flag, and supports the `shared' and
|
|
||||||
# `disable-shared' LT_INIT options.
|
|
||||||
# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
|
|
||||||
m4_define([_LT_ENABLE_SHARED],
|
|
||||||
[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
|
|
||||||
AC_ARG_ENABLE([shared],
|
|
||||||
[AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
|
|
||||||
[build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
|
|
||||||
[p=${PACKAGE-default}
|
|
||||||
case $enableval in
|
|
||||||
yes) enable_shared=yes ;;
|
|
||||||
no) enable_shared=no ;;
|
|
||||||
*)
|
|
||||||
enable_shared=no
|
|
||||||
# Look at the argument we got. We use all the common list separators.
|
|
||||||
lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
|
|
||||||
for pkg in $enableval; do
|
|
||||||
IFS="$lt_save_ifs"
|
|
||||||
if test "X$pkg" = "X$p"; then
|
|
||||||
enable_shared=yes
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
IFS="$lt_save_ifs"
|
|
||||||
;;
|
|
||||||
esac],
|
|
||||||
[enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
|
|
||||||
|
|
||||||
_LT_DECL([build_libtool_libs], [enable_shared], [0],
|
|
||||||
[Whether or not to build shared libraries])
|
|
||||||
])# _LT_ENABLE_SHARED
|
|
||||||
|
|
||||||
LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
|
|
||||||
LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
|
|
||||||
|
|
||||||
# Old names:
|
|
||||||
AC_DEFUN([AC_ENABLE_SHARED],
|
|
||||||
[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_DEFUN([AC_DISABLE_SHARED],
|
|
||||||
[_LT_SET_OPTION([LT_INIT], [disable-shared])
|
|
||||||
])
|
|
||||||
|
|
||||||
AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
|
|
||||||
AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
|
|
||||||
|
|
||||||
dnl aclocal-1.4 backwards compatibility:
|
|
||||||
dnl AC_DEFUN([AM_ENABLE_SHARED], [])
|
|
||||||
dnl AC_DEFUN([AM_DISABLE_SHARED], [])
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# _LT_ENABLE_STATIC([DEFAULT])
|
|
||||||
# ----------------------------
|
|
||||||
# implement the --enable-static flag, and support the `static' and
|
|
||||||
# `disable-static' LT_INIT options.
|
|
||||||
# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
|
|
||||||
m4_define([_LT_ENABLE_STATIC],
|
|
||||||
[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
|
|
||||||
AC_ARG_ENABLE([static],
|
|
||||||
[AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
|
|
||||||
[build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
|
|
||||||
[p=${PACKAGE-default}
|
|
||||||
case $enableval in
|
|
||||||
yes) enable_static=yes ;;
|
|
||||||
no) enable_static=no ;;
|
|
||||||
*)
|
|
||||||
enable_static=no
|
|
||||||
# Look at the argument we got. We use all the common list separators.
|
|
||||||
lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
|
|
||||||
for pkg in $enableval; do
|
|
||||||
IFS="$lt_save_ifs"
|
|
||||||
if test "X$pkg" = "X$p"; then
|
|
||||||
enable_static=yes
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
IFS="$lt_save_ifs"
|
|
||||||
;;
|
|
||||||
esac],
|
|
||||||
[enable_static=]_LT_ENABLE_STATIC_DEFAULT)
|
|
||||||
|
|
||||||
_LT_DECL([build_old_libs], [enable_static], [0],
|
|
||||||
[Whether or not to build static libraries])
|
|
||||||
])# _LT_ENABLE_STATIC
|
|
||||||
|
|
||||||
LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
|
|
||||||
LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
|
|
||||||
|
|
||||||
# Old names:
|
|
||||||
AC_DEFUN([AC_ENABLE_STATIC],
|
|
||||||
[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_DEFUN([AC_DISABLE_STATIC],
|
|
||||||
[_LT_SET_OPTION([LT_INIT], [disable-static])
|
|
||||||
])
|
|
||||||
|
|
||||||
AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
|
|
||||||
AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
|
|
||||||
|
|
||||||
dnl aclocal-1.4 backwards compatibility:
|
|
||||||
dnl AC_DEFUN([AM_ENABLE_STATIC], [])
|
|
||||||
dnl AC_DEFUN([AM_DISABLE_STATIC], [])
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# _LT_ENABLE_FAST_INSTALL([DEFAULT])
|
|
||||||
# ----------------------------------
|
|
||||||
# implement the --enable-fast-install flag, and support the `fast-install'
|
|
||||||
# and `disable-fast-install' LT_INIT options.
|
|
||||||
# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
|
|
||||||
m4_define([_LT_ENABLE_FAST_INSTALL],
|
|
||||||
[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
|
|
||||||
AC_ARG_ENABLE([fast-install],
|
|
||||||
[AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
|
|
||||||
[optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
|
|
||||||
[p=${PACKAGE-default}
|
|
||||||
case $enableval in
|
|
||||||
yes) enable_fast_install=yes ;;
|
|
||||||
no) enable_fast_install=no ;;
|
|
||||||
*)
|
|
||||||
enable_fast_install=no
|
|
||||||
# Look at the argument we got. We use all the common list separators.
|
|
||||||
lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
|
|
||||||
for pkg in $enableval; do
|
|
||||||
IFS="$lt_save_ifs"
|
|
||||||
if test "X$pkg" = "X$p"; then
|
|
||||||
enable_fast_install=yes
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
IFS="$lt_save_ifs"
|
|
||||||
;;
|
|
||||||
esac],
|
|
||||||
[enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
|
|
||||||
|
|
||||||
_LT_DECL([fast_install], [enable_fast_install], [0],
|
|
||||||
[Whether or not to optimize for fast installation])dnl
|
|
||||||
])# _LT_ENABLE_FAST_INSTALL
|
|
||||||
|
|
||||||
LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
|
|
||||||
LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
|
|
||||||
|
|
||||||
# Old names:
|
|
||||||
AU_DEFUN([AC_ENABLE_FAST_INSTALL],
|
|
||||||
[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
|
|
||||||
AC_DIAGNOSE([obsolete],
|
|
||||||
[$0: Remove this warning and the call to _LT_SET_OPTION when you put
|
|
||||||
the `fast-install' option into LT_INIT's first parameter.])
|
|
||||||
])
|
|
||||||
|
|
||||||
AU_DEFUN([AC_DISABLE_FAST_INSTALL],
|
|
||||||
[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
|
|
||||||
AC_DIAGNOSE([obsolete],
|
|
||||||
[$0: Remove this warning and the call to _LT_SET_OPTION when you put
|
|
||||||
the `disable-fast-install' option into LT_INIT's first parameter.])
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl aclocal-1.4 backwards compatibility:
|
|
||||||
dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
|
|
||||||
dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
|
|
||||||
|
|
||||||
|
|
||||||
# _LT_WITH_PIC([MODE])
|
|
||||||
# --------------------
|
|
||||||
# implement the --with-pic flag, and support the `pic-only' and `no-pic'
|
|
||||||
# LT_INIT options.
|
|
||||||
# MODE is either `yes' or `no'. If omitted, it defaults to `both'.
|
|
||||||
m4_define([_LT_WITH_PIC],
|
|
||||||
[AC_ARG_WITH([pic],
|
|
||||||
[AS_HELP_STRING([--with-pic],
|
|
||||||
[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
|
|
||||||
[pic_mode="$withval"],
|
|
||||||
[pic_mode=default])
|
|
||||||
|
|
||||||
test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
|
|
||||||
|
|
||||||
_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
|
|
||||||
])# _LT_WITH_PIC
|
|
||||||
|
|
||||||
LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
|
|
||||||
LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
|
|
||||||
|
|
||||||
# Old name:
|
|
||||||
AU_DEFUN([AC_LIBTOOL_PICMODE],
|
|
||||||
[_LT_SET_OPTION([LT_INIT], [pic-only])
|
|
||||||
AC_DIAGNOSE([obsolete],
|
|
||||||
[$0: Remove this warning and the call to _LT_SET_OPTION when you
|
|
||||||
put the `pic-only' option into LT_INIT's first parameter.])
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl aclocal-1.4 backwards compatibility:
|
|
||||||
dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
|
|
||||||
|
|
||||||
## ----------------- ##
|
|
||||||
## LTDL_INIT Options ##
|
|
||||||
## ----------------- ##
|
|
||||||
|
|
||||||
m4_define([_LTDL_MODE], [])
|
|
||||||
LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
|
|
||||||
[m4_define([_LTDL_MODE], [nonrecursive])])
|
|
||||||
LT_OPTION_DEFINE([LTDL_INIT], [recursive],
|
|
||||||
[m4_define([_LTDL_MODE], [recursive])])
|
|
||||||
LT_OPTION_DEFINE([LTDL_INIT], [subproject],
|
|
||||||
[m4_define([_LTDL_MODE], [subproject])])
|
|
||||||
|
|
||||||
m4_define([_LTDL_TYPE], [])
|
|
||||||
LT_OPTION_DEFINE([LTDL_INIT], [installable],
|
|
||||||
[m4_define([_LTDL_TYPE], [installable])])
|
|
||||||
LT_OPTION_DEFINE([LTDL_INIT], [convenience],
|
|
||||||
[m4_define([_LTDL_TYPE], [convenience])])
|
|
123
config/ltsugar.m4
vendored
123
config/ltsugar.m4
vendored
@ -1,123 +0,0 @@
|
|||||||
# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
|
|
||||||
#
|
|
||||||
# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
|
|
||||||
# Written by Gary V. Vaughan, 2004
|
|
||||||
#
|
|
||||||
# This file is free software; the Free Software Foundation gives
|
|
||||||
# unlimited permission to copy and/or distribute it, with or without
|
|
||||||
# modifications, as long as this notice is preserved.
|
|
||||||
|
|
||||||
# serial 6 ltsugar.m4
|
|
||||||
|
|
||||||
# This is to help aclocal find these macros, as it can't see m4_define.
|
|
||||||
AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
|
|
||||||
|
|
||||||
|
|
||||||
# lt_join(SEP, ARG1, [ARG2...])
|
|
||||||
# -----------------------------
|
|
||||||
# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
|
|
||||||
# associated separator.
|
|
||||||
# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
|
|
||||||
# versions in m4sugar had bugs.
|
|
||||||
m4_define([lt_join],
|
|
||||||
[m4_if([$#], [1], [],
|
|
||||||
[$#], [2], [[$2]],
|
|
||||||
[m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
|
|
||||||
m4_define([_lt_join],
|
|
||||||
[m4_if([$#$2], [2], [],
|
|
||||||
[m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
|
|
||||||
|
|
||||||
|
|
||||||
# lt_car(LIST)
|
|
||||||
# lt_cdr(LIST)
|
|
||||||
# ------------
|
|
||||||
# Manipulate m4 lists.
|
|
||||||
# These macros are necessary as long as will still need to support
|
|
||||||
# Autoconf-2.59 which quotes differently.
|
|
||||||
m4_define([lt_car], [[$1]])
|
|
||||||
m4_define([lt_cdr],
|
|
||||||
[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
|
|
||||||
[$#], 1, [],
|
|
||||||
[m4_dquote(m4_shift($@))])])
|
|
||||||
m4_define([lt_unquote], $1)
|
|
||||||
|
|
||||||
|
|
||||||
# lt_append(MACRO-NAME, STRING, [SEPARATOR])
|
|
||||||
# ------------------------------------------
|
|
||||||
# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
|
|
||||||
# Note that neither SEPARATOR nor STRING are expanded; they are appended
|
|
||||||
# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
|
|
||||||
# No SEPARATOR is output if MACRO-NAME was previously undefined (different
|
|
||||||
# than defined and empty).
|
|
||||||
#
|
|
||||||
# This macro is needed until we can rely on Autoconf 2.62, since earlier
|
|
||||||
# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
|
|
||||||
m4_define([lt_append],
|
|
||||||
[m4_define([$1],
|
|
||||||
m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
|
|
||||||
# ----------------------------------------------------------
|
|
||||||
# Produce a SEP delimited list of all paired combinations of elements of
|
|
||||||
# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list
|
|
||||||
# has the form PREFIXmINFIXSUFFIXn.
|
|
||||||
# Needed until we can rely on m4_combine added in Autoconf 2.62.
|
|
||||||
m4_define([lt_combine],
|
|
||||||
[m4_if(m4_eval([$# > 3]), [1],
|
|
||||||
[m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
|
|
||||||
[[m4_foreach([_Lt_prefix], [$2],
|
|
||||||
[m4_foreach([_Lt_suffix],
|
|
||||||
]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
|
|
||||||
[_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
|
|
||||||
|
|
||||||
|
|
||||||
# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
|
|
||||||
# -----------------------------------------------------------------------
|
|
||||||
# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
|
|
||||||
# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
|
|
||||||
m4_define([lt_if_append_uniq],
|
|
||||||
[m4_ifdef([$1],
|
|
||||||
[m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
|
|
||||||
[lt_append([$1], [$2], [$3])$4],
|
|
||||||
[$5])],
|
|
||||||
[lt_append([$1], [$2], [$3])$4])])
|
|
||||||
|
|
||||||
|
|
||||||
# lt_dict_add(DICT, KEY, VALUE)
|
|
||||||
# -----------------------------
|
|
||||||
m4_define([lt_dict_add],
|
|
||||||
[m4_define([$1($2)], [$3])])
|
|
||||||
|
|
||||||
|
|
||||||
# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
|
|
||||||
# --------------------------------------------
|
|
||||||
m4_define([lt_dict_add_subkey],
|
|
||||||
[m4_define([$1($2:$3)], [$4])])
|
|
||||||
|
|
||||||
|
|
||||||
# lt_dict_fetch(DICT, KEY, [SUBKEY])
|
|
||||||
# ----------------------------------
|
|
||||||
m4_define([lt_dict_fetch],
|
|
||||||
[m4_ifval([$3],
|
|
||||||
m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
|
|
||||||
m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
|
|
||||||
|
|
||||||
|
|
||||||
# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
|
|
||||||
# -----------------------------------------------------------------
|
|
||||||
m4_define([lt_if_dict_fetch],
|
|
||||||
[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
|
|
||||||
[$5],
|
|
||||||
[$6])])
|
|
||||||
|
|
||||||
|
|
||||||
# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
|
|
||||||
# --------------------------------------------------------------
|
|
||||||
m4_define([lt_dict_filter],
|
|
||||||
[m4_if([$5], [], [],
|
|
||||||
[lt_join(m4_quote(m4_default([$4], [[, ]])),
|
|
||||||
lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
|
|
||||||
[lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
|
|
||||||
])
|
|
23
config/ltversion.m4
vendored
23
config/ltversion.m4
vendored
@ -1,23 +0,0 @@
|
|||||||
# ltversion.m4 -- version numbers -*- Autoconf -*-
|
|
||||||
#
|
|
||||||
# Copyright (C) 2004 Free Software Foundation, Inc.
|
|
||||||
# Written by Scott James Remnant, 2004
|
|
||||||
#
|
|
||||||
# This file is free software; the Free Software Foundation gives
|
|
||||||
# unlimited permission to copy and/or distribute it, with or without
|
|
||||||
# modifications, as long as this notice is preserved.
|
|
||||||
|
|
||||||
# @configure_input@
|
|
||||||
|
|
||||||
# serial 3293 ltversion.m4
|
|
||||||
# This file is part of GNU Libtool
|
|
||||||
|
|
||||||
m4_define([LT_PACKAGE_VERSION], [2.4])
|
|
||||||
m4_define([LT_PACKAGE_REVISION], [1.3293])
|
|
||||||
|
|
||||||
AC_DEFUN([LTVERSION_VERSION],
|
|
||||||
[macro_version='2.4'
|
|
||||||
macro_revision='1.3293'
|
|
||||||
_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
|
|
||||||
_LT_DECL(, macro_revision, 0)
|
|
||||||
])
|
|
98
config/lt~obsolete.m4
vendored
98
config/lt~obsolete.m4
vendored
@ -1,98 +0,0 @@
|
|||||||
# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
|
|
||||||
#
|
|
||||||
# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
|
|
||||||
# Written by Scott James Remnant, 2004.
|
|
||||||
#
|
|
||||||
# This file is free software; the Free Software Foundation gives
|
|
||||||
# unlimited permission to copy and/or distribute it, with or without
|
|
||||||
# modifications, as long as this notice is preserved.
|
|
||||||
|
|
||||||
# serial 5 lt~obsolete.m4
|
|
||||||
|
|
||||||
# These exist entirely to fool aclocal when bootstrapping libtool.
|
|
||||||
#
|
|
||||||
# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
|
|
||||||
# which have later been changed to m4_define as they aren't part of the
|
|
||||||
# exported API, or moved to Autoconf or Automake where they belong.
|
|
||||||
#
|
|
||||||
# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN
|
|
||||||
# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
|
|
||||||
# using a macro with the same name in our local m4/libtool.m4 it'll
|
|
||||||
# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
|
|
||||||
# and doesn't know about Autoconf macros at all.)
|
|
||||||
#
|
|
||||||
# So we provide this file, which has a silly filename so it's always
|
|
||||||
# included after everything else. This provides aclocal with the
|
|
||||||
# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
|
|
||||||
# because those macros already exist, or will be overwritten later.
|
|
||||||
# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
|
|
||||||
#
|
|
||||||
# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
|
|
||||||
# Yes, that means every name once taken will need to remain here until
|
|
||||||
# we give up compatibility with versions before 1.7, at which point
|
|
||||||
# we need to keep only those names which we still refer to.
|
|
||||||
|
|
||||||
# This is to help aclocal find these macros, as it can't see m4_define.
|
|
||||||
AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
|
|
||||||
|
|
||||||
m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
|
|
||||||
m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])])
|
|
||||||
m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
|
|
||||||
m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])])
|
|
||||||
m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
|
|
||||||
m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])])
|
|
||||||
m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])])
|
|
||||||
m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
|
|
||||||
m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])])
|
|
||||||
m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])])
|
|
||||||
m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])])
|
|
||||||
m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
|
|
||||||
m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
|
|
||||||
m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
|
|
||||||
m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
|
|
||||||
m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])])
|
|
||||||
m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])])
|
|
||||||
m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
|
|
||||||
m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
|
|
||||||
m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])])
|
|
||||||
m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])])
|
|
||||||
m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
|
|
||||||
m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
|
|
||||||
m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
|
|
||||||
m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
|
|
||||||
m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
|
|
||||||
m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
|
|
||||||
m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
|
|
||||||
m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])])
|
|
||||||
m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])])
|
|
||||||
m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])])
|
|
||||||
m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
|
|
||||||
m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])])
|
|
||||||
m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])])
|
|
||||||
m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])])
|
|
||||||
m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])])
|
|
||||||
m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
|
|
||||||
m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])])
|
|
||||||
m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
|
|
||||||
m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])])
|
|
||||||
m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])])
|
|
||||||
m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])])
|
|
||||||
m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
|
|
||||||
m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
|
|
||||||
m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
|
|
||||||
m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
|
|
||||||
m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
|
|
||||||
m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
|
|
||||||
m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
|
|
||||||
m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
|
|
||||||
m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
|
|
||||||
m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
|
|
||||||
m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])])
|
|
||||||
m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
|
|
||||||
m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
|
|
||||||
m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])])
|
|
||||||
m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
|
|
||||||
m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
|
|
||||||
m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])])
|
|
||||||
m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])])
|
|
||||||
m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])])
|
|
@ -1,89 +0,0 @@
|
|||||||
#serial 4
|
|
||||||
|
|
||||||
# On some hosts (e.g., HP-UX 10.20, SunOS 4.1.4, Solaris 2.5.1), mkstemp has a
|
|
||||||
# silly limit that it can create no more than 26 files from a given template.
|
|
||||||
# Other systems lack mkstemp altogether.
|
|
||||||
# On OSF1/Tru64 V4.0F, the system-provided mkstemp function can create
|
|
||||||
# only 32 files per process.
|
|
||||||
# On systems like the above, arrange to use the replacement function.
|
|
||||||
AC_DEFUN([UTILS_FUNC_MKSTEMP],
|
|
||||||
[dnl
|
|
||||||
AC_REPLACE_FUNCS(mkstemp)
|
|
||||||
if test $ac_cv_func_mkstemp = no; then
|
|
||||||
utils_cv_func_mkstemp_limitations=yes
|
|
||||||
else
|
|
||||||
AC_CACHE_CHECK([for mkstemp limitations],
|
|
||||||
utils_cv_func_mkstemp_limitations,
|
|
||||||
[
|
|
||||||
AC_TRY_RUN([
|
|
||||||
# include <stdlib.h>
|
|
||||||
int main ()
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
for (i = 0; i < 70; i++)
|
|
||||||
{
|
|
||||||
char template[] = "conftestXXXXXX";
|
|
||||||
int fd = mkstemp (template);
|
|
||||||
if (fd == -1)
|
|
||||||
exit (1);
|
|
||||||
close (fd);
|
|
||||||
}
|
|
||||||
exit (0);
|
|
||||||
}
|
|
||||||
],
|
|
||||||
utils_cv_func_mkstemp_limitations=no,
|
|
||||||
utils_cv_func_mkstemp_limitations=yes,
|
|
||||||
utils_cv_func_mkstemp_limitations=yes
|
|
||||||
)
|
|
||||||
]
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test $utils_cv_func_mkstemp_limitations = yes; then
|
|
||||||
AC_LIBOBJ(mkstemp)
|
|
||||||
AC_LIBOBJ(tempname)
|
|
||||||
AC_DEFINE(mkstemp, rpl_mkstemp,
|
|
||||||
[Define to rpl_mkstemp if the replacement function should be used.])
|
|
||||||
gl_PREREQ_MKSTEMP
|
|
||||||
jm_PREREQ_TEMPNAME
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
# Prerequisites of lib/mkstemp.c.
|
|
||||||
AC_DEFUN([gl_PREREQ_MKSTEMP],
|
|
||||||
[
|
|
||||||
AH_BOTTOM(
|
|
||||||
[
|
|
||||||
#ifndef HAVE_MKSTEMP
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
int rpl_mkstemp (char *templ);
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
])
|
|
||||||
])
|
|
||||||
|
|
||||||
# Prerequisites of lib/tempname.c.
|
|
||||||
AC_DEFUN([jm_PREREQ_TEMPNAME],
|
|
||||||
[
|
|
||||||
AC_REQUIRE([AC_HEADER_STAT])
|
|
||||||
AC_CHECK_HEADERS_ONCE(fcntl.h sys/time.h unistd.h)
|
|
||||||
AC_CHECK_HEADERS(stdint.h)
|
|
||||||
AC_CHECK_FUNCS(__secure_getenv gettimeofday lstat)
|
|
||||||
AC_CHECK_DECLS_ONCE(getenv)
|
|
||||||
# AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])
|
|
||||||
|
|
||||||
dnl Under Win32, mkdir prototype in io.h has only one arg
|
|
||||||
AC_MSG_CHECKING(whether mkdir accepts only one arg)
|
|
||||||
AC_TRY_COMPILE([#include <sys/types.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <fcntl.h>], [
|
|
||||||
mkdir("")
|
|
||||||
], [ AC_MSG_RESULT(yes)
|
|
||||||
AC_DEFINE(MKDIR_TAKES_ONE_ARG,[],[Define if mkdir accepts only one arg]) ],
|
|
||||||
[ AC_MSG_RESULT(no)
|
|
||||||
])
|
|
||||||
])
|
|
@ -1,63 +0,0 @@
|
|||||||
# onceonly.m4 serial 3
|
|
||||||
dnl Copyright (C) 2002, 2003 Free Software Foundation, Inc.
|
|
||||||
dnl This file is free software, distributed under the terms of the GNU
|
|
||||||
dnl General Public License. As a special exception to the GNU General
|
|
||||||
dnl Public License, this file may be distributed as part of a program
|
|
||||||
dnl that contains a configuration script generated by Autoconf, under
|
|
||||||
dnl the same distribution terms as the rest of that program.
|
|
||||||
|
|
||||||
dnl This file defines some "once only" variants of standard autoconf macros.
|
|
||||||
dnl AC_CHECK_HEADERS_ONCE like AC_CHECK_HEADERS
|
|
||||||
dnl AC_CHECK_FUNCS_ONCE like AC_CHECK_FUNCS
|
|
||||||
dnl AC_CHECK_DECLS_ONCE like AC_CHECK_DECLS
|
|
||||||
dnl AC_REQUIRE([AC_HEADER_STDC]) like AC_HEADER_STDC
|
|
||||||
dnl The advantage is that the check for each of the headers/functions/decls
|
|
||||||
dnl will be put only once into the 'configure' file. It keeps the size of
|
|
||||||
dnl the 'configure' file down, and avoids redundant output when 'configure'
|
|
||||||
dnl is run.
|
|
||||||
dnl The drawback is that the checks cannot be conditionalized. If you write
|
|
||||||
dnl if some_condition; then gl_CHECK_HEADERS(stdlib.h); fi
|
|
||||||
dnl inside an AC_DEFUNed function, the gl_CHECK_HEADERS macro call expands to
|
|
||||||
dnl empty, and the check will be inserted before the body of the AC_DEFUNed
|
|
||||||
dnl function.
|
|
||||||
|
|
||||||
dnl Autoconf version 2.57 or newer is recommended.
|
|
||||||
AC_PREREQ(2.54)
|
|
||||||
|
|
||||||
# AC_CHECK_HEADERS_ONCE(HEADER1 HEADER2 ...) is a once-only variant of
|
|
||||||
# AC_CHECK_HEADERS(HEADER1 HEADER2 ...).
|
|
||||||
AC_DEFUN([AC_CHECK_HEADERS_ONCE], [
|
|
||||||
:
|
|
||||||
AC_FOREACH([gl_HEADER_NAME], [$1], [
|
|
||||||
AC_DEFUN([gl_CHECK_HEADER_]m4_quote(translit(defn([gl_HEADER_NAME]),
|
|
||||||
[-./], [___])), [
|
|
||||||
AC_CHECK_HEADERS(gl_HEADER_NAME)
|
|
||||||
])
|
|
||||||
AC_REQUIRE([gl_CHECK_HEADER_]m4_quote(translit(gl_HEADER_NAME,
|
|
||||||
[-./], [___])))
|
|
||||||
])
|
|
||||||
])
|
|
||||||
|
|
||||||
# AC_CHECK_FUNCS_ONCE(FUNC1 FUNC2 ...) is a once-only variant of
|
|
||||||
# AC_CHECK_FUNCS(FUNC1 FUNC2 ...).
|
|
||||||
AC_DEFUN([AC_CHECK_FUNCS_ONCE], [
|
|
||||||
:
|
|
||||||
AC_FOREACH([gl_FUNC_NAME], [$1], [
|
|
||||||
AC_DEFUN([gl_CHECK_FUNC_]defn([gl_FUNC_NAME]), [
|
|
||||||
AC_CHECK_FUNCS(defn([gl_FUNC_NAME]))
|
|
||||||
])
|
|
||||||
AC_REQUIRE([gl_CHECK_FUNC_]defn([gl_FUNC_NAME]))
|
|
||||||
])
|
|
||||||
])
|
|
||||||
|
|
||||||
# AC_CHECK_DECLS_ONCE(DECL1 DECL2 ...) is a once-only variant of
|
|
||||||
# AC_CHECK_DECLS(DECL1, DECL2, ...).
|
|
||||||
AC_DEFUN([AC_CHECK_DECLS_ONCE], [
|
|
||||||
:
|
|
||||||
AC_FOREACH([gl_DECL_NAME], [$1], [
|
|
||||||
AC_DEFUN([gl_CHECK_DECL_]defn([gl_DECL_NAME]), [
|
|
||||||
AC_CHECK_DECLS(defn([gl_DECL_NAME]))
|
|
||||||
])
|
|
||||||
AC_REQUIRE([gl_CHECK_DECL_]defn([gl_DECL_NAME]))
|
|
||||||
])
|
|
||||||
])
|
|
188
config/pkg.m4
188
config/pkg.m4
@ -1,188 +0,0 @@
|
|||||||
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
|
|
||||||
#
|
|
||||||
# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
|
|
||||||
# Copyright © 2008 Free Software Foundation, Inc.
|
|
||||||
#
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 2 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful, but
|
|
||||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
# General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program; if not, write to the Free Software
|
|
||||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
#
|
|
||||||
# As a special exception to the GNU General Public License, if you
|
|
||||||
# distribute this file as part of a program that contains a
|
|
||||||
# configuration script generated by Autoconf, you may include it under
|
|
||||||
# the same distribution terms that you use for the rest of that program.
|
|
||||||
|
|
||||||
# PKG_PROG_PKG_CONFIG([MIN-VERSION])
|
|
||||||
# ----------------------------------
|
|
||||||
AC_DEFUN([PKG_PROG_PKG_CONFIG],
|
|
||||||
[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
|
|
||||||
m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
|
|
||||||
AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
|
|
||||||
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
|
|
||||||
AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
|
|
||||||
fi
|
|
||||||
if test -n "$PKG_CONFIG"; then
|
|
||||||
_pkg_min_version=m4_default([$1], [0.18])
|
|
||||||
AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
|
|
||||||
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
|
|
||||||
AC_MSG_RESULT([yes])
|
|
||||||
else
|
|
||||||
AC_MSG_RESULT([no])
|
|
||||||
PKG_CONFIG=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
fi[]dnl
|
|
||||||
])# PKG_PROG_PKG_CONFIG
|
|
||||||
|
|
||||||
# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
|
|
||||||
#
|
|
||||||
# Check to see whether a particular set of modules exists. Similar
|
|
||||||
# to PKG_CHECK_MODULES(), but does not set variables or print errors.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# Similar to PKG_CHECK_MODULES, make sure that the first instance of
|
|
||||||
# this or PKG_CHECK_MODULES is called, or make sure to call
|
|
||||||
# PKG_CHECK_EXISTS manually
|
|
||||||
# --------------------------------------------------------------
|
|
||||||
AC_DEFUN([PKG_CHECK_EXISTS],
|
|
||||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
|
||||||
if test -n "$PKG_CONFIG" && \
|
|
||||||
AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
|
|
||||||
m4_ifval([$2], [$2], [:])
|
|
||||||
m4_ifvaln([$3], [else
|
|
||||||
$3])dnl
|
|
||||||
fi])
|
|
||||||
|
|
||||||
|
|
||||||
# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
|
|
||||||
# ---------------------------------------------
|
|
||||||
m4_define([_PKG_CONFIG],
|
|
||||||
[if test -n "$PKG_CONFIG"; then
|
|
||||||
if test -n "$$1"; then
|
|
||||||
pkg_cv_[]$1="$$1"
|
|
||||||
else
|
|
||||||
PKG_CHECK_EXISTS([$3],
|
|
||||||
[pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
|
|
||||||
[pkg_failed=yes])
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
pkg_failed=untried
|
|
||||||
fi[]dnl
|
|
||||||
])# _PKG_CONFIG
|
|
||||||
|
|
||||||
# _PKG_SHORT_ERRORS_SUPPORTED
|
|
||||||
# -----------------------------
|
|
||||||
AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
|
|
||||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
|
||||||
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
|
|
||||||
_pkg_short_errors_supported=yes
|
|
||||||
else
|
|
||||||
_pkg_short_errors_supported=no
|
|
||||||
fi[]dnl
|
|
||||||
])# _PKG_SHORT_ERRORS_SUPPORTED
|
|
||||||
|
|
||||||
|
|
||||||
# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
|
|
||||||
# [ACTION-IF-NOT-FOUND])
|
|
||||||
#
|
|
||||||
# E.g.,
|
|
||||||
# PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
|
|
||||||
# defines:
|
|
||||||
#
|
|
||||||
# GSTUFF_LIBS
|
|
||||||
# GSTUFF_CFLAGS
|
|
||||||
# GSTUFF_INCLUDEDIR
|
|
||||||
# GSTUFF_CPPFLAGS # the -I, -D and -U's out of CFLAGS
|
|
||||||
#
|
|
||||||
# see pkg-config man page also defines GSTUFF_PKG_ERRORS on error
|
|
||||||
#
|
|
||||||
# Note that if there is a possibility the first call to
|
|
||||||
# PKG_CHECK_MODULES might not happen, you should be sure to include an
|
|
||||||
# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
|
|
||||||
#
|
|
||||||
# --------------------------------------------------------------
|
|
||||||
AC_DEFUN([PKG_CHECK_MODULES],
|
|
||||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
|
||||||
AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
|
|
||||||
AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
|
|
||||||
AC_ARG_VAR([$1][_INCLUDEDIR], [includedir for $1, overriding pkg-config])dnl
|
|
||||||
|
|
||||||
pkg_failed=no
|
|
||||||
AC_MSG_CHECKING([for $1])
|
|
||||||
|
|
||||||
_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
|
|
||||||
|
|
||||||
if test x$cross_compiling = xyes
|
|
||||||
then
|
|
||||||
_PKG_CONFIG([$1][_LIBS], [libs-only-l --static], [$2])
|
|
||||||
else
|
|
||||||
_PKG_CONFIG([$1][_LIBS], [libs --static], [$2])
|
|
||||||
fi
|
|
||||||
|
|
||||||
_PKG_CONFIG([$1][_INCLUDEDIR], [variable=includedir], [$2])
|
|
||||||
|
|
||||||
|
|
||||||
m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
|
|
||||||
and $1[]_LIBS to avoid the need to call pkg-config.
|
|
||||||
See the pkg-config man page for more details.])
|
|
||||||
|
|
||||||
if test $pkg_failed = yes; then
|
|
||||||
_PKG_SHORT_ERRORS_SUPPORTED
|
|
||||||
if test $_pkg_short_errors_supported = yes; then
|
|
||||||
$1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"`
|
|
||||||
else
|
|
||||||
$1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
|
|
||||||
fi
|
|
||||||
# Put the nasty error message in config.log where it belongs
|
|
||||||
echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
|
|
||||||
|
|
||||||
ifelse([$4], , [AC_MSG_ERROR(dnl
|
|
||||||
[Package requirements ($2) were not met:
|
|
||||||
|
|
||||||
$$1_PKG_ERRORS
|
|
||||||
|
|
||||||
Consider adjusting the PKG_CONFIG_PATH environment variable if you
|
|
||||||
installed software in a non-standard prefix.
|
|
||||||
|
|
||||||
_PKG_TEXT
|
|
||||||
])],
|
|
||||||
[AC_MSG_RESULT([no])
|
|
||||||
$4])
|
|
||||||
elif test $pkg_failed = untried; then
|
|
||||||
ifelse([$4], , [AC_MSG_FAILURE(dnl
|
|
||||||
[The pkg-config script could not be found or is too old. Make sure it
|
|
||||||
is in your PATH or set the PKG_CONFIG environment variable to the full
|
|
||||||
path to pkg-config.
|
|
||||||
|
|
||||||
_PKG_TEXT
|
|
||||||
|
|
||||||
To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
|
|
||||||
[$4])
|
|
||||||
else
|
|
||||||
$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
|
|
||||||
$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
|
|
||||||
$1[]_INCLUDEDIR=$pkg_cv_[]$1[]_INCLUDEDIR
|
|
||||||
|
|
||||||
$1[]_CPPFLAGS=""
|
|
||||||
for flag in $$1[]_CFLAGS; do
|
|
||||||
case $flag in
|
|
||||||
-I* | -D* | -U*) $1[]_CPPFLAGS="$$1[]_CPPFLAGS $flag" ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
pkg_cv_[]$1[]_CPPFLAGS=$$1[]_CPPFLAGS
|
|
||||||
AC_SUBST($1[]_CPPFLAGS)
|
|
||||||
|
|
||||||
AC_MSG_RESULT([yes])
|
|
||||||
ifelse([$3], , :, [$3])
|
|
||||||
fi[]dnl
|
|
||||||
])# PKG_CHECK_MODULES
|
|
@ -1,74 +0,0 @@
|
|||||||
dnl
|
|
||||||
dnl Copyright 2003,2008 Free Software Foundation, Inc.
|
|
||||||
dnl
|
|
||||||
dnl This file is part of GNU Radio
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is free software; you can redistribute it and/or modify
|
|
||||||
dnl it under the terms of the GNU General Public License as published by
|
|
||||||
dnl the Free Software Foundation; either version 3, or (at your option)
|
|
||||||
dnl any later version.
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is distributed in the hope that it will be useful,
|
|
||||||
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
dnl GNU General Public License for more details.
|
|
||||||
dnl
|
|
||||||
dnl You should have received a copy of the GNU General Public License
|
|
||||||
dnl along with GNU Radio; see the file COPYING. If not, write to
|
|
||||||
dnl the Free Software Foundation, Inc., 51 Franklin Street,
|
|
||||||
dnl Boston, MA 02110-1301, USA.
|
|
||||||
dnl
|
|
||||||
|
|
||||||
# $1 is $enable_usrp:
|
|
||||||
# yes : do these tests
|
|
||||||
# no : do not do these tests
|
|
||||||
# "" : do these tests
|
|
||||||
|
|
||||||
AC_DEFUN([USRP_SET_FUSB_TECHNIQUE],[
|
|
||||||
AC_ARG_WITH([fusb-tech],
|
|
||||||
AC_HELP_STRING([--with-fusb-tech=OS],
|
|
||||||
[Set fast USB technique (default=auto)]),
|
|
||||||
[cf_with_fusb_tech="$withval"],
|
|
||||||
[cf_with_fusb_tech="$host_os"])
|
|
||||||
if test [x]$1 != xno; then
|
|
||||||
case "$cf_with_fusb_tech" in
|
|
||||||
linux*)
|
|
||||||
AC_CHECK_HEADER([linux/usbdevice_fs.h],
|
|
||||||
[x_have_usbdevice_fs_h=yes],
|
|
||||||
[x_have_usbdevice_fs_h=no])
|
|
||||||
if test x${x_have_usbdevice_fs_h} = xyes; then
|
|
||||||
FUSB_TECH=linux
|
|
||||||
else
|
|
||||||
FUSB_TECH=generic
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
darwin*)
|
|
||||||
FUSB_TECH=darwin
|
|
||||||
;;
|
|
||||||
cygwin*|win*|mingw*)
|
|
||||||
FUSB_TECH=win32
|
|
||||||
;;
|
|
||||||
*bsd*)
|
|
||||||
AC_MSG_CHECKING([for RA/WB])
|
|
||||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <dev/usb/usb.h>]],
|
|
||||||
[[struct usb_bulk_ra_wb_opt o;
|
|
||||||
ioctl(0, USB_SET_BULK_RA, &o);]])],
|
|
||||||
[FUSB_TECH=ra_wb],
|
|
||||||
[FUSB_TECH=generic])
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
FUSB_TECH=generic
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([for fast usb technique to use])
|
|
||||||
AC_MSG_RESULT($FUSB_TECH)
|
|
||||||
AC_SUBST(FUSB_TECH)
|
|
||||||
fi
|
|
||||||
|
|
||||||
AM_CONDITIONAL(FUSB_TECH_darwin, test x$FUSB_TECH = xdarwin)
|
|
||||||
AM_CONDITIONAL(FUSB_TECH_win32, test x$FUSB_TECH = xwin32)
|
|
||||||
AM_CONDITIONAL(FUSB_TECH_generic, test x$FUSB_TECH = xgeneric)
|
|
||||||
AM_CONDITIONAL(FUSB_TECH_linux, test x$FUSB_TECH = xlinux)
|
|
||||||
AM_CONDITIONAL(FUSB_TECH_ra_wb, test x$FUSB_TECH = xra_wb)
|
|
||||||
])
|
|
@ -1,48 +0,0 @@
|
|||||||
dnl Copyright 2003,2008 Free Software Foundation, Inc.
|
|
||||||
dnl
|
|
||||||
dnl This file is part of GNU Radio
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is free software; you can redistribute it and/or modify
|
|
||||||
dnl it under the terms of the GNU General Public License as published by
|
|
||||||
dnl the Free Software Foundation; either version 3, or (at your option)
|
|
||||||
dnl any later version.
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is distributed in the hope that it will be useful,
|
|
||||||
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
dnl GNU General Public License for more details.
|
|
||||||
dnl
|
|
||||||
dnl You should have received a copy of the GNU General Public License
|
|
||||||
dnl along with GNU Radio; see the file COPYING. If not, write to
|
|
||||||
dnl the Free Software Foundation, Inc., 51 Franklin Street,
|
|
||||||
dnl Boston, MA 02110-1301, USA.
|
|
||||||
|
|
||||||
AC_DEFUN([USRP_LIBUSB], [
|
|
||||||
libusbok=yes
|
|
||||||
PKG_CHECK_MODULES(USB, libusb, [], [
|
|
||||||
AC_LANG_PUSH(C)
|
|
||||||
|
|
||||||
AC_CHECK_HEADERS([usb.h], [], [libusbok=no; AC_MSG_RESULT([USRP requires libusb. usb.h not found. See http://libusb.sf.net])])
|
|
||||||
|
|
||||||
save_LIBS="$LIBS"
|
|
||||||
case "$host_os" in
|
|
||||||
darwin*)
|
|
||||||
LIBS="$LIBS -lIOKit"
|
|
||||||
;;
|
|
||||||
*) ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
AC_SEARCH_LIBS(usb_bulk_write, [usb], [USB_LIBS="$LIBS"], [libusbok=no; AC_MSG_RESULT([USRP requires libusb. usb_bulk_write not found. See http://libusb.sf.net])])
|
|
||||||
|
|
||||||
LIBS="$save_LIBS"
|
|
||||||
|
|
||||||
AC_LANG_POP
|
|
||||||
])
|
|
||||||
|
|
||||||
if test x$libusbok = xyes; then
|
|
||||||
AC_SUBST(USB_LIBS)
|
|
||||||
ifelse([$1], , :, [$1])
|
|
||||||
else
|
|
||||||
ifelse([$2], , :, [$2])
|
|
||||||
fi
|
|
||||||
])
|
|
@ -1,75 +0,0 @@
|
|||||||
# Check for sdcc support. -*- Autoconf -*-
|
|
||||||
|
|
||||||
# Copyright 2004 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 3, or (at your option)
|
|
||||||
# any later version.
|
|
||||||
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program; if not, write to the Free Software
|
|
||||||
# Foundation, Inc., 51 Franklin Street, Boston, MA
|
|
||||||
# 02110-1301, USA.
|
|
||||||
|
|
||||||
AC_DEFUN([USRP_SDCC],
|
|
||||||
[
|
|
||||||
sdccok=yes
|
|
||||||
AC_CHECK_PROG(XCC, sdcc, sdcc -mmcs51 --no-xinit-opt,no)
|
|
||||||
AC_CHECK_PROG(XAS, asx8051, asx8051 -plosgff,no)
|
|
||||||
|
|
||||||
if test "$XCC" = "no" -o "$XAS" = "no" ; then
|
|
||||||
AC_MSG_RESULT([USRP requires sdcc. sdcc not found. See http://sdcc.sf.net])
|
|
||||||
sdccok=no
|
|
||||||
else
|
|
||||||
sdcc_version_min=$1
|
|
||||||
|
|
||||||
sdcc_version=`sdcc --version 2>&1 | \
|
|
||||||
sed 's/\(SDCC.* \)\([[0-9]]*\.[[0-9]]*\.[[0-9]]*\)\( .*$\)/\2/'`
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([sdcc_version "$sdcc_version"])
|
|
||||||
|
|
||||||
sdcc_major_version=`echo $sdcc_version | \
|
|
||||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
|
|
||||||
sdcc_minor_version=`echo $sdcc_version | \
|
|
||||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
|
|
||||||
sdcc_micro_version=`echo $sdcc_version | \
|
|
||||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
|
|
||||||
|
|
||||||
sdcc_major_min=`echo $sdcc_version_min | \
|
|
||||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
|
|
||||||
sdcc_minor_min=`echo $sdcc_version_min | \
|
|
||||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
|
|
||||||
sdcc_micro_min=`echo $sdcc_version_min | \
|
|
||||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
|
|
||||||
|
|
||||||
sdcc_version_proper=`expr \
|
|
||||||
"$sdcc_major_version" \> "$sdcc_major_min" \| \
|
|
||||||
"$sdcc_major_version" \= "$sdcc_major_min" \& \
|
|
||||||
"$sdcc_minor_version" \> "$sdcc_minor_min" \| \
|
|
||||||
"$sdcc_major_version" \= "$sdcc_major_min" \& \
|
|
||||||
"$sdcc_minor_version" \= "$sdcc_minor_min" \& \
|
|
||||||
"$sdcc_micro_version" \>= "$sdcc_micro_min" `
|
|
||||||
|
|
||||||
if test "$sdcc_version_proper" = "1" ; then
|
|
||||||
AC_MSG_RESULT([$sdcc_major_version.$sdcc_minor_version.$sdcc_micro_version])
|
|
||||||
else
|
|
||||||
sdccok=no
|
|
||||||
AC_MSG_RESULT([USRP requires sdcc >= $sdcc_version_min. sdcc not found. See http://sdcc.sf.net])
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_SUBST(XCC)
|
|
||||||
AC_SUBST(XAS)
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test $sdccok = yes; then
|
|
||||||
ifelse([$2], , :, [$2])
|
|
||||||
else
|
|
||||||
ifelse([$3], , :, [$3])
|
|
||||||
fi
|
|
||||||
])
|
|
70
configure.ac
70
configure.ac
@ -1,70 +0,0 @@
|
|||||||
dnl
|
|
||||||
dnl Copyright 2004,2005,2007,2008,2009 Free Software Foundation, Inc.
|
|
||||||
dnl
|
|
||||||
dnl This file is part of GNU Radio
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is free software; you can redistribute it and/or modify
|
|
||||||
dnl it under the terms of the GNU General Public License as published by
|
|
||||||
dnl the Free Software Foundation; either version 3, or (at your option)
|
|
||||||
dnl any later version.
|
|
||||||
dnl
|
|
||||||
dnl GNU Radio is distributed in the hope that it will be useful,
|
|
||||||
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
dnl GNU General Public License for more details.
|
|
||||||
dnl
|
|
||||||
dnl You should have received a copy of the GNU General Public License
|
|
||||||
dnl along with GNU Radio; see the file COPYING. If not, write to
|
|
||||||
dnl the Free Software Foundation, Inc., 51 Franklin Street,
|
|
||||||
dnl Boston, MA 02110-1301, USA.
|
|
||||||
dnl
|
|
||||||
|
|
||||||
AC_INIT(gr-howto-write-a-block,3.3svn)
|
|
||||||
AC_PREREQ(2.57)
|
|
||||||
AC_CONFIG_AUX_DIR([.])
|
|
||||||
|
|
||||||
dnl This is kind of non-standard, but it sure shortens up this file :-)
|
|
||||||
m4_include([config/gr_standalone.m4])
|
|
||||||
GR_STANDALONE
|
|
||||||
|
|
||||||
dnl Check for any libraries you need
|
|
||||||
dnl AC_CHECK_LIBRARY
|
|
||||||
|
|
||||||
dnl Check for header files you need
|
|
||||||
dnl AC_CHECK_HEADERS(fcntl.h limits.h strings.h sys/ioctl.h sys/time.h unistd.h)
|
|
||||||
dnl AC_CHECK_HEADERS(sys/mman.h)
|
|
||||||
|
|
||||||
dnl Checks for library functions.
|
|
||||||
dnl AC_CHECK_FUNCS([])
|
|
||||||
|
|
||||||
dnl We pick up the boost cppflags, cxxflags and thread lib via GNURADIO_CORE
|
|
||||||
dnl
|
|
||||||
dnl If you need additional boost libraries, you'll need to
|
|
||||||
dnl uncomment AX_BOOST_BASE, plus some of the following:
|
|
||||||
dnl
|
|
||||||
dnl calls AC_SUBST(BOOST_CPPFLAGS), AC_SUBST(BOOST_LDFLAGS) and defines HAVE_BOOST
|
|
||||||
dnl AX_BOOST_BASE([1.35])
|
|
||||||
dnl
|
|
||||||
dnl All the rest of these call AC_SUBST(BOOST_<foo>_LIB) and define HAVE_BOOST_<foo>
|
|
||||||
dnl
|
|
||||||
dnl AX_BOOST_DATE_TIME
|
|
||||||
dnl AX_BOOST_FILESYSTEM
|
|
||||||
dnl AX_BOOST_IOSTREAMS
|
|
||||||
dnl AX_BOOST_PROGRAM_OPTIONS
|
|
||||||
dnl AX_BOOST_REGEX
|
|
||||||
dnl AX_BOOST_SERIALIZATION
|
|
||||||
dnl AX_BOOST_SIGNALS
|
|
||||||
dnl AX_BOOST_SYSTEM
|
|
||||||
dnl AX_BOOST_TEST_EXEC_MONITOR
|
|
||||||
dnl AX_BOOST_UNIT_TEST_FRAMEWORK
|
|
||||||
dnl AX_BOOST_WSERIALIZATION
|
|
||||||
|
|
||||||
AC_CONFIG_FILES([\
|
|
||||||
Makefile \
|
|
||||||
config/Makefile \
|
|
||||||
src/Makefile \
|
|
||||||
src/lib/Makefile \
|
|
||||||
src/python/Makefile \
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_OUTPUT
|
|
24
bootstrap → docs/CMakeLists.txt
Executable file → Normal file
24
bootstrap → docs/CMakeLists.txt
Executable file → Normal file
@ -1,6 +1,4 @@
|
|||||||
#!/bin/sh
|
# Copyright 2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
# Copyright 2001,2005,2008 Free Software Foundation, Inc.
|
|
||||||
#
|
#
|
||||||
# This file is part of GNU Radio
|
# This file is part of GNU Radio
|
||||||
#
|
#
|
||||||
@ -19,11 +17,19 @@
|
|||||||
# the Free Software Foundation, Inc., 51 Franklin Street,
|
# the Free Software Foundation, Inc., 51 Franklin Street,
|
||||||
# Boston, MA 02110-1301, USA.
|
# Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Setup dependencies
|
||||||
|
########################################################################
|
||||||
|
find_package(Doxygen)
|
||||||
|
|
||||||
rm -fr config.cache autom4te*.cache
|
########################################################################
|
||||||
|
# Begin conditional configuration
|
||||||
|
########################################################################
|
||||||
|
if(ENABLE_DOXYGEN)
|
||||||
|
|
||||||
aclocal -I config
|
########################################################################
|
||||||
autoconf
|
# Add subdirectories
|
||||||
autoheader
|
########################################################################
|
||||||
libtoolize --automake -c -f
|
add_subdirectory(doxygen)
|
||||||
automake --add-missing -c -f -Wno-portability
|
|
||||||
|
endif(ENABLE_DOXYGEN)
|
52
docs/doxygen/CMakeLists.txt
Normal file
52
docs/doxygen/CMakeLists.txt
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
# Copyright 2011 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is part of GNU Radio
|
||||||
|
#
|
||||||
|
# GNU Radio is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 3, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# GNU Radio is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with GNU Radio; see the file COPYING. If not, write to
|
||||||
|
# the Free Software Foundation, Inc., 51 Franklin Street,
|
||||||
|
# Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Create the doxygen configuration file
|
||||||
|
########################################################################
|
||||||
|
file(TO_NATIVE_PATH ${CMAKE_SOURCE_DIR} top_srcdir)
|
||||||
|
file(TO_NATIVE_PATH ${CMAKE_BINARY_DIR} top_builddir)
|
||||||
|
file(TO_NATIVE_PATH ${CMAKE_SOURCE_DIR} abs_top_srcdir)
|
||||||
|
file(TO_NATIVE_PATH ${CMAKE_BINARY_DIR} abs_top_builddir)
|
||||||
|
|
||||||
|
set(HAVE_DOT ${DOXYGEN_DOT_FOUND})
|
||||||
|
set(enable_html_docs YES)
|
||||||
|
set(enable_latex_docs NO)
|
||||||
|
set(enable_xml_docs YES)
|
||||||
|
|
||||||
|
configure_file(
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
|
||||||
|
@ONLY)
|
||||||
|
|
||||||
|
set(BUILT_DIRS ${CMAKE_CURRENT_BINARY_DIR}/xml ${CMAKE_CURRENT_BINARY_DIR}/html)
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Make and install doxygen docs
|
||||||
|
########################################################################
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT ${BUILT_DIRS}
|
||||||
|
COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||||
|
COMMENT "Generating documentation with doxygen"
|
||||||
|
)
|
||||||
|
|
||||||
|
add_custom_target(doxygen_target ALL DEPENDS ${BUILT_DIRS})
|
||||||
|
|
||||||
|
install(DIRECTORY ${BUILT_DIRS} DESTINATION ${GR_PKG_DOC_DIR})
|
1504
docs/doxygen/Doxyfile.in
Normal file
1504
docs/doxygen/Doxyfile.in
Normal file
File diff suppressed because it is too large
Load Diff
1514
docs/doxygen/Doxyfile.swig_doc.in
Normal file
1514
docs/doxygen/Doxyfile.swig_doc.in
Normal file
File diff suppressed because it is too large
Load Diff
3
docs/doxygen/doxyxml/.gitignore
vendored
Normal file
3
docs/doxygen/doxyxml/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
/Makefile
|
||||||
|
/Makefile.in
|
||||||
|
|
52
docs/doxygen/doxyxml/Makefile.am
Normal file
52
docs/doxygen/doxyxml/Makefile.am
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
#
|
||||||
|
# Copyright 2007,2009,2011 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is part of GNU Radio
|
||||||
|
#
|
||||||
|
# GNU Radio is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 3, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# GNU Radio is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with GNU Radio; see the file COPYING. If not, write to
|
||||||
|
# the Free Software Foundation, Inc., 51 Franklin Street,
|
||||||
|
# Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
|
||||||
|
include $(top_srcdir)/Makefile.common
|
||||||
|
|
||||||
|
EXTRA_DIST = \
|
||||||
|
example/aadvark.cc \
|
||||||
|
example/aadvark.h \
|
||||||
|
example/Doxyfile \
|
||||||
|
example/xml/aadvark_8cc.xml \
|
||||||
|
example/xml/aadvark_8h.xml \
|
||||||
|
example/xml/classAadvark.xml \
|
||||||
|
example/xml/combine.xslt \
|
||||||
|
example/xml/compound.xsd \
|
||||||
|
example/xml/index.xml \
|
||||||
|
example/xml/index.xsd
|
||||||
|
|
||||||
|
if PYTHON
|
||||||
|
utilspythondir = $(grpythondir)/doxyxml
|
||||||
|
|
||||||
|
TESTS = \
|
||||||
|
run_tests
|
||||||
|
|
||||||
|
nobase_utilspython_PYTHON = \
|
||||||
|
__init__.py \
|
||||||
|
base.py \
|
||||||
|
doxyindex.py \
|
||||||
|
text.py \
|
||||||
|
generated/__init__.py \
|
||||||
|
generated/index.py \
|
||||||
|
generated/indexsuper.py \
|
||||||
|
generated/compound.py \
|
||||||
|
generated/compoundsuper.py
|
||||||
|
endif
|
82
docs/doxygen/doxyxml/__init__.py
Normal file
82
docs/doxygen/doxyxml/__init__.py
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
#
|
||||||
|
# Copyright 2010 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is part of GNU Radio
|
||||||
|
#
|
||||||
|
# GNU Radio is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 3, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# GNU Radio is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with GNU Radio; see the file COPYING. If not, write to
|
||||||
|
# the Free Software Foundation, Inc., 51 Franklin Street,
|
||||||
|
# Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
"""
|
||||||
|
Python interface to contents of doxygen xml documentation.
|
||||||
|
|
||||||
|
Example use:
|
||||||
|
See the contents of the example folder for the C++ and
|
||||||
|
doxygen-generated xml used in this example.
|
||||||
|
|
||||||
|
>>> # Parse the doxygen docs.
|
||||||
|
>>> import os
|
||||||
|
>>> this_dir = os.path.dirname(globals()['__file__'])
|
||||||
|
>>> xml_path = this_dir + "/example/xml/"
|
||||||
|
>>> di = DoxyIndex(xml_path)
|
||||||
|
|
||||||
|
Get a list of all top-level objects.
|
||||||
|
|
||||||
|
>>> print([mem.name() for mem in di.members()])
|
||||||
|
[u'Aadvark', u'aadvarky_enough', u'main']
|
||||||
|
|
||||||
|
Get all functions.
|
||||||
|
|
||||||
|
>>> print([mem.name() for mem in di.in_category(DoxyFunction)])
|
||||||
|
[u'aadvarky_enough', u'main']
|
||||||
|
|
||||||
|
Check if an object is present.
|
||||||
|
|
||||||
|
>>> di.has_member(u'Aadvark')
|
||||||
|
True
|
||||||
|
>>> di.has_member(u'Fish')
|
||||||
|
False
|
||||||
|
|
||||||
|
Get an item by name and check its properties.
|
||||||
|
|
||||||
|
>>> aad = di.get_member(u'Aadvark')
|
||||||
|
>>> print(aad.brief_description)
|
||||||
|
Models the mammal Aadvark.
|
||||||
|
>>> print(aad.detailed_description)
|
||||||
|
Sadly the model is incomplete and cannot capture all aspects of an aadvark yet.
|
||||||
|
<BLANKLINE>
|
||||||
|
This line is uninformative and is only to test line breaks in the comments.
|
||||||
|
>>> [mem.name() for mem in aad.members()]
|
||||||
|
[u'aadvarkness', u'print', u'Aadvark', u'get_aadvarkness']
|
||||||
|
>>> aad.get_member(u'print').brief_description
|
||||||
|
u'Outputs the vital aadvark statistics.'
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
from doxyindex import DoxyIndex, DoxyFunction, DoxyParam, DoxyClass, DoxyFile, DoxyNamespace, DoxyGroup, DoxyFriend, DoxyOther
|
||||||
|
|
||||||
|
def _test():
|
||||||
|
import os
|
||||||
|
this_dir = os.path.dirname(globals()['__file__'])
|
||||||
|
xml_path = this_dir + "/example/xml/"
|
||||||
|
di = DoxyIndex(xml_path)
|
||||||
|
# Get the Aadvark class
|
||||||
|
aad = di.get_member('Aadvark')
|
||||||
|
aad.brief_description
|
||||||
|
import doctest
|
||||||
|
return doctest.testmod()
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
_test()
|
||||||
|
|
219
docs/doxygen/doxyxml/base.py
Normal file
219
docs/doxygen/doxyxml/base.py
Normal file
@ -0,0 +1,219 @@
|
|||||||
|
#
|
||||||
|
# Copyright 2010 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is part of GNU Radio
|
||||||
|
#
|
||||||
|
# GNU Radio is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 3, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# GNU Radio is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with GNU Radio; see the file COPYING. If not, write to
|
||||||
|
# the Free Software Foundation, Inc., 51 Franklin Street,
|
||||||
|
# Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
"""
|
||||||
|
A base class is created.
|
||||||
|
|
||||||
|
Classes based upon this are used to make more user-friendly interfaces
|
||||||
|
to the doxygen xml docs than the generated classes provide.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import os
|
||||||
|
import pdb
|
||||||
|
|
||||||
|
from xml.parsers.expat import ExpatError
|
||||||
|
|
||||||
|
from generated import compound
|
||||||
|
|
||||||
|
|
||||||
|
class Base(object):
|
||||||
|
|
||||||
|
class Duplicate(StandardError):
|
||||||
|
pass
|
||||||
|
|
||||||
|
class NoSuchMember(StandardError):
|
||||||
|
pass
|
||||||
|
|
||||||
|
class ParsingError(StandardError):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def __init__(self, parse_data, top=None):
|
||||||
|
self._parsed = False
|
||||||
|
self._error = False
|
||||||
|
self._parse_data = parse_data
|
||||||
|
self._members = []
|
||||||
|
self._dict_members = {}
|
||||||
|
self._in_category = {}
|
||||||
|
self._data = {}
|
||||||
|
if top is not None:
|
||||||
|
self._xml_path = top._xml_path
|
||||||
|
# Set up holder of references
|
||||||
|
else:
|
||||||
|
top = self
|
||||||
|
self._refs = {}
|
||||||
|
self._xml_path = parse_data
|
||||||
|
self.top = top
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_refid(cls, refid, top=None):
|
||||||
|
""" Instantiate class from a refid rather than parsing object. """
|
||||||
|
# First check to see if its already been instantiated.
|
||||||
|
if top is not None and refid in top._refs:
|
||||||
|
return top._refs[refid]
|
||||||
|
# Otherwise create a new instance and set refid.
|
||||||
|
inst = cls(None, top=top)
|
||||||
|
inst.refid = refid
|
||||||
|
inst.add_ref(inst)
|
||||||
|
return inst
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_parse_data(cls, parse_data, top=None):
|
||||||
|
refid = getattr(parse_data, 'refid', None)
|
||||||
|
if refid is not None and top is not None and refid in top._refs:
|
||||||
|
return top._refs[refid]
|
||||||
|
inst = cls(parse_data, top=top)
|
||||||
|
if refid is not None:
|
||||||
|
inst.refid = refid
|
||||||
|
inst.add_ref(inst)
|
||||||
|
return inst
|
||||||
|
|
||||||
|
def add_ref(self, obj):
|
||||||
|
if hasattr(obj, 'refid'):
|
||||||
|
self.top._refs[obj.refid] = obj
|
||||||
|
|
||||||
|
mem_classes = []
|
||||||
|
|
||||||
|
def get_cls(self, mem):
|
||||||
|
for cls in self.mem_classes:
|
||||||
|
if cls.can_parse(mem):
|
||||||
|
return cls
|
||||||
|
raise StandardError(("Did not find a class for object '%s'." \
|
||||||
|
% (mem.get_name())))
|
||||||
|
|
||||||
|
def convert_mem(self, mem):
|
||||||
|
try:
|
||||||
|
cls = self.get_cls(mem)
|
||||||
|
converted = cls.from_parse_data(mem, self.top)
|
||||||
|
if converted is None:
|
||||||
|
raise StandardError('No class matched this object.')
|
||||||
|
self.add_ref(converted)
|
||||||
|
return converted
|
||||||
|
except StandardError, e:
|
||||||
|
print e
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def includes(cls, inst):
|
||||||
|
return isinstance(inst, cls)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def can_parse(cls, obj):
|
||||||
|
return False
|
||||||
|
|
||||||
|
def _parse(self):
|
||||||
|
self._parsed = True
|
||||||
|
|
||||||
|
def _get_dict_members(self, cat=None):
|
||||||
|
"""
|
||||||
|
For given category a dictionary is returned mapping member names to
|
||||||
|
members of that category. For names that are duplicated the name is
|
||||||
|
mapped to None.
|
||||||
|
"""
|
||||||
|
self.confirm_no_error()
|
||||||
|
if cat not in self._dict_members:
|
||||||
|
new_dict = {}
|
||||||
|
for mem in self.in_category(cat):
|
||||||
|
if mem.name() not in new_dict:
|
||||||
|
new_dict[mem.name()] = mem
|
||||||
|
else:
|
||||||
|
new_dict[mem.name()] = self.Duplicate
|
||||||
|
self._dict_members[cat] = new_dict
|
||||||
|
return self._dict_members[cat]
|
||||||
|
|
||||||
|
def in_category(self, cat):
|
||||||
|
self.confirm_no_error()
|
||||||
|
if cat is None:
|
||||||
|
return self._members
|
||||||
|
if cat not in self._in_category:
|
||||||
|
self._in_category[cat] = [mem for mem in self._members
|
||||||
|
if cat.includes(mem)]
|
||||||
|
return self._in_category[cat]
|
||||||
|
|
||||||
|
def get_member(self, name, cat=None):
|
||||||
|
self.confirm_no_error()
|
||||||
|
# Check if it's in a namespace or class.
|
||||||
|
bits = name.split('::')
|
||||||
|
first = bits[0]
|
||||||
|
rest = '::'.join(bits[1:])
|
||||||
|
member = self._get_dict_members(cat).get(first, self.NoSuchMember)
|
||||||
|
# Raise any errors that are returned.
|
||||||
|
if member in set([self.NoSuchMember, self.Duplicate]):
|
||||||
|
raise member()
|
||||||
|
if rest:
|
||||||
|
return member.get_member(rest, cat=cat)
|
||||||
|
return member
|
||||||
|
|
||||||
|
def has_member(self, name, cat=None):
|
||||||
|
try:
|
||||||
|
mem = self.get_member(name, cat=cat)
|
||||||
|
return True
|
||||||
|
except self.NoSuchMember:
|
||||||
|
return False
|
||||||
|
|
||||||
|
def data(self):
|
||||||
|
self.confirm_no_error()
|
||||||
|
return self._data
|
||||||
|
|
||||||
|
def members(self):
|
||||||
|
self.confirm_no_error()
|
||||||
|
return self._members
|
||||||
|
|
||||||
|
def process_memberdefs(self):
|
||||||
|
mdtss = []
|
||||||
|
for sec in self._retrieved_data.compounddef.sectiondef:
|
||||||
|
mdtss += sec.memberdef
|
||||||
|
# At the moment we lose all information associated with sections.
|
||||||
|
# Sometimes a memberdef is in several sectiondef.
|
||||||
|
# We make sure we don't get duplicates here.
|
||||||
|
uniques = set([])
|
||||||
|
for mem in mdtss:
|
||||||
|
converted = self.convert_mem(mem)
|
||||||
|
pair = (mem.name, mem.__class__)
|
||||||
|
if pair not in uniques:
|
||||||
|
uniques.add(pair)
|
||||||
|
self._members.append(converted)
|
||||||
|
|
||||||
|
def retrieve_data(self):
|
||||||
|
filename = os.path.join(self._xml_path, self.refid + '.xml')
|
||||||
|
try:
|
||||||
|
self._retrieved_data = compound.parse(filename)
|
||||||
|
except ExpatError:
|
||||||
|
print('Error in xml in file %s' % filename)
|
||||||
|
self._error = True
|
||||||
|
self._retrieved_data = None
|
||||||
|
|
||||||
|
def check_parsed(self):
|
||||||
|
if not self._parsed:
|
||||||
|
self._parse()
|
||||||
|
|
||||||
|
def confirm_no_error(self):
|
||||||
|
self.check_parsed()
|
||||||
|
if self._error:
|
||||||
|
raise self.ParsingError()
|
||||||
|
|
||||||
|
def error(self):
|
||||||
|
self.check_parsed()
|
||||||
|
return self._error
|
||||||
|
|
||||||
|
def name(self):
|
||||||
|
# first see if we can do it without processing.
|
||||||
|
if self._parse_data is not None:
|
||||||
|
return self._parse_data.name
|
||||||
|
self.check_parsed()
|
||||||
|
return self._retrieved_data.compounddef.name
|
237
docs/doxygen/doxyxml/doxyindex.py
Normal file
237
docs/doxygen/doxyxml/doxyindex.py
Normal file
@ -0,0 +1,237 @@
|
|||||||
|
#
|
||||||
|
# Copyright 2010 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is part of GNU Radio
|
||||||
|
#
|
||||||
|
# GNU Radio is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 3, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# GNU Radio is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with GNU Radio; see the file COPYING. If not, write to
|
||||||
|
# the Free Software Foundation, Inc., 51 Franklin Street,
|
||||||
|
# Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
"""
|
||||||
|
Classes providing more user-friendly interfaces to the doxygen xml
|
||||||
|
docs than the generated classes provide.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
from generated import index
|
||||||
|
from base import Base
|
||||||
|
from text import description
|
||||||
|
|
||||||
|
class DoxyIndex(Base):
|
||||||
|
"""
|
||||||
|
Parses a doxygen xml directory.
|
||||||
|
"""
|
||||||
|
|
||||||
|
__module__ = "gnuradio.utils.doxyxml"
|
||||||
|
|
||||||
|
def _parse(self):
|
||||||
|
if self._parsed:
|
||||||
|
return
|
||||||
|
super(DoxyIndex, self)._parse()
|
||||||
|
self._root = index.parse(os.path.join(self._xml_path, 'index.xml'))
|
||||||
|
for mem in self._root.compound:
|
||||||
|
converted = self.convert_mem(mem)
|
||||||
|
# For files we want the contents to be accessible directly
|
||||||
|
# from the parent rather than having to go through the file
|
||||||
|
# object.
|
||||||
|
if self.get_cls(mem) == DoxyFile:
|
||||||
|
if mem.name.endswith('.h'):
|
||||||
|
self._members += converted.members()
|
||||||
|
self._members.append(converted)
|
||||||
|
else:
|
||||||
|
self._members.append(converted)
|
||||||
|
|
||||||
|
|
||||||
|
def generate_swig_doc_i(self):
|
||||||
|
"""
|
||||||
|
%feature("docstring") gr_make_align_on_samplenumbers_ss::align_state "
|
||||||
|
Wraps the C++: gr_align_on_samplenumbers_ss::align_state";
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class DoxyCompMem(Base):
|
||||||
|
|
||||||
|
|
||||||
|
kind = None
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
super(DoxyCompMem, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def can_parse(cls, obj):
|
||||||
|
return obj.kind == cls.kind
|
||||||
|
|
||||||
|
def set_descriptions(self, parse_data):
|
||||||
|
bd = description(getattr(parse_data, 'briefdescription', None))
|
||||||
|
dd = description(getattr(parse_data, 'detaileddescription', None))
|
||||||
|
self._data['brief_description'] = bd
|
||||||
|
self._data['detailed_description'] = dd
|
||||||
|
|
||||||
|
class DoxyCompound(DoxyCompMem):
|
||||||
|
pass
|
||||||
|
|
||||||
|
class DoxyMember(DoxyCompMem):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class DoxyFunction(DoxyMember):
|
||||||
|
|
||||||
|
__module__ = "gnuradio.utils.doxyxml"
|
||||||
|
|
||||||
|
kind = 'function'
|
||||||
|
|
||||||
|
def _parse(self):
|
||||||
|
if self._parsed:
|
||||||
|
return
|
||||||
|
super(DoxyFunction, self)._parse()
|
||||||
|
self.set_descriptions(self._parse_data)
|
||||||
|
self._data['params'] = []
|
||||||
|
prms = self._parse_data.param
|
||||||
|
for prm in prms:
|
||||||
|
self._data['params'].append(DoxyParam(prm))
|
||||||
|
|
||||||
|
brief_description = property(lambda self: self.data()['brief_description'])
|
||||||
|
detailed_description = property(lambda self: self.data()['detailed_description'])
|
||||||
|
params = property(lambda self: self.data()['params'])
|
||||||
|
|
||||||
|
Base.mem_classes.append(DoxyFunction)
|
||||||
|
|
||||||
|
|
||||||
|
class DoxyParam(DoxyMember):
|
||||||
|
|
||||||
|
__module__ = "gnuradio.utils.doxyxml"
|
||||||
|
|
||||||
|
def _parse(self):
|
||||||
|
if self._parsed:
|
||||||
|
return
|
||||||
|
super(DoxyParam, self)._parse()
|
||||||
|
self.set_descriptions(self._parse_data)
|
||||||
|
self._data['declname'] = self._parse_data.declname
|
||||||
|
|
||||||
|
brief_description = property(lambda self: self.data()['brief_description'])
|
||||||
|
detailed_description = property(lambda self: self.data()['detailed_description'])
|
||||||
|
declname = property(lambda self: self.data()['declname'])
|
||||||
|
|
||||||
|
class DoxyClass(DoxyCompound):
|
||||||
|
|
||||||
|
__module__ = "gnuradio.utils.doxyxml"
|
||||||
|
|
||||||
|
kind = 'class'
|
||||||
|
|
||||||
|
def _parse(self):
|
||||||
|
if self._parsed:
|
||||||
|
return
|
||||||
|
super(DoxyClass, self)._parse()
|
||||||
|
self.retrieve_data()
|
||||||
|
if self._error:
|
||||||
|
return
|
||||||
|
self.set_descriptions(self._retrieved_data.compounddef)
|
||||||
|
# Sectiondef.kind tells about whether private or public.
|
||||||
|
# We just ignore this for now.
|
||||||
|
self.process_memberdefs()
|
||||||
|
|
||||||
|
brief_description = property(lambda self: self.data()['brief_description'])
|
||||||
|
detailed_description = property(lambda self: self.data()['detailed_description'])
|
||||||
|
|
||||||
|
Base.mem_classes.append(DoxyClass)
|
||||||
|
|
||||||
|
|
||||||
|
class DoxyFile(DoxyCompound):
|
||||||
|
|
||||||
|
__module__ = "gnuradio.utils.doxyxml"
|
||||||
|
|
||||||
|
kind = 'file'
|
||||||
|
|
||||||
|
def _parse(self):
|
||||||
|
if self._parsed:
|
||||||
|
return
|
||||||
|
super(DoxyFile, self)._parse()
|
||||||
|
self.retrieve_data()
|
||||||
|
self.set_descriptions(self._retrieved_data.compounddef)
|
||||||
|
if self._error:
|
||||||
|
return
|
||||||
|
self.process_memberdefs()
|
||||||
|
|
||||||
|
brief_description = property(lambda self: self.data()['brief_description'])
|
||||||
|
detailed_description = property(lambda self: self.data()['detailed_description'])
|
||||||
|
|
||||||
|
Base.mem_classes.append(DoxyFile)
|
||||||
|
|
||||||
|
|
||||||
|
class DoxyNamespace(DoxyCompound):
|
||||||
|
|
||||||
|
__module__ = "gnuradio.utils.doxyxml"
|
||||||
|
|
||||||
|
kind = 'namespace'
|
||||||
|
|
||||||
|
Base.mem_classes.append(DoxyNamespace)
|
||||||
|
|
||||||
|
|
||||||
|
class DoxyGroup(DoxyCompound):
|
||||||
|
|
||||||
|
__module__ = "gnuradio.utils.doxyxml"
|
||||||
|
|
||||||
|
kind = 'group'
|
||||||
|
|
||||||
|
def _parse(self):
|
||||||
|
if self._parsed:
|
||||||
|
return
|
||||||
|
super(DoxyGroup, self)._parse()
|
||||||
|
self.retrieve_data()
|
||||||
|
if self._error:
|
||||||
|
return
|
||||||
|
cdef = self._retrieved_data.compounddef
|
||||||
|
self._data['title'] = description(cdef.title)
|
||||||
|
# Process inner groups
|
||||||
|
grps = cdef.innergroup
|
||||||
|
for grp in grps:
|
||||||
|
converted = DoxyGroup.from_refid(grp.refid, top=self.top)
|
||||||
|
self._members.append(converted)
|
||||||
|
# Process inner classes
|
||||||
|
klasses = cdef.innerclass
|
||||||
|
for kls in klasses:
|
||||||
|
converted = DoxyClass.from_refid(kls.refid, top=self.top)
|
||||||
|
self._members.append(converted)
|
||||||
|
# Process normal members
|
||||||
|
self.process_memberdefs()
|
||||||
|
|
||||||
|
title = property(lambda self: self.data()['title'])
|
||||||
|
|
||||||
|
|
||||||
|
Base.mem_classes.append(DoxyGroup)
|
||||||
|
|
||||||
|
|
||||||
|
class DoxyFriend(DoxyMember):
|
||||||
|
|
||||||
|
__module__ = "gnuradio.utils.doxyxml"
|
||||||
|
|
||||||
|
kind = 'friend'
|
||||||
|
|
||||||
|
Base.mem_classes.append(DoxyFriend)
|
||||||
|
|
||||||
|
|
||||||
|
class DoxyOther(Base):
|
||||||
|
|
||||||
|
__module__ = "gnuradio.utils.doxyxml"
|
||||||
|
|
||||||
|
kinds = set(['variable', 'struct', 'union', 'define', 'typedef', 'enum', 'dir', 'page'])
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def can_parse(cls, obj):
|
||||||
|
return obj.kind in cls.kinds
|
||||||
|
|
||||||
|
Base.mem_classes.append(DoxyOther)
|
||||||
|
|
1551
docs/doxygen/doxyxml/example/Doxyfile
Normal file
1551
docs/doxygen/doxyxml/example/Doxyfile
Normal file
File diff suppressed because it is too large
Load Diff
50
docs/doxygen/doxyxml/example/aadvark.cc
Normal file
50
docs/doxygen/doxyxml/example/aadvark.cc
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
/* -*- c++ -*- */
|
||||||
|
/*
|
||||||
|
* Copyright 2010 Free Software Foundation, Inc.
|
||||||
|
*
|
||||||
|
* This file is part of GNU Radio
|
||||||
|
*
|
||||||
|
* GNU Radio is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3, or (at your option)
|
||||||
|
* any later version.
|
||||||
|
*
|
||||||
|
* GNU Radio is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with GNU Radio; see the file COPYING. If not, write to
|
||||||
|
* the Free Software Foundation, Inc., 51 Franklin Street,
|
||||||
|
* Boston, MA 02110-1301, USA.
|
||||||
|
*/
|
||||||
|
#include <iostream>
|
||||||
|
#include "aadvark.h"
|
||||||
|
|
||||||
|
void Aadvark::print() {
|
||||||
|
std::cout << "aadvark is " << aadvarkness << "/10 aadvarky" << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
Aadvark::Aadvark(int aaness): aadvarkness(aaness) {}
|
||||||
|
|
||||||
|
bool aadvarky_enough(Aadvark aad) {
|
||||||
|
if (aad.get_aadvarkness() > 6)
|
||||||
|
return true;
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
int Aadvark::get_aadvarkness() {
|
||||||
|
return aadvarkness;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
Aadvark arold = Aadvark(6);
|
||||||
|
arold.print();
|
||||||
|
if (aadvarky_enough(arold))
|
||||||
|
std::cout << "He is aadvarky enough" << std::endl;
|
||||||
|
else
|
||||||
|
std::cout << "He is not aadvarky enough" << std::endl;
|
||||||
|
}
|
||||||
|
|
44
docs/doxygen/doxyxml/example/aadvark.h
Normal file
44
docs/doxygen/doxyxml/example/aadvark.h
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
/* -*- c++ -*- */
|
||||||
|
/*
|
||||||
|
* Copyright 2010 Free Software Foundation, Inc.
|
||||||
|
*
|
||||||
|
* This file is part of GNU Radio
|
||||||
|
*
|
||||||
|
* GNU Radio is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3, or (at your option)
|
||||||
|
* any later version.
|
||||||
|
*
|
||||||
|
* GNU Radio is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with GNU Radio; see the file COPYING. If not, write to
|
||||||
|
* the Free Software Foundation, Inc., 51 Franklin Street,
|
||||||
|
* Boston, MA 02110-1301, USA.
|
||||||
|
*/
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Models the mammal Aadvark.
|
||||||
|
*
|
||||||
|
* Sadly the model is incomplete and cannot capture all aspects of an aadvark yet.
|
||||||
|
*
|
||||||
|
* This line is uninformative and is only to test line breaks in the comments.
|
||||||
|
*/
|
||||||
|
class Aadvark {
|
||||||
|
public:
|
||||||
|
//! \brief Outputs the vital aadvark statistics.
|
||||||
|
void print();
|
||||||
|
//! \param aaness The aadvarkness of an aadvark is a measure of how aadvarky it is.
|
||||||
|
Aadvark(int aaness);
|
||||||
|
int get_aadvarkness();
|
||||||
|
private:
|
||||||
|
int aadvarkness;
|
||||||
|
};
|
||||||
|
|
||||||
|
bool aadvarky_enough(Aadvark aad);
|
||||||
|
|
||||||
|
int main();
|
88
docs/doxygen/doxyxml/example/xml/aadvark_8cc.xml
Normal file
88
docs/doxygen/doxyxml/example/xml/aadvark_8cc.xml
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
|
||||||
|
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.6.3">
|
||||||
|
<compounddef id="aadvark_8cc" kind="file">
|
||||||
|
<compoundname>aadvark.cc</compoundname>
|
||||||
|
<includes local="no">iostream</includes>
|
||||||
|
<includes refid="aadvark_8cc" local="yes">aadvark.h</includes>
|
||||||
|
<includedby refid="aadvark_8cc" local="yes">aadvark.cc</includedby>
|
||||||
|
<incdepgraph>
|
||||||
|
<node id="0">
|
||||||
|
<label>aadvark.cc</label>
|
||||||
|
<link refid="aadvark.cc"/>
|
||||||
|
<childnode refid="1" relation="include">
|
||||||
|
</childnode>
|
||||||
|
</node>
|
||||||
|
<node id="1">
|
||||||
|
<label>iostream</label>
|
||||||
|
</node>
|
||||||
|
</incdepgraph>
|
||||||
|
<sectiondef kind="func">
|
||||||
|
<memberdef kind="function" id="aadvark_8cc_1acb52858524210ec6dddc3e16d1e52946" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
||||||
|
<type>bool</type>
|
||||||
|
<definition>bool aadvarky_enough</definition>
|
||||||
|
<argsstring>(Aadvark aad)</argsstring>
|
||||||
|
<name>aadvarky_enough</name>
|
||||||
|
<param>
|
||||||
|
<type><ref refid="classAadvark" kindref="compound">Aadvark</ref></type>
|
||||||
|
<declname>aad</declname>
|
||||||
|
</param>
|
||||||
|
<briefdescription>
|
||||||
|
</briefdescription>
|
||||||
|
<detaileddescription>
|
||||||
|
</detaileddescription>
|
||||||
|
<inbodydescription>
|
||||||
|
</inbodydescription>
|
||||||
|
<location file="/home/ben/gnuradio/gnuradio-core/src/python/gnuradio/utils/doxyxml/example/aadvark.cc" line="10" bodyfile="/home/ben/gnuradio/gnuradio-core/src/python/gnuradio/utils/doxyxml/example/aadvark.cc" bodystart="10" bodyend="15"/>
|
||||||
|
</memberdef>
|
||||||
|
<memberdef kind="function" id="aadvark_8cc_1ae66f6b31b5ad750f1fe042a706a4e3d4" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
||||||
|
<type>int</type>
|
||||||
|
<definition>int main</definition>
|
||||||
|
<argsstring>()</argsstring>
|
||||||
|
<name>main</name>
|
||||||
|
<briefdescription>
|
||||||
|
</briefdescription>
|
||||||
|
<detaileddescription>
|
||||||
|
</detaileddescription>
|
||||||
|
<inbodydescription>
|
||||||
|
</inbodydescription>
|
||||||
|
<location file="/home/ben/gnuradio/gnuradio-core/src/python/gnuradio/utils/doxyxml/example/aadvark.cc" line="21" bodyfile="/home/ben/gnuradio/gnuradio-core/src/python/gnuradio/utils/doxyxml/example/aadvark.cc" bodystart="21" bodyend="28"/>
|
||||||
|
</memberdef>
|
||||||
|
</sectiondef>
|
||||||
|
<briefdescription>
|
||||||
|
</briefdescription>
|
||||||
|
<detaileddescription>
|
||||||
|
</detaileddescription>
|
||||||
|
<programlisting>
|
||||||
|
<codeline lineno="1"><highlight class="preprocessor">#include<sp/><iostream></highlight><highlight class="normal"></highlight></codeline>
|
||||||
|
<codeline lineno="2"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>"aadvark.h"</highlight><highlight class="normal"></highlight></codeline>
|
||||||
|
<codeline lineno="3"><highlight class="normal"></highlight></codeline>
|
||||||
|
<codeline lineno="4"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="classAadvark_1abd061aa5f998002e72080a34f512a059" kindref="member" tooltip="Outputs the vital aadvark statistics.">Aadvark::print</ref>()<sp/>{</highlight></codeline>
|
||||||
|
<codeline lineno="5"><highlight class="normal"><sp/><sp/>std::cout<sp/><<<sp/></highlight><highlight class="stringliteral">"aadvark<sp/>is<sp/>"</highlight><highlight class="normal"><sp/><<<sp/>aadvarkness<sp/><<<sp/></highlight><highlight class="stringliteral">"/10<sp/>aadvarky"</highlight><highlight class="normal"><sp/><<<sp/>std::endl;</highlight></codeline>
|
||||||
|
<codeline lineno="6"><highlight class="normal">}</highlight></codeline>
|
||||||
|
<codeline lineno="7"><highlight class="normal"></highlight></codeline>
|
||||||
|
<codeline lineno="8"><highlight class="normal"><ref refid="classAadvark_1adf1a4b97a641411a74a04ab312484462" kindref="member">Aadvark::Aadvark</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>aaness):<sp/>aadvarkness(aaness)<sp/>{}</highlight></codeline>
|
||||||
|
<codeline lineno="9"><highlight class="normal"></highlight></codeline>
|
||||||
|
<codeline lineno="10"><highlight class="normal"></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>aadvarky_enough(<ref refid="classAadvark" kindref="compound" tooltip="Models the mammal Aadvark.">Aadvark</ref><sp/>aad)<sp/>{</highlight></codeline>
|
||||||
|
<codeline lineno="11"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(aad.get_aadvarkness()<sp/>><sp/>6)</highlight></codeline>
|
||||||
|
<codeline lineno="12"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">true</highlight><highlight class="normal">;</highlight></codeline>
|
||||||
|
<codeline lineno="13"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"></highlight></codeline>
|
||||||
|
<codeline lineno="14"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">false</highlight><highlight class="normal">;</highlight></codeline>
|
||||||
|
<codeline lineno="15"><highlight class="normal">}</highlight></codeline>
|
||||||
|
<codeline lineno="16"><highlight class="normal"></highlight></codeline>
|
||||||
|
<codeline lineno="17"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>Aadvark::get_aadvarkness()<sp/>{</highlight></codeline>
|
||||||
|
<codeline lineno="18"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>aadvarkness;</highlight></codeline>
|
||||||
|
<codeline lineno="19"><highlight class="normal">}</highlight></codeline>
|
||||||
|
<codeline lineno="20"><highlight class="normal"></highlight></codeline>
|
||||||
|
<codeline lineno="21"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>main()<sp/>{</highlight></codeline>
|
||||||
|
<codeline lineno="22"><highlight class="normal"><sp/><sp/><ref refid="classAadvark" kindref="compound" tooltip="Models the mammal Aadvark.">Aadvark</ref><sp/>arold<sp/>=<sp/><ref refid="classAadvark" kindref="compound" tooltip="Models the mammal Aadvark.">Aadvark</ref>(6);</highlight></codeline>
|
||||||
|
<codeline lineno="23"><highlight class="normal"><sp/><sp/>arold.<ref refid="classAadvark_1abd061aa5f998002e72080a34f512a059" kindref="member" tooltip="Outputs the vital aadvark statistics.">print</ref>();</highlight></codeline>
|
||||||
|
<codeline lineno="24"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(aadvarky_enough(arold))</highlight></codeline>
|
||||||
|
<codeline lineno="25"><highlight class="normal"><sp/><sp/><sp/><sp/>std::cout<sp/><<<sp/></highlight><highlight class="stringliteral">"He<sp/>is<sp/>aadvarky<sp/>enough"</highlight><highlight class="normal"><sp/><<<sp/>std::endl;</highlight></codeline>
|
||||||
|
<codeline lineno="26"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"></highlight></codeline>
|
||||||
|
<codeline lineno="27"><highlight class="normal"><sp/><sp/><sp/><sp/>std::cout<sp/><<<sp/></highlight><highlight class="stringliteral">"He<sp/>is<sp/>not<sp/>aadvarky<sp/>enough"</highlight><highlight class="normal"><sp/><<<sp/>std::endl;</highlight></codeline>
|
||||||
|
<codeline lineno="28"><highlight class="normal">}</highlight></codeline>
|
||||||
|
<codeline lineno="29"><highlight class="normal"></highlight></codeline>
|
||||||
|
</programlisting>
|
||||||
|
<location file="/home/ben/gnuradio/gnuradio-core/src/python/gnuradio/utils/doxyxml/example/aadvark.cc"/>
|
||||||
|
</compounddef>
|
||||||
|
</doxygen>
|
72
docs/doxygen/doxyxml/example/xml/aadvark_8h.xml
Normal file
72
docs/doxygen/doxyxml/example/xml/aadvark_8h.xml
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
|
||||||
|
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.6.3">
|
||||||
|
<compounddef id="aadvark_8h" kind="file">
|
||||||
|
<compoundname>aadvark.h</compoundname>
|
||||||
|
<includes local="no">iostream</includes>
|
||||||
|
<incdepgraph>
|
||||||
|
<node id="3">
|
||||||
|
<label>aadvark.h</label>
|
||||||
|
<link refid="aadvark.h"/>
|
||||||
|
<childnode refid="4" relation="include">
|
||||||
|
</childnode>
|
||||||
|
</node>
|
||||||
|
<node id="4">
|
||||||
|
<label>iostream</label>
|
||||||
|
</node>
|
||||||
|
</incdepgraph>
|
||||||
|
<innerclass refid="classAadvark" prot="public">Aadvark</innerclass>
|
||||||
|
<sectiondef kind="func">
|
||||||
|
<memberdef kind="function" id="aadvark_8h_1acb52858524210ec6dddc3e16d1e52946" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
||||||
|
<type>bool</type>
|
||||||
|
<definition>bool aadvarky_enough</definition>
|
||||||
|
<argsstring>(Aadvark aad)</argsstring>
|
||||||
|
<name>aadvarky_enough</name>
|
||||||
|
<param>
|
||||||
|
<type><ref refid="classAadvark" kindref="compound">Aadvark</ref></type>
|
||||||
|
<declname>aad</declname>
|
||||||
|
</param>
|
||||||
|
<briefdescription>
|
||||||
|
</briefdescription>
|
||||||
|
<detaileddescription>
|
||||||
|
</detaileddescription>
|
||||||
|
<inbodydescription>
|
||||||
|
</inbodydescription>
|
||||||
|
<location file="/home/ben/gnuradio/gnuradio-core/src/python/gnuradio/utils/doxyxml/example/aadvark.h" line="21" bodyfile="/home/ben/gnuradio/gnuradio-core/src/python/gnuradio/utils/doxyxml/example/aadvark.cc" bodystart="10" bodyend="15"/>
|
||||||
|
</memberdef>
|
||||||
|
<memberdef kind="function" id="aadvark_8h_1ae66f6b31b5ad750f1fe042a706a4e3d4" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
||||||
|
<type>int</type>
|
||||||
|
<definition>int main</definition>
|
||||||
|
<argsstring>()</argsstring>
|
||||||
|
<name>main</name>
|
||||||
|
<briefdescription>
|
||||||
|
</briefdescription>
|
||||||
|
<detaileddescription>
|
||||||
|
</detaileddescription>
|
||||||
|
<inbodydescription>
|
||||||
|
</inbodydescription>
|
||||||
|
<location file="/home/ben/gnuradio/gnuradio-core/src/python/gnuradio/utils/doxyxml/example/aadvark.h" line="23" bodyfile="/home/ben/gnuradio/gnuradio-core/src/python/gnuradio/utils/doxyxml/example/aadvark.cc" bodystart="21" bodyend="28"/>
|
||||||
|
</memberdef>
|
||||||
|
</sectiondef>
|
||||||
|
<briefdescription>
|
||||||
|
</briefdescription>
|
||||||
|
<detaileddescription>
|
||||||
|
</detaileddescription>
|
||||||
|
<programlisting>
|
||||||
|
<codeline lineno="1"><highlight class="preprocessor">#include<sp/><iostream></highlight><highlight class="normal"></highlight></codeline>
|
||||||
|
<codeline lineno="2"><highlight class="normal"></highlight></codeline>
|
||||||
|
<codeline lineno="10" refid="classAadvark" refkind="compound"><highlight class="keyword">class<sp/></highlight><highlight class="normal"><ref refid="classAadvark" kindref="compound" tooltip="Models the mammal Aadvark.">Aadvark</ref><sp/>{</highlight></codeline>
|
||||||
|
<codeline lineno="11"><highlight class="normal"></highlight><highlight class="keyword">public</highlight><highlight class="normal">:</highlight></codeline>
|
||||||
|
<codeline lineno="13"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="classAadvark_1abd061aa5f998002e72080a34f512a059" kindref="member" tooltip="Outputs the vital aadvark statistics.">print</ref>();</highlight></codeline>
|
||||||
|
<codeline lineno="15"><highlight class="normal"><sp/><sp/><ref refid="classAadvark_1adf1a4b97a641411a74a04ab312484462" kindref="member">Aadvark</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>aaness);</highlight></codeline>
|
||||||
|
<codeline lineno="16"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>get_aadvarkness();</highlight></codeline>
|
||||||
|
<codeline lineno="17"><highlight class="normal"></highlight><highlight class="keyword">private</highlight><highlight class="normal">:</highlight></codeline>
|
||||||
|
<codeline lineno="18"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>aadvarkness;</highlight></codeline>
|
||||||
|
<codeline lineno="19"><highlight class="normal">};</highlight></codeline>
|
||||||
|
<codeline lineno="20"><highlight class="normal"></highlight></codeline>
|
||||||
|
<codeline lineno="21"><highlight class="normal"></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>aadvarky_enough(<ref refid="classAadvark" kindref="compound" tooltip="Models the mammal Aadvark.">Aadvark</ref><sp/>aad);</highlight></codeline>
|
||||||
|
<codeline lineno="22"><highlight class="normal"></highlight></codeline>
|
||||||
|
<codeline lineno="23"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>main();</highlight></codeline>
|
||||||
|
</programlisting>
|
||||||
|
<location file="/home/ben/gnuradio/gnuradio-core/src/python/gnuradio/utils/doxyxml/example/aadvark.h"/>
|
||||||
|
</compounddef>
|
||||||
|
</doxygen>
|
86
docs/doxygen/doxyxml/example/xml/classAadvark.xml
Normal file
86
docs/doxygen/doxyxml/example/xml/classAadvark.xml
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
|
||||||
|
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.6.3">
|
||||||
|
<compounddef id="classAadvark" kind="class" prot="public">
|
||||||
|
<compoundname>Aadvark</compoundname>
|
||||||
|
<includes refid="aadvark_8h" local="no">aadvark.h</includes>
|
||||||
|
<sectiondef kind="private-attrib">
|
||||||
|
<memberdef kind="variable" id="classAadvark_1ab79eb58d7bb9d5ddfa5d6f783836cab9" prot="private" static="no" mutable="no">
|
||||||
|
<type>int</type>
|
||||||
|
<definition>int Aadvark::aadvarkness</definition>
|
||||||
|
<argsstring></argsstring>
|
||||||
|
<name>aadvarkness</name>
|
||||||
|
<briefdescription>
|
||||||
|
</briefdescription>
|
||||||
|
<detaileddescription>
|
||||||
|
</detaileddescription>
|
||||||
|
<inbodydescription>
|
||||||
|
</inbodydescription>
|
||||||
|
<location file="/home/ben/gnuradio/gnuradio-core/src/python/gnuradio/utils/doxyxml/example/aadvark.h" line="18" bodyfile="/home/ben/gnuradio/gnuradio-core/src/python/gnuradio/utils/doxyxml/example/aadvark.h" bodystart="18" bodyend="-1"/>
|
||||||
|
</memberdef>
|
||||||
|
</sectiondef>
|
||||||
|
<sectiondef kind="public-func">
|
||||||
|
<memberdef kind="function" id="classAadvark_1abd061aa5f998002e72080a34f512a059" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
||||||
|
<type>void</type>
|
||||||
|
<definition>void Aadvark::print</definition>
|
||||||
|
<argsstring>()</argsstring>
|
||||||
|
<name>print</name>
|
||||||
|
<briefdescription>
|
||||||
|
<para>Outputs the vital aadvark statistics. </para> </briefdescription>
|
||||||
|
<detaileddescription>
|
||||||
|
</detaileddescription>
|
||||||
|
<inbodydescription>
|
||||||
|
</inbodydescription>
|
||||||
|
<location file="/home/ben/gnuradio/gnuradio-core/src/python/gnuradio/utils/doxyxml/example/aadvark.h" line="13" bodyfile="/home/ben/gnuradio/gnuradio-core/src/python/gnuradio/utils/doxyxml/example/aadvark.cc" bodystart="4" bodyend="6"/>
|
||||||
|
</memberdef>
|
||||||
|
<memberdef kind="function" id="classAadvark_1adf1a4b97a641411a74a04ab312484462" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
||||||
|
<type></type>
|
||||||
|
<definition>Aadvark::Aadvark</definition>
|
||||||
|
<argsstring>(int aaness)</argsstring>
|
||||||
|
<name>Aadvark</name>
|
||||||
|
<param>
|
||||||
|
<type>int</type>
|
||||||
|
<declname>aaness</declname>
|
||||||
|
</param>
|
||||||
|
<briefdescription>
|
||||||
|
</briefdescription>
|
||||||
|
<detaileddescription>
|
||||||
|
<para><parameterlist kind="param"><parameteritem>
|
||||||
|
<parameternamelist>
|
||||||
|
<parametername>aaness</parametername>
|
||||||
|
</parameternamelist>
|
||||||
|
<parameterdescription>
|
||||||
|
<para>The aadvarkness of an aadvark is a measure of how aadvarky it is. </para></parameterdescription>
|
||||||
|
</parameteritem>
|
||||||
|
</parameterlist>
|
||||||
|
</para> </detaileddescription>
|
||||||
|
<inbodydescription>
|
||||||
|
</inbodydescription>
|
||||||
|
<location file="/home/ben/gnuradio/gnuradio-core/src/python/gnuradio/utils/doxyxml/example/aadvark.h" line="15" bodyfile="/home/ben/gnuradio/gnuradio-core/src/python/gnuradio/utils/doxyxml/example/aadvark.cc" bodystart="8" bodyend="8"/>
|
||||||
|
</memberdef>
|
||||||
|
<memberdef kind="function" id="classAadvark_1affd2ada0a85807efcbe26615a848f53e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
|
||||||
|
<type>int</type>
|
||||||
|
<definition>int Aadvark::get_aadvarkness</definition>
|
||||||
|
<argsstring>()</argsstring>
|
||||||
|
<name>get_aadvarkness</name>
|
||||||
|
<briefdescription>
|
||||||
|
</briefdescription>
|
||||||
|
<detaileddescription>
|
||||||
|
</detaileddescription>
|
||||||
|
<inbodydescription>
|
||||||
|
</inbodydescription>
|
||||||
|
<location file="/home/ben/gnuradio/gnuradio-core/src/python/gnuradio/utils/doxyxml/example/aadvark.h" line="16" bodyfile="/home/ben/gnuradio/gnuradio-core/src/python/gnuradio/utils/doxyxml/example/aadvark.cc" bodystart="17" bodyend="19"/>
|
||||||
|
</memberdef>
|
||||||
|
</sectiondef>
|
||||||
|
<briefdescription>
|
||||||
|
<para>Models the mammal <ref refid="classAadvark" kindref="compound">Aadvark</ref>. </para> </briefdescription>
|
||||||
|
<detaileddescription>
|
||||||
|
<para>Sadly the model is incomplete and cannot capture all aspects of an aadvark yet.</para><para>This line is uninformative and is only to test line breaks in the comments. </para> </detaileddescription>
|
||||||
|
<location file="/home/ben/gnuradio/gnuradio-core/src/python/gnuradio/utils/doxyxml/example/aadvark.h" line="10" bodyfile="/home/ben/gnuradio/gnuradio-core/src/python/gnuradio/utils/doxyxml/example/aadvark.h" bodystart="10" bodyend="19"/>
|
||||||
|
<listofallmembers>
|
||||||
|
<member refid="classAadvark_1adf1a4b97a641411a74a04ab312484462" prot="public" virt="non-virtual"><scope>Aadvark</scope><name>Aadvark</name></member>
|
||||||
|
<member refid="classAadvark_1ab79eb58d7bb9d5ddfa5d6f783836cab9" prot="private" virt="non-virtual"><scope>Aadvark</scope><name>aadvarkness</name></member>
|
||||||
|
<member refid="classAadvark_1affd2ada0a85807efcbe26615a848f53e" prot="public" virt="non-virtual"><scope>Aadvark</scope><name>get_aadvarkness</name></member>
|
||||||
|
<member refid="classAadvark_1abd061aa5f998002e72080a34f512a059" prot="public" virt="non-virtual"><scope>Aadvark</scope><name>print</name></member>
|
||||||
|
</listofallmembers>
|
||||||
|
</compounddef>
|
||||||
|
</doxygen>
|
15
docs/doxygen/doxyxml/example/xml/combine.xslt
Normal file
15
docs/doxygen/doxyxml/example/xml/combine.xslt
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<!-- XSLT script to combine the generated output into a single file.
|
||||||
|
If you have xsltproc you could use:
|
||||||
|
xsltproc combine.xslt index.xml >all.xml
|
||||||
|
-->
|
||||||
|
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
|
||||||
|
<xsl:output method="xml" version="1.0" indent="yes" standalone="yes" />
|
||||||
|
<xsl:template match="/">
|
||||||
|
<doxygen version="{doxygenindex/@version}">
|
||||||
|
<!-- Load all doxgen generated xml files -->
|
||||||
|
<xsl:for-each select="doxygenindex/compound">
|
||||||
|
<xsl:copy-of select="document( concat( @refid, '.xml' ) )/doxygen/*" />
|
||||||
|
</xsl:for-each>
|
||||||
|
</doxygen>
|
||||||
|
</xsl:template>
|
||||||
|
</xsl:stylesheet>
|
814
docs/doxygen/doxyxml/example/xml/compound.xsd
Normal file
814
docs/doxygen/doxyxml/example/xml/compound.xsd
Normal file
@ -0,0 +1,814 @@
|
|||||||
|
<?xml version='1.0' encoding='utf-8' ?>
|
||||||
|
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||||
|
<xsd:element name="doxygen" type="DoxygenType"/>
|
||||||
|
|
||||||
|
<!-- Complex types -->
|
||||||
|
|
||||||
|
<xsd:complexType name="DoxygenType">
|
||||||
|
<xsd:sequence maxOccurs="unbounded">
|
||||||
|
<xsd:element name="compounddef" type="compounddefType" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="version" type="DoxVersionNumber" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="compounddefType">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="compoundname" type="xsd:string"/>
|
||||||
|
<xsd:element name="title" type="xsd:string" minOccurs="0" />
|
||||||
|
<xsd:element name="basecompoundref" type="compoundRefType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="derivedcompoundref" type="compoundRefType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="includes" type="incType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="includedby" type="incType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="incdepgraph" type="graphType" minOccurs="0" />
|
||||||
|
<xsd:element name="invincdepgraph" type="graphType" minOccurs="0" />
|
||||||
|
<xsd:element name="innerdir" type="refType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="innerfile" type="refType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="innerclass" type="refType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="innernamespace" type="refType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="innerpage" type="refType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="innergroup" type="refType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="templateparamlist" type="templateparamlistType" minOccurs="0" />
|
||||||
|
<xsd:element name="sectiondef" type="sectiondefType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
|
||||||
|
<xsd:element name="detaileddescription" type="descriptionType" minOccurs="0" />
|
||||||
|
<xsd:element name="inheritancegraph" type="graphType" minOccurs="0" />
|
||||||
|
<xsd:element name="collaborationgraph" type="graphType" minOccurs="0" />
|
||||||
|
<xsd:element name="programlisting" type="listingType" minOccurs="0" />
|
||||||
|
<xsd:element name="location" type="locationType" minOccurs="0" />
|
||||||
|
<xsd:element name="listofallmembers" type="listofallmembersType" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="id" type="xsd:string" />
|
||||||
|
<xsd:attribute name="kind" type="DoxCompoundKind" />
|
||||||
|
<xsd:attribute name="prot" type="DoxProtectionKind" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="listofallmembersType">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="member" type="memberRefType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="memberRefType">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="scope" />
|
||||||
|
<xsd:element name="name" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="refid" type="xsd:string" />
|
||||||
|
<xsd:attribute name="prot" type="DoxProtectionKind" />
|
||||||
|
<xsd:attribute name="virt" type="DoxVirtualKind" />
|
||||||
|
<xsd:attribute name="ambiguityscope" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="compoundRefType" mixed="true">
|
||||||
|
<xsd:simpleContent>
|
||||||
|
<xsd:extension base="xsd:string">
|
||||||
|
<xsd:attribute name="refid" type="xsd:string" use="optional" />
|
||||||
|
<xsd:attribute name="prot" type="DoxProtectionKind" />
|
||||||
|
<xsd:attribute name="virt" type="DoxVirtualKind" />
|
||||||
|
</xsd:extension>
|
||||||
|
</xsd:simpleContent>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="reimplementType" mixed="true">
|
||||||
|
<xsd:simpleContent>
|
||||||
|
<xsd:extension base="xsd:string">
|
||||||
|
<xsd:attribute name="refid" type="xsd:string" />
|
||||||
|
</xsd:extension>
|
||||||
|
</xsd:simpleContent>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="incType" mixed="true">
|
||||||
|
<xsd:simpleContent>
|
||||||
|
<xsd:extension base="xsd:string">
|
||||||
|
<xsd:attribute name="refid" type="xsd:string" />
|
||||||
|
<xsd:attribute name="local" type="DoxBool" />
|
||||||
|
</xsd:extension>
|
||||||
|
</xsd:simpleContent>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="refType" mixed="true">
|
||||||
|
<xsd:simpleContent>
|
||||||
|
<xsd:extension base="xsd:string">
|
||||||
|
<xsd:attribute name="refid" type="xsd:string" />
|
||||||
|
<xsd:attribute name="prot" type="DoxProtectionKind" use="optional"/>
|
||||||
|
</xsd:extension>
|
||||||
|
</xsd:simpleContent>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="refTextType" mixed="true">
|
||||||
|
<xsd:simpleContent>
|
||||||
|
<xsd:extension base="xsd:string">
|
||||||
|
<xsd:attribute name="refid" type="xsd:string" />
|
||||||
|
<xsd:attribute name="kindref" type="DoxRefKind" />
|
||||||
|
<xsd:attribute name="external" type="xsd:string" use="optional"/>
|
||||||
|
<xsd:attribute name="tooltip" type="xsd:string" use="optional"/>
|
||||||
|
</xsd:extension>
|
||||||
|
</xsd:simpleContent>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="sectiondefType">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="header" type="xsd:string" minOccurs="0" />
|
||||||
|
<xsd:element name="description" type="descriptionType" minOccurs="0" />
|
||||||
|
<xsd:element name="memberdef" type="memberdefType" maxOccurs="unbounded" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="kind" type="DoxSectionKind" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="memberdefType">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="templateparamlist" type="templateparamlistType" minOccurs="0" />
|
||||||
|
<xsd:element name="type" type="linkedTextType" minOccurs="0" />
|
||||||
|
<xsd:element name="definition" minOccurs="0" />
|
||||||
|
<xsd:element name="argsstring" minOccurs="0" />
|
||||||
|
<xsd:element name="name" />
|
||||||
|
<xsd:element name="read" minOccurs="0" />
|
||||||
|
<xsd:element name="write" minOccurs="0" />
|
||||||
|
<xsd:element name="bitfield" minOccurs="0" />
|
||||||
|
<xsd:element name="reimplements" type="reimplementType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="reimplementedby" type="reimplementType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="enumvalue" type="enumvalueType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="initializer" type="linkedTextType" minOccurs="0" />
|
||||||
|
<xsd:element name="exceptions" type="linkedTextType" minOccurs="0" />
|
||||||
|
<xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
|
||||||
|
<xsd:element name="detaileddescription" type="descriptionType" minOccurs="0" />
|
||||||
|
<xsd:element name="inbodydescription" type="descriptionType" minOccurs="0" />
|
||||||
|
<xsd:element name="location" type="locationType" />
|
||||||
|
<xsd:element name="references" type="referenceType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="referencedby" type="referenceType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="kind" type="DoxMemberKind" />
|
||||||
|
<xsd:attribute name="id" type="xsd:string" />
|
||||||
|
<xsd:attribute name="prot" type="DoxProtectionKind" />
|
||||||
|
<xsd:attribute name="static" type="DoxBool" />
|
||||||
|
<xsd:attribute name="const" type="DoxBool" />
|
||||||
|
<xsd:attribute name="explicit" type="DoxBool" />
|
||||||
|
<xsd:attribute name="inline" type="DoxBool" />
|
||||||
|
<xsd:attribute name="virt" type="DoxVirtualKind" />
|
||||||
|
<xsd:attribute name="volatile" type="DoxBool" />
|
||||||
|
<xsd:attribute name="mutable" type="DoxBool" />
|
||||||
|
<!-- Qt property -->
|
||||||
|
<xsd:attribute name="readable" type="DoxBool" use="optional"/>
|
||||||
|
<xsd:attribute name="writable" type="DoxBool" use="optional"/>
|
||||||
|
<!-- C++/CLI variable -->
|
||||||
|
<xsd:attribute name="initonly" type="DoxBool" use="optional"/>
|
||||||
|
<!-- C++/CLI and C# property -->
|
||||||
|
<xsd:attribute name="settable" type="DoxBool" use="optional"/>
|
||||||
|
<xsd:attribute name="gettable" type="DoxBool" use="optional"/>
|
||||||
|
<!-- C++/CLI function -->
|
||||||
|
<xsd:attribute name="final" type="DoxBool" use="optional"/>
|
||||||
|
<xsd:attribute name="sealed" type="DoxBool" use="optional"/>
|
||||||
|
<xsd:attribute name="new" type="DoxBool" use="optional"/>
|
||||||
|
<!-- C++/CLI event -->
|
||||||
|
<xsd:attribute name="add" type="DoxBool" use="optional"/>
|
||||||
|
<xsd:attribute name="remove" type="DoxBool" use="optional"/>
|
||||||
|
<xsd:attribute name="raise" type="DoxBool" use="optional"/>
|
||||||
|
<!-- Objective-C 2.0 protocol method -->
|
||||||
|
<xsd:attribute name="optional" type="DoxBool" use="optional"/>
|
||||||
|
<xsd:attribute name="required" type="DoxBool" use="optional"/>
|
||||||
|
<!-- Objective-C 2.0 property accessor -->
|
||||||
|
<xsd:attribute name="accessor" type="DoxAccessor" use="optional"/>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="descriptionType" mixed="true">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="title" type="xsd:string" minOccurs="0"/>
|
||||||
|
<xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="sect1" type="docSect1Type" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="internal" type="docInternalType" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="enumvalueType" mixed="true">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="name" />
|
||||||
|
<xsd:element name="initializer" type="linkedTextType" minOccurs="0" />
|
||||||
|
<xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
|
||||||
|
<xsd:element name="detaileddescription" type="descriptionType" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="id" type="xsd:string" />
|
||||||
|
<xsd:attribute name="prot" type="DoxProtectionKind" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="templateparamlistType">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="paramType">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="type" type="linkedTextType" minOccurs="0" />
|
||||||
|
<xsd:element name="declname" minOccurs="0" />
|
||||||
|
<xsd:element name="defname" minOccurs="0" />
|
||||||
|
<xsd:element name="array" minOccurs="0" />
|
||||||
|
<xsd:element name="defval" type="linkedTextType" minOccurs="0" />
|
||||||
|
<xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="linkedTextType" mixed="true">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="ref" type="refTextType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="graphType">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="node" type="nodeType" maxOccurs="unbounded" />
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="nodeType">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="label" />
|
||||||
|
<xsd:element name="link" type="linkType" minOccurs="0" />
|
||||||
|
<xsd:element name="childnode" type="childnodeType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="id" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="childnodeType">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="edgelabel" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="refid" type="xsd:string" />
|
||||||
|
<xsd:attribute name="relation" type="DoxGraphRelation" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="linkType">
|
||||||
|
<xsd:attribute name="refid" type="xsd:string" />
|
||||||
|
<xsd:attribute name="external" type="xsd:string" use="optional"/>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="listingType">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="codeline" type="codelineType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="codelineType">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="highlight" type="highlightType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="lineno" type="xsd:integer" />
|
||||||
|
<xsd:attribute name="refid" type="xsd:string" />
|
||||||
|
<xsd:attribute name="refkind" type="DoxRefKind" />
|
||||||
|
<xsd:attribute name="external" type="DoxBool" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="highlightType" mixed="true">
|
||||||
|
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
||||||
|
<xsd:element name="sp" />
|
||||||
|
<xsd:element name="ref" type="refTextType" />
|
||||||
|
</xsd:choice>
|
||||||
|
<xsd:attribute name="class" type="DoxHighlightClass" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="referenceType" mixed="true">
|
||||||
|
<xsd:attribute name="refid" type="xsd:string" />
|
||||||
|
<xsd:attribute name="compoundref" type="xsd:string" use="optional" />
|
||||||
|
<xsd:attribute name="startline" type="xsd:integer" />
|
||||||
|
<xsd:attribute name="endline" type="xsd:integer" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="locationType">
|
||||||
|
<xsd:attribute name="file" type="xsd:string" />
|
||||||
|
<xsd:attribute name="line" type="xsd:integer" />
|
||||||
|
<xsd:attribute name="bodyfile" type="xsd:string" />
|
||||||
|
<xsd:attribute name="bodystart" type="xsd:integer" />
|
||||||
|
<xsd:attribute name="bodyend" type="xsd:integer" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docSect1Type" mixed="true">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="title" type="xsd:string" />
|
||||||
|
<xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="sect2" type="docSect2Type" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="internal" type="docInternalS1Type" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="id" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docSect2Type" mixed="true">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="title" type="xsd:string" />
|
||||||
|
<xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="sect3" type="docSect3Type" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="internal" type="docInternalS2Type" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="id" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docSect3Type" mixed="true">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="title" type="xsd:string" />
|
||||||
|
<xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="sect4" type="docSect4Type" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="internal" type="docInternalS3Type" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="id" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docSect4Type" mixed="true">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="title" type="xsd:string" />
|
||||||
|
<xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="internal" type="docInternalS4Type" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="id" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docInternalType" mixed="true">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="sect1" type="docSect1Type" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docInternalS1Type" mixed="true">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="sect2" type="docSect2Type" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docInternalS2Type" mixed="true">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="sect3" type="docSect3Type" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docInternalS3Type" mixed="true">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="sect3" type="docSect4Type" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docInternalS4Type" mixed="true">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:group name="docTitleCmdGroup">
|
||||||
|
<xsd:choice>
|
||||||
|
<xsd:element name="ulink" type="docURLLink" />
|
||||||
|
<xsd:element name="bold" type="docMarkupType" />
|
||||||
|
<xsd:element name="emphasis" type="docMarkupType" />
|
||||||
|
<xsd:element name="computeroutput" type="docMarkupType" />
|
||||||
|
<xsd:element name="subscript" type="docMarkupType" />
|
||||||
|
<xsd:element name="superscript" type="docMarkupType" />
|
||||||
|
<xsd:element name="center" type="docMarkupType" />
|
||||||
|
<xsd:element name="small" type="docMarkupType" />
|
||||||
|
<xsd:element name="htmlonly" type="xsd:string" />
|
||||||
|
<xsd:element name="latexonly" type="xsd:string" />
|
||||||
|
<xsd:element name="dot" type="xsd:string" />
|
||||||
|
<xsd:element name="anchor" type="docAnchorType" />
|
||||||
|
<xsd:element name="formula" type="docFormulaType" />
|
||||||
|
<xsd:element name="ref" type="docRefTextType" />
|
||||||
|
<xsd:element name="copy" type="docEmptyType" />
|
||||||
|
<xsd:element name="trademark" type="docEmptyType" />
|
||||||
|
<xsd:element name="registered" type="docEmptyType" />
|
||||||
|
<xsd:element name="lsquo" type="docEmptyType" />
|
||||||
|
<xsd:element name="rsquo" type="docEmptyType" />
|
||||||
|
<xsd:element name="ldquo" type="docEmptyType" />
|
||||||
|
<xsd:element name="rdquo" type="docEmptyType" />
|
||||||
|
<xsd:element name="ndash" type="docEmptyType" />
|
||||||
|
<xsd:element name="mdash" type="docEmptyType" />
|
||||||
|
<xsd:element name="umlaut" type="docCharType" />
|
||||||
|
<xsd:element name="acute" type="docCharType" />
|
||||||
|
<xsd:element name="grave" type="docCharType" />
|
||||||
|
<xsd:element name="circ" type="docCharType" />
|
||||||
|
<xsd:element name="slash" type="docCharType" />
|
||||||
|
<xsd:element name="tilde" type="docCharType" />
|
||||||
|
<xsd:element name="cedil" type="docCharType" />
|
||||||
|
<xsd:element name="ring" type="docCharType" />
|
||||||
|
<xsd:element name="szlig" type="docEmptyType" />
|
||||||
|
<xsd:element name="nonbreakablespace" type="docEmptyType" />
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:group>
|
||||||
|
|
||||||
|
<xsd:complexType name="docTitleType" mixed="true">
|
||||||
|
<xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:group name="docCmdGroup">
|
||||||
|
<xsd:choice>
|
||||||
|
<xsd:group ref="docTitleCmdGroup"/>
|
||||||
|
<xsd:element name="linebreak" type="docEmptyType" />
|
||||||
|
<xsd:element name="hruler" type="docEmptyType" />
|
||||||
|
<xsd:element name="preformatted" type="docMarkupType" />
|
||||||
|
<xsd:element name="programlisting" type="listingType" />
|
||||||
|
<xsd:element name="verbatim" type="xsd:string" />
|
||||||
|
<xsd:element name="indexentry" type="docIndexEntryType" />
|
||||||
|
<xsd:element name="orderedlist" type="docListType" />
|
||||||
|
<xsd:element name="itemizedlist" type="docListType" />
|
||||||
|
<xsd:element name="simplesect" type="docSimpleSectType" />
|
||||||
|
<xsd:element name="title" type="docTitleType" />
|
||||||
|
<xsd:element name="variablelist" type="docVariableListType" />
|
||||||
|
<xsd:element name="table" type="docTableType" />
|
||||||
|
<xsd:element name="heading" type="docHeadingType" />
|
||||||
|
<xsd:element name="image" type="docImageType" />
|
||||||
|
<xsd:element name="dotfile" type="docDotFileType" />
|
||||||
|
<xsd:element name="toclist" type="docTocListType" />
|
||||||
|
<xsd:element name="language" type="docLanguageType" />
|
||||||
|
<xsd:element name="parameterlist" type="docParamListType" />
|
||||||
|
<xsd:element name="xrefsect" type="docXRefSectType" />
|
||||||
|
<xsd:element name="copydoc" type="docCopyType" />
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:group>
|
||||||
|
|
||||||
|
<xsd:complexType name="docParaType" mixed="true">
|
||||||
|
<xsd:group ref="docCmdGroup" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docMarkupType" mixed="true">
|
||||||
|
<xsd:group ref="docCmdGroup" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docURLLink" mixed="true">
|
||||||
|
<xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:attribute name="url" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docAnchorType" mixed="true">
|
||||||
|
<xsd:attribute name="id" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docFormulaType" mixed="true">
|
||||||
|
<xsd:attribute name="id" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docIndexEntryType">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="primaryie" type="xsd:string" />
|
||||||
|
<xsd:element name="secondaryie" type="xsd:string" />
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docListType">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="listitem" type="docListItemType" maxOccurs="unbounded" />
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docListItemType">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docSimpleSectType">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="title" type="docTitleType" minOccurs="0" />
|
||||||
|
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
|
||||||
|
<xsd:element name="para" type="docParaType" minOccurs="1" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="simplesectsep" type="docEmptyType" minOccurs="0"/>
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="kind" type="DoxSimpleSectKind" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docVarListEntryType">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="term" type="docTitleType" />
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:group name="docVariableListGroup">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="varlistentry" type="docVarListEntryType" />
|
||||||
|
<xsd:element name="listitem" type="docListItemType" />
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:group>
|
||||||
|
|
||||||
|
<xsd:complexType name="docVariableListType">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:group ref="docVariableListGroup" maxOccurs="unbounded" />
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docRefTextType" mixed="true">
|
||||||
|
<xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:attribute name="refid" type="xsd:string" />
|
||||||
|
<xsd:attribute name="kindref" type="DoxRefKind" />
|
||||||
|
<xsd:attribute name="external" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docTableType">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="row" type="docRowType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="caption" type="docCaptionType" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="rows" type="xsd:integer" />
|
||||||
|
<xsd:attribute name="cols" type="xsd:integer" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docRowType">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="entry" type="docEntryType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docEntryType">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="thead" type="DoxBool" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docCaptionType" mixed="true">
|
||||||
|
<xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docHeadingType" mixed="true">
|
||||||
|
<xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:attribute name="level" type="xsd:integer" /> <!-- todo: range 1-6 -->
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docImageType" mixed="true">
|
||||||
|
<xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:attribute name="type" type="DoxImageKind" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
<xsd:attribute name="width" type="xsd:string" />
|
||||||
|
<xsd:attribute name="height" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docDotFileType" mixed="true">
|
||||||
|
<xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docTocItemType" mixed="true">
|
||||||
|
<xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:attribute name="id" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docTocListType">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="tocitem" type="docTocItemType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docLanguageType">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="langid" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docParamListType">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="parameteritem" type="docParamListItem" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="kind" type="DoxParamListKind" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docParamListItem">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="parameternamelist" type="docParamNameList" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="parameterdescription" type="descriptionType" />
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docParamNameList">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="parametername" type="docParamName" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docParamName" mixed="true">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="ref" type="refTextType" minOccurs="0" maxOccurs="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="direction" type="DoxParamDir" use="optional" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docXRefSectType">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="xreftitle" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="xrefdescription" type="descriptionType" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="id" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docCopyType">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="sect1" type="docSect1Type" minOccurs="0" maxOccurs="unbounded" />
|
||||||
|
<xsd:element name="internal" type="docInternalType" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="link" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docCharType">
|
||||||
|
<xsd:attribute name="char" type="DoxCharRange"/>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="docEmptyType"/>
|
||||||
|
|
||||||
|
<!-- Simple types -->
|
||||||
|
|
||||||
|
<xsd:simpleType name="DoxBool">
|
||||||
|
<xsd:restriction base="xsd:string">
|
||||||
|
<xsd:enumeration value="yes" />
|
||||||
|
<xsd:enumeration value="no" />
|
||||||
|
</xsd:restriction>
|
||||||
|
</xsd:simpleType>
|
||||||
|
|
||||||
|
<xsd:simpleType name="DoxGraphRelation">
|
||||||
|
<xsd:restriction base="xsd:string">
|
||||||
|
<xsd:enumeration value="include" />
|
||||||
|
<xsd:enumeration value="usage" />
|
||||||
|
<xsd:enumeration value="template-instance" />
|
||||||
|
<xsd:enumeration value="public-inheritance" />
|
||||||
|
<xsd:enumeration value="protected-inheritance" />
|
||||||
|
<xsd:enumeration value="private-inheritance" />
|
||||||
|
</xsd:restriction>
|
||||||
|
</xsd:simpleType>
|
||||||
|
|
||||||
|
<xsd:simpleType name="DoxRefKind">
|
||||||
|
<xsd:restriction base="xsd:string">
|
||||||
|
<xsd:enumeration value="compound" />
|
||||||
|
<xsd:enumeration value="member" />
|
||||||
|
</xsd:restriction>
|
||||||
|
</xsd:simpleType>
|
||||||
|
|
||||||
|
<xsd:simpleType name="DoxMemberKind">
|
||||||
|
<xsd:restriction base="xsd:string">
|
||||||
|
<xsd:enumeration value="define" />
|
||||||
|
<xsd:enumeration value="property" />
|
||||||
|
<xsd:enumeration value="event" />
|
||||||
|
<xsd:enumeration value="variable" />
|
||||||
|
<xsd:enumeration value="typedef" />
|
||||||
|
<xsd:enumeration value="enum" />
|
||||||
|
<xsd:enumeration value="function" />
|
||||||
|
<xsd:enumeration value="signal" />
|
||||||
|
<xsd:enumeration value="prototype" />
|
||||||
|
<xsd:enumeration value="friend" />
|
||||||
|
<xsd:enumeration value="dcop" />
|
||||||
|
<xsd:enumeration value="slot" />
|
||||||
|
</xsd:restriction>
|
||||||
|
</xsd:simpleType>
|
||||||
|
|
||||||
|
<xsd:simpleType name="DoxProtectionKind">
|
||||||
|
<xsd:restriction base="xsd:string">
|
||||||
|
<xsd:enumeration value="public" />
|
||||||
|
<xsd:enumeration value="protected" />
|
||||||
|
<xsd:enumeration value="private" />
|
||||||
|
<xsd:enumeration value="package" />
|
||||||
|
</xsd:restriction>
|
||||||
|
</xsd:simpleType>
|
||||||
|
|
||||||
|
<xsd:simpleType name="DoxVirtualKind">
|
||||||
|
<xsd:restriction base="xsd:string">
|
||||||
|
<xsd:enumeration value="non-virtual" />
|
||||||
|
<xsd:enumeration value="virtual" />
|
||||||
|
<xsd:enumeration value="pure-virtual" />
|
||||||
|
</xsd:restriction>
|
||||||
|
</xsd:simpleType>
|
||||||
|
|
||||||
|
<xsd:simpleType name="DoxCompoundKind">
|
||||||
|
<xsd:restriction base="xsd:string">
|
||||||
|
<xsd:enumeration value="class" />
|
||||||
|
<xsd:enumeration value="struct" />
|
||||||
|
<xsd:enumeration value="union" />
|
||||||
|
<xsd:enumeration value="interface" />
|
||||||
|
<xsd:enumeration value="protocol" />
|
||||||
|
<xsd:enumeration value="category" />
|
||||||
|
<xsd:enumeration value="exception" />
|
||||||
|
<xsd:enumeration value="file" />
|
||||||
|
<xsd:enumeration value="namespace" />
|
||||||
|
<xsd:enumeration value="group" />
|
||||||
|
<xsd:enumeration value="page" />
|
||||||
|
<xsd:enumeration value="example" />
|
||||||
|
<xsd:enumeration value="dir" />
|
||||||
|
</xsd:restriction>
|
||||||
|
</xsd:simpleType>
|
||||||
|
|
||||||
|
<xsd:simpleType name="DoxSectionKind">
|
||||||
|
<xsd:restriction base="xsd:string">
|
||||||
|
<xsd:enumeration value="user-defined" />
|
||||||
|
<xsd:enumeration value="public-type" />
|
||||||
|
<xsd:enumeration value="public-func" />
|
||||||
|
<xsd:enumeration value="public-attrib" />
|
||||||
|
<xsd:enumeration value="public-slot" />
|
||||||
|
<xsd:enumeration value="signal" />
|
||||||
|
<xsd:enumeration value="dcop-func" />
|
||||||
|
<xsd:enumeration value="property" />
|
||||||
|
<xsd:enumeration value="event" />
|
||||||
|
<xsd:enumeration value="public-static-func" />
|
||||||
|
<xsd:enumeration value="public-static-attrib" />
|
||||||
|
<xsd:enumeration value="protected-type" />
|
||||||
|
<xsd:enumeration value="protected-func" />
|
||||||
|
<xsd:enumeration value="protected-attrib" />
|
||||||
|
<xsd:enumeration value="protected-slot" />
|
||||||
|
<xsd:enumeration value="protected-static-func" />
|
||||||
|
<xsd:enumeration value="protected-static-attrib" />
|
||||||
|
<xsd:enumeration value="package-type" />
|
||||||
|
<xsd:enumeration value="package-func" />
|
||||||
|
<xsd:enumeration value="package-attrib" />
|
||||||
|
<xsd:enumeration value="package-static-func" />
|
||||||
|
<xsd:enumeration value="package-static-attrib" />
|
||||||
|
<xsd:enumeration value="private-type" />
|
||||||
|
<xsd:enumeration value="private-func" />
|
||||||
|
<xsd:enumeration value="private-attrib" />
|
||||||
|
<xsd:enumeration value="private-slot" />
|
||||||
|
<xsd:enumeration value="private-static-func" />
|
||||||
|
<xsd:enumeration value="private-static-attrib" />
|
||||||
|
<xsd:enumeration value="friend" />
|
||||||
|
<xsd:enumeration value="related" />
|
||||||
|
<xsd:enumeration value="define" />
|
||||||
|
<xsd:enumeration value="prototype" />
|
||||||
|
<xsd:enumeration value="typedef" />
|
||||||
|
<xsd:enumeration value="enum" />
|
||||||
|
<xsd:enumeration value="func" />
|
||||||
|
<xsd:enumeration value="var" />
|
||||||
|
</xsd:restriction>
|
||||||
|
</xsd:simpleType>
|
||||||
|
|
||||||
|
<xsd:simpleType name="DoxHighlightClass">
|
||||||
|
<xsd:restriction base="xsd:string">
|
||||||
|
<xsd:enumeration value="comment" />
|
||||||
|
<xsd:enumeration value="normal" />
|
||||||
|
<xsd:enumeration value="preprocessor" />
|
||||||
|
<xsd:enumeration value="keyword" />
|
||||||
|
<xsd:enumeration value="keywordtype" />
|
||||||
|
<xsd:enumeration value="keywordflow" />
|
||||||
|
<xsd:enumeration value="stringliteral" />
|
||||||
|
<xsd:enumeration value="charliteral" />
|
||||||
|
</xsd:restriction>
|
||||||
|
</xsd:simpleType>
|
||||||
|
|
||||||
|
<xsd:simpleType name="DoxSimpleSectKind">
|
||||||
|
<xsd:restriction base="xsd:string">
|
||||||
|
<xsd:enumeration value="see" />
|
||||||
|
<xsd:enumeration value="return" />
|
||||||
|
<xsd:enumeration value="author" />
|
||||||
|
<xsd:enumeration value="authors" />
|
||||||
|
<xsd:enumeration value="version" />
|
||||||
|
<xsd:enumeration value="since" />
|
||||||
|
<xsd:enumeration value="date" />
|
||||||
|
<xsd:enumeration value="note" />
|
||||||
|
<xsd:enumeration value="warning" />
|
||||||
|
<xsd:enumeration value="pre" />
|
||||||
|
<xsd:enumeration value="post" />
|
||||||
|
<xsd:enumeration value="invariant" />
|
||||||
|
<xsd:enumeration value="remark" />
|
||||||
|
<xsd:enumeration value="attention" />
|
||||||
|
<xsd:enumeration value="par" />
|
||||||
|
<xsd:enumeration value="rcs" />
|
||||||
|
</xsd:restriction>
|
||||||
|
</xsd:simpleType>
|
||||||
|
|
||||||
|
<xsd:simpleType name="DoxVersionNumber">
|
||||||
|
<xsd:restriction base="xsd:string">
|
||||||
|
<xsd:pattern value="\d+\.\d+.*" />
|
||||||
|
</xsd:restriction>
|
||||||
|
</xsd:simpleType>
|
||||||
|
|
||||||
|
<xsd:simpleType name="DoxImageKind">
|
||||||
|
<xsd:restriction base="xsd:string">
|
||||||
|
<xsd:enumeration value="html" />
|
||||||
|
<xsd:enumeration value="latex" />
|
||||||
|
<xsd:enumeration value="rtf" />
|
||||||
|
</xsd:restriction>
|
||||||
|
</xsd:simpleType>
|
||||||
|
|
||||||
|
<xsd:simpleType name="DoxParamListKind">
|
||||||
|
<xsd:restriction base="xsd:string">
|
||||||
|
<xsd:enumeration value="param" />
|
||||||
|
<xsd:enumeration value="retval" />
|
||||||
|
<xsd:enumeration value="exception" />
|
||||||
|
<xsd:enumeration value="templateparam" />
|
||||||
|
</xsd:restriction>
|
||||||
|
</xsd:simpleType>
|
||||||
|
|
||||||
|
<xsd:simpleType name="DoxCharRange">
|
||||||
|
<xsd:restriction base="xsd:string">
|
||||||
|
<xsd:pattern value="[aeiouncAEIOUNC]" />
|
||||||
|
</xsd:restriction>
|
||||||
|
</xsd:simpleType>
|
||||||
|
|
||||||
|
<xsd:simpleType name="DoxParamDir">
|
||||||
|
<xsd:restriction base="xsd:string">
|
||||||
|
<xsd:enumeration value="in"/>
|
||||||
|
<xsd:enumeration value="out"/>
|
||||||
|
<xsd:enumeration value="inout"/>
|
||||||
|
</xsd:restriction>
|
||||||
|
</xsd:simpleType>
|
||||||
|
|
||||||
|
<xsd:simpleType name="DoxAccessor">
|
||||||
|
<xsd:restriction base="xsd:string">
|
||||||
|
<xsd:enumeration value="retain"/>
|
||||||
|
<xsd:enumeration value="copy"/>
|
||||||
|
<xsd:enumeration value="assign"/>
|
||||||
|
</xsd:restriction>
|
||||||
|
</xsd:simpleType>
|
||||||
|
|
||||||
|
</xsd:schema>
|
||||||
|
|
17
docs/doxygen/doxyxml/example/xml/index.xml
Normal file
17
docs/doxygen/doxyxml/example/xml/index.xml
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
|
||||||
|
<doxygenindex xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="index.xsd" version="1.6.3">
|
||||||
|
<compound refid="classAadvark" kind="class"><name>Aadvark</name>
|
||||||
|
<member refid="classAadvark_1ab79eb58d7bb9d5ddfa5d6f783836cab9" kind="variable"><name>aadvarkness</name></member>
|
||||||
|
<member refid="classAadvark_1abd061aa5f998002e72080a34f512a059" kind="function"><name>print</name></member>
|
||||||
|
<member refid="classAadvark_1adf1a4b97a641411a74a04ab312484462" kind="function"><name>Aadvark</name></member>
|
||||||
|
<member refid="classAadvark_1affd2ada0a85807efcbe26615a848f53e" kind="function"><name>get_aadvarkness</name></member>
|
||||||
|
</compound>
|
||||||
|
<compound refid="aadvark_8cc" kind="file"><name>aadvark.cc</name>
|
||||||
|
<member refid="aadvark_8cc_1acb52858524210ec6dddc3e16d1e52946" kind="function"><name>aadvarky_enough</name></member>
|
||||||
|
<member refid="aadvark_8cc_1ae66f6b31b5ad750f1fe042a706a4e3d4" kind="function"><name>main</name></member>
|
||||||
|
</compound>
|
||||||
|
<compound refid="aadvark_8h" kind="file"><name>aadvark.h</name>
|
||||||
|
<member refid="aadvark_8h_1acb52858524210ec6dddc3e16d1e52946" kind="function"><name>aadvarky_enough</name></member>
|
||||||
|
<member refid="aadvark_8h_1ae66f6b31b5ad750f1fe042a706a4e3d4" kind="function"><name>main</name></member>
|
||||||
|
</compound>
|
||||||
|
</doxygenindex>
|
66
docs/doxygen/doxyxml/example/xml/index.xsd
Normal file
66
docs/doxygen/doxyxml/example/xml/index.xsd
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
<?xml version='1.0' encoding='utf-8' ?>
|
||||||
|
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||||
|
<xsd:element name="doxygenindex" type="DoxygenType"/>
|
||||||
|
|
||||||
|
<xsd:complexType name="DoxygenType">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="compound" type="CompoundType" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="version" type="xsd:string" use="required"/>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="CompoundType">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="name" type="xsd:string"/>
|
||||||
|
<xsd:element name="member" type="MemberType" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="refid" type="xsd:string" use="required"/>
|
||||||
|
<xsd:attribute name="kind" type="CompoundKind" use="required"/>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:complexType name="MemberType">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="name" type="xsd:string"/>
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="refid" type="xsd:string" use="required"/>
|
||||||
|
<xsd:attribute name="kind" type="MemberKind" use="required"/>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
<xsd:simpleType name="CompoundKind">
|
||||||
|
<xsd:restriction base="xsd:string">
|
||||||
|
<xsd:enumeration value="class"/>
|
||||||
|
<xsd:enumeration value="struct"/>
|
||||||
|
<xsd:enumeration value="union"/>
|
||||||
|
<xsd:enumeration value="interface"/>
|
||||||
|
<xsd:enumeration value="protocol"/>
|
||||||
|
<xsd:enumeration value="category"/>
|
||||||
|
<xsd:enumeration value="exception"/>
|
||||||
|
<xsd:enumeration value="file"/>
|
||||||
|
<xsd:enumeration value="namespace"/>
|
||||||
|
<xsd:enumeration value="group"/>
|
||||||
|
<xsd:enumeration value="page"/>
|
||||||
|
<xsd:enumeration value="example"/>
|
||||||
|
<xsd:enumeration value="dir"/>
|
||||||
|
</xsd:restriction>
|
||||||
|
</xsd:simpleType>
|
||||||
|
|
||||||
|
<xsd:simpleType name="MemberKind">
|
||||||
|
<xsd:restriction base="xsd:string">
|
||||||
|
<xsd:enumeration value="define"/>
|
||||||
|
<xsd:enumeration value="property"/>
|
||||||
|
<xsd:enumeration value="event"/>
|
||||||
|
<xsd:enumeration value="variable"/>
|
||||||
|
<xsd:enumeration value="typedef"/>
|
||||||
|
<xsd:enumeration value="enum"/>
|
||||||
|
<xsd:enumeration value="enumvalue"/>
|
||||||
|
<xsd:enumeration value="function"/>
|
||||||
|
<xsd:enumeration value="signal"/>
|
||||||
|
<xsd:enumeration value="prototype"/>
|
||||||
|
<xsd:enumeration value="friend"/>
|
||||||
|
<xsd:enumeration value="dcop"/>
|
||||||
|
<xsd:enumeration value="slot"/>
|
||||||
|
</xsd:restriction>
|
||||||
|
</xsd:simpleType>
|
||||||
|
|
||||||
|
</xsd:schema>
|
||||||
|
|
7
docs/doxygen/doxyxml/generated/__init__.py
Normal file
7
docs/doxygen/doxyxml/generated/__init__.py
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
"""
|
||||||
|
Contains generated files produced by generateDS.py.
|
||||||
|
|
||||||
|
These do the real work of parsing the doxygen xml files but the
|
||||||
|
resultant classes are not very friendly to navigate so the rest of the
|
||||||
|
doxyxml module processes them further.
|
||||||
|
"""
|
503
docs/doxygen/doxyxml/generated/compound.py
Normal file
503
docs/doxygen/doxyxml/generated/compound.py
Normal file
@ -0,0 +1,503 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
"""
|
||||||
|
Generated Mon Feb 9 19:08:05 2009 by generateDS.py.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from string import lower as str_lower
|
||||||
|
from xml.dom import minidom
|
||||||
|
from xml.dom import Node
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
import compoundsuper as supermod
|
||||||
|
from compoundsuper import MixedContainer
|
||||||
|
|
||||||
|
|
||||||
|
class DoxygenTypeSub(supermod.DoxygenType):
|
||||||
|
def __init__(self, version=None, compounddef=None):
|
||||||
|
supermod.DoxygenType.__init__(self, version, compounddef)
|
||||||
|
|
||||||
|
def find(self, details):
|
||||||
|
|
||||||
|
return self.compounddef.find(details)
|
||||||
|
|
||||||
|
supermod.DoxygenType.subclass = DoxygenTypeSub
|
||||||
|
# end class DoxygenTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class compounddefTypeSub(supermod.compounddefType):
|
||||||
|
def __init__(self, kind=None, prot=None, id=None, compoundname='', title='', basecompoundref=None, derivedcompoundref=None, includes=None, includedby=None, incdepgraph=None, invincdepgraph=None, innerdir=None, innerfile=None, innerclass=None, innernamespace=None, innerpage=None, innergroup=None, templateparamlist=None, sectiondef=None, briefdescription=None, detaileddescription=None, inheritancegraph=None, collaborationgraph=None, programlisting=None, location=None, listofallmembers=None):
|
||||||
|
supermod.compounddefType.__init__(self, kind, prot, id, compoundname, title, basecompoundref, derivedcompoundref, includes, includedby, incdepgraph, invincdepgraph, innerdir, innerfile, innerclass, innernamespace, innerpage, innergroup, templateparamlist, sectiondef, briefdescription, detaileddescription, inheritancegraph, collaborationgraph, programlisting, location, listofallmembers)
|
||||||
|
|
||||||
|
def find(self, details):
|
||||||
|
|
||||||
|
if self.id == details.refid:
|
||||||
|
return self
|
||||||
|
|
||||||
|
for sectiondef in self.sectiondef:
|
||||||
|
result = sectiondef.find(details)
|
||||||
|
if result:
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
supermod.compounddefType.subclass = compounddefTypeSub
|
||||||
|
# end class compounddefTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class listofallmembersTypeSub(supermod.listofallmembersType):
|
||||||
|
def __init__(self, member=None):
|
||||||
|
supermod.listofallmembersType.__init__(self, member)
|
||||||
|
supermod.listofallmembersType.subclass = listofallmembersTypeSub
|
||||||
|
# end class listofallmembersTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class memberRefTypeSub(supermod.memberRefType):
|
||||||
|
def __init__(self, virt=None, prot=None, refid=None, ambiguityscope=None, scope='', name=''):
|
||||||
|
supermod.memberRefType.__init__(self, virt, prot, refid, ambiguityscope, scope, name)
|
||||||
|
supermod.memberRefType.subclass = memberRefTypeSub
|
||||||
|
# end class memberRefTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class compoundRefTypeSub(supermod.compoundRefType):
|
||||||
|
def __init__(self, virt=None, prot=None, refid=None, valueOf_='', mixedclass_=None, content_=None):
|
||||||
|
supermod.compoundRefType.__init__(self, mixedclass_, content_)
|
||||||
|
supermod.compoundRefType.subclass = compoundRefTypeSub
|
||||||
|
# end class compoundRefTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class reimplementTypeSub(supermod.reimplementType):
|
||||||
|
def __init__(self, refid=None, valueOf_='', mixedclass_=None, content_=None):
|
||||||
|
supermod.reimplementType.__init__(self, mixedclass_, content_)
|
||||||
|
supermod.reimplementType.subclass = reimplementTypeSub
|
||||||
|
# end class reimplementTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class incTypeSub(supermod.incType):
|
||||||
|
def __init__(self, local=None, refid=None, valueOf_='', mixedclass_=None, content_=None):
|
||||||
|
supermod.incType.__init__(self, mixedclass_, content_)
|
||||||
|
supermod.incType.subclass = incTypeSub
|
||||||
|
# end class incTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class refTypeSub(supermod.refType):
|
||||||
|
def __init__(self, prot=None, refid=None, valueOf_='', mixedclass_=None, content_=None):
|
||||||
|
supermod.refType.__init__(self, mixedclass_, content_)
|
||||||
|
supermod.refType.subclass = refTypeSub
|
||||||
|
# end class refTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class refTextTypeSub(supermod.refTextType):
|
||||||
|
def __init__(self, refid=None, kindref=None, external=None, valueOf_='', mixedclass_=None, content_=None):
|
||||||
|
supermod.refTextType.__init__(self, mixedclass_, content_)
|
||||||
|
|
||||||
|
supermod.refTextType.subclass = refTextTypeSub
|
||||||
|
# end class refTextTypeSub
|
||||||
|
|
||||||
|
class sectiondefTypeSub(supermod.sectiondefType):
|
||||||
|
|
||||||
|
|
||||||
|
def __init__(self, kind=None, header='', description=None, memberdef=None):
|
||||||
|
supermod.sectiondefType.__init__(self, kind, header, description, memberdef)
|
||||||
|
|
||||||
|
def find(self, details):
|
||||||
|
|
||||||
|
for memberdef in self.memberdef:
|
||||||
|
if memberdef.id == details.refid:
|
||||||
|
return memberdef
|
||||||
|
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
supermod.sectiondefType.subclass = sectiondefTypeSub
|
||||||
|
# end class sectiondefTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class memberdefTypeSub(supermod.memberdefType):
|
||||||
|
def __init__(self, initonly=None, kind=None, volatile=None, const=None, raise_=None, virt=None, readable=None, prot=None, explicit=None, new=None, final=None, writable=None, add=None, static=None, remove=None, sealed=None, mutable=None, gettable=None, inline=None, settable=None, id=None, templateparamlist=None, type_=None, definition='', argsstring='', name='', read='', write='', bitfield='', reimplements=None, reimplementedby=None, param=None, enumvalue=None, initializer=None, exceptions=None, briefdescription=None, detaileddescription=None, inbodydescription=None, location=None, references=None, referencedby=None):
|
||||||
|
supermod.memberdefType.__init__(self, initonly, kind, volatile, const, raise_, virt, readable, prot, explicit, new, final, writable, add, static, remove, sealed, mutable, gettable, inline, settable, id, templateparamlist, type_, definition, argsstring, name, read, write, bitfield, reimplements, reimplementedby, param, enumvalue, initializer, exceptions, briefdescription, detaileddescription, inbodydescription, location, references, referencedby)
|
||||||
|
supermod.memberdefType.subclass = memberdefTypeSub
|
||||||
|
# end class memberdefTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class descriptionTypeSub(supermod.descriptionType):
|
||||||
|
def __init__(self, title='', para=None, sect1=None, internal=None, mixedclass_=None, content_=None):
|
||||||
|
supermod.descriptionType.__init__(self, mixedclass_, content_)
|
||||||
|
supermod.descriptionType.subclass = descriptionTypeSub
|
||||||
|
# end class descriptionTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class enumvalueTypeSub(supermod.enumvalueType):
|
||||||
|
def __init__(self, prot=None, id=None, name='', initializer=None, briefdescription=None, detaileddescription=None, mixedclass_=None, content_=None):
|
||||||
|
supermod.enumvalueType.__init__(self, mixedclass_, content_)
|
||||||
|
supermod.enumvalueType.subclass = enumvalueTypeSub
|
||||||
|
# end class enumvalueTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class templateparamlistTypeSub(supermod.templateparamlistType):
|
||||||
|
def __init__(self, param=None):
|
||||||
|
supermod.templateparamlistType.__init__(self, param)
|
||||||
|
supermod.templateparamlistType.subclass = templateparamlistTypeSub
|
||||||
|
# end class templateparamlistTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class paramTypeSub(supermod.paramType):
|
||||||
|
def __init__(self, type_=None, declname='', defname='', array='', defval=None, briefdescription=None):
|
||||||
|
supermod.paramType.__init__(self, type_, declname, defname, array, defval, briefdescription)
|
||||||
|
supermod.paramType.subclass = paramTypeSub
|
||||||
|
# end class paramTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class linkedTextTypeSub(supermod.linkedTextType):
|
||||||
|
def __init__(self, ref=None, mixedclass_=None, content_=None):
|
||||||
|
supermod.linkedTextType.__init__(self, mixedclass_, content_)
|
||||||
|
supermod.linkedTextType.subclass = linkedTextTypeSub
|
||||||
|
# end class linkedTextTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class graphTypeSub(supermod.graphType):
|
||||||
|
def __init__(self, node=None):
|
||||||
|
supermod.graphType.__init__(self, node)
|
||||||
|
supermod.graphType.subclass = graphTypeSub
|
||||||
|
# end class graphTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class nodeTypeSub(supermod.nodeType):
|
||||||
|
def __init__(self, id=None, label='', link=None, childnode=None):
|
||||||
|
supermod.nodeType.__init__(self, id, label, link, childnode)
|
||||||
|
supermod.nodeType.subclass = nodeTypeSub
|
||||||
|
# end class nodeTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class childnodeTypeSub(supermod.childnodeType):
|
||||||
|
def __init__(self, relation=None, refid=None, edgelabel=None):
|
||||||
|
supermod.childnodeType.__init__(self, relation, refid, edgelabel)
|
||||||
|
supermod.childnodeType.subclass = childnodeTypeSub
|
||||||
|
# end class childnodeTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class linkTypeSub(supermod.linkType):
|
||||||
|
def __init__(self, refid=None, external=None, valueOf_=''):
|
||||||
|
supermod.linkType.__init__(self, refid, external)
|
||||||
|
supermod.linkType.subclass = linkTypeSub
|
||||||
|
# end class linkTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class listingTypeSub(supermod.listingType):
|
||||||
|
def __init__(self, codeline=None):
|
||||||
|
supermod.listingType.__init__(self, codeline)
|
||||||
|
supermod.listingType.subclass = listingTypeSub
|
||||||
|
# end class listingTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class codelineTypeSub(supermod.codelineType):
|
||||||
|
def __init__(self, external=None, lineno=None, refkind=None, refid=None, highlight=None):
|
||||||
|
supermod.codelineType.__init__(self, external, lineno, refkind, refid, highlight)
|
||||||
|
supermod.codelineType.subclass = codelineTypeSub
|
||||||
|
# end class codelineTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class highlightTypeSub(supermod.highlightType):
|
||||||
|
def __init__(self, class_=None, sp=None, ref=None, mixedclass_=None, content_=None):
|
||||||
|
supermod.highlightType.__init__(self, mixedclass_, content_)
|
||||||
|
supermod.highlightType.subclass = highlightTypeSub
|
||||||
|
# end class highlightTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class referenceTypeSub(supermod.referenceType):
|
||||||
|
def __init__(self, endline=None, startline=None, refid=None, compoundref=None, valueOf_='', mixedclass_=None, content_=None):
|
||||||
|
supermod.referenceType.__init__(self, mixedclass_, content_)
|
||||||
|
supermod.referenceType.subclass = referenceTypeSub
|
||||||
|
# end class referenceTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class locationTypeSub(supermod.locationType):
|
||||||
|
def __init__(self, bodystart=None, line=None, bodyend=None, bodyfile=None, file=None, valueOf_=''):
|
||||||
|
supermod.locationType.__init__(self, bodystart, line, bodyend, bodyfile, file)
|
||||||
|
supermod.locationType.subclass = locationTypeSub
|
||||||
|
# end class locationTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class docSect1TypeSub(supermod.docSect1Type):
|
||||||
|
def __init__(self, id=None, title='', para=None, sect2=None, internal=None, mixedclass_=None, content_=None):
|
||||||
|
supermod.docSect1Type.__init__(self, mixedclass_, content_)
|
||||||
|
supermod.docSect1Type.subclass = docSect1TypeSub
|
||||||
|
# end class docSect1TypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class docSect2TypeSub(supermod.docSect2Type):
|
||||||
|
def __init__(self, id=None, title='', para=None, sect3=None, internal=None, mixedclass_=None, content_=None):
|
||||||
|
supermod.docSect2Type.__init__(self, mixedclass_, content_)
|
||||||
|
supermod.docSect2Type.subclass = docSect2TypeSub
|
||||||
|
# end class docSect2TypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class docSect3TypeSub(supermod.docSect3Type):
|
||||||
|
def __init__(self, id=None, title='', para=None, sect4=None, internal=None, mixedclass_=None, content_=None):
|
||||||
|
supermod.docSect3Type.__init__(self, mixedclass_, content_)
|
||||||
|
supermod.docSect3Type.subclass = docSect3TypeSub
|
||||||
|
# end class docSect3TypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class docSect4TypeSub(supermod.docSect4Type):
|
||||||
|
def __init__(self, id=None, title='', para=None, internal=None, mixedclass_=None, content_=None):
|
||||||
|
supermod.docSect4Type.__init__(self, mixedclass_, content_)
|
||||||
|
supermod.docSect4Type.subclass = docSect4TypeSub
|
||||||
|
# end class docSect4TypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class docInternalTypeSub(supermod.docInternalType):
|
||||||
|
def __init__(self, para=None, sect1=None, mixedclass_=None, content_=None):
|
||||||
|
supermod.docInternalType.__init__(self, mixedclass_, content_)
|
||||||
|
supermod.docInternalType.subclass = docInternalTypeSub
|
||||||
|
# end class docInternalTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class docInternalS1TypeSub(supermod.docInternalS1Type):
|
||||||
|
def __init__(self, para=None, sect2=None, mixedclass_=None, content_=None):
|
||||||
|
supermod.docInternalS1Type.__init__(self, mixedclass_, content_)
|
||||||
|
supermod.docInternalS1Type.subclass = docInternalS1TypeSub
|
||||||
|
# end class docInternalS1TypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class docInternalS2TypeSub(supermod.docInternalS2Type):
|
||||||
|
def __init__(self, para=None, sect3=None, mixedclass_=None, content_=None):
|
||||||
|
supermod.docInternalS2Type.__init__(self, mixedclass_, content_)
|
||||||
|
supermod.docInternalS2Type.subclass = docInternalS2TypeSub
|
||||||
|
# end class docInternalS2TypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class docInternalS3TypeSub(supermod.docInternalS3Type):
|
||||||
|
def __init__(self, para=None, sect3=None, mixedclass_=None, content_=None):
|
||||||
|
supermod.docInternalS3Type.__init__(self, mixedclass_, content_)
|
||||||
|
supermod.docInternalS3Type.subclass = docInternalS3TypeSub
|
||||||
|
# end class docInternalS3TypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class docInternalS4TypeSub(supermod.docInternalS4Type):
|
||||||
|
def __init__(self, para=None, mixedclass_=None, content_=None):
|
||||||
|
supermod.docInternalS4Type.__init__(self, mixedclass_, content_)
|
||||||
|
supermod.docInternalS4Type.subclass = docInternalS4TypeSub
|
||||||
|
# end class docInternalS4TypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class docURLLinkSub(supermod.docURLLink):
|
||||||
|
def __init__(self, url=None, valueOf_='', mixedclass_=None, content_=None):
|
||||||
|
supermod.docURLLink.__init__(self, mixedclass_, content_)
|
||||||
|
supermod.docURLLink.subclass = docURLLinkSub
|
||||||
|
# end class docURLLinkSub
|
||||||
|
|
||||||
|
|
||||||
|
class docAnchorTypeSub(supermod.docAnchorType):
|
||||||
|
def __init__(self, id=None, valueOf_='', mixedclass_=None, content_=None):
|
||||||
|
supermod.docAnchorType.__init__(self, mixedclass_, content_)
|
||||||
|
supermod.docAnchorType.subclass = docAnchorTypeSub
|
||||||
|
# end class docAnchorTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class docFormulaTypeSub(supermod.docFormulaType):
|
||||||
|
def __init__(self, id=None, valueOf_='', mixedclass_=None, content_=None):
|
||||||
|
supermod.docFormulaType.__init__(self, mixedclass_, content_)
|
||||||
|
supermod.docFormulaType.subclass = docFormulaTypeSub
|
||||||
|
# end class docFormulaTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class docIndexEntryTypeSub(supermod.docIndexEntryType):
|
||||||
|
def __init__(self, primaryie='', secondaryie=''):
|
||||||
|
supermod.docIndexEntryType.__init__(self, primaryie, secondaryie)
|
||||||
|
supermod.docIndexEntryType.subclass = docIndexEntryTypeSub
|
||||||
|
# end class docIndexEntryTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class docListTypeSub(supermod.docListType):
|
||||||
|
def __init__(self, listitem=None):
|
||||||
|
supermod.docListType.__init__(self, listitem)
|
||||||
|
supermod.docListType.subclass = docListTypeSub
|
||||||
|
# end class docListTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class docListItemTypeSub(supermod.docListItemType):
|
||||||
|
def __init__(self, para=None):
|
||||||
|
supermod.docListItemType.__init__(self, para)
|
||||||
|
supermod.docListItemType.subclass = docListItemTypeSub
|
||||||
|
# end class docListItemTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class docSimpleSectTypeSub(supermod.docSimpleSectType):
|
||||||
|
def __init__(self, kind=None, title=None, para=None):
|
||||||
|
supermod.docSimpleSectType.__init__(self, kind, title, para)
|
||||||
|
supermod.docSimpleSectType.subclass = docSimpleSectTypeSub
|
||||||
|
# end class docSimpleSectTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class docVarListEntryTypeSub(supermod.docVarListEntryType):
|
||||||
|
def __init__(self, term=None):
|
||||||
|
supermod.docVarListEntryType.__init__(self, term)
|
||||||
|
supermod.docVarListEntryType.subclass = docVarListEntryTypeSub
|
||||||
|
# end class docVarListEntryTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class docRefTextTypeSub(supermod.docRefTextType):
|
||||||
|
def __init__(self, refid=None, kindref=None, external=None, valueOf_='', mixedclass_=None, content_=None):
|
||||||
|
supermod.docRefTextType.__init__(self, mixedclass_, content_)
|
||||||
|
supermod.docRefTextType.subclass = docRefTextTypeSub
|
||||||
|
# end class docRefTextTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class docTableTypeSub(supermod.docTableType):
|
||||||
|
def __init__(self, rows=None, cols=None, row=None, caption=None):
|
||||||
|
supermod.docTableType.__init__(self, rows, cols, row, caption)
|
||||||
|
supermod.docTableType.subclass = docTableTypeSub
|
||||||
|
# end class docTableTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class docRowTypeSub(supermod.docRowType):
|
||||||
|
def __init__(self, entry=None):
|
||||||
|
supermod.docRowType.__init__(self, entry)
|
||||||
|
supermod.docRowType.subclass = docRowTypeSub
|
||||||
|
# end class docRowTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class docEntryTypeSub(supermod.docEntryType):
|
||||||
|
def __init__(self, thead=None, para=None):
|
||||||
|
supermod.docEntryType.__init__(self, thead, para)
|
||||||
|
supermod.docEntryType.subclass = docEntryTypeSub
|
||||||
|
# end class docEntryTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class docHeadingTypeSub(supermod.docHeadingType):
|
||||||
|
def __init__(self, level=None, valueOf_='', mixedclass_=None, content_=None):
|
||||||
|
supermod.docHeadingType.__init__(self, mixedclass_, content_)
|
||||||
|
supermod.docHeadingType.subclass = docHeadingTypeSub
|
||||||
|
# end class docHeadingTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class docImageTypeSub(supermod.docImageType):
|
||||||
|
def __init__(self, width=None, type_=None, name=None, height=None, valueOf_='', mixedclass_=None, content_=None):
|
||||||
|
supermod.docImageType.__init__(self, mixedclass_, content_)
|
||||||
|
supermod.docImageType.subclass = docImageTypeSub
|
||||||
|
# end class docImageTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class docDotFileTypeSub(supermod.docDotFileType):
|
||||||
|
def __init__(self, name=None, valueOf_='', mixedclass_=None, content_=None):
|
||||||
|
supermod.docDotFileType.__init__(self, mixedclass_, content_)
|
||||||
|
supermod.docDotFileType.subclass = docDotFileTypeSub
|
||||||
|
# end class docDotFileTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class docTocItemTypeSub(supermod.docTocItemType):
|
||||||
|
def __init__(self, id=None, valueOf_='', mixedclass_=None, content_=None):
|
||||||
|
supermod.docTocItemType.__init__(self, mixedclass_, content_)
|
||||||
|
supermod.docTocItemType.subclass = docTocItemTypeSub
|
||||||
|
# end class docTocItemTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class docTocListTypeSub(supermod.docTocListType):
|
||||||
|
def __init__(self, tocitem=None):
|
||||||
|
supermod.docTocListType.__init__(self, tocitem)
|
||||||
|
supermod.docTocListType.subclass = docTocListTypeSub
|
||||||
|
# end class docTocListTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class docLanguageTypeSub(supermod.docLanguageType):
|
||||||
|
def __init__(self, langid=None, para=None):
|
||||||
|
supermod.docLanguageType.__init__(self, langid, para)
|
||||||
|
supermod.docLanguageType.subclass = docLanguageTypeSub
|
||||||
|
# end class docLanguageTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class docParamListTypeSub(supermod.docParamListType):
|
||||||
|
def __init__(self, kind=None, parameteritem=None):
|
||||||
|
supermod.docParamListType.__init__(self, kind, parameteritem)
|
||||||
|
supermod.docParamListType.subclass = docParamListTypeSub
|
||||||
|
# end class docParamListTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class docParamListItemSub(supermod.docParamListItem):
|
||||||
|
def __init__(self, parameternamelist=None, parameterdescription=None):
|
||||||
|
supermod.docParamListItem.__init__(self, parameternamelist, parameterdescription)
|
||||||
|
supermod.docParamListItem.subclass = docParamListItemSub
|
||||||
|
# end class docParamListItemSub
|
||||||
|
|
||||||
|
|
||||||
|
class docParamNameListSub(supermod.docParamNameList):
|
||||||
|
def __init__(self, parametername=None):
|
||||||
|
supermod.docParamNameList.__init__(self, parametername)
|
||||||
|
supermod.docParamNameList.subclass = docParamNameListSub
|
||||||
|
# end class docParamNameListSub
|
||||||
|
|
||||||
|
|
||||||
|
class docParamNameSub(supermod.docParamName):
|
||||||
|
def __init__(self, direction=None, ref=None, mixedclass_=None, content_=None):
|
||||||
|
supermod.docParamName.__init__(self, mixedclass_, content_)
|
||||||
|
supermod.docParamName.subclass = docParamNameSub
|
||||||
|
# end class docParamNameSub
|
||||||
|
|
||||||
|
|
||||||
|
class docXRefSectTypeSub(supermod.docXRefSectType):
|
||||||
|
def __init__(self, id=None, xreftitle=None, xrefdescription=None):
|
||||||
|
supermod.docXRefSectType.__init__(self, id, xreftitle, xrefdescription)
|
||||||
|
supermod.docXRefSectType.subclass = docXRefSectTypeSub
|
||||||
|
# end class docXRefSectTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class docCopyTypeSub(supermod.docCopyType):
|
||||||
|
def __init__(self, link=None, para=None, sect1=None, internal=None):
|
||||||
|
supermod.docCopyType.__init__(self, link, para, sect1, internal)
|
||||||
|
supermod.docCopyType.subclass = docCopyTypeSub
|
||||||
|
# end class docCopyTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class docCharTypeSub(supermod.docCharType):
|
||||||
|
def __init__(self, char=None, valueOf_=''):
|
||||||
|
supermod.docCharType.__init__(self, char)
|
||||||
|
supermod.docCharType.subclass = docCharTypeSub
|
||||||
|
# end class docCharTypeSub
|
||||||
|
|
||||||
|
class docParaTypeSub(supermod.docParaType):
|
||||||
|
def __init__(self, char=None, valueOf_=''):
|
||||||
|
supermod.docParaType.__init__(self, char)
|
||||||
|
|
||||||
|
self.parameterlist = []
|
||||||
|
self.simplesects = []
|
||||||
|
self.content = []
|
||||||
|
|
||||||
|
def buildChildren(self, child_, nodeName_):
|
||||||
|
supermod.docParaType.buildChildren(self, child_, nodeName_)
|
||||||
|
|
||||||
|
if child_.nodeType == Node.TEXT_NODE:
|
||||||
|
obj_ = self.mixedclass_(MixedContainer.CategoryText,
|
||||||
|
MixedContainer.TypeNone, '', child_.nodeValue)
|
||||||
|
self.content.append(obj_)
|
||||||
|
elif child_.nodeType == Node.ELEMENT_NODE and \
|
||||||
|
nodeName_ == "ref":
|
||||||
|
obj_ = supermod.docRefTextType.factory()
|
||||||
|
obj_.build(child_)
|
||||||
|
self.content.append(obj_)
|
||||||
|
elif child_.nodeType == Node.ELEMENT_NODE and \
|
||||||
|
nodeName_ == 'parameterlist':
|
||||||
|
obj_ = supermod.docParamListType.factory()
|
||||||
|
obj_.build(child_)
|
||||||
|
self.parameterlist.append(obj_)
|
||||||
|
elif child_.nodeType == Node.ELEMENT_NODE and \
|
||||||
|
nodeName_ == 'simplesect':
|
||||||
|
obj_ = supermod.docSimpleSectType.factory()
|
||||||
|
obj_.build(child_)
|
||||||
|
self.simplesects.append(obj_)
|
||||||
|
|
||||||
|
|
||||||
|
supermod.docParaType.subclass = docParaTypeSub
|
||||||
|
# end class docParaTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def parse(inFilename):
|
||||||
|
doc = minidom.parse(inFilename)
|
||||||
|
rootNode = doc.documentElement
|
||||||
|
rootObj = supermod.DoxygenType.factory()
|
||||||
|
rootObj.build(rootNode)
|
||||||
|
return rootObj
|
||||||
|
|
||||||
|
|
8342
docs/doxygen/doxyxml/generated/compoundsuper.py
Normal file
8342
docs/doxygen/doxyxml/generated/compoundsuper.py
Normal file
File diff suppressed because it is too large
Load Diff
77
docs/doxygen/doxyxml/generated/index.py
Normal file
77
docs/doxygen/doxyxml/generated/index.py
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
"""
|
||||||
|
Generated Mon Feb 9 19:08:05 2009 by generateDS.py.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from xml.dom import minidom
|
||||||
|
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import compound
|
||||||
|
|
||||||
|
import indexsuper as supermod
|
||||||
|
|
||||||
|
class DoxygenTypeSub(supermod.DoxygenType):
|
||||||
|
def __init__(self, version=None, compound=None):
|
||||||
|
supermod.DoxygenType.__init__(self, version, compound)
|
||||||
|
|
||||||
|
def find_compounds_and_members(self, details):
|
||||||
|
"""
|
||||||
|
Returns a list of all compounds and their members which match details
|
||||||
|
"""
|
||||||
|
|
||||||
|
results = []
|
||||||
|
for compound in self.compound:
|
||||||
|
members = compound.find_members(details)
|
||||||
|
if members:
|
||||||
|
results.append([compound, members])
|
||||||
|
else:
|
||||||
|
if details.match(compound):
|
||||||
|
results.append([compound, []])
|
||||||
|
|
||||||
|
return results
|
||||||
|
|
||||||
|
supermod.DoxygenType.subclass = DoxygenTypeSub
|
||||||
|
# end class DoxygenTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class CompoundTypeSub(supermod.CompoundType):
|
||||||
|
def __init__(self, kind=None, refid=None, name='', member=None):
|
||||||
|
supermod.CompoundType.__init__(self, kind, refid, name, member)
|
||||||
|
|
||||||
|
def find_members(self, details):
|
||||||
|
"""
|
||||||
|
Returns a list of all members which match details
|
||||||
|
"""
|
||||||
|
|
||||||
|
results = []
|
||||||
|
|
||||||
|
for member in self.member:
|
||||||
|
if details.match(member):
|
||||||
|
results.append(member)
|
||||||
|
|
||||||
|
return results
|
||||||
|
|
||||||
|
supermod.CompoundType.subclass = CompoundTypeSub
|
||||||
|
# end class CompoundTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
class MemberTypeSub(supermod.MemberType):
|
||||||
|
|
||||||
|
def __init__(self, kind=None, refid=None, name=''):
|
||||||
|
supermod.MemberType.__init__(self, kind, refid, name)
|
||||||
|
|
||||||
|
supermod.MemberType.subclass = MemberTypeSub
|
||||||
|
# end class MemberTypeSub
|
||||||
|
|
||||||
|
|
||||||
|
def parse(inFilename):
|
||||||
|
|
||||||
|
doc = minidom.parse(inFilename)
|
||||||
|
rootNode = doc.documentElement
|
||||||
|
rootObj = supermod.DoxygenType.factory()
|
||||||
|
rootObj.build(rootNode)
|
||||||
|
|
||||||
|
return rootObj
|
||||||
|
|
523
docs/doxygen/doxyxml/generated/indexsuper.py
Normal file
523
docs/doxygen/doxyxml/generated/indexsuper.py
Normal file
@ -0,0 +1,523 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
#
|
||||||
|
# Generated Thu Jun 11 18:43:54 2009 by generateDS.py.
|
||||||
|
#
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import getopt
|
||||||
|
from string import lower as str_lower
|
||||||
|
from xml.dom import minidom
|
||||||
|
from xml.dom import Node
|
||||||
|
|
||||||
|
#
|
||||||
|
# User methods
|
||||||
|
#
|
||||||
|
# Calls to the methods in these classes are generated by generateDS.py.
|
||||||
|
# You can replace these methods by re-implementing the following class
|
||||||
|
# in a module named generatedssuper.py.
|
||||||
|
|
||||||
|
try:
|
||||||
|
from generatedssuper import GeneratedsSuper
|
||||||
|
except ImportError, exp:
|
||||||
|
|
||||||
|
class GeneratedsSuper:
|
||||||
|
def format_string(self, input_data, input_name=''):
|
||||||
|
return input_data
|
||||||
|
def format_integer(self, input_data, input_name=''):
|
||||||
|
return '%d' % input_data
|
||||||
|
def format_float(self, input_data, input_name=''):
|
||||||
|
return '%f' % input_data
|
||||||
|
def format_double(self, input_data, input_name=''):
|
||||||
|
return '%e' % input_data
|
||||||
|
def format_boolean(self, input_data, input_name=''):
|
||||||
|
return '%s' % input_data
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# If you have installed IPython you can uncomment and use the following.
|
||||||
|
# IPython is available from http://ipython.scipy.org/.
|
||||||
|
#
|
||||||
|
|
||||||
|
## from IPython.Shell import IPShellEmbed
|
||||||
|
## args = ''
|
||||||
|
## ipshell = IPShellEmbed(args,
|
||||||
|
## banner = 'Dropping into IPython',
|
||||||
|
## exit_msg = 'Leaving Interpreter, back to program.')
|
||||||
|
|
||||||
|
# Then use the following line where and when you want to drop into the
|
||||||
|
# IPython shell:
|
||||||
|
# ipshell('<some message> -- Entering ipshell.\nHit Ctrl-D to exit')
|
||||||
|
|
||||||
|
#
|
||||||
|
# Globals
|
||||||
|
#
|
||||||
|
|
||||||
|
ExternalEncoding = 'ascii'
|
||||||
|
|
||||||
|
#
|
||||||
|
# Support/utility functions.
|
||||||
|
#
|
||||||
|
|
||||||
|
def showIndent(outfile, level):
|
||||||
|
for idx in range(level):
|
||||||
|
outfile.write(' ')
|
||||||
|
|
||||||
|
def quote_xml(inStr):
|
||||||
|
s1 = (isinstance(inStr, basestring) and inStr or
|
||||||
|
'%s' % inStr)
|
||||||
|
s1 = s1.replace('&', '&')
|
||||||
|
s1 = s1.replace('<', '<')
|
||||||
|
s1 = s1.replace('>', '>')
|
||||||
|
return s1
|
||||||
|
|
||||||
|
def quote_attrib(inStr):
|
||||||
|
s1 = (isinstance(inStr, basestring) and inStr or
|
||||||
|
'%s' % inStr)
|
||||||
|
s1 = s1.replace('&', '&')
|
||||||
|
s1 = s1.replace('<', '<')
|
||||||
|
s1 = s1.replace('>', '>')
|
||||||
|
if '"' in s1:
|
||||||
|
if "'" in s1:
|
||||||
|
s1 = '"%s"' % s1.replace('"', """)
|
||||||
|
else:
|
||||||
|
s1 = "'%s'" % s1
|
||||||
|
else:
|
||||||
|
s1 = '"%s"' % s1
|
||||||
|
return s1
|
||||||
|
|
||||||
|
def quote_python(inStr):
|
||||||
|
s1 = inStr
|
||||||
|
if s1.find("'") == -1:
|
||||||
|
if s1.find('\n') == -1:
|
||||||
|
return "'%s'" % s1
|
||||||
|
else:
|
||||||
|
return "'''%s'''" % s1
|
||||||
|
else:
|
||||||
|
if s1.find('"') != -1:
|
||||||
|
s1 = s1.replace('"', '\\"')
|
||||||
|
if s1.find('\n') == -1:
|
||||||
|
return '"%s"' % s1
|
||||||
|
else:
|
||||||
|
return '"""%s"""' % s1
|
||||||
|
|
||||||
|
|
||||||
|
class MixedContainer:
|
||||||
|
# Constants for category:
|
||||||
|
CategoryNone = 0
|
||||||
|
CategoryText = 1
|
||||||
|
CategorySimple = 2
|
||||||
|
CategoryComplex = 3
|
||||||
|
# Constants for content_type:
|
||||||
|
TypeNone = 0
|
||||||
|
TypeText = 1
|
||||||
|
TypeString = 2
|
||||||
|
TypeInteger = 3
|
||||||
|
TypeFloat = 4
|
||||||
|
TypeDecimal = 5
|
||||||
|
TypeDouble = 6
|
||||||
|
TypeBoolean = 7
|
||||||
|
def __init__(self, category, content_type, name, value):
|
||||||
|
self.category = category
|
||||||
|
self.content_type = content_type
|
||||||
|
self.name = name
|
||||||
|
self.value = value
|
||||||
|
def getCategory(self):
|
||||||
|
return self.category
|
||||||
|
def getContenttype(self, content_type):
|
||||||
|
return self.content_type
|
||||||
|
def getValue(self):
|
||||||
|
return self.value
|
||||||
|
def getName(self):
|
||||||
|
return self.name
|
||||||
|
def export(self, outfile, level, name, namespace):
|
||||||
|
if self.category == MixedContainer.CategoryText:
|
||||||
|
outfile.write(self.value)
|
||||||
|
elif self.category == MixedContainer.CategorySimple:
|
||||||
|
self.exportSimple(outfile, level, name)
|
||||||
|
else: # category == MixedContainer.CategoryComplex
|
||||||
|
self.value.export(outfile, level, namespace,name)
|
||||||
|
def exportSimple(self, outfile, level, name):
|
||||||
|
if self.content_type == MixedContainer.TypeString:
|
||||||
|
outfile.write('<%s>%s</%s>' % (self.name, self.value, self.name))
|
||||||
|
elif self.content_type == MixedContainer.TypeInteger or \
|
||||||
|
self.content_type == MixedContainer.TypeBoolean:
|
||||||
|
outfile.write('<%s>%d</%s>' % (self.name, self.value, self.name))
|
||||||
|
elif self.content_type == MixedContainer.TypeFloat or \
|
||||||
|
self.content_type == MixedContainer.TypeDecimal:
|
||||||
|
outfile.write('<%s>%f</%s>' % (self.name, self.value, self.name))
|
||||||
|
elif self.content_type == MixedContainer.TypeDouble:
|
||||||
|
outfile.write('<%s>%g</%s>' % (self.name, self.value, self.name))
|
||||||
|
def exportLiteral(self, outfile, level, name):
|
||||||
|
if self.category == MixedContainer.CategoryText:
|
||||||
|
showIndent(outfile, level)
|
||||||
|
outfile.write('MixedContainer(%d, %d, "%s", "%s"),\n' % \
|
||||||
|
(self.category, self.content_type, self.name, self.value))
|
||||||
|
elif self.category == MixedContainer.CategorySimple:
|
||||||
|
showIndent(outfile, level)
|
||||||
|
outfile.write('MixedContainer(%d, %d, "%s", "%s"),\n' % \
|
||||||
|
(self.category, self.content_type, self.name, self.value))
|
||||||
|
else: # category == MixedContainer.CategoryComplex
|
||||||
|
showIndent(outfile, level)
|
||||||
|
outfile.write('MixedContainer(%d, %d, "%s",\n' % \
|
||||||
|
(self.category, self.content_type, self.name,))
|
||||||
|
self.value.exportLiteral(outfile, level + 1)
|
||||||
|
showIndent(outfile, level)
|
||||||
|
outfile.write(')\n')
|
||||||
|
|
||||||
|
|
||||||
|
class _MemberSpec(object):
|
||||||
|
def __init__(self, name='', data_type='', container=0):
|
||||||
|
self.name = name
|
||||||
|
self.data_type = data_type
|
||||||
|
self.container = container
|
||||||
|
def set_name(self, name): self.name = name
|
||||||
|
def get_name(self): return self.name
|
||||||
|
def set_data_type(self, data_type): self.data_type = data_type
|
||||||
|
def get_data_type(self): return self.data_type
|
||||||
|
def set_container(self, container): self.container = container
|
||||||
|
def get_container(self): return self.container
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Data representation classes.
|
||||||
|
#
|
||||||
|
|
||||||
|
class DoxygenType(GeneratedsSuper):
|
||||||
|
subclass = None
|
||||||
|
superclass = None
|
||||||
|
def __init__(self, version=None, compound=None):
|
||||||
|
self.version = version
|
||||||
|
if compound is None:
|
||||||
|
self.compound = []
|
||||||
|
else:
|
||||||
|
self.compound = compound
|
||||||
|
def factory(*args_, **kwargs_):
|
||||||
|
if DoxygenType.subclass:
|
||||||
|
return DoxygenType.subclass(*args_, **kwargs_)
|
||||||
|
else:
|
||||||
|
return DoxygenType(*args_, **kwargs_)
|
||||||
|
factory = staticmethod(factory)
|
||||||
|
def get_compound(self): return self.compound
|
||||||
|
def set_compound(self, compound): self.compound = compound
|
||||||
|
def add_compound(self, value): self.compound.append(value)
|
||||||
|
def insert_compound(self, index, value): self.compound[index] = value
|
||||||
|
def get_version(self): return self.version
|
||||||
|
def set_version(self, version): self.version = version
|
||||||
|
def export(self, outfile, level, namespace_='', name_='DoxygenType', namespacedef_=''):
|
||||||
|
showIndent(outfile, level)
|
||||||
|
outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
|
||||||
|
self.exportAttributes(outfile, level, namespace_, name_='DoxygenType')
|
||||||
|
if self.hasContent_():
|
||||||
|
outfile.write('>\n')
|
||||||
|
self.exportChildren(outfile, level + 1, namespace_, name_)
|
||||||
|
showIndent(outfile, level)
|
||||||
|
outfile.write('</%s%s>\n' % (namespace_, name_))
|
||||||
|
else:
|
||||||
|
outfile.write(' />\n')
|
||||||
|
def exportAttributes(self, outfile, level, namespace_='', name_='DoxygenType'):
|
||||||
|
outfile.write(' version=%s' % (self.format_string(quote_attrib(self.version).encode(ExternalEncoding), input_name='version'), ))
|
||||||
|
def exportChildren(self, outfile, level, namespace_='', name_='DoxygenType'):
|
||||||
|
for compound_ in self.compound:
|
||||||
|
compound_.export(outfile, level, namespace_, name_='compound')
|
||||||
|
def hasContent_(self):
|
||||||
|
if (
|
||||||
|
self.compound is not None
|
||||||
|
):
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
def exportLiteral(self, outfile, level, name_='DoxygenType'):
|
||||||
|
level += 1
|
||||||
|
self.exportLiteralAttributes(outfile, level, name_)
|
||||||
|
if self.hasContent_():
|
||||||
|
self.exportLiteralChildren(outfile, level, name_)
|
||||||
|
def exportLiteralAttributes(self, outfile, level, name_):
|
||||||
|
if self.version is not None:
|
||||||
|
showIndent(outfile, level)
|
||||||
|
outfile.write('version = %s,\n' % (self.version,))
|
||||||
|
def exportLiteralChildren(self, outfile, level, name_):
|
||||||
|
showIndent(outfile, level)
|
||||||
|
outfile.write('compound=[\n')
|
||||||
|
level += 1
|
||||||
|
for compound in self.compound:
|
||||||
|
showIndent(outfile, level)
|
||||||
|
outfile.write('model_.compound(\n')
|
||||||
|
compound.exportLiteral(outfile, level, name_='compound')
|
||||||
|
showIndent(outfile, level)
|
||||||
|
outfile.write('),\n')
|
||||||
|
level -= 1
|
||||||
|
showIndent(outfile, level)
|
||||||
|
outfile.write('],\n')
|
||||||
|
def build(self, node_):
|
||||||
|
attrs = node_.attributes
|
||||||
|
self.buildAttributes(attrs)
|
||||||
|
for child_ in node_.childNodes:
|
||||||
|
nodeName_ = child_.nodeName.split(':')[-1]
|
||||||
|
self.buildChildren(child_, nodeName_)
|
||||||
|
def buildAttributes(self, attrs):
|
||||||
|
if attrs.get('version'):
|
||||||
|
self.version = attrs.get('version').value
|
||||||
|
def buildChildren(self, child_, nodeName_):
|
||||||
|
if child_.nodeType == Node.ELEMENT_NODE and \
|
||||||
|
nodeName_ == 'compound':
|
||||||
|
obj_ = CompoundType.factory()
|
||||||
|
obj_.build(child_)
|
||||||
|
self.compound.append(obj_)
|
||||||
|
# end class DoxygenType
|
||||||
|
|
||||||
|
|
||||||
|
class CompoundType(GeneratedsSuper):
|
||||||
|
subclass = None
|
||||||
|
superclass = None
|
||||||
|
def __init__(self, kind=None, refid=None, name=None, member=None):
|
||||||
|
self.kind = kind
|
||||||
|
self.refid = refid
|
||||||
|
self.name = name
|
||||||
|
if member is None:
|
||||||
|
self.member = []
|
||||||
|
else:
|
||||||
|
self.member = member
|
||||||
|
def factory(*args_, **kwargs_):
|
||||||
|
if CompoundType.subclass:
|
||||||
|
return CompoundType.subclass(*args_, **kwargs_)
|
||||||
|
else:
|
||||||
|
return CompoundType(*args_, **kwargs_)
|
||||||
|
factory = staticmethod(factory)
|
||||||
|
def get_name(self): return self.name
|
||||||
|
def set_name(self, name): self.name = name
|
||||||
|
def get_member(self): return self.member
|
||||||
|
def set_member(self, member): self.member = member
|
||||||
|
def add_member(self, value): self.member.append(value)
|
||||||
|
def insert_member(self, index, value): self.member[index] = value
|
||||||
|
def get_kind(self): return self.kind
|
||||||
|
def set_kind(self, kind): self.kind = kind
|
||||||
|
def get_refid(self): return self.refid
|
||||||
|
def set_refid(self, refid): self.refid = refid
|
||||||
|
def export(self, outfile, level, namespace_='', name_='CompoundType', namespacedef_=''):
|
||||||
|
showIndent(outfile, level)
|
||||||
|
outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
|
||||||
|
self.exportAttributes(outfile, level, namespace_, name_='CompoundType')
|
||||||
|
if self.hasContent_():
|
||||||
|
outfile.write('>\n')
|
||||||
|
self.exportChildren(outfile, level + 1, namespace_, name_)
|
||||||
|
showIndent(outfile, level)
|
||||||
|
outfile.write('</%s%s>\n' % (namespace_, name_))
|
||||||
|
else:
|
||||||
|
outfile.write(' />\n')
|
||||||
|
def exportAttributes(self, outfile, level, namespace_='', name_='CompoundType'):
|
||||||
|
outfile.write(' kind=%s' % (quote_attrib(self.kind), ))
|
||||||
|
outfile.write(' refid=%s' % (self.format_string(quote_attrib(self.refid).encode(ExternalEncoding), input_name='refid'), ))
|
||||||
|
def exportChildren(self, outfile, level, namespace_='', name_='CompoundType'):
|
||||||
|
if self.name is not None:
|
||||||
|
showIndent(outfile, level)
|
||||||
|
outfile.write('<%sname>%s</%sname>\n' % (namespace_, self.format_string(quote_xml(self.name).encode(ExternalEncoding), input_name='name'), namespace_))
|
||||||
|
for member_ in self.member:
|
||||||
|
member_.export(outfile, level, namespace_, name_='member')
|
||||||
|
def hasContent_(self):
|
||||||
|
if (
|
||||||
|
self.name is not None or
|
||||||
|
self.member is not None
|
||||||
|
):
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
def exportLiteral(self, outfile, level, name_='CompoundType'):
|
||||||
|
level += 1
|
||||||
|
self.exportLiteralAttributes(outfile, level, name_)
|
||||||
|
if self.hasContent_():
|
||||||
|
self.exportLiteralChildren(outfile, level, name_)
|
||||||
|
def exportLiteralAttributes(self, outfile, level, name_):
|
||||||
|
if self.kind is not None:
|
||||||
|
showIndent(outfile, level)
|
||||||
|
outfile.write('kind = "%s",\n' % (self.kind,))
|
||||||
|
if self.refid is not None:
|
||||||
|
showIndent(outfile, level)
|
||||||
|
outfile.write('refid = %s,\n' % (self.refid,))
|
||||||
|
def exportLiteralChildren(self, outfile, level, name_):
|
||||||
|
showIndent(outfile, level)
|
||||||
|
outfile.write('name=%s,\n' % quote_python(self.name).encode(ExternalEncoding))
|
||||||
|
showIndent(outfile, level)
|
||||||
|
outfile.write('member=[\n')
|
||||||
|
level += 1
|
||||||
|
for member in self.member:
|
||||||
|
showIndent(outfile, level)
|
||||||
|
outfile.write('model_.member(\n')
|
||||||
|
member.exportLiteral(outfile, level, name_='member')
|
||||||
|
showIndent(outfile, level)
|
||||||
|
outfile.write('),\n')
|
||||||
|
level -= 1
|
||||||
|
showIndent(outfile, level)
|
||||||
|
outfile.write('],\n')
|
||||||
|
def build(self, node_):
|
||||||
|
attrs = node_.attributes
|
||||||
|
self.buildAttributes(attrs)
|
||||||
|
for child_ in node_.childNodes:
|
||||||
|
nodeName_ = child_.nodeName.split(':')[-1]
|
||||||
|
self.buildChildren(child_, nodeName_)
|
||||||
|
def buildAttributes(self, attrs):
|
||||||
|
if attrs.get('kind'):
|
||||||
|
self.kind = attrs.get('kind').value
|
||||||
|
if attrs.get('refid'):
|
||||||
|
self.refid = attrs.get('refid').value
|
||||||
|
def buildChildren(self, child_, nodeName_):
|
||||||
|
if child_.nodeType == Node.ELEMENT_NODE and \
|
||||||
|
nodeName_ == 'name':
|
||||||
|
name_ = ''
|
||||||
|
for text__content_ in child_.childNodes:
|
||||||
|
name_ += text__content_.nodeValue
|
||||||
|
self.name = name_
|
||||||
|
elif child_.nodeType == Node.ELEMENT_NODE and \
|
||||||
|
nodeName_ == 'member':
|
||||||
|
obj_ = MemberType.factory()
|
||||||
|
obj_.build(child_)
|
||||||
|
self.member.append(obj_)
|
||||||
|
# end class CompoundType
|
||||||
|
|
||||||
|
|
||||||
|
class MemberType(GeneratedsSuper):
|
||||||
|
subclass = None
|
||||||
|
superclass = None
|
||||||
|
def __init__(self, kind=None, refid=None, name=None):
|
||||||
|
self.kind = kind
|
||||||
|
self.refid = refid
|
||||||
|
self.name = name
|
||||||
|
def factory(*args_, **kwargs_):
|
||||||
|
if MemberType.subclass:
|
||||||
|
return MemberType.subclass(*args_, **kwargs_)
|
||||||
|
else:
|
||||||
|
return MemberType(*args_, **kwargs_)
|
||||||
|
factory = staticmethod(factory)
|
||||||
|
def get_name(self): return self.name
|
||||||
|
def set_name(self, name): self.name = name
|
||||||
|
def get_kind(self): return self.kind
|
||||||
|
def set_kind(self, kind): self.kind = kind
|
||||||
|
def get_refid(self): return self.refid
|
||||||
|
def set_refid(self, refid): self.refid = refid
|
||||||
|
def export(self, outfile, level, namespace_='', name_='MemberType', namespacedef_=''):
|
||||||
|
showIndent(outfile, level)
|
||||||
|
outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
|
||||||
|
self.exportAttributes(outfile, level, namespace_, name_='MemberType')
|
||||||
|
if self.hasContent_():
|
||||||
|
outfile.write('>\n')
|
||||||
|
self.exportChildren(outfile, level + 1, namespace_, name_)
|
||||||
|
showIndent(outfile, level)
|
||||||
|
outfile.write('</%s%s>\n' % (namespace_, name_))
|
||||||
|
else:
|
||||||
|
outfile.write(' />\n')
|
||||||
|
def exportAttributes(self, outfile, level, namespace_='', name_='MemberType'):
|
||||||
|
outfile.write(' kind=%s' % (quote_attrib(self.kind), ))
|
||||||
|
outfile.write(' refid=%s' % (self.format_string(quote_attrib(self.refid).encode(ExternalEncoding), input_name='refid'), ))
|
||||||
|
def exportChildren(self, outfile, level, namespace_='', name_='MemberType'):
|
||||||
|
if self.name is not None:
|
||||||
|
showIndent(outfile, level)
|
||||||
|
outfile.write('<%sname>%s</%sname>\n' % (namespace_, self.format_string(quote_xml(self.name).encode(ExternalEncoding), input_name='name'), namespace_))
|
||||||
|
def hasContent_(self):
|
||||||
|
if (
|
||||||
|
self.name is not None
|
||||||
|
):
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
def exportLiteral(self, outfile, level, name_='MemberType'):
|
||||||
|
level += 1
|
||||||
|
self.exportLiteralAttributes(outfile, level, name_)
|
||||||
|
if self.hasContent_():
|
||||||
|
self.exportLiteralChildren(outfile, level, name_)
|
||||||
|
def exportLiteralAttributes(self, outfile, level, name_):
|
||||||
|
if self.kind is not None:
|
||||||
|
showIndent(outfile, level)
|
||||||
|
outfile.write('kind = "%s",\n' % (self.kind,))
|
||||||
|
if self.refid is not None:
|
||||||
|
showIndent(outfile, level)
|
||||||
|
outfile.write('refid = %s,\n' % (self.refid,))
|
||||||
|
def exportLiteralChildren(self, outfile, level, name_):
|
||||||
|
showIndent(outfile, level)
|
||||||
|
outfile.write('name=%s,\n' % quote_python(self.name).encode(ExternalEncoding))
|
||||||
|
def build(self, node_):
|
||||||
|
attrs = node_.attributes
|
||||||
|
self.buildAttributes(attrs)
|
||||||
|
for child_ in node_.childNodes:
|
||||||
|
nodeName_ = child_.nodeName.split(':')[-1]
|
||||||
|
self.buildChildren(child_, nodeName_)
|
||||||
|
def buildAttributes(self, attrs):
|
||||||
|
if attrs.get('kind'):
|
||||||
|
self.kind = attrs.get('kind').value
|
||||||
|
if attrs.get('refid'):
|
||||||
|
self.refid = attrs.get('refid').value
|
||||||
|
def buildChildren(self, child_, nodeName_):
|
||||||
|
if child_.nodeType == Node.ELEMENT_NODE and \
|
||||||
|
nodeName_ == 'name':
|
||||||
|
name_ = ''
|
||||||
|
for text__content_ in child_.childNodes:
|
||||||
|
name_ += text__content_.nodeValue
|
||||||
|
self.name = name_
|
||||||
|
# end class MemberType
|
||||||
|
|
||||||
|
|
||||||
|
USAGE_TEXT = """
|
||||||
|
Usage: python <Parser>.py [ -s ] <in_xml_file>
|
||||||
|
Options:
|
||||||
|
-s Use the SAX parser, not the minidom parser.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def usage():
|
||||||
|
print USAGE_TEXT
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
|
def parse(inFileName):
|
||||||
|
doc = minidom.parse(inFileName)
|
||||||
|
rootNode = doc.documentElement
|
||||||
|
rootObj = DoxygenType.factory()
|
||||||
|
rootObj.build(rootNode)
|
||||||
|
# Enable Python to collect the space used by the DOM.
|
||||||
|
doc = None
|
||||||
|
sys.stdout.write('<?xml version="1.0" ?>\n')
|
||||||
|
rootObj.export(sys.stdout, 0, name_="doxygenindex",
|
||||||
|
namespacedef_='')
|
||||||
|
return rootObj
|
||||||
|
|
||||||
|
|
||||||
|
def parseString(inString):
|
||||||
|
doc = minidom.parseString(inString)
|
||||||
|
rootNode = doc.documentElement
|
||||||
|
rootObj = DoxygenType.factory()
|
||||||
|
rootObj.build(rootNode)
|
||||||
|
# Enable Python to collect the space used by the DOM.
|
||||||
|
doc = None
|
||||||
|
sys.stdout.write('<?xml version="1.0" ?>\n')
|
||||||
|
rootObj.export(sys.stdout, 0, name_="doxygenindex",
|
||||||
|
namespacedef_='')
|
||||||
|
return rootObj
|
||||||
|
|
||||||
|
|
||||||
|
def parseLiteral(inFileName):
|
||||||
|
doc = minidom.parse(inFileName)
|
||||||
|
rootNode = doc.documentElement
|
||||||
|
rootObj = DoxygenType.factory()
|
||||||
|
rootObj.build(rootNode)
|
||||||
|
# Enable Python to collect the space used by the DOM.
|
||||||
|
doc = None
|
||||||
|
sys.stdout.write('from index import *\n\n')
|
||||||
|
sys.stdout.write('rootObj = doxygenindex(\n')
|
||||||
|
rootObj.exportLiteral(sys.stdout, 0, name_="doxygenindex")
|
||||||
|
sys.stdout.write(')\n')
|
||||||
|
return rootObj
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
args = sys.argv[1:]
|
||||||
|
if len(args) == 1:
|
||||||
|
parse(args[0])
|
||||||
|
else:
|
||||||
|
usage()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
|
#import pdb
|
||||||
|
#pdb.run('main()')
|
||||||
|
|
16
docs/doxygen/doxyxml/run_tests.in
Normal file
16
docs/doxygen/doxyxml/run_tests.in
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# 1st parameter is absolute path to component source directory
|
||||||
|
# 2nd parameter is absolute path to component build directory
|
||||||
|
# 3rd parameter is path to Python QA directory
|
||||||
|
|
||||||
|
# Note: calling master run_tests.sh in gnuradio core is not strictly
|
||||||
|
# correct, as it will result in a partially bogus PYTHONPATH, but it
|
||||||
|
# does make the correct paths in the second half so all is well.
|
||||||
|
|
||||||
|
@PYTHON@ @srcdir@/__init__.py
|
||||||
|
|
||||||
|
# @top_builddir@/run_tests.sh \
|
||||||
|
# @abs_top_srcdir@/gnuradio-core \
|
||||||
|
# @abs_top_builddir@/gnuradio-core \
|
||||||
|
# @srcdir@
|
56
docs/doxygen/doxyxml/text.py
Normal file
56
docs/doxygen/doxyxml/text.py
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
#
|
||||||
|
# Copyright 2010 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is part of GNU Radio
|
||||||
|
#
|
||||||
|
# GNU Radio is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 3, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# GNU Radio is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with GNU Radio; see the file COPYING. If not, write to
|
||||||
|
# the Free Software Foundation, Inc., 51 Franklin Street,
|
||||||
|
# Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
"""
|
||||||
|
Utilities for extracting text from generated classes.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def is_string(txt):
|
||||||
|
if isinstance(txt, str):
|
||||||
|
return True
|
||||||
|
try:
|
||||||
|
if isinstance(txt, unicode):
|
||||||
|
return True
|
||||||
|
except NameError:
|
||||||
|
pass
|
||||||
|
return False
|
||||||
|
|
||||||
|
def description(obj):
|
||||||
|
if obj is None:
|
||||||
|
return None
|
||||||
|
return description_bit(obj).strip()
|
||||||
|
|
||||||
|
def description_bit(obj):
|
||||||
|
if hasattr(obj, 'content'):
|
||||||
|
contents = [description_bit(item) for item in obj.content]
|
||||||
|
result = ''.join(contents)
|
||||||
|
elif hasattr(obj, 'content_'):
|
||||||
|
contents = [description_bit(item) for item in obj.content_]
|
||||||
|
result = ''.join(contents)
|
||||||
|
elif hasattr(obj, 'value'):
|
||||||
|
result = description_bit(obj.value)
|
||||||
|
elif is_string(obj):
|
||||||
|
return obj
|
||||||
|
else:
|
||||||
|
raise StandardError('Expecting a string or something with content, content_ or value attribute')
|
||||||
|
# If this bit is a paragraph then add one some line breaks.
|
||||||
|
if hasattr(obj, 'name') and obj.name == 'para':
|
||||||
|
result += "\n\n"
|
||||||
|
return result
|
7
docs/doxygen/other/group_defs.dox
Normal file
7
docs/doxygen/other/group_defs.dox
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
/*!
|
||||||
|
* \defgroup block GNU Radio GR-AIR-MODES C++ Signal Processing Blocks
|
||||||
|
* \brief All C++ blocks that can be used from the GR-AIR-MODES GNU Radio
|
||||||
|
* module are listed here or in the subcategories below.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user