Skip to content
Snippets Groups Projects
configure.ac 11.8 KiB
Newer Older
Jack Moffitt's avatar
Jack Moffitt committed
dnl Process this file with autoconf to produce a configure script.
AC_INIT([libao],[0.9.0svn],[monty@xiph.org])
AM_INIT_AUTOMAKE([gnu 1.6])
Jack Moffitt's avatar
Jack Moffitt committed

Chris Cheney's avatar
Chris Cheney committed
AM_MAINTAINER_MODE

dnl $$$ben: Is that neccessary ? And why ?
Jack Moffitt's avatar
Jack Moffitt committed

Jack Moffitt's avatar
Jack Moffitt committed
dnl Library versioning
LIB_CURRENT=4
LIB_REVISION=0
LIB_AGE=0
Jack Moffitt's avatar
Jack Moffitt committed
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_BUILD
Jack Moffitt's avatar
Jack Moffitt committed
AC_CANONICAL_HOST

plugindir=$libdir/ao/plugins-$PLUGIN_VERSION
Jack Moffitt's avatar
Jack Moffitt committed
dnl ====================================
dnl Check for programs
dnl ====================================

AC_PROG_CC
AC_LIBTOOL_WIN32_DLL
AC_LIBTOOL_DLOPEN
Jack Moffitt's avatar
Jack Moffitt committed
AM_PROG_LIBTOOL

dnl ====================================
dnl Check dlopen 
dnl ====================================

dnl Currently use this to disable plugin support dlfcn.h
AC_CHECK_HEADERS([dlfcn.h],
	[AC_SEARCH_LIBS([dlopen],[dl],
		[AC_DEFINE([HAVE_DLOPEN],[1],
			[support dynamic linking loader])])])

Jack Moffitt's avatar
Jack Moffitt committed
dnl ====================================
dnl Set some general compile options
dnl ====================================

Jack Moffitt's avatar
Jack Moffitt committed
if test -z "$GCC"; then
        case $host in
        *-*-irix*)
                if test -z "$CC"; then
                        CC=cc
                fi
                PLUGIN_LDFLAGS="-export-dynamic -avoid-version"
Jack Moffitt's avatar
Jack Moffitt committed
                DEBUG="-g -signed"
                CFLAGS="-O2 -w -signed"
                PROFILE="-p -g3 -O2 -signed" ;;
        sparc-sun-solaris*)
                PLUGIN_LDFLAGS="-export-dynamic -avoid-version"
Jack Moffitt's avatar
Jack Moffitt committed
                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"
Jack Moffitt's avatar
Jack Moffitt committed
                DEBUG="-g"
                CFLAGS="-O"
                PROFILE="-g -p" ;;
        esac
else

        case $host in
        *-*-linux*)
                PLUGIN_LDFLAGS="-export-dynamic -avoid-version"
Jack Moffitt's avatar
Jack Moffitt committed
                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"
                CFLAGS="-O20 -ffast-math -D__NO_MATH_INLINES -fsigned-char"
                PROFILE="-pg -g -O20 -D__NO_MATH_INLINES -fsigned-char" ;;
                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" ;;
Jack Moffitt's avatar
Jack Moffitt committed
        *)
                PLUGIN_LDFLAGS="-export-dynamic -avoid-version"
Jack Moffitt's avatar
Jack Moffitt committed
                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 -DAO_BUILDING_LIBAO"
DEBUG="$DEBUG $cflags_save -DAO_BUILDING_LIBAO"
PROFILE="$PROFILE $cflags_save -DAO_BUILDING_LIBAO"
Jack Moffitt's avatar
Jack Moffitt committed
AC_SUBST(DEBUG)
AC_SUBST(PROFILE)

dnl =========================================
dnl Need -no-undefined for building win32 dll
dnl =========================================
dnl Should we do that for cygwin too ???
dnl I guess so but it needs to be tested.
case $host in
    *-mingw*|*-cygwin*)
	LIBAO_LA_LDFLAGS="-no-undefined"
	;;
    *)	
	LIBAO_LA_LDFLAGS=""
	;;
esac
AC_SUBST(LIBAO_LA_LDFLAGS)

Jack Moffitt's avatar
Jack Moffitt committed
dnl ==============================
dnl Check for libraries
dnl ==============================

Ralph Giles's avatar
 
Ralph Giles committed
# 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)

Jack Moffitt's avatar
Jack Moffitt committed
dnl ==============================
dnl Checks for header files
dnl ==============================

dnl ==============================
dnl Select proper plugin options
dnl ==============================
case $host in
	SHARED_LIB_EXT='.sl'
	;;    
    *openbsd* | *netbsd* | *solaris2.7)
	DLOPEN_FLAG='(RTLD_LAZY)'
	SHARED_LIB_EXT='.so'
	;;
    *)
	DLOPEN_FLAG='(RTLD_NOW | RTLD_GLOBAL)'
	;;
esac
AC_DEFINE_UNQUOTED(DLOPEN_FLAG, $DLOPEN_FLAG)
AC_DEFINE_UNQUOTED(SHARED_LIB_EXT, "$SHARED_LIB_EXT")
Jack Moffitt's avatar
Jack Moffitt committed
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!)
Jack Moffitt's avatar
Jack Moffitt committed
fi
if test -z "$SIZE32"; then
        AC_MSG_ERROR(No 32 bit type found on this platform!)
