mirror of https://github.com/asterisk/asterisk
				
				
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							418 lines
						
					
					
						
							14 KiB
						
					
					
				
			
		
		
	
	
							418 lines
						
					
					
						
							14 KiB
						
					
					
				| dnl
 | |
| dnl portaudio V19 configure.in script
 | |
| dnl
 | |
| dnl Dominic Mazzoni, Arve Knudsen, Stelios Bounanos
 | |
| dnl
 | |
| 
 | |
| dnl Require autoconf >= 2.13
 | |
| AC_PREREQ(2.13)
 | |
| 
 | |
| dnl Init autoconf and make sure configure is being called
 | |
| dnl from the right directory
 | |
| AC_INIT([include/portaudio.h])
 | |
| 
 | |
| dnl Define build, build_cpu, build_vendor, build_os
 | |
| AC_CANONICAL_BUILD
 | |
| dnl Define host, host_cpu, host_vendor, host_os
 | |
| AC_CANONICAL_HOST
 | |
| dnl Define target, target_cpu, target_vendor, target_os
 | |
| AC_CANONICAL_TARGET
 | |
| 
 | |
| dnl Specify options
 | |
| 
 | |
| AC_ARG_WITH(alsa,
 | |
|             AS_HELP_STRING([--with-alsa], [Enable support for ALSA @<:@autodetect@:>@]),
 | |
|             [with_alsa=$withval])
 | |
| 
 | |
| AC_ARG_WITH(jack,
 | |
|             AS_HELP_STRING([--with-jack], [Enable support for JACK @<:@autodetect@:>@]),
 | |
|             [with_jack=$withval])
 | |
| 
 | |
| AC_ARG_WITH(oss,
 | |
|             AS_HELP_STRING([--with-oss], [Enable support for OSS @<:@autodetect@:>@]),
 | |
|             [with_oss=$withval])
 | |
| 
 | |
| AC_ARG_WITH(asihpi,
 | |
|             AS_HELP_STRING([--with-asihpi], [Enable support for ASIHPI @<:@autodetect@:>@]),
 | |
|             [with_asihpi=$withval])
 | |
| 
 | |
| AC_ARG_WITH(winapi,
 | |
|             AS_HELP_STRING([--with-winapi],
 | |
|                            [Select Windows API support (@<:@wmme|directx|asio|wdmks@:>@@<:@,...@:>@) @<:@wmme@:>@]),
 | |
|             [with_winapi=$withval], [with_winapi="wmme"])
 | |
| case "$target_os" in *mingw* | *cygwin*)
 | |
|      with_wmme=no
 | |
|      with_directx=no
 | |
|      with_asio=no
 | |
|      with_wdmks=no
 | |
|      for api in $(echo $with_winapi | sed 's/,/ /g'); do
 | |
|          case "$api" in
 | |
|              wmme|directx|asio|wdmks)
 | |
|                  eval with_$api=yes
 | |
|                  ;;
 | |
|              *)
 | |
