dnl Process this file with autoconf to produce a configure script. AC_INIT(src/audio_out.c) AM_INIT_AUTOMAKE(libao,0.8.6) AM_MAINTAINER_MODE AM_DISABLE_STATIC dnl Library versioning LIB_CURRENT=3 LIB_REVISION=3 LIB_AGE=1 AC_SUBST(LIB_CURRENT) AC_SUBST(LIB_REVISION) AC_SUBST(LIB_AGE) dnl Plugin versioning. We use an integer version number much like LIB_CURRENT. PLUGIN_VERSION=2 AC_CANONICAL_HOST plugindir=$libdir/ao/plugins-$PLUGIN_VERSION AC_SUBST(plugindir) dnl ==================================== dnl Check for programs dnl ==================================== AC_PROG_CC AC_LIBTOOL_DLOPEN AM_PROG_LIBTOOL dnl ==================================== dnl Set some general compile options dnl ==================================== cflags_save="$CFLAGS" ldflags_save="$LDFLAGS" if test -z "$GCC"; then case $host in *-*-irix*) if test -z "$CC"; then CC=cc fi PLUGIN_LDFLAGS="-export-dynamic -avoid-version" DEBUG="-g -signed" CFLAGS="-O2 -w -signed" PROFILE="-p -g3 -O2 -signed" ;; sparc-sun-solaris*) PLUGIN_LDFLAGS="-export-dynamic -avoid-version" DEBUG="-v -g" CFLAGS="-xO4 -fast -w -fsimple -native -xcg92" PROFILE="-v -xpg -g -xO4 -fast -native -fsimple -xcg92 -Dsuncc" ;; *) PLUGIN_LDFLAGS="-export-dynamic -avoid-version" DEBUG="-g" CFLAGS="-O" PROFILE="-g -p" ;; esac else case $host in *-*-linux*) PLUGIN_LDFLAGS="-export-dynamic -avoid-version" DEBUG="-g -Wall -D_REENTRANT -D__NO_MATH_INLINES -fsigned-char" CFLAGS="-O20 -ffast-math -D_REENTRANT -fsigned-char" PROFILE="-pg -g -O20 -ffast-math -D_REENTRANT -fsigned-char";; sparc-sun-*) PLUGIN_LDFLAGS="-export-dynamic -avoid-version" DEBUG="-g -Wall -D__NO_MATH_INLINES -fsigned-char -mv8" CFLAGS="-O20 -ffast-math -D__NO_MATH_INLINES -fsigned-char -mv8" PROFILE="-pg -g -O20 -D__NO_MATH_INLINES -fsigned-char -mv8" ;; *-darwin*) PLUGIN_LDFLAGS="-module -avoid-version" DEBUG="-g -Wall -D__NO_MATH_INLINES -fsigned-char -Ddlsym=dlsym_auto_underscore" CFLAGS="-D__NO_MATH_INLINES -fsigned-char -Ddlsym=dlsym_auto_underscore" PROFILE="-g -pg -D__NO_MATH_INLINES -fsigned-char -Ddlsym=dlsym_auto_underscore" ;; *) PLUGIN_LDFLAGS="-export-dynamic -avoid-version" DEBUG="-g -Wall -D__NO_MATH_INLINES -fsigned-char" CFLAGS="-O20 -D__NO_MATH_INLINES -fsigned-char" PROFILE="-O20 -g -pg -D__NO_MATH_INLINES -fsigned-char" ;; esac fi CFLAGS="$CFLAGS $cflags_save" DEBUG="$DEBUG $cflags_save" PROFILE="$PROFILE $cflags_save" LDFLAGS="$LDFLAGS $ldflags_save" AC_SUBST(DEBUG) AC_SUBST(PROFILE) dnl ============================== dnl Check for libraries dnl ============================== # we link to libpthread just in case one of our plugins does # in which case this is required to avoid problems on dlclose() AC_CHECK_LIB(pthread, pthread_kill) dnl ============================== dnl Checks for header files dnl ============================== dnl ============================== dnl Select proper plugin options dnl ============================== case $host in *hpux*) DLOPEN_FLAG='(RTLD_LAZY)' SHARED_LIB_EXT='.sl' ;; *openbsd* | *netbsd* | *solaris2.7) DLOPEN_FLAG='(RTLD_LAZY)' SHARED_LIB_EXT='.so' ;; *) DLOPEN_FLAG='(RTLD_NOW | RTLD_GLOBAL)' SHARED_LIB_EXT='.so' ;; esac AC_DEFINE_UNQUOTED(DLOPEN_FLAG, $DLOPEN_FLAG) AC_DEFINE_UNQUOTED(SHARED_LIB_EXT, "$SHARED_LIB_EXT") dnl -------------------------------------------------- dnl Work around FHS stupidity dnl -------------------------------------------------- if test "$prefix" = "/usr"; then MANDIR='$(datadir)/man' else MANDIR='$(prefix)/man' fi AC_SUBST(MANDIR) dnl ============================== dnl Checks for types dnl ============================== AC_CHECK_SIZEOF(short) AC_CHECK_SIZEOF(int) AC_CHECK_SIZEOF(long) case 2 in $ac_cv_sizeof_short) SIZE16="short";; $ac_cv_sizeof_int) SIZE16="int";; esac case 4 in $ac_cv_sizeof_short) SIZE32="short";; $ac_cv_sizeof_int) SIZE32="int";; $ac_cv_sizeof_long) SIZE32="long";; esac if test -z "$SIZE16"; then AC_MSG_ERROR(No 16 bit type found on this platform!) fi if test -z "$SIZE32"; then AC_MSG_ERROR(No 32 bit type found on this platform!) fi AC_SUBST(SIZE16) AC_SUBST(SIZE32) dnl ====================================== dnl Detect possible output devices dnl ====================================== dnl Check for ESD AC_ARG_ENABLE(esd, [ --enable-esd include ESD output plugin ], [ BUILD_ESD="$enableval" ],[ BUILD_ESD="yes" ]) if test "$BUILD_ESD" = "yes"; then AM_PATH_ESD(0.2.8, have_esd=yes, have_esd=no) fi AM_CONDITIONAL(HAVE_ESD,test "x$have_esd" = xyes) dnl Check for OSS AC_CHECK_HEADERS(sys/soundcard.h) AC_CHECK_HEADERS(machine/soundcard.h) AM_CONDITIONAL(HAVE_OSS,test "${ac_cv_header_sys_soundcard_h}" = "yes" || test "${ac_cv_header_machine_soundcard_h}" = "yes") dnl Check for ALSA 0.5.x AC_ARG_ENABLE(alsa, [ --enable-alsa include alsa 0.5 output plugin ], [ BUILD_ALSA="$enableval" ],[ BUILD_ALSA="yes" ]) if test "$BUILD_ALSA" = "yes"; then AC_CHECK_LIB(asound, snd_pcm_channel_params, have_alsa=yes, have_alsa=no) AC_CHECK_HEADER(sys/asoundlib.h, , have_alsa=no) fi if test "x$have_alsa" = xyes; then ALSA_LIBS="-lasound" else ALSA_LIBS="" fi AM_CONDITIONAL(HAVE_ALSA,test "x$have_alsa" = xyes) AC_SUBST(ALSA_LIBS) dnl Check for ALSA 0.9.x AC_ARG_ENABLE(alsa09, [ --enable-alsa09 include alsa 0.9 output plugin ], [ BUILD_ALSA09="$enableval" ],[ BUILD_ALSA09="yes" ]) AC_ARG_ENABLE(alsa09-mmap, [ --enable-alsa09-mmap use mmio with alsa 0.9 (experimental!) ], [ BUILD_ALSA09MMIO="$enableval" ],[ BUILD_ALSA09MMIO="no" ]) if test "$BUILD_ALSA09" = "yes"; then AC_CHECK_LIB(asound, snd_pcm_open, have_alsa09=yes, have_alsa09=no) AC_CHECK_HEADER(alsa/asoundlib.h, , have_alsa09=no) if test "$BUILD_ALSA09MMIO" = "yes" ; then AC_CHECK_HEADER(sys/mman.h, have_alsa09mmio=yes, have_alsa09mmio=no) fi fi if test "x$have_alsa09" = xyes; then ALSA09_LIBS="-lasound" if test "x$have_alsa09mmio" = xyes; then AC_DEFINE(USE_ALSA_MMIO) fi else ALSA09_LIBS="" fi AM_CONDITIONAL(HAVE_ALSA09,test "x$have_alsa09" = xyes) AC_SUBST(ALSA09_LIBS) dnl Decide whether we need to enable the workaround for broken OSS APIs dnl such as the OSS emulation in ALSA. AC_ARG_ENABLE(broken-oss, [ --enable-broken-oss workaround for some OSS drivers (see README for details)],, if test "x$have_alsa" = "xyes" -o "x$have_alsa09" = "xyes"; then enable_broken_oss="yes" fi) if test "x$enable_broken_oss" = "xyes"; then AC_DEFINE(BROKEN_OSS) AC_MSG_WARN(Broken OSS API workaround enabled. See README for details.) fi dnl Check for Sun audio AC_CHECK_HEADERS(sys/audioio.h) AM_CONDITIONAL(HAVE_SUN_AUDIO,test "${ac_cv_header_sys_audioio_h}" = yes) dnl Check for AIX audio case $host in *-aix*) AC_CHECK_HEADERS(sys/audio.h) ;; esac AM_CONDITIONAL(HAVE_AIX_AUDIO,test "x${ac_cv_header_sys_audio_h}" = xyes) dnl Check for aRts AC_ARG_ENABLE(arts, [ --enable-arts include aRts output plugin ], [ BUILD_ARTS="$enableval" ],[ BUILD_ARTS="maybe" ]) dnl aRts support is whacked on OS X, so don't build it by default if test "$BUILD_ARTS" = "maybe"; then case $host in *-darwin*) BUILD_ARTS=no;; *) BUILD_ARTS=yes;; esac fi if test "$BUILD_ARTS" = "yes"; then AC_PATH_PROG(ARTSC_CONFIG, artsc-config) if test "x$ac_cv_path_ARTSC_CONFIG" != x then ARTS_CFLAGS=`$ac_cv_path_ARTSC_CONFIG --cflags` ARTS_LIBS=`$ac_cv_path_ARTSC_CONFIG --libs` SAVELIBS=$LIBS LIBS="$LIBS $ARTS_LIBS" AC_CHECK_FUNCS(arts_suspended) LIBS=$SAVELIBS fi fi AM_CONDITIONAL(HAVE_ARTS,test "x$ac_cv_path_ARTSC_CONFIG" != x) AC_SUBST(ARTS_CFLAGS) AC_SUBST(ARTS_LIBS) dnl Check for IRIX case $host in *-*-irix*) AC_CHECK_LIB(audio, ALwritesamps, have_irix=yes, have_irix=no) ;; esac AM_CONDITIONAL(HAVE_IRIX,test "x$have_irix" = xyes) dnl Check for MacOS X case $host in *-darwin*) have_macosx=yes;; *) have_macosx=no;; esac AM_CONDITIONAL(HAVE_MACOSX,test "x$have_macosx" = xyes) dnl Check for NAS AC_ARG_ENABLE(nas, [ --enable-nas include NAS output plugin ], [ BUILD_NAS="$enableval" ],[ BUILD_NAS="yes" ]) have_nas="no" if test "$BUILD_NAS" = "yes"; then AC_PATH_XTRA AC_CHECK_LIB(Xau, XauFileName, have_nas=yes, have_nas=no, $X_LIBS) AC_CHECK_LIB(audio, AuOpenServer, dummy="no-op", have_nas=no, -lXau $X_LIBS) ac_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $X_CFLAGS" AC_CHECK_HEADER(audio/audiolib.h, dummy="no-op", have_nas=no) CPPFLAGS="$ac_save_CPPFLAGS" fi AM_CONDITIONAL(HAVE_NAS,test "x$have_nas" = xyes) if test "x$have_nas" = xyes; then NAS_CFLAGS="$X_CFLAGS" NAS_LIBS="-laudio -lXau $X_LIBS" else NAS_CFLAGS="" NAS_LIBS="" fi AC_SUBST(NAS_CFLAGS) AC_SUBST(NAS_LIBS) dnl Check for polyp AC_ARG_ENABLE(polyp, [ --enable-polyp include Polypaudio output plugin ], [ BUILD_POLYP="$enableval" ],[ BUILD_POLYP="yes" ]) have_polyp=no if test "x$BUILD_POLYP" = "xyes" ; then PKG_CHECK_MODULES(POLYP, [ polyplib-simple >= 0.6 ], [have_polyp=yes],[have_polyp=no]) AC_SUBST(POLYP_LIBS) AC_SUBST(POLYP_CFLAGS) fi AM_CONDITIONAL(HAVE_POLYP,test "x$have_polyp" = xyes) dnl Orphaned driver. We'll probably dump it soon. AM_CONDITIONAL(HAVE_SOLARIS,test "x$have_solaris" = xyes) dnl Plugins get special LDFLAGS AC_SUBST(PLUGIN_LDFLAGS) AC_OUTPUT(Makefile src/Makefile doc/Makefile include/Makefile include/ao/Makefile include/ao/os_types.h src/plugins/Makefile src/plugins/esd/Makefile src/plugins/oss/Makefile src/plugins/alsa/Makefile src/plugins/alsa09/Makefile src/plugins/sun/Makefile src/plugins/irix/Makefile src/plugins/arts/Makefile src/plugins/macosx/Makefile src/plugins/nas/Makefile src/plugins/polyp/Makefile debian/Makefile ao.pc)