Jack Moffitt's avatar
Jack Moffitt committed
fi

AC_SUBST(SIZE16)
AC_SUBST(SIZE32)

dnl ======================================
dnl Detect possible output devices 
dnl ======================================

dnl Check for WMM

[has_wmm="no"]
AC_ARG_ENABLE([wmm],
    [AS_HELP_STRING(
	[--enable-wmm],
	[include WMM output plugin @<:@default=check@:>@])],
	[],[enable_wmm="check"]
)
AC_ARG_ENABLE([wmm_debug],
    [AS_HELP_STRING(
	[--enable-wmm-debug],
	[enable WMM debugging output @<:@default=no@:>@])],
	[enable_wmm_debug="yes"]
)
AS_IF([test "x$enable_wmm" != "xno"],
[AC_CHECK_HEADERS([mmsystem.h],
   [
   AC_MSG_CHECKING([waveOut family functions])
   waveout_old_LIBS="$LIBS"; LIBS="$LIBS -lwinmm"
dnl Can't use AC_SEARCH_LIBS because symbols are decorated
   AC_LINK_IFELSE([
#include <windows.h>
#include <mmsystem.h>
int main(int na, char ** a) {
    return waveOutOpen(0,0,0,0,0,0);
}
],[
has_wmm="yes";
AC_MSG_RESULT([yes])
AC_DEFINE([HAVE_WMM],[1],[Support Windows MultiMedia])
],[
AC_MSG_RESULT([no])
LIBS="$waveout_old_LIBS"
])
],[],[#include <windows.h>])])
AM_CONDITIONAL([HAVE_WMM],[test "x$has_wmm" = "xyes"])
AS_IF([test "x${has_wmm}" = "xyes"],[WMM_LIBS="-lwinmm"],[WMM_LIBS=""])
AS_IF([test "x${has_wmm}" = "xyes" && test "x$enable_wmm_debug"],[CFLAGS="$CFLAGS -DAO_WMM_DEBUG=1"],[])
AC_SUBST([WMM_LIBS])
Jack Moffitt's avatar
Jack Moffitt committed

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)
Jack Moffitt's avatar
Jack Moffitt committed

Jack Moffitt's avatar
Jack Moffitt committed

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")
Jack Moffitt's avatar
Jack Moffitt committed

Jack Moffitt's avatar
Jack Moffitt committed

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)
Jack Moffitt's avatar
Jack Moffitt committed

if test "x$have_alsa" = xyes; then
	ALSA_LIBS="-lasound"
Jack Moffitt's avatar
Jack Moffitt committed
else
	ALSA_LIBS=""
AM_CONDITIONAL(HAVE_ALSA,test "x$have_alsa" = xyes)
Jack Moffitt's avatar
Jack Moffitt committed
AC_SUBST(ALSA_LIBS)
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
AM_CONDITIONAL(HAVE_ALSA09,test "x$have_alsa09" = xyes)
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
   
Jack Moffitt's avatar
Jack Moffitt committed
dnl Check for Sun audio

AC_CHECK_HEADERS(sys/audioio.h)
AM_CONDITIONAL(HAVE_SUN_AUDIO,test "${ac_cv_header_sys_audioio_h}" = yes)

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)
Michael Smith's avatar
 
Michael Smith committed
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)
Michael Smith's avatar
 
Michael Smith committed

  if test "x$ac_cv_path_ARTSC_CONFIG" != x
  then
Michael Smith's avatar
 
Michael Smith committed
	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
Michael Smith's avatar
 
Michael Smith committed
fi
AM_CONDITIONAL(HAVE_ARTS,test "x$ac_cv_path_ARTSC_CONFIG" != x)
Michael Smith's avatar
 
Michael Smith committed

AC_SUBST(ARTS_CFLAGS)
AC_SUBST(ARTS_LIBS)

Jack Moffitt's avatar
Jack Moffitt committed

case $host in
        *-*-irix*)
                AC_CHECK_LIB(audio, ALwritesamps, have_irix=yes, have_irix=no)
        ;;
Jack Moffitt's avatar
Jack Moffitt committed
esac
AM_CONDITIONAL(HAVE_IRIX,test "x$have_irix" = xyes)
Jack Moffitt's avatar
Jack Moffitt committed


dnl Check for MacOS X
case $host in
       *-darwin*)
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 pulse
AC_ARG_ENABLE(pulse, [  --enable-pulse       include PulseAudio output plugin ],
[ BUILD_PULSE="$enableval" ],[ BUILD_PULSE="yes" ])
have_pulse=no
if test "x$BUILD_PULSE" = "xyes" ; then
    PKG_CHECK_MODULES(PULSE, [ libpulse-simple >= 0.9 ],
	[have_pulse=yes],[have_pulse=no])
    AC_SUBST(PULSE_LIBS)
    AC_SUBST(PULSE_CFLAGS)
AM_CONDITIONAL(HAVE_PULSE,test "x$have_pulse" = xyes)
dnl Orphaned driver.  We'll probably dump it soon.
AM_CONDITIONAL(HAVE_SOLARIS,test "x$have_solaris" = xyes)
Jack Moffitt's avatar
Jack Moffitt committed

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/alsa05/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/pulse/Makefile ao.pc)