|                  AC_MSG_ERROR([unknown Windows API \"$api\" (do you need --help?)])
 | |
|                  ;;
 | |
|          esac
 | |
|      done
 | |
|      ;;
 | |
| esac
 | |
| 
 | |
| AC_ARG_WITH(asiodir,
 | |
|             AS_HELP_STRING([--with-asiodir], [ASIO directory @<:@/usr/local/asiosdk2@:>@]),
 | |
|             with_asiodir=$withval, with_asiodir="/usr/local/asiosdk2")
 | |
| 
 | |
| AC_ARG_WITH(dxdir,
 | |
|             AS_HELP_STRING([--with-dxdir], [DirectX directory @<:@/usr/local/dx7sdk@:>@]),
 | |
|             with_dxdir=$withval, with_dxdir="/usr/local/dx7sdk")
 | |
| 
 | |
| debug_output=no
 | |
| AC_ARG_ENABLE(debug-output,
 | |
|               AS_HELP_STRING([--enable-debug-output], [Enable debug output @<:@no@:>@]),
 | |
|               [if test "x$enableval" != "xno" ; then
 | |
|                   AC_DEFINE(PA_ENABLE_DEBUG_OUTPUT,,[Enable debugging messages])
 | |
|                   debug_output=yes
 | |
|                fi
 | |
|               ])
 | |
| 
 | |
| AC_ARG_ENABLE(cxx,
 | |
|               AS_HELP_STRING([--enable-cxx], [Enable C++ bindings @<:@no@:>@]),
 | |
|               enable_cxx=$enableval, enable_cxx="no")
 | |
| 
 | |
| AC_ARG_ENABLE(mac-debug,
 | |
|               AS_HELP_STRING([--enable-mac-debug], [Enable Mac debug @<:@no@:>@]),
 | |
|               enable_mac_debug=$enableval, enable_mac_debug="no")
 | |
| 
 | |
| AC_ARG_ENABLE(mac-universal,
 | |
|               AS_HELP_STRING([--enable-mac-universal], [Build Mac universal binaries @<:@yes@:>@]),
 | |
|               enable_mac_universal=$enableval, enable_mac_universal="yes")
 | |
| 
 | |
| dnl Continue to accept --host_os for compatibility but do not document
 | |
| dnl it (the correct way to change host_os is with --host=...).  Moved
 | |
| dnl here because the empty help string generates a blank line which we
 | |
| dnl can use to separate PA options from libtool options.
 | |
| AC_ARG_WITH(host_os, [], host_os=$withval)
 | |
| 
 | |
| dnl Checks for programs.
 | |
| 
 | |
| AC_PROG_CC
 | |
| AC_LIBTOOL_WIN32_DLL
 | |
| AC_PROG_LIBTOOL
 | |
| AC_PROG_INSTALL
 | |
| AC_PROG_LN_S
 | |
| AC_PATH_PROG(AR, ar, no)
 | |
| if [[ $AR = "no" ]] ; then
 | |
|     AC_MSG_ERROR("Could not find ar - needed to create a library")
 | |
| fi
 | |
| 
 | |
| dnl This must be one of the first tests we do or it will fail...
 | |
| AC_C_BIGENDIAN
 | |
| 
 | |
| dnl checks for various host APIs and arguments to configure that
 | |
| dnl turn them on or off
 | |
| 
 | |
| have_alsa=no
 | |
| if test "x$with_alsa" != "xno"; then
 | |
|     AC_CHECK_LIB(asound, snd_pcm_open, have_alsa=yes, have_alsa=no)
 | |
| fi
 | |
| have_asihpi=no
 | |
| if test "x$with_asihpi" != "xno"; then
 | |
|     AC_CHECK_LIB(hpi, HPI_SubSysCreate, have_asihpi=yes, have_asihpi=no, -lm)
 | |
| fi
 | |
| have_libossaudio=no
 | |
| have_oss=no
 | |
| if test "x$with_oss" != "xno"; then
 | |
|     AC_CHECK_HEADERS([sys/soundcard.h linux/soundcard.h machine/soundcard.h], [have_oss=yes])
 | |
|     if test "x$have_oss" = "xyes"; then
 | |
|         AC_CHECK_LIB(ossaudio, _oss_ioctl, have_libossaudio=yes, have_libossaudio=no)
 | |
|     fi
 | |
| fi
 | |
| have_jack=no
 | |
| if test "x$with_jack" != "xno"; then
 | |
|     PKG_CHECK_MODULES(JACK, jack, have_jack=yes, have_jack=no)
 | |
| fi
 | |
| 
 | |
| 
 | |
| dnl sizeof checks: we will need a 16-bit and a 32-bit type
 | |
| 
 | |
| AC_CHECK_SIZEOF(short)
 | |
| AC_CHECK_SIZEOF(int)
 | |
| AC_CHECK_SIZEOF(long)
 | |
| 
 | |
| save_LIBS="${LIBS}"
 | |
| AC_CHECK_LIB(rt, clock_gettime, [rt_libs=" -lrt"])
 | |
| LIBS="${LIBS}${rt_libs}"
 | |
| DLL_LIBS="${DLL_LIBS}${rt_libs}"
 | |
| AC_CHECK_FUNCS([clock_gettime nanosleep])
 | |
| LIBS="${save_LIBS}"
 | |
| 
 | |
| dnl LT_RELEASE=19
 | |
| LT_CURRENT=2
 | |
| LT_REVISION=0
 | |
| LT_AGE=0
 | |
| 
 | |
| AC_SUBST(LT_CURRENT)
 | |
| AC_SUBST(LT_REVISION)
 | |
| AC_SUBST(LT_AGE)
 | |
| 
 | |
| dnl extra variables
 | |
| AC_SUBST(OTHER_OBJS)
 | |
| AC_SUBST(PADLL)
 | |
| AC_SUBST(SHARED_FLAGS)
 | |
| AC_SUBST(THREAD_CFLAGS)
 | |
| AC_SUBST(DLL_LIBS)
 | |
| AC_SUBST(CXXFLAGS)
 | |
| AC_SUBST(NASM)
 | |
| AC_SUBST(NASMOPT)
 | |
| 
 | |
| dnl -g is optional on darwin
 | |
| if ( echo "${host_os}" | grep ^darwin >> /dev/null ) &&
 | |
|       [[ "$enable_mac_universal" = "yes" ] &&
 | |
|        [ "$enable_mac_debug" != "yes" ]] ; then
 | |
|    CFLAGS="-O2 -Wall -pedantic -pipe -fPIC -DNDEBUG"
 | |
| else
 | |
|    CFLAGS=${CFLAGS:-"-g -O2 -Wall -pedantic -pipe -fPIC"}
 | |
| fi
 | |
| 
 | |
| if [[ $ac_cv_c_bigendian = "yes" ]] ; then
 | |
|    CFLAGS="$CFLAGS -DPA_BIG_ENDIAN"
 | |
| else
 | |
|    CFLAGS="$CFLAGS -DPA_LITTLE_ENDIAN"
 | |
| fi
 | |
| 
 | |
| add_objects()
 | |
| {
 | |
|     for o in $@; do
 | |
|         test "${OTHER_OBJS#*${o}*}" = "${OTHER_OBJS}" && OTHER_OBJS="$OTHER_OBJS $o"
 | |
|     done
 | |
| }
 | |
| 
 | |
| case "${host_os}" in
 | |
|   darwin* )
 | |
|         dnl Mac OS X configuration
 | |
| 
 | |
|         AC_DEFINE(PA_USE_COREAUDIO)
 | |
| 
 | |
|         CFLAGS="$CFLAGS -Werror"
 | |
|         LIBS="-framework CoreAudio -framework AudioToolbox -framework AudioUnit -framework Carbon"
 | |
| 
 | |
|         if test "x$enable_mac_universal" = "xyes" ; then
 | |
|            mac_version_min="-mmacosx-version-min=10.3"
 | |
|            if [[ -d /Developer/SDKs/MacOSX10.5.sdk ]] ; then
 | |
|               mac_arches="-arch i386 -arch ppc -arch x86_64 -arch ppc64"
 | |
|               mac_sysroot="-isysroot /Developer/SDKs/MacOSX10.5.sdk"
 | |
|            else
 | |
|               mac_arches="-arch i386 -arch ppc"
 | |
|               mac_sysroot="-isysroot /Developer/SDKs/MacOSX10.4u.sdk"
 | |
|            fi
 | |
|         else
 | |
|            mac_arches=""
 | |
|            mac_sysroot=""
 | |
|            mac_version=""
 | |
|         fi
 | |
|         SHARED_FLAGS="$LIBS -dynamiclib $mac_arches $mac_sysroot $mac_version_min"
 | |
|         CFLAGS="-std=c99 $CFLAGS $mac_arches $mac_sysroot $mac_version_min"
 | |
|         OTHER_OBJS="src/os/unix/pa_unix_hostapis.o src/os/unix/pa_unix_util.o src/hostapi/coreaudio/pa_mac_core.o src/hostapi/coreaudio/pa_mac_core_utilities.o src/hostapi/coreaudio/pa_mac_core_blocking.o src/common/pa_ringbuffer.o"
 | |
|         PADLL="libportaudio.dylib"
 | |
|         ;;
 | |
| 
 | |
|   mingw* )
 | |
