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, 4) # Increment for fixes m4_define(libxtract_fix_version, 7) m4_define(libxtract_version, libxtract_major_version.libxtract_minor_version.libxtract_fix_version) PACKAGE=libxtract AC_INIT(libxtract, libxtract_version, bugs@postlude.co.uk) AC_DEFINE(LIBXTRACT_VERSION, libxtract_version, [LibXtract Version]) AM_INIT_AUTOMAKE($PACKAGE, $LIBXTRACT_VERSION) AM_CONFIG_HEADER(config.h) AC_PROG_CC AC_PROG_LIBTOOL AC_PROG_INSTALL 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 -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 Are we building with fftw? if [[ "$fft" = "true" ]] ; then LDFLAGS="$LDFLAGS -lfftw3f" AC_DEFINE([BUILD_FFT], [1], [Build the fft functions]) 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 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" 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 -export_dynamic" 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]) AC_OUTPUT(Makefile src/Makefile xtract/Makefile doc/Makefile examples/Makefile examples/puredata/Makefile examples/simpletest/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 echo echo "**************************************************************" echo echo Configuration completed successfully. Type \'make\' to build ${PACKAGE} echo