dnl -*- m4 -*- dnl dnl madplay - MPEG audio decoder and player dnl Copyright (C) 2000-2004 Robert Leslie dnl dnl This program is free software; you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by dnl the Free Software Foundation; either version 2 of the License, or dnl (at your option) any later version. dnl dnl This program is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the dnl GNU General Public License for more details. dnl dnl You should have received a copy of the GNU General Public License dnl along with this program; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl AC_REVISION([$Id: configure.ac,v 1.17 2004/02/23 21:34:53 rob Exp $])dnl dnl Process this file with autoconf to produce a configure script. AC_INIT([MPEG audio decoder and player], [0.15.2b], [rob@mars.org], [madplay]) AC_PREREQ(2.53) AC_CONFIG_SRCDIR([madplay.c]) AM_INIT_AUTOMAKE AM_CONFIG_HEADER([config.h]) dnl System type. AC_CANONICAL_HOST dnl Checks for programs. # Work-around for autoconf 2.53 bug case "$host" in *-apple-darwin*) : ${CPP="cc -E -traditional-cpp"} ;; esac AC_PROG_CC if test "$GCC" = yes then case "$host" in *-*-mingw*) case "$build" in *-*-cygwin*) CPPFLAGS="$CPPFLAGS -mno-cygwin" LDFLAGS="$LDFLAGS -mno-cygwin" ;; esac esac fi dnl Support for libtool. AC_DISABLE_SHARED AC_PROG_LIBTOOL AC_SUBST(LIBTOOL_DEPS) dnl Compiler options. arch="" debug="" optimize="" profile="" set -- $CFLAGS CFLAGS="" if test "$GCC" = yes then CFLAGS="-Wall" fi while test $# -gt 0 do case "$1" in -Wall) if test "$GCC" = yes then : else CFLAGS="$CFLAGS $1" fi shift ;; -g) debug="-g" shift ;; -mno-cygwin) shift ;; -m*) arch="$arch $1" shift ;; -fomit-frame-pointer) shift ;; -O*|-f*) optimize="$1" shift ;; *) CFLAGS="$CFLAGS $1" shift ;; esac done if test "$GCC" = yes then if test -z "$arch" then case "$host" in i386-*) ;; i?86-*) arch="-march=i486" ;; arm*-empeg-*) arch="-march=armv4 -mtune=strongarm1100" ;; armv4*-*) arch="-march=armv4 -mtune=strongarm" ;; powerpc-*) ;; mips*-agenda-*) arch="-mcpu=vr4100" ;; mips*-luxsonor-*) arch="-mips1 -mcpu=r3000 -Wa,-m4010" ;; esac fi if test -n "$optimize" then : #? optimize="$optimize -funroll-loops" : #? optimize="$optimize -finline-functions" fi fi dnl Internationalization support. ALL_LINGUAS="en es fr hr no" AM_GNU_GETTEXT([use-libtool]) AM_GNU_GETTEXT_VERSION(0.14.1) dnl Checks for header files. AC_HEADER_STDC AC_CHECK_HEADERS(assert.h termios.h stropts.h \ sys/types.h fcntl.h errno.h \ sys/soundcard.h machine/soundcard.h) AC_CHECK_HEADER(mad.h, [], [ AC_MSG_ERROR([mad.h was not found *** You must first install libmad before you can build this package. *** If libmad is already installed, you may need to use the CPPFLAGS *** environment variable to specify its installed location, e.g. -I.]) ]) AC_CHECK_HEADER(id3tag.h, [], [ AC_MSG_ERROR([id3tag.h was not found *** You must first install libid3tag before you can build this package. *** If libid3tag is already installed, you may need to use the CPPFLAGS *** environment variable to specify its installed location, e.g. -I.]) ]) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_C_INLINE AC_C_BIGENDIAN dnl Checks for library functions. AC_CHECK_LIB(mad, mad_decoder_run, :, [ AC_MSG_ERROR([libmad was not found *** You must first install libmad before you can build this package. *** If libmad is already installed, you may need to use the LDFLAGS *** environment variable to specify its installed location, e.g. -L.]) ]) AC_CHECK_LIB(id3tag, id3_tag_parse, :, [ AC_MSG_ERROR([libid3tag was not found *** You must first install libid3tag before you can build this package. *** If libid3tag is already installed, you may need to use the LDFLAGS *** environment variable to specify its installed location, e.g. -L.]) ], [-lz]) AC_FUNC_VPRINTF AC_CHECK_FUNCS(madvise localeconv) AC_REPLACE_FUNCS(strcasecmp strncasecmp) AC_SEARCH_LIBS(pow, m) AC_SEARCH_LIBS(log10, m) case "$host" in *-linux*) AC_DEFINE(HAVE_MMAP) ;; *) AC_FUNC_MMAP ;; esac AC_MSG_CHECKING([whether to use mmap]) AC_ARG_ENABLE(mmap, AC_HELP_STRING([--disable-mmap], [do not use mmap even if available (lower mem usage)]), [ case "$enableval" in yes) AC_DEFINE(USE_MMAP, 1, [Define if you have mmap() and you want to use it.]) ;; esac ], [ AC_DEFINE(USE_MMAP) ]) AC_MSG_RESULT(${enable_mmap-yes}) AC_CACHE_SAVE dnl Select an audio system. depend_audio="" ldadd_audio="" AC_SUBST(depend_audio) AC_SUBST(ldadd_audio) AC_MSG_CHECKING([for audio support]) audio="unknown" want_alsa=no AC_ARG_WITH(alsa, AC_HELP_STRING([--with-alsa], [use Advanced Linux Sound Architecture as default]), [ case "$withval" in yes) want_alsa=yes if test "$audio" = unknown then audio="alsa" else AC_MSG_ERROR([cannot use both --with-$audio and --with-alsa]) fi ;; esac ]) want_esd=yes AC_ARG_WITH(esd, AC_HELP_STRING([--with-esd], [use Enlightened Sound Daemon (EsounD) as default]), [ case "$withval" in yes) if test "$audio" = unknown then audio="esd" else AC_MSG_ERROR([cannot use both --with-$audio and --with-esd]) fi ;; no) want_esd=no ;; esac ]) dnl want_nas=yes dnl AC_ARG_WITH(nas, AC_HELP_STRING([--with-nas], dnl [use Network Audio System (NAS) as default]), dnl [ dnl case "$withval" in dnl yes) dnl if test "$audio" = unknown dnl then dnl audio="nas" dnl else dnl AC_MSG_ERROR([cannot use both --with-$audio and --with-nas]) dnl fi dnl ;; dnl no) dnl want_nas=no dnl ;; dnl esac dnl ]) if test "$audio" = unknown then case "$host" in arm*-empeg-*) audio="empeg" ;; esac fi dnl if test "$audio" = unknown dnl then dnl AC_EGREP_CPP(kAudioUnitProperty_SetRenderCallback, [ dnl # include dnl ], [audio="jaguar"; dnl ldadd_audio="$ldadd_audio -framework AudioUnit -framework CoreServices"]) dnl fi if test "$audio" = unknown then AC_EGREP_CPP(SndNewChannel, [ # include ], [audio="carbon"; ldadd_audio="$ldadd_audio -framework Carbon"]) fi if test "$audio" = unknown then AC_EGREP_CPP(waveOutOpen, [ # include ], [audio="win32"; ldadd_audio="$ldadd_audio -lwinmm"]) fi if test "$audio" = unknown then AC_EGREP_CPP(yes, [ # include # if defined(OPEN_SOUND_SYSTEM) || defined(UNIX_SOUND_SYSTEM) || \ defined(VOXWARE) yes # endif ], [audio="oss"]) fi if test "$audio" = unknown then AC_EGREP_CPP(yes, [ # include # if defined(OPEN_SOUND_SYSTEM) || defined(UNIX_SOUND_SYSTEM) || \ defined(VOXWARE) yes # endif ], [audio="oss"]) fi if test "$audio" = unknown then AC_EGREP_CPP(audio_info_t, [ # include ], [audio="sun"]) fi if test "$audio" = unknown then AC_EGREP_CPP(yes, [ # include # if defined(SND_PCM_OPEN_PLAYBACK) yes # endif ], [audio="qnx"; ldadd_audio="$ldadd_audio -lasound"]) fi AC_MSG_RESULT($audio) if test "$want_alsa" = yes then AC_CHECK_LIB(asound, snd_pcm_open, have_libasound=yes, have_libasound=no) if test "$have_libasound" = yes then AC_DEFINE(HAVE_LIBASOUND, 1, [Define if you have the asound library (-lasound).]) ldadd_audio="$ldadd_audio -lasound" fi fi if test "$want_esd" = yes then AC_CHECK_LIB(esd, esd_open_sound, have_libesd=yes, have_libesd=no) if test "$have_libesd" = yes then AC_DEFINE(HAVE_LIBESD, 1, [Define if you have the esd library (-lesd).]) ldadd_audio="$ldadd_audio -lesd" fi fi dnl if test "$want_nas" = yes dnl then dnl AC_PATH_X dnl if test "$no_x" = yes dnl then dnl have_libaudio=no dnl else dnl AC_CHECK_LIB(audio, AuOpenServer, dnl have_libaudio=yes, have_libaudio=no, -L$x_libraries -lXau -lXt) dnl dnl if test "$have_libaudio" = yes dnl then dnl AC_DEFINE(HAVE_LIBAUDIO) dnl ldadd_audio="$ldadd_audio -laudio -L$x_libraries -lXau -lXt" dnl fi dnl fi dnl fi if test "$audio" = alsa then if test "$have_libasound" = no then AC_MSG_ERROR([cannot use --with-alsa because libasound was not found]) fi else if test "$want_alsa" = yes && test "$have_libasound" = yes then depend_audio="$depend_audio audio_alsa.o" fi fi if test "$audio" = esd then if test "$have_libesd" = no then AC_MSG_ERROR([cannot use --with-esd because libesd was not found]) fi else if test "$want_esd" = yes && test "$have_libesd" = yes then depend_audio="$depend_audio audio_esd.o" fi fi dnl if test "$audio" = nas dnl then dnl if test "$have_libaudio" = no dnl then dnl AC_MSG_ERROR([cannot use --with-nas because libaudio was not found]) dnl fi dnl else dnl if test "$want_nas" = yes && test "$have_libaudio" = yes dnl then dnl depend_audio="$depend_audio audio_nas.o" dnl fi dnl fi if test "$audio" = unknown then AC_MSG_WARN([audio support not available; using null module]) AC_DEFINE(AUDIO_DEFAULT, audio_null, [Define to be the name of your default audio output module.]) else AC_DEFINE_UNQUOTED(AUDIO_DEFAULT, [audio_$audio]) depend_audio="$depend_audio audio_$audio.o" fi dnl madplay options... AC_MSG_CHECKING([whether to enable profiling]) AC_ARG_ENABLE(profiling, AC_HELP_STRING([--enable-profiling], [generate profiling code]), [ case "$enableval" in yes) profile="-pg" ;; esac ]) AC_MSG_RESULT(${enable_profiling-no}) AC_MSG_CHECKING([whether to enable debugging]) AC_ARG_ENABLE(debugging, AC_HELP_STRING([--enable-debugging], [enable diagnostic debugging support]) AC_HELP_STRING([--disable-debugging], [do not enable debugging and use more optimization]), [ case "$enableval" in yes) AC_DEFINE(DEBUG, 1, [Define to enable diagnostic debugging support.]) optimize="" ;; no) if test -n "$profile" then AC_MSG_ERROR([--enable-profiling and --disable-debugging are incompatible]) fi AC_DEFINE(NDEBUG, 1, [Define to disable debugging assertions.]) debug="" if test "$GCC" = yes then optimize="$optimize -fomit-frame-pointer" fi ;; esac ]) AC_MSG_RESULT(${enable_debugging-default}) case "$enable_debugging" in yes) AC_CHECK_LIB(efence, malloc) ;; esac AC_MSG_CHECKING([whether to enable experimental code]) AC_ARG_ENABLE(experimental, AC_HELP_STRING([--enable-experimental], [enable experimental code]), [ case "$enableval" in yes) AC_DEFINE(EXPERIMENTAL, 1, [Define to enable experimental code.]) ;; esac ]) AC_MSG_RESULT(${enable_experimental-no}) dnl Create output files. test -n "$arch" && CFLAGS="$CFLAGS $arch" test -n "$debug" && CFLAGS="$CFLAGS $debug" test -n "$optimize" && CFLAGS="$CFLAGS $optimize" test -n "$profile" && CFLAGS="$CFLAGS $profile" LDFLAGS="$LDFLAGS $profile" AC_CONFIG_FILES([Makefile msvc++/Makefile \ intl/Makefile po/Makefile.in m4/Makefile \ madplay.list]) AC_OUTPUT