|         dnl MingW configuration
 | |
| 
 | |
|         PADLL="portaudio.dll"
 | |
|         THREAD_CFLAGS="-mthreads"
 | |
|         SHARED_FLAGS="-shared"
 | |
|         CFLAGS="$CFLAGS -I\$(top_srcdir)/include -DPA_NO_WMME -DPA_NO_ASIO -DPA_NO_WDMKS -DPA_NO_DS"
 | |
| 
 | |
|         if [[ "x$with_directx" = "xyes" ]]; then
 | |
|             DXDIR="$with_dxdir"
 | |
|             add_objects src/hostapi/dsound/pa_win_ds.o src/hostapi/dsound/pa_win_ds_dynlink.o src/os/win/pa_win_hostapis.o src/os/win/pa_win_util.o src/os/win/pa_win_waveformat.o
 | |
|             LIBS="-lwinmm -lm -ldsound -lole32"
 | |
|             DLL_LIBS="${DLL_LIBS} -lwinmm -lm -L$DXDIR/lib -ldsound -lole32"
 | |
|             #VC98="\"/c/Program Files/Microsoft Visual Studio/VC98/Include\""
 | |
|             #CFLAGS="$CFLAGS -I$VC98 -DPA_NO_WMME -DPA_NO_ASIO"
 | |
