aboutsummaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac355
1 files changed, 355 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..d868ed8
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,355 @@
+AC_PREREQ(2.13)
+# Increment for major API changes, release status changes
+m4_define(libxtract_major_version, 0)
+# Increment for feature additions and enhancements
+m4_define(libxtract_minor_version, 6)
+# Increment for fixes
+m4_define(libxtract_fix_version, 5)
+# Development status
+m4_define(libIntegra_dev_status, [beta])
+
+m4_define(libxtract_version, libxtract_major_version.libxtract_minor_version.libxtract_fix_version)
+
+PACKAGE=libxtract
+
+AC_INIT([libxtract], [libxtract_version], [libxtract-devel@lists.sourceforge.net])
+AC_DEFINE(LIBXTRACT_VERSION, libxtract_version, [LibXtract Version])
+dnl AM_INIT_AUTOMAKE($PACKAGE, $LIBXTRACT_VERSION)
+AM_INIT_AUTOMAKE(1.6)
+AM_CONFIG_HEADER(config.h)
+AC_CONFIG_MACRO_DIR([m4])
+AC_PROG_CC
+AC_PROG_LIBTOOL
+AC_PROG_INSTALL
+AC_C_BIGENDIAN
+AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
+AC_ENABLE_STATIC(no)
+AC_ENABLE_SHARED(yes)
+AC_PROG_LIBTOOL
+AC_CHECK_HEADERS([math.h, stdlib.h, stdio.h])
+AC_CHECK_PROG([DOXYGEN], [doxygen], [doc], [])
+AC_SUBST(DOXYGEN)
+
+AC_ARG_ENABLE(fft,
+ [ --enable-fft Turn fft-based fft processing on],
+ [case "${enableval}" in
+ yes) fft=true ;;
+ no) fft=false ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for --enable-fft) ;;
+ esac],[fft=false])
+
+AC_ARG_ENABLE(pd_example,
+ [ --enable-pd_example Compile the Pure Data external example],
+ [case "${enableval}" in
+ yes) pd_example=true ;;
+ no) pd_example=false ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for --enable-pd_external) ;;
+ esac],[pd_example=false])
+
+AC_ARG_ENABLE(simpletest,
+ [ --enable-simpletest Compile the 'simpletest' example],
+ [case "${enableval}" in
+ yes) simpletest=true ;;
+ no) simpletest=false ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for --enable-simpletest) ;;
+ esac],[simpletest=false])
+
+# libtool version: current:revision:age
+#
+# If the library source code has changed at all since the last update, then
+# increment revision (`c:r:a' becomes `c:r+1:a').
+#
+# If any interfaces have been added, removed, or changed since the last update,
+# increment current, and set revision to 0.
+#
+# If any interfaces have been added since the last public release, then
+# increment age.
+#
+# If any interfaces have been removed since the last public release, then set
+# age to 0.
+XTRACT_SO_VERSION=0:0:0
+
+CFLAGS="$CFLAGS -pedantic -ansi -fno-strict-aliasing -Wall -std=c99 -I/usr/local/include"
+LDFLAGS="$LDFLAGS -lm"
+
+AC_ARG_WITH(pd_dir,
+ [ --with-pd-dir=path pd header path (default=/usr/local/include) ],
+ [
+ CFLAGS="$CFLAGS -I$withval"
+ echo
+ echo "pd dir is $withval"
+ echo
+ ])
+
+AC_ARG_WITH(fftw3_dir,
+ [ --with-fftw3-dir=path fftw3 header path (default=/usr/local/include) ],
+ [
+ CFLAGS="$CFLAGS -I$withval"
+ echo
+ echo "fftw3 dir is $withval"
+ echo
+ ])
+
+dnl Set FFT optimisation level
+AC_ARG_WITH(fft_optimisation,
+ [ --with-fft_optimisation=level set fft optimistaion level (default=1)],
+ [
+ FFT_OPTIMISATION="$withval"
+ echo
+ echo "fft optimisation level is $withval"
+ echo
+ ])
+
+dnl set a specific java compiler
+AC_ARG_WITH(javac,
+ [ --with-javac=compiler set a specific java compiler (determined automatically if not set) ],
+ [JAVAC="$withval"
+ echo
+ echo "JAVAC is set to $withval"
+ echo
+ ])
+
+dnl If --enable-swig, make with java bindings
+AC_ARG_WITH(java,
+ [ --with-java If --enable-swig - make with java bindings (default=no) ],
+ [with_java=true])
+
+AM_CONDITIONAL(BUILD_JAVA, test "x${with_java}" = 'xtrue')
+
+dnl If --enable-swig, make with java bindings
+AC_ARG_WITH(python,
+ [ --with-python If --enable-swig - make with python bindings (default=no) ], [with_python=true])
+
+AM_CONDITIONAL(BUILD_PYTHON, test "x${with_python}" = 'xtrue')
+
+
+dnl are we building the simpletest example
+if [[ "$simpletest" = "true" ]] ; then
+ AC_DEFINE([BUILD_SIMPLETEST], [1], [Build the simpletest example])
+fi
+
+AM_CONDITIONAL(BUILD_SIMPLETEST, test "x${simpletest}" = 'xtrue')
+
+dnl Are we building the PD examples?
+if [[ "$pd_example" = "true" ]] ; then
+ PD_SOURCES="xtract~.c"
+ AC_DEFINE([BUILD_PD_EXAMPLE], [1], [Build the pd example])
+ AC_CHECK_HEADER(m_pd.h, [have_pd_hdr=yes ], [
+ have_pd_hdr=no
+ echo
+ echo "no m_pd.h header found. try with option --with-pd-dir=/path/to/pd/src"
+ echo
+ exit
+ ])
+fi
+
+AM_CONDITIONAL(BUILD_PD_EXAMPLE, test "x${pd_example}" = 'xtrue')
+
+
+dnl Enable debugging (no)
+AC_ARG_ENABLE(debug,
+ [ --enable-debug[[=value]] compile with debug [[default=no]]],
+ with_debug="yes",
+ with_debug="no")
+if test "$with_debug" = "yes"
+then
+ AC_DEFINE(DEBUG,1,[Define to enable debug])
+ CFLAGS="$CFLAGS -O0 -ggdb -g -Werror"
+fi
+
+AC_ARG_ENABLE(swig,
+ [ --enable-swig Generate swig bindings],
+ [case "${enableval}" in
+ yes) swig=true ;;
+ no) swig=false ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for --enable-swig) ;;
+ esac],[swig=false])
+
+
+
+if [[ "$with_java" = "true" ]] ; then
+ if test "$JAVAC" = ""
+ then
+ AC_PROG_JAVAC
+ fi
+ if test "$JAVAC" = "javac"
+ then
+ AC_JNI_INCLUDE_DIR
+
+ for JNI_INCLUDE_DIR in $JNI_INCLUDE_DIRS
+ do
+ CFLAGS="$CFLAGS -I$JNI_INCLUDE_DIR"
+ done
+ fi
+ dnl AC_PROG_JAVAH
+ dnl AC_PATH_PROG(JAVAH,javah)
+fi
+
+if [[ "$with_python" = "true" ]] ; then
+ AM_PATH_PYTHON
+ SWIG_PYTHON
+fi
+
+
+AM_CONDITIONAL(BUILD_SWIG, test "x${swig}" = 'xtrue')
+
+dnl SWIG stuff
+if [[ "$swig" = "true" ]] ; then
+ AX_PKG_SWIG(1.3.21)
+ AC_DEFINE([BUILD_SWIG], [1], [Build the swig bindings])
+fi
+
+dnl Are we building with fftw?
+if [[ "$fft" = "true" ]] ; then
+ LDFLAGS="$LDFLAGS -lfftw3f"
+ AC_DEFINE([BUILD_FFT], [1], [Build the fft functions])
+ if test "$FFT_OPTIMISATION" = ""
+ then
+ AC_DEFINE([XTRACT_FFT_OPTIMISATION_LEVEL], [1], [fft optimisation 1])
+ else
+ # AC_SUBST(OPTIMISATION_LEVEL, "$FFT_OPTIMISATION")
+ AC_DEFINE_UNQUOTED(XTRACT_FFT_OPTIMISATION_LEVEL, ${FFT_OPTIMISATION})
+ fi
+ AC_CHECK_HEADER(fftw3.h, [have_fftw3_hdr=yes ], [
+ have_pd_hdr=no
+ echo
+ echo "no fftw3.h header found. try with option --with-fftw3-dir=/path/to/fftw3/header"
+ echo
+ exit
+ ])
+fi
+
+AM_CONDITIONAL(BUILD_FFT, test "x${fft}" = 'xtrue')
+
+dnl Check for architecture endian-ness
+#AC_C_BIGENDIAN(bigendian=true, bigendian=false, bigendian=undefined)
+#if [[ "$is_bigendian" = "false" ]] ; then
+# AC_DEFINE([WORDS_BIGENDIAN], [0], [Architecture is big endian])
+#else
+# AC_DEFINE([WORDS_BIGENDIAN], [1], [Architecture is not big endian])
+#fi
+
+
+dnl ------------------------------------------
+dnl ---- do some magic to gues the host opsys
+dnl ---- taken from libvorbis configure.in
+dnl ------------------------------------------
+dnl AC_CANONICAL_HOST
+
+dnl AC_SUBST(PD_CFLAGS,"$PD_CFLAGS -DUNIX -Wall -Wimplicit -Wunused -Wmissing-prototypes -O1")
+dnl AC_SUBST(PD_LDFLAGS,"$PD_LDFLAGS -shared")
+dnl pd_ldflags="$PD_LDFLAGS -L/usr/local/lib -ldl"
+if test -z "$GCC"; then
+ case $host in
+ *-*-irix*)
+ dnl If we're on IRIX, we wanna use cc even if gcc
+ dnl is there (unless the user has overriden us)...
+ if test -z "$CC"; then
+ CC=cc
+ fi
+ ;;
+ sparc-sun-solaris*)
+ PD_CFLAGS="-xO4 -fast -w -fsimple -native -xcg92"
+ ;;
+ *)
+ PD_CFLAGS="-O"
+ ;;
+ esac
+else
+
+ case $host in
+ *86-*-linux*)
+ PD_CFLAGS="$PD_CFLAGS -DUNIX -Wall -Wimplicit -Wunused"
+ PD_LDFLAGS="$PD_LDFLAGS -shared"
+ dnl we could test for bad glibc here, but don't
+ PD_SUFFIX=pd_linux
+ ;;
+ powerpc-*-linux*)
+ PD_CFLAGS="$PD_CFLAGS -DUNIX -Wall -Wimplicit -Wunused -Wmissing-prototypes"
+ PD_LDFLAGS="$PD_LDFLAGS -shared"
+ PD_SUFFIX=pd_linux
+ ;;
+ *-*-linux*)
+ PD_CFLAGS="$PD_CFLAGS -DUNIX -Wall -Wimplicit -Wunused -Wmissing-prototypes -fPIC"
+ PD_LDFLAGS="$PD_LDFLAGS -shared -export_dynamic"
+ PD_SUFFIX=pd_linux
+ ;;
+ sparc-sun-*)
+ echo "YOU HAVE A SPARC STATION, not setting any flags, not supported yet"
+ ;;
+ *86-*-darwin*)
+ PD_CFLAGS="$PD_CFLAGS -DUNIX -Wall -Wimplicit -Wunused -Wmissing-prototypes"
+ PD_LDFLAGS="$PD_LDFLAGS -dynamiclib -mmacosx-version-min=10.3 -undefined dynamic_lookup -single_module"
+ PD_SUFFIX=pd_darwin
+ ;;
+ *-*-darwin*)
+ PD_CFLAGS="$PD_CFLAGS -DUNIX -Wall -Wimplicit -Wunused -Wmissing-prototypes"
+ PD_LDFLAGS="$PD_LDFLAGS -bundle -arch ppc -undefined suppress -flat_namespace"
+ PD_SUFFIX=pd_darwin
+ ;;
+
+ *)
+ dnl assume unix
+ PD_CFLAGS="$PD_CFLAGS -DUNIX -Wall -Wimplicit -Wunused -Wmissing-prototypes -O1"
+ PD_LDFLAGS="$PD_LDFLAGS -shared"
+ PD_SUFFIX=pd_linux
+ ;;
+ esac
+fi
+
+PD_CFLAGS="$PD_CFLAGS -DPD"
+
+AC_SUBST(PD_CFLAGS)
+AC_SUBST(PD_LDFLAGS)
+AC_SUBST(PD_SUFFIX)
+AC_SUBST(PD_SOURCES)
+
+AC_CONFIG_FILES([doc/documentation.doxygen
+ libxtract.pc])
+
+dnl There must be a better way to do this...
+AC_OUTPUT(Makefile src/Makefile xtract/Makefile doc/Makefile examples/Makefile examples/puredata/Makefile examples/simpletest/Makefile swig/Makefile swig/python/Makefile swig/java/Makefile)
+
+echo
+echo "**************************************************************"
+echo
+echo "Summary:"
+echo
+dnl echo you are using the ${host} architecture
+
+if test "$fft" = "true"; then
+ echo "fft: yes (using fftw3f)"
+else
+ echo "fft: no (not using fftw3, no fft functions)"
+fi
+if test "$simpletest" = "true"; then
+ echo "simpletest example: yes"
+else
+ echo "simpletest example: no"
+fi
+if test "$pd_example" = "true"; then
+ echo "PD external: yes"
+ echo
+ echo "The PD help files will be installed in:"
+ echo ${prefix}"/lib/doc/5.reference/xtract/"
+ echo "You must make sure that this is in your PD help path"
+else
+ echo "PD external: no"
+fi
+if test "$swig" == "true"; then
+ echo "SWIG bindings: yes"
+else
+ echo "SWIG bindings: no"
+fi
+if test "$with_java" == "true"; then
+ echo "with JAVA module: yes"
+else
+ echo "with JAVA module: no"
+fi
+echo
+echo "**************************************************************"
+echo
+echo Configuration completed successfully. Type \'make\' to build ${PACKAGE}
+echo
+
+