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