|             CFLAGS="$CFLAGS -I\$(top_srcdir)/src/os/win -I$DXDIR/include -UPA_NO_DS"
 | |
|         fi
 | |
| 
 | |
|         if [[ "x$with_asio" = "xyes" ]]; then
 | |
|             ASIODIR="$with_asiodir"
 | |
|             add_objects src/hostapi/asio/pa_asio.o src/common/pa_ringbuffer.o src/os/win/pa_win_hostapis.o src/os/win/pa_win_util.o src/hostapi/asio/iasiothiscallresolver.o $ASIODIR/common/asio.o $ASIODIR/host/asiodrivers.o $ASIODIR/host/pc/asiolist.o
 | |
|             LIBS="-lwinmm -lm -lole32 -luuid"
 | |
|             DLL_LIBS="${DLL_LIBS} -lwinmm -lm -lole32 -luuid"
 | |
|             CFLAGS="$CFLAGS -ffast-math -fomit-frame-pointer -I\$(top_srcdir)/src/common -I\$(top_srcdir)/src/hostapi/asio -I$ASIODIR/host/pc -I$ASIODIR/common -I$ASIODIR/host -UPA_NO_ASIO -DWINDOWS"
 | |
|             CXXFLAGS="$CFLAGS"
 | |
|         fi
 | |
| 
 | |
|         if [[ "x$with_wdmks" = "xyes" ]]; then
 | |
|             DXDIR="$with_dxdir"
 | |
|             add_objects src/hostapi/wdmks/pa_win_wdmks.o src/os/win/pa_win_hostapis.o src/os/win/pa_win_util.o
 | |
|             LIBS="-lwinmm -lm -luuid -lsetupapi -lole32"
 | |
|             DLL_LIBS="${DLL_LIBS} -lwinmm -lm -L$DXDIR/lib -luuid -lsetupapi -lole32"
 | |
|             #VC98="\"/c/Program Files/Microsoft Visual Studio/VC98/Include\""
 | |
|             #CFLAGS="$CFLAGS -I$VC98 -DPA_NO_WMME -DPA_NO_ASIO"
 | |
|             CFLAGS="$CFLAGS -I\$(top_srcdir)/src/common -I$DXDIR/include -UPA_NO_WDMKS"
 | |
|         fi
 | |
| 
 | |
|         if [[ "x$with_wmme" = "xyes" ]]; then
 | |
|             add_objects src/hostapi/wmme/pa_win_wmme.o src/os/win/pa_win_hostapis.o src/os/win/pa_win_util.o src/os/win/pa_win_waveformat.o
 | |
|             LIBS="-lwinmm -lm -lole32 -luuid"
 | |
|             DLL_LIBS="${DLL_LIBS} -lwinmm"
 | |
|             CFLAGS="$CFLAGS -I\$(top_srcdir)/src/common -UPA_NO_WMME"
 | |
|         fi
 | |
|         ;;
 | |
| 
 | |
|   cygwin* )
 | |
|         dnl Cygwin configuration
 | |
| 
 | |
|         OTHER_OBJS="src/hostapi/wmme/pa_win_wmme.o src/os/win/pa_win_hostapis.o src/os/win/pa_win_util.o src/os/win/pa_win_waveformat.o"
 | |
