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) AC_SUBST(PID) dnl other defaults dnl check for features AC_ARG_ENABLE(alsa, [ --enable-alsa alsa audio driver], alsa=$enableval) AC_ARG_ENABLE(jack, [ --enable-jack jack audio server], jack=$enableval) AC_ARG_ENABLE(portaudio,[ --enable-portaudio portaudio], portaudio=$enableval) 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], fftw=$enableval) AC_ARG_ENABLE(fat, [ --disable-fat build fat binary on Mac OS X], fat=$enableval, fat="yes") 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) 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 if test x$fftw == "xyes"; then AC_CHECK_LIB(fftw, fftw_one,PDLIB="$PDLIB -lfftw", echo "fftw 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 if test $foundit == "no"; then AC_CHECK_HEADER(tcl.h,foundit=yes,) fi if test $foundit == "no"; then AC_CHECK_HEADER(tcl8.7/tcl.h, GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.7";foundit=yes,) fi if test $foundit == "no"; then AC_CHECK_HEADER(tcl8.6/tcl.h, GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.6";foundit=yes,) fi if test $foundit == "no"; then AC_CHECK_HEADER(tcl8.5/tcl.h, GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.5";foundit=yes,) fi if test $foundit == "no"; then AC_CHECK_HEADER(tcl8.4/tcl.h, GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.4";foundit=yes,) fi if test $foundit == "no"; then AC_CHECK_HEADER(tcl8.4/tcl.h, GUIFLAGS="$GUIFLAGS -I/usr/local/include/tcl8.4";foundit=yes,) fi if test $foundit == "no"; then AC_CHECK_HEADER(tcl8.3/tcl.h, GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.3";foundit=yes,) fi if test $foundit == "no"; then AC_CHECK_HEADER(tcl8.2/tcl.h, GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.2";foundit=yes,) fi if test $foundit == "no"; then echo no tcl header found echo bolding trying without... # exit -1 fi AC_CHECK_LIB(tcl85, main,, AC_CHECK_LIB(tcl8.5, main,, AC_CHECK_LIB(tcl84, main,, AC_CHECK_LIB(tcl8.4, main,, AC_CHECK_LIB(tcl8.3, main,, AC_CHECK_LIB(tcl8.2, main,, AC_CHECK_LIB(tcl8.0, main,, echo no tcl library found; exit 1))))))) AC_CHECK_LIB(tk85, main,, AC_CHECK_LIB(tk8.5, main,, AC_CHECK_LIB(tk84, 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,, echo no tk library found; exit 1))))))) if test `uname -s` == Linux; 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") fi dnl Checking for JACK if test x$jack == xyes; then AC_CHECK_LIB(rt,shm_open,LIBS="$LIBS -lrt") AC_CHECK_LIB(jack,jack_set_xrun_callback,LIBS="$LIBS -ljack";jack=xrun,jack=no) AC_CHECK_LIB(jack,jack_set_error_function,LIBS="$LIBS -ljack";jack=yes,jack=no) fi LDFLAGS="-Wl,-export-dynamic" if test "$static" = "yes"; then LDFLAGS="$LDFLAGS -static" fi EXT=pd_linux CPPFLAGS="-DDL_OPEN -DPA_USE_OSS -DUNIX -DUNISTD\ -DUSEAPI_OSS \ -I../portaudio/pa_common -I../portaudio/pablio \ -I../portmidi/pm_common \ -I../portmidi/pm_linux \ -fno-strict-aliasing" SYSSRC="s_midi_oss.c s_audio_oss.c" if test x$alsa == "xyes"; then SYSSRC=$SYSSRC" s_audio_alsa.c s_audio_alsamm.c s_midi_alsa.c" CPPFLAGS=$CPPFLAGS" -DPA_USE_ALSA -DUSEAPI_ALSA" LDFLAGS=$LDFLAGS" -lasound" fi if test x$portaudio == "xyes"; then CPPFLAGS=$CPPFLAGS" -DUSEAPI_PORTAUDIO -DPA19" SYSSRC="s_audio_pa.c \ s_audio_pablio.c \ s_audio_paring.c \ ../portaudio/pa_common/pa_allocation.c \ ../portaudio/pa_common/pa_converters.c \ ../portaudio/pa_common/pa_cpuload.c \ ../portaudio/pa_common/pa_dither.c \ ../portaudio/pa_common/pa_front.c \ ../portaudio/pa_common/pa_process.c \ ../portaudio/pa_common/pa_skeleton.c \ ../portaudio/pa_common/pa_stream.c \ ../portaudio/pa_common/pa_trace.c \ ../portaudio/pa_unix/pa_unix_hostapis.c \ ../portaudio/pa_unix/pa_unix_util.c \ ../portaudio/pa_unix_oss/pa_unix_oss.c "$SYSSRC if test x$alsa == "xyes"; then SYSSRC=$SYSSRC" ../portaudio/pa_linux_alsa/pa_linux_alsa.c" CPPFLAGS=$CPPFLAGS" -Wno-error" fi fi if test x$setuid == "xyes"; then binarymode="-m4755" fi STRIPFLAG=-s GUINAME="pd-gui" PID="pd-watchdog" if test x$USE_DEBUG_CFLAGS == "xyes"; then MORECFLAGS=$MORECFLAGS" -g" else MORECFLAGS=$MORECFLAGS" -O6 -funroll-loops -fomit-frame-pointer" fi if test x$jack == "xyes"; then LDFLAGS=$LDFLAGS" -lrt -ljack" fi if test x$jack == "xrun"; then LDFLAGS=$LDFLAGS" -lrt -ljack" fi echo MORECFLAGS --------------- $MORECFLAGS OSNUMBER=0 fi if test `uname -s` == Darwin; then LDFLAGS="-Wl -framework CoreAudio \ -framework AudioUnit -framework AudioToolbox \ -framework Carbon -framework CoreMIDI" EXT=pd_darwin CPPFLAGS="-DDL_OPEN -DMACOSX -DUNISTD -I/usr/X11R6/include \ -I../portaudio/pa_common -I../portaudio/pablio \ -I../portmidi/pm_common -I../portmidi/pm_mac \ -I../portmidi/porttime \ -DUSEAPI_PORTAUDIO -DPA19 -DPA_USE_COREAUDIO" dnl for Mac OS X 10.3 (i.e. < 10.4) if test `uname -r` = 7.9.0; then fat="no" fi if test "x$fat" == "xyes"; then MORECFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk \ -arch i386 -arch ppc -Wno-error" EXTERNTARGET=d_fat LDFLAGS=$LDFLAGS" -arch i386 -arch ppc" else MORECFLAGS="-DMACOSX3 -Wno-error" EXTERNTARGET=d_ppc fi SYSSRC="s_midi_pm.c s_audio_pa.c \ s_audio_pablio.c \ s_audio_paring.c \ ../portaudio/pa_common/pa_allocation.c \ ../portaudio/pa_common/pa_converters.c \ ../portaudio/pa_common/pa_cpuload.c \ ../portaudio/pa_common/pa_dither.c \ ../portaudio/pa_common/pa_front.c \ ../portaudio/pa_common/pa_process.c \ ../portaudio/pa_common/pa_skeleton.c \ ../portaudio/pa_common/pa_stream.c \ ../portaudio/pa_common/pa_trace.c \ ../portaudio/pa_unix/pa_unix_util.c \ ../portaudio/pa_mac_core/pa_mac_core.c \ ../portaudio/pa_mac/pa_mac_hostapis.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" PID="pd-watchdog" # find the Tcl/Tk Frameworks if test -d "../../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" fi 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" if test x$USE_DEBUG_CFLAGS == "xyes"; then MORECFLAGS=$MORECFLAGS" -g" else MORECFLAGS=$MORECFLAGS" -O2" fi OSNUMBER=2 if test x$jack == "xyes"; then LDFLAGS=$LDFLAGS" -weak_framework Jack" fi if test x$jack == "xrun"; then LDFLAGS=$LDFLAGS" -weak_framework Jack" fi fi # only Windows uses ASIO, for the rest, set to blank ASIOSRC= EXT= if test `uname -s` == MINGW32_NT-5.0; then EXT=dll MORECFLAGS="-DUSEAPI_PORTAUDIO -DPA19 -DMSW -DPA_NO_DS -DPD_INTERNAL \ -I../portaudio/pa_common -I../portaudio/pablio \ -mwindows -mms-bitfields "$MORECFLAGS PDLIB=$PDLIB" -lwsock32 -lwinmm -lole32 -lstdc++" SYSSRC="s_audio_pa.c s_audio_pablio.c s_audio_paring.c \ s_audio_mmio.c s_midi_mmio.c \ ../portaudio/pa_common/pa_allocation.c \ ../portaudio/pa_common/pa_converters.c \ ../portaudio/pa_common/pa_cpuload.c \ ../portaudio/pa_common/pa_dither.c \ ../portaudio/pa_common/pa_front.c \ ../portaudio/pa_common/pa_process.c \ ../portaudio/pa_common/pa_skeleton.c \ ../portaudio/pa_common/pa_stream.c \ ../portaudio/pa_common/pa_trace.c \ ../portaudio/pa_win/pa_win_util.c \ ../portaudio/pa_win/pa_win_hostapis.c \ ../portaudio/pa_win_wmme/pa_win_wmme.c" ASIOSRC="../portaudio/pa_asio/iasiothiscallresolver.cpp \ ../portaudio/pa_asio/pa_asio.cpp ../asio/asio.cpp \ ../asio/asiodrivers.cpp ../asio/asiolist.cpp" STRIPFLAG="--strip-unneeded" GUINAME="pdtcl.dll" GUIFLAGS= fi if test `uname -s` == CYGWIN_NT-5.1 || \ test `uname -s` == CYGWIN_NT-5.0 || \ test `uname -s` == CYGWIN_NT-6.0 ; then EXT=".exe" MORECFLAGS="-mno-cygwin -DPD -DNT -DUSEAPI_PORTAUDIO -DUSEAPI_MMIO -DPA_LITTLE_ENDIAN -DMSW -DPA19 -DPD_INTERNAL \ -I/cygdrive/c/Mingw/include -L/cygdrive/c/Mingw/lib \ -I../portaudio/pa_common -I../portaudio/pablio \ -I../portaudio/pa_asio -I../asio \ -mms-bitfields "$MORECFLAGS PDLIB=$PDLIB" -lwsock32 -lwinmm -lole32 -ltcl84 -ltk84 -lstdc++" SYSSRC="s_audio_pa.c s_audio_pablio.c s_audio_paring.c \ s_audio_mmio.c s_midi_mmio.c \ ../portaudio/pa_common/pa_allocation.c \ ../portaudio/pa_common/pa_converters.c \ ../portaudio/pa_common/pa_cpuload.c \ ../portaudio/pa_common/pa_dither.c \ ../portaudio/pa_common/pa_front.c \ ../portaudio/pa_common/pa_process.c \ ../portaudio/pa_common/pa_skeleton.c \ ../portaudio/pa_common/pa_stream.c \ ../portaudio/pa_common/pa_trace.c \ ../portaudio/pa_win/pa_win_util.c \ ../portaudio/pa_win/pa_win_hostapis.c \ ../portaudio/pa_win_wmme/pa_win_wmme.c \ ../portaudio/pa_win_ds/pa_win_ds.c \ ../portaudio/pa_win_ds/dsound_wrapper.c" ASIOSRC="../portaudio/pa_asio/iasiothiscallresolver.cpp \ ../portaudio/pa_asio/pa_asio.cpp ../asio/asio.cpp \ ../asio/asiodrivers.cpp ../asio/asiolist.cpp" STRIPFLAG="--strip-unneeded" GUINAME="pdtcl.dll" PID="pd.com" GUIFLAGS= fi # support for jack, on either linux or darwin: if test x$jack == "xyes"; then MORECFLAGS=$MORECFLAGS" -DUSEAPI_JACK" SYSSRC=$SYSSRC" s_audio_jack.c" fi if test x$jack == "xrun"; then MORECFLAGS=$MORECFLAGS" -DUSEAPI_JACK -DJACK_XRUN" SYSSRC=$SYSSRC" s_audio_jack.c" fi if test x$fftw == "xyes"; then SYSSRC=$SYSSRC" d_fft_fftw.c d_fftroutine.c" LDFLAGS=$LDFLAGS" -lfftw" else SYSSRC=$SYSSRC" d_fft_mayer.c d_fftroutine.c" fi # extra flags for alpha machines if test `uname -m | awk '{print $1}'` = alpha; then MORECFLAGS=$MORECFLAGS" -mieee -mcpu=ev56" fi # test for compaq compiler---not sure what this does or how to test it. if test x$CC == xccc; then MORECFLAGS=$MORECFLAGS" -g3 -D__COMPAQC__ -arch host" 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 dnl #include dnl #include dnl ]],[[ open64(0,0); ]])], dnl [ MORECFLAGS=$MORECFLAGS" -D_LARGEFILE64_SOURCE" ], ) ## and this is for autoconf<2.50 AC_TRY_LINK( [ #define _LARGEFILE64_SOURCE #include #include #include ],[ open64(0,0); ], [ MORECFLAGS=$MORECFLAGS" -D_LARGEFILE64_SOURCE" ], ) fi ## }JMZ: end of large-file support section AC_OUTPUT(makefile)