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