Chris@39: # Chris@39: # PortAudioCpp V19 autoconf input file Chris@39: # Shamelessly ripped from the PortAudio one by Dominic Mazzoni Chris@39: # Ludwig Schwardt Chris@39: # Chris@39: Chris@39: # Require autoconf >= 2.13 Chris@39: AC_PREREQ(2.13) Chris@39: Chris@39: AC_INIT([PortAudioCpp], [12]) Chris@39: AC_CONFIG_SRCDIR([../../include/portaudiocpp/PortAudioCpp.hxx]) Chris@39: Chris@39: ###### Top-level directory of pacpp Chris@39: ###### This makes it easy to shuffle the build directories Chris@39: ###### Also edit AC_CONFIG_SRCDIR above (wouldn't accept this variable)! Chris@39: PACPP_ROOT="../.." Chris@39: Chris@39: ###### Chris@39: ###### SET THIS TO PORTAUDIO DIRECTORY Chris@39: ###### Chris@39: PORTAUDIO="$PACPP_ROOT/../portaudio" Chris@39: Chris@39: # Various other variables and flags Chris@39: Chris@39: PACPP_INC="$PACPP_ROOT/include" Chris@39: INCLUDES="-I$PACPP_INC -I$PORTAUDIO -I$PORTAUDIO/pa_common" Chris@39: CFLAGS="-g -O2 -Wall -ansi -pedantic $INCLUDES" Chris@39: CXXFLAGS="$CFLAGS" Chris@39: PALIBDIR="$PORTAUDIO/lib" Chris@39: Chris@39: # Checks for programs Chris@39: Chris@39: AC_PROG_CC Chris@39: AC_PROG_CXX Chris@39: AC_PROG_LN_S Chris@39: AC_PROG_RANLIB Chris@39: AC_PROG_INSTALL Chris@39: AC_PATH_PROG(AR, ar, no) Chris@39: if [[ $AR = "no" ]] ; then Chris@39: AC_MSG_ERROR("Could not find ar - needed to create a library"); Chris@39: fi Chris@39: Chris@39: # This must be one of the first tests we do or it will fail... Chris@39: AC_C_BIGENDIAN Chris@39: Chris@39: # Transfer these variables to the Makefile Chris@39: AC_SUBST(PACPP_ROOT) Chris@39: AC_SUBST(PORTAUDIO) Chris@39: AC_SUBST(PADLL) Chris@39: AC_SUBST(PACPP_DLL) Chris@39: AC_SUBST(PACPP_INC) Chris@39: AC_SUBST(SHARED_FLAGS) Chris@39: AC_SUBST(DLL_LIBS) Chris@39: AC_SUBST(CXXFLAGS) Chris@39: Chris@39: ##################### CHECK FOR INSTALLED PACKAGES ############################ Chris@39: Chris@39: # checks for various host APIs and arguments to configure that Chris@39: # turn them on or off Chris@39: Chris@39: AC_CHECK_LIB(asound, snd_pcm_open, have_alsa=yes, have_alsa=no) Chris@39: Chris@39: # Determine the host description for the subsequent test. Chris@39: # PKG_CHECK_MODULES seems to check and set the host variable also, but Chris@39: # that then requires pkg-config availability which is not standard on Chris@39: # MinGW systems and can be a pain to install. Chris@39: AC_CANONICAL_HOST Chris@39: Chris@39: PKG_CHECK_MODULES(JACK, jack, have_jack=yes, have_jack=no) Chris@39: Chris@39: AC_ARG_WITH(alsa, Chris@39: [ --with-alsa (default=auto)], Chris@39: with_alsa=$withval, with_alsa="yes") Chris@39: Chris@39: AC_ARG_WITH(jack, Chris@39: [ --with-jack (default=auto)], Chris@39: with_jack=$withval, with_jack="yes") Chris@39: Chris@39: AC_ARG_WITH(oss, Chris@39: [ --with-oss (default=yes)], Chris@39: with_oss=$withval, with_oss="yes") Chris@39: Chris@39: AC_ARG_WITH(host_os, Chris@39: [ --with-host_os (no default)], Chris@39: host_os=$withval) Chris@39: Chris@39: AC_ARG_WITH(winapi, Chris@39: [ --with-winapi ((wmme/directx/asio) default=wmme)], Chris@39: with_winapi=$withval, with_winapi="wmme") Chris@39: Chris@39: # Mac API added for ASIO, can have other api's listed Chris@39: AC_ARG_WITH(macapi, Chris@39: [ --with-macapi (asio) default=asio)], Chris@39: with_macapi=$withval, with_macapi="asio") Chris@39: Chris@39: AC_ARG_WITH(asiodir, Chris@39: [ --with-asiodir (default=/usr/local/asiosdk2)], Chris@39: with_asiodir=$withval, with_asiodir="/usr/local/asiosdk2") Chris@39: Chris@39: AC_ARG_WITH(dxdir, Chris@39: [ --with-dxdir (default=/usr/local/dx7sdk)], Chris@39: with_dxdir=$withval, with_dxdir="/usr/local/dx7sdk") Chris@39: Chris@39: Chris@39: ##################### HOST-SPECIFIC LIBRARY SETTINGS ########################## Chris@39: Chris@39: case "${host_os}" in Chris@39: darwin* ) Chris@39: # Mac OS X configuration Chris@39: Chris@39: LIBS="-framework AudioUnit -framework AudioToolbox -framework CoreAudio"; Chris@39: PADLL="libportaudio.dylib"; Chris@39: PACPP_DLL="libportaudiocpp.dylib"; Chris@39: SHARED_FLAGS="-framework AudioUnit -framework AudioToolbox"; Chris@39: SHARED_FLAGS="$SHARED_FLAGS -framework CoreAudio -dynamiclib"; Chris@39: if [[ $with_macapi = "asio" ]] ; then Chris@39: if [[ $with_asiodir ]] ; then Chris@39: ASIODIR="$with_asiodir"; Chris@39: else Chris@39: ASIODIR="/usr/local/asiosdk2"; Chris@39: fi Chris@39: echo "ASIODIR: $ASIODIR"; Chris@39: fi Chris@39: ;; Chris@39: Chris@39: mingw* ) Chris@39: # MingW configuration Chris@39: Chris@39: echo "WINAPI: $with_winapi" Chris@39: if [[ $with_winapi = "directx" ]] ; then Chris@39: if [[ $with_dxdir ]] ; then Chris@39: DXDIR="$with_dxdir"; Chris@39: else Chris@39: DXDIR="/usr/local/dx7sdk"; Chris@39: fi Chris@39: echo "DXDIR: $DXDIR" Chris@39: LIBS="-L$PALIBDIR -lportaudio" Chris@39: LIBS="$LIBS -lwinmm -lm -ldsound -lole32"; Chris@39: PADLL="portaudio.dll"; Chris@39: PACPP_DLL="portaudiocpp.dll"; Chris@39: SHARED_FLAGS="-shared -mthreads"; Chris@39: DLL_LIBS="-lwinmm -lm -L./dx7sdk/lib -ldsound -lole32"; Chris@39: CFLAGS="$CFLAGS -DPA_NO_WMME -DPA_NO_ASIO"; Chris@39: CXXFLAGS="$CFLAGS" Chris@39: elif [[ $with_winapi = "asio" ]] ; then Chris@39: if [[ $with_asiodir ]] ; then Chris@39: ASIODIR="$with_asiodir"; Chris@39: else Chris@39: ASIODIR="/usr/local/asiosdk2"; Chris@39: fi Chris@39: echo "ASIODIR: $ASIODIR" Chris@39: Chris@39: LIBS="-L$PALIBDIR -lportaudio" Chris@39: LIBS="$LIBS -lwinmm -lm -lstdc++ -lole32 -luuid"; Chris@39: PADLL="portaudio.dll"; Chris@39: PACPP_DLL="portaudiocpp.dll"; Chris@39: SHARED_FLAGS="-shared -mthreads"; Chris@39: DLL_LIBS="-lwinmm -lm -lstdc++ -lole32 -luuid"; Chris@39: CFLAGS="$CFLAGS -ffast-math -fomit-frame-pointer -DPA_NO_WMME -DPA_NO_DS -DWINDOWS"; Chris@39: CXXFLAGS="$CFLAGS"; Chris@39: else # WMME default Chris@39: LIBS="-L$PALIBDIR -lportaudio" Chris@39: LIBS="$LIBS -lwinmm -lm -lstdc++ -lole32 -luuid"; Chris@39: PADLL="portaudio.dll"; Chris@39: PACPP_DLL="portaudiocpp.dll"; Chris@39: SHARED_FLAGS="-shared -mthreads"; Chris@39: DLL_LIBS="-lwinmm"; Chris@39: CFLAGS="$CFLAGS -DPA_NO_DS -DPA_NO_ASIO"; Chris@39: CXXFLAGS="$CFLAGS"; Chris@39: fi Chris@39: ;; Chris@39: Chris@39: cygwin* ) Chris@39: # Cygwin configuration Chris@39: Chris@39: LIBS="-L$PALIBDIR -lportaudio" Chris@39: LIBS="$LIBS -lwinmm -lm"; Chris@39: PADLL="portaudio.dll"; Chris@39: PACPP_DLL="portaudiocpp.dll"; Chris@39: SHARED_FLAGS="-shared -mthreads"; Chris@39: DLL_LIBS="-lwinmm"; Chris@39: ;; Chris@39: Chris@39: *) Chris@39: # Unix OSS configuration Chris@39: Chris@39: AC_CHECK_LIB(pthread, pthread_create, Chris@39: , Chris@39: AC_MSG_ERROR([libpthread not found!])) Chris@39: Chris@39: LIBS="$LIBS -L$PALIBDIR -lportaudio" Chris@39: Chris@39: if [[ $have_jack = "yes" ] && [ $with_jack != "no" ]] ; then Chris@39: LIBS="$LIBS $JACK_LIBS" Chris@39: CFLAGS="$CFLAGS $JACK_CFLAGS" Chris@39: AC_DEFINE(PA_USE_JACK) Chris@39: fi Chris@39: Chris@39: if [[ $have_alsa = "yes" ] && [ $with_alsa != "no" ]] ; then Chris@39: LIBS="$LIBS -lasound" Chris@39: AC_DEFINE(PA_USE_ALSA) Chris@39: fi Chris@39: Chris@39: if [[ $with_oss != "no" ]] ; then Chris@39: AC_DEFINE(PA_USE_OSS) Chris@39: fi Chris@39: LIBS="$LIBS -lm -lpthread"; Chris@39: PADLL="libportaudio.so"; Chris@39: PACPP_DLL="libportaudiocpp.so"; Chris@39: SHARED_FLAGS="-shared"; Chris@39: esac Chris@39: Chris@39: AC_CONFIG_FILES([Makefile]) Chris@39: AC_OUTPUT