view configure.in @ 22:bc44e56e6c81

Improved xtract_f0
author Jamie Bullock <jamie@postlude.co.uk>
date Tue, 17 Oct 2006 08:04:36 +0000
parents c4cc9094932a
children 5754315fe169
line wrap: on
line source
AC_PREREQ(2.13)
LIBXTRACT_MAJOR_VERSION=0
LIBXTRACT_MINOR_VERSION=11
PACKAGE=libxtract
VERSION=${LIBXTRACT_MAJOR_VERSION}.${LIBXTRACT_MINOR_VERSION}

AC_INIT([libxtract], [0.11], [bugs@postlude.co.uk])
AM_INIT_AUTOMAKE($PACKAGE, $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_ARG_WITH(fftw, AC_HELP_STRING([--with-vector], [build vector features]),
#            [ if test $withval = "yes"; then with_vector=yes ;
#                           else with_vector=no ; fi ], with_vector=no)

AC_CHECK_HEADERS([math.h, stdlib.h, stdio.h])
AC_CHECK_PROG([DOXYGEN], [doxygen], [doc], [])
AC_SUBST(DOXYGEN)

AC_ARG_ENABLE(vector, 
              [  --enable-vector    Turn fft-based vector processing on],
              [case "${enableval}" in
               yes) vector=true ;;
               no)  vector=false ;;
               *) AC_MSG_ERROR(bad value ${enableval} for --enable-vector) ;;
           esac],[vector=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])

# 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 -O3"
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 [[ "$with_vector" = "yes" ]] ; then
if [[ "$vector" = "true" ]] ; then
    LDFLAGS="$LDFLAGS -lfftw3f"
    AC_DEFINE([BUILD_VECTOR], [1], [Build the vector 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_VECTOR, test "x${vector}" = '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="-O0 -ggdb -g -pedantic -ansi"
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 -Wmissing-prototypes"
        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 -bundle -arch i686 -undefined suppress -flat_namespace"
        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)

echo
echo "**************************************************************"
echo "Summary:"

echo you are using the ${host} architecture 

if test "$vector" = "true"; then
  echo "Fftw3:                   yes (using fftw3f)"
else
  echo "Fftw3:                   no (not using fftw3, the vector functions will not work)"
fi
if test "$pd_example" = "true"; then
  echo "PD external:              yes"
else
  echo "PD external:              no"
fi
echo "**************************************************************"
echo Configuration completed successfully. Type \'make\' to build ${PACKAGE}