|         CFLAGS="$CFLAGS -DPA_NO_DS -DPA_NO_WDMKS -DPA_NO_ASIO -DPA_NO_WASAPI"
 | |
|         LIBS="-lwinmm -lm"
 | |
|         PADLL="portaudio.dll"
 | |
|         THREAD_CFLAGS="-mthreads"
 | |
|         SHARED_FLAGS="-shared"
 | |
|         DLL_LIBS="${DLL_LIBS} -lwinmm"
 | |
|         ;;
 | |
| 
 | |
|   irix* )
 | |
|         dnl SGI IRIX audio library (AL) configuration (Pieter, oct 2-13, 2003).
 | |
|         dnl The 'dmedia' library is needed to read the Unadjusted System Time (UST).
 | |
|         dnl
 | |
|         AC_CHECK_LIB(pthread, pthread_create, , AC_MSG_ERROR([IRIX posix thread library not found!]))
 | |
|         AC_CHECK_LIB(audio,   alOpenPort,     , AC_MSG_ERROR([IRIX audio library not found!]))
 | |
|         AC_CHECK_LIB(dmedia,  dmGetUST,       , AC_MSG_ERROR([IRIX digital media library not found!]))
 | |
| 
 | |
|         dnl See the '#ifdef PA_USE_SGI' in file pa_unix/pa_unix_hostapis.c
 | |
|         dnl which selects the appropriate PaXXX_Initialize() function.
 | |
|         dnl
 | |
|         AC_DEFINE(PA_USE_SGI)
 | |
| 
 | |
|         dnl The _REENTRANT option for pthread safety. Perhaps not necessary but it 'll do no harm.
 | |
|         dnl
 | |
|         THREAD_CFLAGS="-D_REENTRANT"
 | |
|     
 | |
|         OTHER_OBJS="pa_sgi/pa_sgi.o src/os/unix/pa_unix_hostapis.o src/os/unix/pa_unix_util.o"
 | |
| 
 | |
|         dnl SGI books say -lpthread should be the last of the libs mentioned.
 | |
|         dnl
 | |
|         LIBS="-lm -ldmedia -laudio -lpthread"
 | |
|         PADLL="libportaudio.so"
 | |
|         SHARED_FLAGS=""
 | |
|         ;;
 | |
| 
 | |
|   *)
 | |
|         dnl Unix configuration
 | |
| 
 | |
|         AC_CHECK_LIB(pthread, pthread_create,[have_pthread="yes"],
 | |
|                 AC_MSG_ERROR([libpthread not found!]))
 | |
| 
 | |
|         if [[ "$have_alsa" = "yes" ] && [ "$with_alsa" != "no" ]] ; then
 | |
|            DLL_LIBS="$DLL_LIBS -lasound"
 | |
|            LIBS="$LIBS -lasound"
 | |
|            OTHER_OBJS="$OTHER_OBJS src/hostapi/alsa/pa_linux_alsa.o"
 | |
|            AC_DEFINE(PA_USE_ALSA)
 | |
|         fi
 | |
| 
 | |
|         if [[ "$have_jack" = "yes" ] && [ "$with_jack" != "no" ]] ; then
 | |
|            DLL_LIBS="$DLL_LIBS $JACK_LIBS"
 | |
|            CFLAGS="$CFLAGS $JACK_CFLAGS"
 | |
|            OTHER_OBJS="$OTHER_OBJS src/hostapi/jack/pa_jack.o src/common/pa_ringbuffer.o"
 | |
|            AC_DEFINE(PA_USE_JACK)
 | |
|         fi
 | |
| 
 | |
|         if [[ "$with_oss" != "no" ]] ; then
 | |
|            OTHER_OBJS="$OTHER_OBJS src/hostapi/oss/pa_unix_oss.o"
 | |
|            if [[ "$have_libossaudio" = "yes" ]] ; then
 | |
|                    DLL_LIBS="$DLL_LIBS -lossaudio"
 | |
|                    LIBS="$LIBS -lossaudio"
 | |
|            fi      
 | |
|            AC_DEFINE(PA_USE_OSS)
 | |
|         fi
 | |
| 
 | |
|         if [[ "$have_asihpi" = "yes" ] && [ "$with_asihpi" != "no" ]] ; then
 | |
