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