annotate configure.ac @ 128:110afbaa8aaa

- minor SWIG fix - renamed configure.in to configure.ac - increment fix number
author Jamie Bullock <jamie@postlude.co.uk>
date Fri, 30 Mar 2012 13:26:41 +0000
parents
children 1b970b36d946
rev   line source
jamie@128 1 AC_PREREQ(2.13)
jamie@128 2 # Increment for major API changes, release status changes
jamie@128 3 m4_define(libxtract_major_version, 0)
jamie@128 4 # Increment for feature additions and enhancements
jamie@128 5 m4_define(libxtract_minor_version, 6)
jamie@128 6 # Increment for fixes
jamie@128 7 m4_define(libxtract_fix_version, 5)
jamie@128 8 # Development status
jamie@128 9 m4_define(libIntegra_dev_status, [beta])
jamie@128 10
jamie@128 11 m4_define(libxtract_version, libxtract_major_version.libxtract_minor_version.libxtract_fix_version)
jamie@128 12
jamie@128 13 PACKAGE=libxtract
jamie@128 14
jamie@128 15 AC_INIT([libxtract], [libxtract_version], [libxtract-devel@lists.sourceforge.net])
jamie@128 16 AC_DEFINE(LIBXTRACT_VERSION, libxtract_version, [LibXtract Version])
jamie@128 17 dnl AM_INIT_AUTOMAKE($PACKAGE, $LIBXTRACT_VERSION)
jamie@128 18 AM_INIT_AUTOMAKE(1.6)
jamie@128 19 AM_CONFIG_HEADER(config.h)
jamie@128 20 AC_CONFIG_MACRO_DIR([m4])
jamie@128 21 AC_PROG_CC
jamie@128 22 AC_PROG_LIBTOOL
jamie@128 23 AC_PROG_INSTALL
jamie@128 24 AC_C_BIGENDIAN
jamie@128 25 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
jamie@128 26 AC_ENABLE_STATIC(no)
jamie@128 27 AC_ENABLE_SHARED(yes)
jamie@128 28 AC_PROG_LIBTOOL
jamie@128 29 AC_CHECK_HEADERS([math.h, stdlib.h, stdio.h])
jamie@128 30 AC_CHECK_PROG([DOXYGEN], [doxygen], [doc], [])
jamie@128 31 AC_SUBST(DOXYGEN)
jamie@128 32
jamie@128 33 AC_ARG_ENABLE(fft,
jamie@128 34 [ --enable-fft Turn fft-based fft processing on],
jamie@128 35 [case "${enableval}" in
jamie@128 36 yes) fft=true ;;
jamie@128 37 no) fft=false ;;
jamie@128 38 *) AC_MSG_ERROR(bad value ${enableval} for --enable-fft) ;;
jamie@128 39 esac],[fft=false])
jamie@128 40
jamie@128 41 AC_ARG_ENABLE(pd_example,
jamie@128 42 [ --enable-pd_example Compile the Pure Data external example],
jamie@128 43 [case "${enableval}" in
jamie@128 44 yes) pd_example=true ;;
jamie@128 45 no) pd_example=false ;;
jamie@128 46 *) AC_MSG_ERROR(bad value ${enableval} for --enable-pd_external) ;;
jamie@128 47 esac],[pd_example=false])
jamie@128 48
jamie@128 49 AC_ARG_ENABLE(simpletest,
jamie@128 50 [ --enable-simpletest Compile the 'simpletest' example],
jamie@128 51 [case "${enableval}" in
jamie@128 52 yes) simpletest=true ;;
jamie@128 53 no) simpletest=false ;;
jamie@128 54 *) AC_MSG_ERROR(bad value ${enableval} for --enable-simpletest) ;;
jamie@128 55 esac],[simpletest=false])
jamie@128 56
jamie@128 57 # libtool version: current:revision:age
jamie@128 58 #
jamie@128 59 # If the library source code has changed at all since the last update, then
jamie@128 60 # increment revision (`c:r:a' becomes `c:r+1:a').
jamie@128 61 #
jamie@128 62 # If any interfaces have been added, removed, or changed since the last update,
jamie@128 63 # increment current, and set revision to 0.
jamie@128 64 #
jamie@128 65 # If any interfaces have been added since the last public release, then
jamie@128 66 # increment age.
jamie@128 67 #
jamie@128 68 # If any interfaces have been removed since the last public release, then set
jamie@128 69 # age to 0.
jamie@128 70 XTRACT_SO_VERSION=0:0:0
jamie@128 71
jamie@128 72 CFLAGS="$CFLAGS -pedantic -ansi -fno-strict-aliasing -Wall -std=c99 -I/usr/local/include"
jamie@128 73 LDFLAGS="$LDFLAGS -lm"
jamie@128 74
jamie@128 75 AC_ARG_WITH(pd_dir,
jamie@128 76 [ --with-pd-dir=path pd header path (default=/usr/local/include) ],
jamie@128 77 [
jamie@128 78 CFLAGS="$CFLAGS -I$withval"
jamie@128 79 echo
jamie@128 80 echo "pd dir is $withval"
jamie@128 81 echo
jamie@128 82 ])
jamie@128 83
jamie@128 84 AC_ARG_WITH(fftw3_dir,
jamie@128 85 [ --with-fftw3-dir=path fftw3 header path (default=/usr/local/include) ],
jamie@128 86 [
jamie@128 87 CFLAGS="$CFLAGS -I$withval"
jamie@128 88 echo
jamie@128 89 echo "fftw3 dir is $withval"
jamie@128 90 echo
jamie@128 91 ])
jamie@128 92
jamie@128 93 dnl Set FFT optimisation level
jamie@128 94 AC_ARG_WITH(fft_optimisation,
jamie@128 95 [ --with-fft_optimisation=level set fft optimistaion level (default=1)],
jamie@128 96 [
jamie@128 97 FFT_OPTIMISATION="$withval"
jamie@128 98 echo
jamie@128 99 echo "fft optimisation level is $withval"
jamie@128 100 echo
jamie@128 101 ])
jamie@128 102
jamie@128 103 dnl set a specific java compiler
jamie@128 104 AC_ARG_WITH(javac,
jamie@128 105 [ --with-javac=compiler set a specific java compiler (determined automatically if not set) ],
jamie@128 106 [JAVAC="$withval"
jamie@128 107 echo
jamie@128 108 echo "JAVAC is set to $withval"
jamie@128 109 echo
jamie@128 110 ])
jamie@128 111
jamie@128 112 dnl If --enable-swig, make with java bindings
jamie@128 113 AC_ARG_WITH(java,
jamie@128 114 [ --with-java If --enable-swig - make with java bindings (default=no) ],
jamie@128 115 [with_java=true])
jamie@128 116
jamie@128 117 AM_CONDITIONAL(BUILD_JAVA, test "x${with_java}" = 'xtrue')
jamie@128 118
jamie@128 119 dnl If --enable-swig, make with java bindings
jamie@128 120 AC_ARG_WITH(python,
jamie@128 121 [ --with-python If --enable-swig - make with python bindings (default=no) ], [with_python=true])
jamie@128 122
jamie@128 123 AM_CONDITIONAL(BUILD_PYTHON, test "x${with_python}" = 'xtrue')
jamie@128 124
jamie@128 125
jamie@128 126 dnl are we building the simpletest example
jamie@128 127 if [[ "$simpletest" = "true" ]] ; then
jamie@128 128 AC_DEFINE([BUILD_SIMPLETEST], [1], [Build the simpletest example])
jamie@128 129 fi
jamie@128 130
jamie@128 131 AM_CONDITIONAL(BUILD_SIMPLETEST, test "x${simpletest}" = 'xtrue')
jamie@128 132
jamie@128 133 dnl Are we building the PD examples?
jamie@128 134 if [[ "$pd_example" = "true" ]] ; then
jamie@128 135 PD_SOURCES="xtract~.c"
jamie@128 136 AC_DEFINE([BUILD_PD_EXAMPLE], [1], [Build the pd example])
jamie@128 137 AC_CHECK_HEADER(m_pd.h, [have_pd_hdr=yes ], [
jamie@128 138 have_pd_hdr=no
jamie@128 139 echo
jamie@128 140 echo "no m_pd.h header found. try with option --with-pd-dir=/path/to/pd/src"
jamie@128 141 echo
jamie@128 142 exit
jamie@128 143 ])
jamie@128 144 fi
jamie@128 145
jamie@128 146 AM_CONDITIONAL(BUILD_PD_EXAMPLE, test "x${pd_example}" = 'xtrue')
jamie@128 147
jamie@128 148
jamie@128 149 dnl Enable debugging (no)
jamie@128 150 AC_ARG_ENABLE(debug,
jamie@128 151 [ --enable-debug[[=value]] compile with debug [[default=no]]],
jamie@128 152 with_debug="yes",
jamie@128 153 with_debug="no")
jamie@128 154 if test "$with_debug" = "yes"
jamie@128 155 then
jamie@128 156 AC_DEFINE(DEBUG,1,[Define to enable debug])
jamie@128 157 CFLAGS="$CFLAGS -O0 -ggdb -g -Werror"
jamie@128 158 fi
jamie@128 159
jamie@128 160 AC_ARG_ENABLE(swig,
jamie@128 161 [ --enable-swig Generate swig bindings],
jamie@128 162 [case "${enableval}" in
jamie@128 163 yes) swig=true ;;
jamie@128 164 no) swig=false ;;
jamie@128 165 *) AC_MSG_ERROR(bad value ${enableval} for --enable-swig) ;;
jamie@128 166 esac],[swig=false])
jamie@128 167
jamie@128 168
jamie@128 169
jamie@128 170 if [[ "$with_java" = "true" ]] ; then
jamie@128 171 if test "$JAVAC" = ""
jamie@128 172 then
jamie@128 173 AC_PROG_JAVAC
jamie@128 174 fi
jamie@128 175 if test "$JAVAC" = "javac"
jamie@128 176 then
jamie@128 177 AC_JNI_INCLUDE_DIR
jamie@128 178
jamie@128 179 for JNI_INCLUDE_DIR in $JNI_INCLUDE_DIRS
jamie@128 180 do
jamie@128 181 CFLAGS="$CFLAGS -I$JNI_INCLUDE_DIR"
jamie@128 182 done
jamie@128 183 fi
jamie@128 184 dnl AC_PROG_JAVAH
jamie@128 185 dnl AC_PATH_PROG(JAVAH,javah)
jamie@128 186 fi
jamie@128 187
jamie@128 188 if [[ "$with_python" = "true" ]] ; then
jamie@128 189 AM_PATH_PYTHON
jamie@128 190 SWIG_PYTHON
jamie@128 191 fi
jamie@128 192
jamie@128 193
jamie@128 194 AM_CONDITIONAL(BUILD_SWIG, test "x${swig}" = 'xtrue')
jamie@128 195
jamie@128 196 dnl SWIG stuff
jamie@128 197 if [[ "$swig" = "true" ]] ; then
jamie@128 198 AX_PKG_SWIG(1.3.21)
jamie@128 199 AC_DEFINE([BUILD_SWIG], [1], [Build the swig bindings])
jamie@128 200 fi
jamie@128 201
jamie@128 202 dnl Are we building with fftw?
jamie@128 203 if [[ "$fft" = "true" ]] ; then
jamie@128 204 LDFLAGS="$LDFLAGS -lfftw3f"
jamie@128 205 AC_DEFINE([BUILD_FFT], [1], [Build the fft functions])
jamie@128 206 if test "$FFT_OPTIMISATION" = ""
jamie@128 207 then
jamie@128 208 AC_DEFINE([XTRACT_FFT_OPTIMISATION_LEVEL], [1], [fft optimisation 1])
jamie@128 209 else
jamie@128 210 # AC_SUBST(OPTIMISATION_LEVEL, "$FFT_OPTIMISATION")
jamie@128 211 AC_DEFINE_UNQUOTED(XTRACT_FFT_OPTIMISATION_LEVEL, ${FFT_OPTIMISATION})
jamie@128 212 fi
jamie@128 213 AC_CHECK_HEADER(fftw3.h, [have_fftw3_hdr=yes ], [
jamie@128 214 have_pd_hdr=no
jamie@128 215 echo
jamie@128 216 echo "no fftw3.h header found. try with option --with-fftw3-dir=/path/to/fftw3/header"
jamie@128 217 echo
jamie@128 218 exit
jamie@128 219 ])
jamie@128 220 fi
jamie@128 221
jamie@128 222 AM_CONDITIONAL(BUILD_FFT, test "x${fft}" = 'xtrue')
jamie@128 223
jamie@128 224 dnl Check for architecture endian-ness
jamie@128 225 #AC_C_BIGENDIAN(bigendian=true, bigendian=false, bigendian=undefined)
jamie@128 226 #if [[ "$is_bigendian" = "false" ]] ; then
jamie@128 227 # AC_DEFINE([WORDS_BIGENDIAN], [0], [Architecture is big endian])
jamie@128 228 #else
jamie@128 229 # AC_DEFINE([WORDS_BIGENDIAN], [1], [Architecture is not big endian])
jamie@128 230 #fi
jamie@128 231
jamie@128 232
jamie@128 233 dnl ------------------------------------------
jamie@128 234 dnl ---- do some magic to gues the host opsys
jamie@128 235 dnl ---- taken from libvorbis configure.in
jamie@128 236 dnl ------------------------------------------
jamie@128 237 dnl AC_CANONICAL_HOST
jamie@128 238
jamie@128 239 dnl AC_SUBST(PD_CFLAGS,"$PD_CFLAGS -DUNIX -Wall -Wimplicit -Wunused -Wmissing-prototypes -O1")
jamie@128 240 dnl AC_SUBST(PD_LDFLAGS,"$PD_LDFLAGS -shared")
jamie@128 241 dnl pd_ldflags="$PD_LDFLAGS -L/usr/local/lib -ldl"
jamie@128 242 if test -z "$GCC"; then
jamie@128 243 case $host in
jamie@128 244 *-*-irix*)
jamie@128 245 dnl If we're on IRIX, we wanna use cc even if gcc
jamie@128 246 dnl is there (unless the user has overriden us)...
jamie@128 247 if test -z "$CC"; then
jamie@128 248 CC=cc
jamie@128 249 fi
jamie@128 250 ;;
jamie@128 251 sparc-sun-solaris*)
jamie@128 252 PD_CFLAGS="-xO4 -fast -w -fsimple -native -xcg92"
jamie@128 253 ;;
jamie@128 254 *)
jamie@128 255 PD_CFLAGS="-O"
jamie@128 256 ;;
jamie@128 257 esac
jamie@128 258 else
jamie@128 259
jamie@128 260 case $host in
jamie@128 261 *86-*-linux*)
jamie@128 262 PD_CFLAGS="$PD_CFLAGS -DUNIX -Wall -Wimplicit -Wunused"
jamie@128 263 PD_LDFLAGS="$PD_LDFLAGS -shared"
jamie@128 264 dnl we could test for bad glibc here, but don't
jamie@128 265 PD_SUFFIX=pd_linux
jamie@128 266 ;;
jamie@128 267 powerpc-*-linux*)
jamie@128 268 PD_CFLAGS="$PD_CFLAGS -DUNIX -Wall -Wimplicit -Wunused -Wmissing-prototypes"
jamie@128 269 PD_LDFLAGS="$PD_LDFLAGS -shared"
jamie@128 270 PD_SUFFIX=pd_linux
jamie@128 271 ;;
jamie@128 272 *-*-linux*)
jamie@128 273 PD_CFLAGS="$PD_CFLAGS -DUNIX -Wall -Wimplicit -Wunused -Wmissing-prototypes -fPIC"
jamie@128 274 PD_LDFLAGS="$PD_LDFLAGS -shared -export_dynamic"
jamie@128 275 PD_SUFFIX=pd_linux
jamie@128 276 ;;
jamie@128 277 sparc-sun-*)
jamie@128 278 echo "YOU HAVE A SPARC STATION, not setting any flags, not supported yet"
jamie@128 279 ;;
jamie@128 280 *86-*-darwin*)
jamie@128 281 PD_CFLAGS="$PD_CFLAGS -DUNIX -Wall -Wimplicit -Wunused -Wmissing-prototypes"
jamie@128 282 PD_LDFLAGS="$PD_LDFLAGS -dynamiclib -mmacosx-version-min=10.3 -undefined dynamic_lookup -single_module"
jamie@128 283 PD_SUFFIX=pd_darwin
jamie@128 284 ;;
jamie@128 285 *-*-darwin*)
jamie@128 286 PD_CFLAGS="$PD_CFLAGS -DUNIX -Wall -Wimplicit -Wunused -Wmissing-prototypes"
jamie@128 287 PD_LDFLAGS="$PD_LDFLAGS -bundle -arch ppc -undefined suppress -flat_namespace"
jamie@128 288 PD_SUFFIX=pd_darwin
jamie@128 289 ;;
jamie@128 290
jamie@128 291 *)
jamie@128 292 dnl assume unix
jamie@128 293 PD_CFLAGS="$PD_CFLAGS -DUNIX -Wall -Wimplicit -Wunused -Wmissing-prototypes -O1"
jamie@128 294 PD_LDFLAGS="$PD_LDFLAGS -shared"
jamie@128 295 PD_SUFFIX=pd_linux
jamie@128 296 ;;
jamie@128 297 esac
jamie@128 298 fi
jamie@128 299
jamie@128 300 PD_CFLAGS="$PD_CFLAGS -DPD"
jamie@128 301
jamie@128 302 AC_SUBST(PD_CFLAGS)
jamie@128 303 AC_SUBST(PD_LDFLAGS)
jamie@128 304 AC_SUBST(PD_SUFFIX)
jamie@128 305 AC_SUBST(PD_SOURCES)
jamie@128 306
jamie@128 307 AC_CONFIG_FILES([doc/documentation.doxygen
jamie@128 308 libxtract.pc])
jamie@128 309
jamie@128 310 dnl There must be a better way to do this...
jamie@128 311 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)
jamie@128 312
jamie@128 313 echo
jamie@128 314 echo "**************************************************************"
jamie@128 315 echo
jamie@128 316 echo "Summary:"
jamie@128 317 echo
jamie@128 318 dnl echo you are using the ${host} architecture
jamie@128 319
jamie@128 320 if test "$fft" = "true"; then
jamie@128 321 echo "fft: yes (using fftw3f)"
jamie@128 322 else
jamie@128 323 echo "fft: no (not using fftw3, no fft functions)"
jamie@128 324 fi
jamie@128 325 if test "$simpletest" = "true"; then
jamie@128 326 echo "simpletest example: yes"
jamie@128 327 else
jamie@128 328 echo "simpletest example: no"
jamie@128 329 fi
jamie@128 330 if test "$pd_example" = "true"; then
jamie@128 331 echo "PD external: yes"
jamie@128 332 echo
jamie@128 333 echo "The PD help files will be installed in:"
jamie@128 334 echo ${prefix}"/lib/doc/5.reference/xtract/"
jamie@128 335 echo "You must make sure that this is in your PD help path"
jamie@128 336 else
jamie@128 337 echo "PD external: no"
jamie@128 338 fi
jamie@128 339 if test "$swig" == "true"; then
jamie@128 340 echo "SWIG bindings: yes"
jamie@128 341 else
jamie@128 342 echo "SWIG bindings: no"
jamie@128 343 fi
jamie@128 344 if test "$with_java" == "true"; then
jamie@128 345 echo "with JAVA module: yes"
jamie@128 346 else
jamie@128 347 echo "with JAVA module: no"
jamie@128 348 fi
jamie@128 349 echo
jamie@128 350 echo "**************************************************************"
jamie@128 351 echo
jamie@128 352 echo Configuration completed successfully. Type \'make\' to build ${PACKAGE}
jamie@128 353 echo
jamie@128 354
jamie@128 355