|            LIBS="$LIBS -lhpi"
 | |
|            DLL_LIBS="$DLL_LIBS -lhpi"
 | |
|            OTHER_OBJS="$OTHER_OBJS src/hostapi/asihpi/pa_linux_asihpi.o"
 | |
|            AC_DEFINE(PA_USE_ASIHPI)
 | |
|         fi
 | |
| 
 | |
|         DLL_LIBS="$DLL_LIBS -lm -lpthread"
 | |
|         LIBS="$LIBS -lm -lpthread"
 | |
|         PADLL="libportaudio.so"
 | |
| 
 | |
|         ## support sun cc compiler flags
 | |
|         case "${host_os}" in
 | |
|            solaris*)
 | |
|               SHARED_FLAGS="-G"
 | |
|               THREAD_CFLAGS="-mt"
 | |
|               ;;
 | |
|            *)
 | |
|               SHARED_FLAGS="-shared -fPIC"
 | |
|               THREAD_CFLAGS="-pthread"
 | |
|               ;;
 | |
|         esac
 | |
| 
 | |
|         OTHER_OBJS="$OTHER_OBJS src/os/unix/pa_unix_hostapis.o src/os/unix/pa_unix_util.o"
 | |
| esac
 | |
| CFLAGS="$CFLAGS $THREAD_CFLAGS"
 | |
| 
 | |
| if test "$enable_cxx" = "yes"; then
 | |
|    AC_CONFIG_SUBDIRS([bindings/cpp])
 | |
|    ENABLE_CXX_TRUE=""
 | |
|    ENABLE_CXX_FALSE="#"
 | |
| else
 | |
|    ENABLE_CXX_TRUE="#"
 | |
|    ENABLE_CXX_FALSE=""
 | |
| fi
 | |
| AC_SUBST(ENABLE_CXX_TRUE)
 | |
| AC_SUBST(ENABLE_CXX_FALSE)
 | |
| 
 | |
| if test "x$with_asio" = "xyes"; then
 | |
|    WITH_ASIO_TRUE=""
 | |
|    WITH_ASIO_FALSE="@ #"
 | |
| else
 | |
|    WITH_ASIO_TRUE="@ #"
 | |
|    WITH_ASIO_FALSE=""
 | |
| fi
 | |
| AC_SUBST(WITH_ASIO_TRUE)
 | |
| AC_SUBST(WITH_ASIO_FALSE)
 | |
| 
 | |
| AC_OUTPUT([Makefile portaudio-2.0.pc])
 | |
| 
 | |
| AC_MSG_RESULT([
 | |
| Configuration summary:
 | |
| 
 | |
|   Target ...................... $target
 | |
|   C++ bindings ................ $enable_cxx
 | |
|   Debug output ................ $debug_output])
 | |
| 
 | |
| case "$target_os" in *linux*)
 | |
|     AC_MSG_RESULT([
 | |
|   ALSA ........................ $have_alsa
 | |
|   ASIHPI ...................... $have_asihpi])
 | |
|     ;;
 | |
| esac
 | |
| case "$target_os" in
 | |
|     *mingw* | *cygwin*)
 | |
|         test "x$with_directx" = "xyes" && with_directx="$with_directx (${with_dxdir})"
 | |
|         test "x$with_wdmks" = "xyes" && with_wdmks="$with_wdmks (${with_dxdir})"
 | |
|         test "x$with_asio" = "xyes" && with_asio="$with_asio (${with_asiodir})"
 | |
|         AC_MSG_RESULT([
 | |
|   WMME ........................ $with_wmme
 | |
|   DSound ...................... $with_directx
 | |
|   WDMKS ....................... $with_wdmks
 | |
|   ASIO ........................ $with_asio
 | |
| ])
 | |
|         ;;
 | |
|     *darwin*)
 | |
|         AC_MSG_RESULT([
 | |
|   Mac debug flags ............. $enable_mac_debug
 | |
| ])
 | |
|         ;;
 | |
|      *)
 | |
| 	AC_MSG_RESULT([
 | |
|   OSS ......................... $have_oss
 | |
|   JACK ........................ $have_jack
 | |
| ])
 | |
|         ;;
 | |
| esac
 |