From 21c068f1916330e90f814bed461fe0821d1665ec Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Sun, 9 Oct 2011 16:36:37 +0000 Subject: checked in pd-0.43-0.src.tar.gz svn path=/trunk/; revision=15557 --- pd/configure.ac | 272 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 272 insertions(+) create mode 100644 pd/configure.ac (limited to 'pd/configure.ac') diff --git a/pd/configure.ac b/pd/configure.ac new file mode 100644 index 00000000..935151ff --- /dev/null +++ b/pd/configure.ac @@ -0,0 +1,272 @@ +AC_PREREQ(2.59) +AC_INIT(pd,0.43.0) +AC_CONFIG_SRCDIR(src/m_pd.c) +AC_CONFIG_AUX_DIR([m4/config]) +AM_INIT_AUTOMAKE +AC_CONFIG_MACRO_DIR([m4/generated]) + +AC_CANONICAL_HOST + +# you will need to install iPhone XCode on Mac OS X to use this: +PD_CHECK_IPHONE(IPHONEOS=yes, IPHONEOS=no, AC_MSG_ERROR([iPhoneOS SDK not available])) +PD_CHECK_ANDROID(ANDROID=yes, ANDROID=no , AC_MSG_ERROR([Android SDK not available])) + +case $host in +*darwin*) + if test "x${IPHONEOS}" = "xno"; then + portaudio=yes + portmidi=yes + MACOSX=yes + + EXTERNAL_CFLAGS="-fPIC" + EXTERNAL_EXTENSION=d_fat + else + portaudio=no + + EXTERNAL_CFLAGS= + EXTERNAL_EXTENSION=pd_darwin + fi + + CFLAGS="$CFLAGS -O3 -funroll-loops -fomit-frame-pointer" + INCLUDES="$INCLUDES -I/sw/include" + LDFLAGS="$LDFLAGS -L/sw/lib" + EXTERNAL_LDFLAGS="-bundle -undefined dynamic_lookup" + ;; +*linux*|GNU|GNU/kFreeBSD) +# GNU and GNU/kFreeBSD are for Debian, were they are treated very similar to linux + if test "x${host}" = "xGNU"; then + HURD=yes + fi + if test "x${ANDROID}" = "xno"; then + LINUX=yes + portaudio=yes + CFLAGS="$CFLAGS -O6 -funroll-loops -fomit-frame-pointer" + fi + EXTERNAL_CFLAGS="-fPIC" + EXTERNAL_LDFLAGS="-Wl,--export-dynamic -shared -fPIC" + EXTERNAL_EXTENSION=pd_linux + ;; +*mingw*) + WINDOWS=yes + MINGW=yes +# ASIO doesn't build yet with the autotools setup. We need to figure out how +# to make the final linking phase use g++ +# asio=yes + portaudio=yes + CFLAGS="$CFLAGS -O6 -funroll-loops -fomit-frame-pointer" +# ASIO is a C++ library, so if its included, then use g++ to build + CC=g++ + EXTERNAL_CFLAGS="-mms-bitfields" + EXTERNAL_LDFLAGS="-s -shared -Wl,--enable-auto-import -lpd" + EXTERNAL_EXTENSION=dll + ;; +*cygwin*) + WINDOWS=yes + CYGWIN=yes + portaudio=yes + CFLAGS="$CFLAGS -O6 -funroll-loops -fomit-frame-pointer" + EXTERNAL_CFLAGS= + EXTERNAL_LDFLAGS="-Wl,--export-dynamic -shared -lpd" + EXTERNAL_EXTENSION=dll + ;; +esac + +PD_CHECK_UNIVERSAL(ARCH, universal=yes, universal=no) +AM_CONDITIONAL(UNIVERSAL, test x$universal = xyes) +if test "x${universal}" = "xyes"; then + CFLAGS="${CFLAGS} ${ARCH_CFLAGS}" + LDFLAGS="${LDFLAGS} ${ARCH_LDFLAGS}" +fi + +AM_CONDITIONAL(ANDROID, test x$ANDROID = xyes) +AM_CONDITIONAL(IPHONEOS, test x$IPHONEOS = xyes) +AM_CONDITIONAL(LINUX, test x$LINUX = xyes) +AM_CONDITIONAL(HURD, test x$HURD = xyes) +AM_CONDITIONAL(MACOSX, test x$MACOSX = xyes) +AM_CONDITIONAL(WINDOWS, test x$WINDOWS = xyes) +AM_CONDITIONAL(CYGWIN, test x$MINGW = xyes) +AM_CONDITIONAL(MINGW, test x$MINGW = xyes) + +# Configure libtool +AC_LIBTOOL_DLOPEN +AC_LIBTOOL_WIN32_DLL +AC_PROG_LIBTOOL + +# Checks for programs. +AC_PROG_CC +AC_PROG_CXX +AC_PROG_INSTALL +AC_PROG_LIBTOOL +AC_PROG_MAKE_SET +AC_PROG_LN_S +#AC_PROG_GREP +#AC_PROG_SED + +AC_SUBST(EXTERNTARGET) +AC_SUBST(INCLUDES) + +AC_SUBST(EXTERNAL_EXTENSION) +AC_SUBST(EXTERNAL_CFLAGS) +AC_SUBST(EXTERNAL_LDFLAGS) + +dnl Checks for libraries. +AC_CHECK_LIB([dl], [dlopen]) +AC_CHECK_LIBM +# AC_CHECK_LIBM computes LIBM but does not add to LIBS, hence we add it in +# src/Makefile.am under pd_LDFLAGS as well + +# Checking for `pthread_create' function in -pthread (MinGW uses unusual names) +## CHECK whether this can be replaced by AX_PTHREAD +AC_CHECK_LIB([pthread], [pthread_create],LIBS="-lpthread $LIBS", + AC_CHECK_LIB([pthreadGC2], [pthread_create], LIBS="-lpthreadGC2 $LIBS", + AC_CHECK_LIB([pthreadGC1], [pthread_create], LIBS="-lpthreadGC1 $LIBS", + AC_CHECK_LIB([pthreadGC], [pthread_create], LIBS="-lpthreadGC $LIBS", + AC_MSG_WARN([pthreads required]))))) + +AC_HEADER_STDC + +dnl Cygwin has sys/soundcard.h but Pd isn't ready for Cygwin since it only +dnl includes OSS for UNIX +AC_CHECK_HEADER(sys/soundcard.h, [oss=yes], [oss=no]) +AM_CONDITIONAL(OSS, test x$oss = xyes) + +AC_CHECK_HEADER(CoreAudio/CoreAudio.h, [coreaudio=yes], [coreaudio=no]) +dnl AC_CHECK_HEADER(Jackmp/jack.h, [jack=yes], [jack=no]) + +dnl portaudio/CoreAudio doesn't work with iPhone +test x$IPHONEOS = xyes && coreaudio=no + +AM_CONDITIONAL(COREAUDIO, test x$coreaudio = xyes) + +dnl TODO implement debug and static +#AC_ARG_ENABLE(static, [ --enable-static link statically], +# static=$enableval) + +#AC_ARG_ENABLE([debug], +# [AS_HELP_STRING([--enable-debug], [use debugging support])], +# [debug=$enableval]) +#if test x$debug = xyes; then +# CFLAGS="$CFLAGS -g" +#fi + +dnl ALSA +dnl shouldn't we use AM_PATH_ALSA from /usr/share/aclocal/alsa.m4 +dnl alternatively we could use pkg-config +AC_ARG_ENABLE([alsa], + [AS_HELP_STRING([--disable-alsa], + [do not use ALSA audio driver])], + [alsa=$enableval], [alsa=yes]) +AS_IF([test x$alsa = xyes], [ + AC_CHECK_LIB(asound,snd_pcm_info,LIBS="$LIBS -lasound",alsa=no)]) +AM_CONDITIONAL(ALSA, test x$alsa = xyes) + +dnl ASIO +AC_ARG_ENABLE([asio], + [AS_HELP_STRING([--enable-asio], + [use ASIO audio driver])], + [asio=$enableval]) +AS_IF([test x$asio = xyes], [ + AC_CHECK_FILE([asio/ASIOSDK2/common/asio.h],[asio=yes],[asio=no])]) +AM_CONDITIONAL(ASIO, test x$asio = xyes) + +dnl JACK +dnl shouldn't we use pkg-config? +dnl TODO support jack xrun +AC_ARG_ENABLE([jack], + [AS_HELP_STRING([--enable-jack], + [use JACK audio server])], + [jack=$enableval]) +dnl on Mac OS X, use the JackOSX.com Jackmp.framework not the jack lib. +dnl this is set in src/Makefile.am based on the JACK var +AS_IF([test x$MACOSX != xyes], [ + AS_IF([test x$jack = xyes], [ + AC_CHECK_LIB(rt,shm_open,LIBS="$LIBS -lrt") + AC_CHECK_LIB(jack,jack_set_xrun_callback,LIBS="$LIBS -ljack";jack=xrun) + AC_CHECK_LIB(jack,jack_set_error_function,LIBS="$LIBS -ljack";jack=yes, + jack=no)])]) +AM_CONDITIONAL(JACK, test x$jack = xyes) + +dnl portaudio +AC_ARG_ENABLE([portaudio], + [AS_HELP_STRING([--disable-portaudio], + [do not use portaudio])], + [portaudio=$enableval]) +AM_CONDITIONAL(PORTAUDIO, test x$portaudio = xyes) + +dnl portmidi +AC_ARG_ENABLE([portmidi], + [AS_HELP_STRING([--enable-portmidi], + [use portmidi])], + [portmidi=$enableval]) +AM_CONDITIONAL(PORTMIDI, test x$portmidi = xyes) +if test x$portmidi = xyes; then echo Using included portmidi; fi + +dnl fftw v2 +AC_ARG_ENABLE([fftw], + [AS_HELP_STRING([--enable-fftw], + [use FFTW package])], + [fftw=$enableval]) +if test x$fftw = xyes; then + AC_CHECK_LIB(fftw, fftw_one, [LIBS="$LIBS -lfftw"], + [AC_MSG_NOTICE([fftw package not found - using built-in FFT]); fftw=no]) +fi +AM_CONDITIONAL(FFTW, test x$fftw = xyes) + +# Checks for header files. +AC_FUNC_ALLOCA +AC_CHECK_HEADERS([fcntl.h limits.h malloc.h netdb.h netinet/in.h stddef.h stdlib.h string.h sys/ioctl.h sys/param.h sys/socket.h sys/soundcard.h sys/time.h sys/timeb.h unistd.h]) + +# Checks for typedefs, structures, and compiler characteristics. +AC_TYPE_INT16_T +AC_TYPE_INT32_T +AC_TYPE_OFF_T +AC_TYPE_PID_T +AC_TYPE_SIZE_T + +# Checks for library functions. +AC_FUNC_ERROR_AT_LINE +AC_FUNC_FORK +AC_FUNC_MALLOC +AC_FUNC_REALLOC +AC_TYPE_SIGNAL +AC_CHECK_FUNCS([dup2 floor getcwd gethostbyname gettimeofday memmove memset pow regcomp select socket sqrt strchr strerror strrchr strstr strtol]) + +# check for programs +AC_CHECK_PROG(HAVE_MSGFMT, [msgfmt], yes, no) +test x$HAVE_MSGFMT = xyes || AC_MSG_WARN([Install GNU gettext with msgfmt if you want localizations to be compiled!]) +AM_CONDITIONAL(MSGFMT, test x$HAVE_MSGFMT = xyes) + +# Specify what files are to be created. +AC_CONFIG_FILES([Makefile + asio/Makefile + man/Makefile + portaudio/Makefile + portmidi/Makefile + tcl/Makefile + po/Makefile + src/Makefile + extra/Makefile + extra/bonk~/GNUmakefile + extra/choice/GNUmakefile + extra/expr~/GNUmakefile + extra/fiddle~/GNUmakefile + extra/loop~/GNUmakefile + extra/lrshift~/GNUmakefile + extra/pd~/GNUmakefile + extra/pique/GNUmakefile + extra/sigmund~/GNUmakefile + extra/stdout/GNUmakefile + pd.pc + ]) + +AC_OUTPUT + +dnl output some messages at the end + +AS_IF([test x$windows = xyes], [ + AS_IF([test x$asio = xno], [ + AC_MSG_RESULT( +ASIO SDK not found! You need to download asiosdk2.2.zip from: + http://www.steinberg.net/en/company/3rd_party_developer.html)])]) + + -- cgit v1.2.1