2
dnl portaudio V19 configure.in script
4
dnl Dominic Mazzoni, Arve Knudsen, Stelios Bounanos
7
dnl Require autoconf >= 2.13
10
dnl Init autoconf and make sure configure is being called
11
dnl from the right directory
12
AC_INIT([include/portaudio.h])
14
dnl Define build, build_cpu, build_vendor, build_os
16
dnl Define host, host_cpu, host_vendor, host_os
18
dnl Define target, target_cpu, target_vendor, target_os
24
AS_HELP_STRING([--with-alsa], [Enable support for ALSA @<:@autodetect@:>@]),
28
AS_HELP_STRING([--with-jack], [Enable support for JACK @<:@autodetect@:>@]),
32
AS_HELP_STRING([--with-oss], [Enable support for OSS @<:@autodetect@:>@]),
36
AS_HELP_STRING([--with-asihpi], [Enable support for ASIHPI @<:@autodetect@:>@]),
37
[with_asihpi=$withval])
40
AS_HELP_STRING([--with-winapi],
41
[Select Windows API support (@<:@wmme|directx|asio|wdmks@:>@@<:@,...@:>@) @<:@wmme@:>@]),
42
[with_winapi=$withval], [with_winapi="wmme"])
43
case "$target_os" in *mingw* | *cygwin*)
48
for api in $(echo $with_winapi | sed 's/,/ /g'); do
50
wmme|directx|asio|wdmks)
54
AC_MSG_ERROR([unknown Windows API \"$api\" (do you need --help?)])
62
AS_HELP_STRING([--with-asiodir], [ASIO directory @<:@/usr/local/asiosdk2@:>@]),
63
with_asiodir=$withval, with_asiodir="/usr/local/asiosdk2")
66
AS_HELP_STRING([--with-dxdir], [DirectX directory @<:@/usr/local/dx7sdk@:>@]),
67
with_dxdir=$withval, with_dxdir="/usr/local/dx7sdk")
70
AC_ARG_ENABLE(debug-output,
71
AS_HELP_STRING([--enable-debug-output], [Enable debug output @<:@no@:>@]),
72
[if test "x$enableval" != "xno" ; then
73
AC_DEFINE(PA_ENABLE_DEBUG_OUTPUT,,[Enable debugging messages])
79
AS_HELP_STRING([--enable-cxx], [Enable C++ bindings @<:@no@:>@]),
80
enable_cxx=$enableval, enable_cxx="no")
82
AC_ARG_ENABLE(mac-debug,
83
AS_HELP_STRING([--enable-mac-debug], [Enable Mac debug @<:@no@:>@]),
84
enable_mac_debug=$enableval, enable_mac_debug="no")
86
AC_ARG_ENABLE(mac-universal,
87
AS_HELP_STRING([--enable-mac-universal], [Build Mac universal binaries @<:@yes@:>@]),
88
enable_mac_universal=$enableval, enable_mac_universal="yes")
90
dnl Continue to accept --host_os for compatibility but do not document
91
dnl it (the correct way to change host_os is with --host=...). Moved
92
dnl here because the empty help string generates a blank line which we
93
dnl can use to separate PA options from libtool options.
94
AC_ARG_WITH(host_os, [], host_os=$withval)
96
dnl Checks for programs.
103
AC_PATH_PROG(AR, ar, no)
104
if [[ $AR = "no" ]] ; then
105
AC_MSG_ERROR("Could not find ar - needed to create a library")
108
dnl This must be one of the first tests we do or it will fail...
111
dnl checks for various host APIs and arguments to configure that
112
dnl turn them on or off
115
if test "x$with_alsa" != "xno"; then
116
AC_CHECK_LIB(asound, snd_pcm_open, have_alsa=yes, have_alsa=no)
119
if test "x$with_asihpi" != "xno"; then
120
AC_CHECK_LIB(hpi, HPI_SubSysCreate, have_asihpi=yes, have_asihpi=no, -lm)
124
if test "x$with_oss" != "xno"; then
125
AC_CHECK_HEADERS([sys/soundcard.h linux/soundcard.h machine/soundcard.h], [have_oss=yes])
126
if test "x$have_oss" = "xyes"; then
127
AC_CHECK_LIB(ossaudio, _oss_ioctl, have_libossaudio=yes, have_libossaudio=no)
131
if test "x$with_jack" != "xno"; then
132
PKG_CHECK_MODULES(JACK, jack, have_jack=yes, have_jack=no)
136
dnl sizeof checks: we will need a 16-bit and a 32-bit type
138
AC_CHECK_SIZEOF(short)
140
AC_CHECK_SIZEOF(long)
143
AC_CHECK_LIB(rt, clock_gettime, [rt_libs=" -lrt"])
144
LIBS="${LIBS}${rt_libs}"
145
DLL_LIBS="${DLL_LIBS}${rt_libs}"
146
AC_CHECK_FUNCS([clock_gettime nanosleep])
155
AC_SUBST(LT_REVISION)
161
AC_SUBST(SHARED_FLAGS)
162
AC_SUBST(THREAD_CFLAGS)
168
dnl -g is optional on darwin
169
if ( echo "${host_os}" | grep ^darwin >> /dev/null ) &&
170
[[ "$enable_mac_universal" = "yes" ] &&
171
[ "$enable_mac_debug" != "yes" ]] ; then
172
CFLAGS="-O2 -Wall -pedantic -pipe -fPIC -DNDEBUG"
174
CFLAGS=${CFLAGS:-"-g -O2 -Wall -pedantic -pipe -fPIC"}
177
if [[ $ac_cv_c_bigendian = "yes" ]] ; then
178
CFLAGS="$CFLAGS -DPA_BIG_ENDIAN"
180
CFLAGS="$CFLAGS -DPA_LITTLE_ENDIAN"
186
test "${OTHER_OBJS#*${o}*}" = "${OTHER_OBJS}" && OTHER_OBJS="$OTHER_OBJS $o"
192
dnl Mac OS X configuration
194
AC_DEFINE(PA_USE_COREAUDIO)
196
CFLAGS="$CFLAGS -Werror"
197
LIBS="-framework CoreAudio -framework AudioToolbox -framework AudioUnit -framework Carbon"
199
if test "x$enable_mac_universal" = "xyes" ; then
200
mac_version_min="-mmacosx-version-min=10.3"
201
if [[ -d /Developer/SDKs/MacOSX10.5.sdk ]] ; then
202
mac_arches="-arch i386 -arch ppc -arch x86_64 -arch ppc64"
203
mac_sysroot="-isysroot /Developer/SDKs/MacOSX10.5.sdk"
205
mac_arches="-arch i386 -arch ppc"
206
mac_sysroot="-isysroot /Developer/SDKs/MacOSX10.4u.sdk"
213
SHARED_FLAGS="$LIBS -dynamiclib $mac_arches $mac_sysroot $mac_version_min"
214
CFLAGS="-std=c99 $CFLAGS $mac_arches $mac_sysroot $mac_version_min"
215
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"
216
PADLL="libportaudio.dylib"
220
dnl MingW configuration
222
PADLL="portaudio.dll"
223
THREAD_CFLAGS="-mthreads"
224
SHARED_FLAGS="-shared"
225
CFLAGS="$CFLAGS -I\$(top_srcdir)/include -DPA_NO_WMME -DPA_NO_ASIO -DPA_NO_WDMKS -DPA_NO_DS"
227
if [[ "x$with_directx" = "xyes" ]]; then
229
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
230
LIBS="-lwinmm -lm -ldsound -lole32"
231
DLL_LIBS="${DLL_LIBS} -lwinmm -lm -L$DXDIR/lib -ldsound -lole32"
232
#VC98="\"/c/Program Files/Microsoft Visual Studio/VC98/Include\""
233
#CFLAGS="$CFLAGS -I$VC98 -DPA_NO_WMME -DPA_NO_ASIO"
234
CFLAGS="$CFLAGS -I\$(top_srcdir)/src/os/win -I$DXDIR/include -UPA_NO_DS"
237
if [[ "x$with_asio" = "xyes" ]]; then
238
ASIODIR="$with_asiodir"
239
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
240
LIBS="-lwinmm -lm -lole32 -luuid"
241
DLL_LIBS="${DLL_LIBS} -lwinmm -lm -lole32 -luuid"
242
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"
246
if [[ "x$with_wdmks" = "xyes" ]]; then
248
add_objects src/hostapi/wdmks/pa_win_wdmks.o src/os/win/pa_win_hostapis.o src/os/win/pa_win_util.o
249
LIBS="-lwinmm -lm -luuid -lsetupapi -lole32"
250
DLL_LIBS="${DLL_LIBS} -lwinmm -lm -L$DXDIR/lib -luuid -lsetupapi -lole32"
251
#VC98="\"/c/Program Files/Microsoft Visual Studio/VC98/Include\""
252
#CFLAGS="$CFLAGS -I$VC98 -DPA_NO_WMME -DPA_NO_ASIO"
253
CFLAGS="$CFLAGS -I\$(top_srcdir)/src/common -I$DXDIR/include -UPA_NO_WDMKS"
256
if [[ "x$with_wmme" = "xyes" ]]; then
257
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
258
LIBS="-lwinmm -lm -lole32 -luuid"
259
DLL_LIBS="${DLL_LIBS} -lwinmm"
260
CFLAGS="$CFLAGS -I\$(top_srcdir)/src/common -UPA_NO_WMME"
265
dnl Cygwin configuration
267
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"
268
CFLAGS="$CFLAGS -DPA_NO_DS -DPA_NO_WDMKS -DPA_NO_ASIO -DPA_NO_WASAPI"
270
PADLL="portaudio.dll"
271
THREAD_CFLAGS="-mthreads"
272
SHARED_FLAGS="-shared"
273
DLL_LIBS="${DLL_LIBS} -lwinmm"
277
dnl SGI IRIX audio library (AL) configuration (Pieter, oct 2-13, 2003).
278
dnl The 'dmedia' library is needed to read the Unadjusted System Time (UST).
280
AC_CHECK_LIB(pthread, pthread_create, , AC_MSG_ERROR([IRIX posix thread library not found!]))
281
AC_CHECK_LIB(audio, alOpenPort, , AC_MSG_ERROR([IRIX audio library not found!]))
282
AC_CHECK_LIB(dmedia, dmGetUST, , AC_MSG_ERROR([IRIX digital media library not found!]))
284
dnl See the '#ifdef PA_USE_SGI' in file pa_unix/pa_unix_hostapis.c
285
dnl which selects the appropriate PaXXX_Initialize() function.
287
AC_DEFINE(PA_USE_SGI)
289
dnl The _REENTRANT option for pthread safety. Perhaps not necessary but it 'll do no harm.
291
THREAD_CFLAGS="-D_REENTRANT"
293
OTHER_OBJS="pa_sgi/pa_sgi.o src/os/unix/pa_unix_hostapis.o src/os/unix/pa_unix_util.o"
295
dnl SGI books say -lpthread should be the last of the libs mentioned.
297
LIBS="-lm -ldmedia -laudio -lpthread"
298
PADLL="libportaudio.so"
303
dnl Unix configuration
305
AC_CHECK_LIB(pthread, pthread_create,[have_pthread="yes"],
306
AC_MSG_ERROR([libpthread not found!]))
308
if [[ "$have_alsa" = "yes" ] && [ "$with_alsa" != "no" ]] ; then
309
DLL_LIBS="$DLL_LIBS -lasound"
310
LIBS="$LIBS -lasound"
311
OTHER_OBJS="$OTHER_OBJS src/hostapi/alsa/pa_linux_alsa.o"
312
AC_DEFINE(PA_USE_ALSA)
315
if [[ "$have_jack" = "yes" ] && [ "$with_jack" != "no" ]] ; then
316
DLL_LIBS="$DLL_LIBS $JACK_LIBS"
317
CFLAGS="$CFLAGS $JACK_CFLAGS"
318
OTHER_OBJS="$OTHER_OBJS src/hostapi/jack/pa_jack.o src/common/pa_ringbuffer.o"
319
AC_DEFINE(PA_USE_JACK)
322
if [[ "$with_oss" != "no" ]] ; then
323
OTHER_OBJS="$OTHER_OBJS src/hostapi/oss/pa_unix_oss.o"
324
if [[ "$have_libossaudio" = "yes" ]] ; then
325
DLL_LIBS="$DLL_LIBS -lossaudio"
326
LIBS="$LIBS -lossaudio"
328
AC_DEFINE(PA_USE_OSS)
331
if [[ "$have_asihpi" = "yes" ] && [ "$with_asihpi" != "no" ]] ; then
333
DLL_LIBS="$DLL_LIBS -lhpi"
334
OTHER_OBJS="$OTHER_OBJS src/hostapi/asihpi/pa_linux_asihpi.o"
335
AC_DEFINE(PA_USE_ASIHPI)
338
DLL_LIBS="$DLL_LIBS -lm -lpthread"
339
LIBS="$LIBS -lm -lpthread"
340
PADLL="libportaudio.so"
342
## support sun cc compiler flags
349
SHARED_FLAGS="-shared -fPIC"
350
THREAD_CFLAGS="-pthread"
354
OTHER_OBJS="$OTHER_OBJS src/os/unix/pa_unix_hostapis.o src/os/unix/pa_unix_util.o"
356
CFLAGS="$CFLAGS $THREAD_CFLAGS"
358
if test "$enable_cxx" = "yes"; then
359
AC_CONFIG_SUBDIRS([bindings/cpp])
366
AC_SUBST(ENABLE_CXX_TRUE)
367
AC_SUBST(ENABLE_CXX_FALSE)
369
if test "x$with_asio" = "xyes"; then
371
WITH_ASIO_FALSE="@ #"
376
AC_SUBST(WITH_ASIO_TRUE)
377
AC_SUBST(WITH_ASIO_FALSE)
379
AC_OUTPUT([Makefile portaudio-2.0.pc])
382
Configuration summary:
384
Target ...................... $target
385
C++ bindings ................ $enable_cxx
386
Debug output ................ $debug_output])
388
case "$target_os" in *linux*)
390
ALSA ........................ $have_alsa
391
ASIHPI ...................... $have_asihpi])
396
test "x$with_directx" = "xyes" && with_directx="$with_directx (${with_dxdir})"
397
test "x$with_wdmks" = "xyes" && with_wdmks="$with_wdmks (${with_dxdir})"
398
test "x$with_asio" = "xyes" && with_asio="$with_asio (${with_asiodir})"
400
WMME ........................ $with_wmme
401
DSound ...................... $with_directx
402
WDMKS ....................... $with_wdmks
403
ASIO ........................ $with_asio
408
Mac debug flags ............. $enable_mac_debug
413
OSS ......................... $have_oss
414
JACK ........................ $have_jack