Newer
Older
dnl Process this file with autoconf to produce a configure script.
AC_INIT(d_arithmetic.c)
AC_SUBST(alsa, yes)
AC_SUBST(jack, no)
AC_SUBST(portaudio, no)
AC_SUBST(portmidi, no)
AC_SUBST(binarymode, -m755)
AC_SUBST(fftw, no)
AC_SUBST(PDLIB)
AC_SUBST(CPPFLAGS)
AC_SUBST(MORECFLAGS)
AC_SUBST(EXT)
AC_SUBST(USE_DEBUG_CFLAGS, no)
AC_SUBST(SYSSRC)
AC_SUBST(TCLTK_FRAMEWORKS_PATH)
AC_SUBST(TCLTK_FRAMEWORKS_PATH)
AC_SUBST(STRIPFLAG)
AC_SUBST(GUINAME)
AC_SUBST(GUIFLAGS)
AC_SUBST(OSNUMBER)
AC_SUBST(EXTERNTARGET)
AC_SUBST(ASIOSRC)
dnl other defaults
dnl check for features
AC_ARG_ENABLE(oss, [ --disable-oss OSS audio driver],
oss=$enableval)
AC_ARG_ENABLE(alsa, [ --enable-alsa ALSA audio driver],
AC_ARG_ENABLE(jack, [ --enable-jack Jack audio server],
AC_ARG_ENABLE(portaudio,[ --enable-portaudio PortAudio],
AC_ARG_ENABLE(portmidi, [ --enable-portmidi PortMidi],
portmidi=$enableval)
AC_ARG_ENABLE(debug, [ --enable-debug debugging support],
USE_DEBUG_CFLAGS=$enableval)
AC_ARG_ENABLE(static, [ --enable-static link statically],
static=$enableval)
AC_ARG_ENABLE(setuid, [ --enable-setuid install as setuid (linux)],
setuid=$enableval)
AC_ARG_ENABLE(fftw, [ --enable-fftw use FFTW package],
AC_ARG_ENABLE(fat, [ --disable-fat build fat binary on Mac OS X],
AC_ARG_ENABLE(tk, [ --disable-tk build without tcl/tk-GUI],
tk=$enableval)
Mathieu L Bouchard
committed
AC_ARG_ENABLE(qt, [ --enable-qt build with Qt (not implemented)],
qt=$enableval)
dnl Checks for programs.
AC_PROG_CC
AC_PROG_INSTALL
AC_PROG_MAKE_SET
AC_PROG_CPP
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_TYPE_PID_T
AC_TYPE_SIZE_T
AC_HEADER_TIME
dnl Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/ioctl.h sys/time.h unistd.h bstring.h io.h)
dnl Checks for library functions.
AC_PROG_GCC_TRADITIONAL
AC_TYPE_SIGNAL
AC_FUNC_VPRINTF
AC_CHECK_FUNCS(gettimeofday select socket strerror)
AC_FUNC_ALLOCA
dnl Checks for libraries.
dnl Checking for `dlopen' function in -ldl:
AC_CHECK_LIB(dl, dlopen,PDLIB="$PDLIB -ldl",
echo "dynamic link support required" || exit 1)
dnl Checking for `sin' function in -lffm:
dnl ffm is the fast math library on the alpha
AC_CHECK_LIB(ffm, sin,PDLIB="$PDLIB -lffm")
dnl Checking for `sin' function in -lm:
AC_CHECK_LIB(m, sin,PDLIB="$PDLIB -lm",
echo "math library required" || exit 1)
dnl Checking for `pthread_create' function in -pthread
AC_CHECK_LIB(pthread, pthread_create,PDLIB="$PDLIB -lpthread",
AC_CHECK_LIB(pthreadGC2, pthread_create, PDLIB="$PDLIB -lpthreadGC2",
AC_CHECK_LIB(pthreadGC1, pthread_create, PDLIB="$PDLIB -lpthreadGC1",
AC_CHECK_LIB(pthreadGC, pthread_create, PDLIB="$PDLIB -lpthreadGC",
echo "pthreads required"; exit 1))))
dnl Check for fftw package
AC_CHECK_LIB(fftw3f, fftwf_version,PDLIB="$PDLIB -lfftw3f",
echo "fftw3 package not found - using built-in FFT"; fftw=no)
fi
dnl look for tcl 8.x... do I really have to go through all this!?
foundit=no
then
AC_CHECK_HEADER(tcl.h,foundit=yes,)
fi
GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.7";foundit=yes,)
GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.6";foundit=yes,)
GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.5";foundit=yes,)
GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.4";foundit=yes,)
GUIFLAGS="$GUIFLAGS -I/usr/local/include/tcl8.4";foundit=yes,)
GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.3";foundit=yes,)
GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.2";foundit=yes,)
AC_CHECK_LIB(tcl8.4, main,,
AC_CHECK_LIB(tcl8.3, main,,
AC_CHECK_LIB(tcl8.2, main,,
AC_CHECK_LIB(tcl8.0, main,,
AC_CHECK_LIB(tk8.4, main,,
AC_CHECK_LIB(tk8.3, main,,
AC_CHECK_LIB(tk8.2, main,,
AC_CHECK_LIB(tk8.0, main,,
if test x$tk != "xno"; then
GUISRC="t_main.c t_tkcmd.c"
else
GUISRC=
fi
if test `uname -s` = Linux -o `uname -s` = "GNU/kFreeBSD" -o `uname -s` = "GNU";
then
dnl Ckecking for ALSA
echo .................... alsa= $alsa
dnl This should be fixed so Pd can use ALSA shared libraries where appropriate.
if test x$alsa = xyes; then
AC_CHECK_LIB(asound,snd_pcm_info,PDLIB="$PDLIB -lasound" ; alsa="yes",alsa="no")
AC_CHECK_LIB(jack,jack_set_xrun_callback,PDLIB="$PDLIB -ljack";jack=xrun,jack=no)
AC_CHECK_LIB(jack,jack_set_error_function,PDLIB="$PDLIB -ljack";jack=yes,jack=no)
fi
LDFLAGS="-Wl,-export-dynamic"
if test "$static" = "yes"; then
LDFLAGS="$LDFLAGS -static"
fi
EXT=pd_linux
CPPFLAGS="-DHAVE_LIBDL -DPA_USE_OSS -DUNIX -DUNISTD -fno-strict-aliasing"
dnl No OSS on hurd
if test `uname -s` = "GNU";
then
SYSSRC="s_midi_dummy.c"
else
if test x$oss = "xyes"; then
SYSSRC="s_midi_oss.c s_audio_oss.c"
CPPFLAGS=$CPPFLAGS" -DPA_USE_OSS -DUSEAPI_OSS"
else
SYSSRC="s_midi_dummy.c"
fi
SYSSRC=$SYSSRC" s_audio_alsa.c s_audio_alsamm.c s_midi_alsa.c"
CPPFLAGS=$CPPFLAGS" -DPA_USE_ALSA -DUSEAPI_ALSA"
LDFLAGS=$LDFLAGS" -lasound"
CPPFLAGS=$CPPFLAGS" -DUSEAPI_PORTAUDIO -DHAVE_SYS_SOUNDCARD_H \
-Wno-error \
-I../portaudio/include -I../portaudio/src/common \
-I../portmidi/pm_common \
-I../portmidi/pm_linux"
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
SYSSRC="s_audio_pa.c \
s_audio_paring.c \
../portaudio/src/common/pa_allocation.c \
../portaudio/src/common/pa_converters.c \
../portaudio/src/common/pa_cpuload.c \
../portaudio/src/common/pa_dither.c \
../portaudio/src/common/pa_front.c \
../portaudio/src/common/pa_process.c \
../portaudio/src/common/pa_skeleton.c \
../portaudio/src/common/pa_stream.c \
../portaudio/src/common/pa_trace.c \
../portaudio/src/common/pa_debugprint.c \
../portaudio/src/common/pa_ringbuffer.c \
../portaudio/src/os/unix/pa_unix_hostapis.c \
../portaudio/src/os/unix/pa_unix_util.c \
../portaudio/src/hostapi/oss/pa_unix_oss.c "$SYSSRC
if test x$alsa = "xyes";
then
SYSSRC="../portaudio/src/hostapi/alsa/pa_linux_alsa.c "$SYSSRC
CPPFLAGS=$CPPFLAGS" -DPA_USE_ALSA"
fi
if test x$jack = "xyes";
then
SYSSRC="../portaudio/src/hostapi/jack/pa_jack.c "$SYSSRC
CPPFLAGS=$CPPFLAGS" -DPA_USE_JACK"
fi
MORECFLAGS=$MORECFLAGS" -O6 -funroll-loops -fomit-frame-pointer"
then
LDFLAGS=$LDFLAGS" -lrt -ljack"
fi
OSNUMBER=0
fi
then
LDFLAGS="-Wl -framework CoreAudio \
-framework AudioUnit -framework AudioToolbox \
-framework Carbon -framework CoreMIDI"
EXT=pd_darwin
CPPFLAGS="-DHAVE_LIBDL -DMACOSX -DHAVE_UNISTD_H -I/usr/X11R6/include \
-I../portaudio/include -I../portaudio/src/common \
-I../portaudio/src/os/mac_osx/ \
-I../portmidi/pm_common -I../portmidi/pm_mac \
-I../portmidi/porttime \
-DUSEAPI_PORTAUDIO -DPA19 -DPA_USE_COREAUDIO -DNEWBUFFER"
dnl for Mac OS X 10.3 (i.e. < 10.4)
fat="no"
fi
if test "x$fat" == "xyes";
then
MORECFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk \
-arch i386 -arch ppc -Wno-error"
else
MORECFLAGS="-DMACOSX3 -DPA_BIG_ENDIAN -Wno-error"
EXTERNTARGET=d_ppc
s_audio_paring.c \
../portaudio/src/common/pa_allocation.c \
../portaudio/src/common/pa_converters.c \
../portaudio/src/common/pa_cpuload.c \
../portaudio/src/common/pa_dither.c \
../portaudio/src/common/pa_front.c \
../portaudio/src/common/pa_process.c \
../portaudio/src/common/pa_skeleton.c \
../portaudio/src/common/pa_stream.c \
../portaudio/src/common/pa_trace.c \
../portaudio/src/common/pa_debugprint.c \
../portaudio/src/common/pa_ringbuffer.c \
../portaudio/src/os/unix/pa_unix_util.c \
../portaudio/src/os/mac_osx/pa_mac_hostapis.c \
../portaudio/src/hostapi/coreaudio/pa_mac_core.c \
../portaudio/src/hostapi/coreaudio/pa_mac_core_blocking.c \
../portaudio/src/hostapi/coreaudio/pa_mac_core_utilities.c \
../portmidi/pm_mac/pmmac.c \
../portmidi/pm_mac/pmmacosxcm.c \
../portmidi/pm_common/pmutil.c \
../portmidi/pm_common/portmidi.c \
../portmidi/porttime/ptmacosx_cf.c "
STRIPFLAG=""
GUINAME="libPdTcl.dylib"
# find the Tcl/Tk Frameworks
then
# Miller's location
TCLTK_FRAMEWORKS_PATH="../../Frameworks"
elif test -d "/Library/Frameworks";
then
# get it from the default install location
TCLTK_FRAMEWORKS_PATH="/Library/Frameworks"
else
# Panther has Tcl here; Tiger has Tcl and Tk here
TCLTK_FRAMEWORKS_PATH="/System/Library/Frameworks"
GUIFLAGS="-F$TCLTK_FRAMEWORKS_PATH -framework Tcl -framework Tk \
-I$TCLTK_FRAMEWORKS_PATH/Tk.framework/Versions/Current/Headers \
-I$TCLTK_FRAMEWORKS_PATH/Tcl.framework/Versions/Current/Headers \
-I$TCLTK_FRAMEWORKS_PATH/Tcl.framework/Versions/8.4/PrivateHeaders"
fi
fi
# only Windows uses ASIO, for the rest, set to blank
ASIOSRC=
then
EXT=dll
MORECFLAGS="-DUSEAPI_PORTAUDIO -DPA19 -DMSW -DPA_NO_DS -DPD_INTERNAL \
-I../portaudio/include -I../portaudio/src/common \
-mwindows -mms-bitfields "$MORECFLAGS
PDLIB=$PDLIB" -lwsock32 -lwinmm -lole32 -lstdc++"
../portaudio/src/common/pa_allocation.c \
../portaudio/src/common/pa_converters.c \
../portaudio/src/common/pa_cpuload.c \
../portaudio/src/common/pa_dither.c \
../portaudio/src/common/pa_front.c \
../portaudio/src/common/pa_process.c \
../portaudio/src/common/pa_skeleton.c \
../portaudio/src/common/pa_stream.c \
../portaudio/src/common/pa_trace.c \
../portaudio/src/common/pa_debugprint.c \
../portaudio/src/common/pa_ringbuffer.c \
../portaudio/src/os/win/pa_win_util.c \
../portaudio/src/os/win/pa_win_hostapis.c \
../portaudio/src/os/win/pa_x86_plain_converters.c \
../portaudio/src/hostapi/wmme/pa_win_wmme.c"
ASIOSRC="../portaudio/src/hostapi/asio/iasiothiscallresolver.cpp \
../portaudio/src/hostapi/pa_asio/asio.cpp ../asio/asio.cpp \
../asio/asiodrivers.cpp ../asio/asiolist.cpp"
STRIPFLAG="--strip-unneeded"
GUINAME="pdtcl.dll"
GUIFLAGS=
fi
# support for jack, on either linux or darwin:
then
MORECFLAGS=$MORECFLAGS" -DUSEAPI_JACK"
SYSSRC=$SYSSRC" s_audio_jack.c"
fi
then
MORECFLAGS=$MORECFLAGS" -DUSEAPI_JACK -DJACK_XRUN"
SYSSRC=$SYSSRC" s_audio_jack.c"
fi
then
SYSSRC=$SYSSRC" d_fft_fftw.c d_fftroutine.c"
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
else
SYSSRC=$SYSSRC" d_fft_mayer.c d_fftroutine.c"
fi
## JMZ{
## this does not do very much, but i guess it is a good idea to use it...
AC_SYS_LARGEFILE
## test, whether we can use _LARGEFILE64_SOURCE to
## enable large-file reading via "open64" (and lseek64");
if test "x$enable_largefile" != "xno"; then
## the following should run on autoconf>2.54 (which pd is not using)
dnl AC_LINK_IFELSE ( [AC_LANG_PROGRAM([[
dnl #define _LARGEFILE64_SOURCE
dnl #include <sys/types.h>
dnl #include <sys/stat.h>
dnl #include <fcntl.h>
dnl ]],[[ open64(0,0); ]])],
dnl [ MORECFLAGS=$MORECFLAGS" -D_LARGEFILE64_SOURCE" ], )
## and this is for autoconf<2.50
AC_TRY_LINK( [
#define _LARGEFILE64_SOURCE
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
],[ open64(0,0); ],
[ MORECFLAGS=$MORECFLAGS" -D_LARGEFILE64_SOURCE" ], )
fi
## }JMZ: end of large-file support section
Mathieu L Bouchard
committed
if test x$qt != "xno"; then
dnl Some kind of AC_CHECK_HEADER should go here.
dnl Some kind of AC_CHECK_LIB should go here.
CPPFLAGS=$CPPFLAGS" -DQTGUI"
fi
else mkdir ../obj
fi
if test -d ../bin
else mkdir ../bin
fi
AST_EXT_LIB_CHECK([SINF], [m], [sinf])
AST_EXT_LIB_CHECK([COSF], [m], [cosf])
AST_EXT_LIB_CHECK([ATANF], [m], [atanf])
AST_EXT_LIB_CHECK([ATAN2F], [m], [atan2f])
AST_EXT_LIB_CHECK([SQRTF], [m], [sqrtf])
AST_EXT_LIB_CHECK([LOGF], [m], [logf])
AST_EXT_LIB_CHECK([EXPF], [m], [expf])
AST_EXT_LIB_CHECK([FABSF], [m], [fabsf])
AST_EXT_LIB_CHECK([POWF], [m], [powf])