AC_PREREQ(2.60)
AC_INIT(mpd, 0.15~git, musicpd-dev-team@lists.sourceforge.net)
AC_CONFIG_SRCDIR([src/main.c])
AM_INIT_AUTOMAKE([foreign 1.9 dist-bzip2])
AM_CONFIG_HEADER(config.h)
AC_CONFIG_MACRO_DIR([m4])
AC_DEFINE(PROTOCOL_VERSION, "0.15.0", [The mpd protocol version])
dnl
dnl programs
dnl
AC_PROG_CC_C99
AC_PROG_CXX
AC_PROG_INSTALL
AC_PROG_MAKE_SET
PKG_PROG_PKG_CONFIG
dnl
dnl declare variables
dnl
AC_SUBST(AM_CFLAGS,"")
AC_SUBST(MPD_LIBS)
AC_SUBST(MPD_CFLAGS)
MPD_LIBS=""
MPD_CFLAGS=""
dnl
dnl OS specific defaults
dnl
AC_CANONICAL_HOST
case "$host_os" in
mingw32* | windows*)
MPD_LIBS="$MPD_LIBS -lws2_32"
;;
esac
if test -z "$prefix" || test "x$prefix" = xNONE; then
local_lib=
local_include=
# aren't autotools supposed to be smart enough to figure this out? oh
# well, the git-core Makefile managed to do some of the work for us :)
case "$host_os" in
darwin*)
local_lib='/sw/lib /opt/local/lib'
local_include='/sw/include /opt/local/include'
;;
freebsd* | openbsd*)
local_lib=/usr/local/lib
local_include=/usr/local/include
;;
netbsd*)
local_lib=/usr/pkg/lib
local_include=/usr/pkg/include
LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/pkg/lib"
;;
esac
for d in $local_lib; do
if test -d "$d"; then
LDFLAGS="$LDFLAGS -L$d"
break
fi
done
for d in $local_include; do
if test -d "$d"; then
CFLAGS="$CFLAGS -I$d"
break
fi
done
fi
dnl
dnl libc features
dnl
AC_CHECK_FUNCS(syslog)
if test $ac_cv_func_syslog = no; then
# syslog is not in the default libraries. See if it's in some other.
for lib in bsd socket inet; do
AC_CHECK_LIB($lib, syslog,
[AC_DEFINE(HAVE_SYSLOG)
LIBS="$LIBS -l$lib"; break])
done
fi
AC_CHECK_LIB(socket,socket,MPD_LIBS="$MPD_LIBS -lsocket",)
AC_CHECK_LIB(nsl,gethostbyname,MPD_LIBS="$MPD_LIBS -lnsl",)
AC_CHECK_LIB(m,exp,MPD_LIBS="$MPD_LIBS -lm",)
AC_CHECK_HEADERS(locale.h)
AC_CHECK_HEADERS(valgrind/memcheck.h)
dnl
dnl mandatory libraries
dnl
PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.4 gthread-2.0],,
[AC_MSG_ERROR([glib-2.4 is required])])
dnl
dnl protocol options
dnl
AC_ARG_ENABLE(tcp,
AS_HELP_STRING([--disable-tcp],
[disable support for clients connecting via TCP (default: enable)]),,
[enable_tcp=yes])
AC_ARG_ENABLE(ipv6,
AS_HELP_STRING([--disable-ipv6],
[disable IPv6 support (default: enable)]),,
[enable_ipv6=yes])
if test x$enable_tcp = xno; then
# if we don't support TCP, we don't need IPv6 either
enable_ipv6=no
fi
if test x$enable_ipv6 = xyes; then
AC_MSG_CHECKING(for ipv6)
AC_EGREP_CPP([AP_maGiC_VALUE],
[
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#ifdef PF_INET6
#ifdef AF_INET6
AP_maGiC_VALUE
#endif
#endif
],
AC_DEFINE(HAVE_IPV6, 1, [Define if IPv6 support present])
AC_MSG_RESULT([yes]),
AC_MSG_RESULT([no])
)
fi
if test x$enable_tcp = xyes; then
AC_DEFINE(HAVE_TCP, 1, [Define if TCP socket support is enabled])
fi
AC_ARG_ENABLE(un,
AS_HELP_STRING([--disable-un],
[disable support for clients connecting via unix domain sockets (default: enable)]),,
[enable_un=yes])
if test x$enable_un = xyes; then
AC_DEFINE(HAVE_UN, 1, [Define if unix domain socket support is enabled])
STRUCT_UCRED
fi
dnl ##
dnl misc libraries
dnl ##
dnl ##
dnl Avahi / Zeroconf
dnl ##
AC_ARG_WITH(zeroconf,
AS_HELP_STRING([--with-zeroconf=@<:@auto|avahi|bonjour|no@:>@],
[enable zeroconf backend (default=auto)]),,
with_zeroconf="auto")
case $with_zeroconf in
no|avahi|bonjour)
;;
*)
with_zeroconf=auto
;;
esac
if test x$with_zeroconf != xno; then
if test x$with_zeroconf = xavahi || test x$with_zeroconf = xauto; then
PKG_CHECK_MODULES([AVAHI], [avahi-client avahi-glib],
[found_avahi=1;AC_DEFINE([HAVE_AVAHI], 1, [Define to enable Avahi Zeroconf support])]
MPD_LIBS="$MPD_LIBS $AVAHI_LIBS" MPD_CFLAGS="$MPD_CFLAGS $AVAHI_CFLAGS",
[found_avahi=0])
fi
if test x$found_avahi = x1; then
with_zeroconf=avahi
elif test x$with_zeroconf = xavahi; then
AC_MSG_ERROR([Avahi support requested but not found])
fi
if test x$with_zeroconf = xbonjour || test x$with_zeroconf = xauto; then
AC_CHECK_HEADER(dns_sd.h,
[found_bonjour=1;AC_DEFINE([HAVE_BONJOUR], 1, [Define to enable Bonjour Zeroconf support])],
[found_bonjour=0])
AC_CHECK_LIB(dns_sd, DNSServiceRegister,
MPD_LIBS="$MPD_LIBS -ldns_sd")
fi
if test x$found_bonjour = x1; then
with_zeroconf=bonjour
elif test x$with_zeroconf = xbonjour; then
AC_MSG_ERROR([Bonjour support requested but not found])
fi
if test x$with_zeroconf = xauto; then
AC_MSG_WARN([No supported Zeroconf backend found, disabling Zeroconf])
with_zeroconf=no
else
AC_DEFINE([HAVE_ZEROCONF], 1, [Define to enable Zeroconf support])
fi
fi
AM_CONDITIONAL(HAVE_ZEROCONF, test x$with_zeroconf != xno)
AM_CONDITIONAL(HAVE_AVAHI, test x$with_zeroconf = xavahi)
AM_CONDITIONAL(HAVE_BONJOUR, test x$with_zeroconf = xbonjour)
AC_ARG_ENABLE(sqlite,
AS_HELP_STRING([--enable-sqlite],
[enable support for the SQLite database (default: disable)]),,
[enable_sqlite=no])
if test x$enable_sqlite = xyes; then
PKG_CHECK_MODULES([SQLITE], [sqlite3],,
[AC_MSG_ERROR(sqlite not found)])
AC_DEFINE([ENABLE_SQLITE], 1, [Define to enable sqlite database support])
fi
AM_CONDITIONAL(ENABLE_SQLITE, test x$enable_sqlite = xyes)
dnl
dnl input plugins
dnl
AC_ARG_ENABLE(curl,
AS_HELP_STRING([--disable-curl],
[enable support obtaining song data via HTTP (default: enable)]),,
[enable_curl=yes])
if test x$enable_curl = xyes; then
PKG_CHECK_MODULES(CURL, [libcurl],
AC_DEFINE(HAVE_CURL, 1, [Define when libcurl is used for HTTP streaming]),
enable_curl=no)
fi
AM_CONDITIONAL(HAVE_CURL, test x$enable_curl = xyes)
AC_ARG_ENABLE(lastfm,
AS_HELP_STRING([--enable-lastfm],
[enable support for last.fm radio (default: disable)]),,
[enable_lastfm=no])
if test x$enable_lastfm = xyes; then
if test x$enable_curl != xyes; then
AC_MSG_ERROR([Cannot enable last.fm radio without curl])
fi
AC_DEFINE(ENABLE_LASTFM, 1, [Define when last.fm radio is enabled])
fi
AM_CONDITIONAL(ENABLE_LASTFM, test x$enable_lastfm = xyes)
AC_ARG_ENABLE(mms,
AS_HELP_STRING([--enable-mms],
[enable the MMS protocol with libmms (default: disable)]),,
[enable_mms=no])
if test x$enable_mms = xyes; then
PKG_CHECK_MODULES(MMS, [libmms],
AC_DEFINE(ENABLE_MMS, 1,
[Define when libmms is used for the MMS protocol]),
AC_MSG_ERROR([libmms not found]))
fi
AM_CONDITIONAL(ENABLE_MMS, test x$enable_mms = xyes)
dnl
dnl archive plugins
dnl
dnl bzip2
AC_ARG_ENABLE(bzip2,
AS_HELP_STRING([--enable-bzip2],
[enable bzip2 archive support (default: disabled)]),,
enable_bzip2=no)
if test x$enable_bzip2 = xyes; then
AC_CHECK_LIB(bz2, BZ2_bzDecompressInit,
[MPD_LIBS="$MPD_LIBS -lbz2"],
enable_bzip2=no)
fi
AM_CONDITIONAL(HAVE_BZ2, test x$enable_bzip2 = xyes)
if test x$enable_bzip2 = xyes; then
AC_DEFINE(HAVE_BZ2, 1, [Define to have bz2 archive support])
fi
dnl zip
AC_ARG_ENABLE(zip,
AS_HELP_STRING([--enable-zip],
[enable zip archive support (default: disabled)]),,
enable_zip=no)
if test x$enable_zip = xyes; then
AC_CHECK_LIB(zzip, zzip_dir_open,
[MPD_LIBS="$MPD_LIBS -lzzip"],
enable_zip=no)
fi
AM_CONDITIONAL(HAVE_ZIP, test x$enable_zip = xyes)
if test x$enable_zip = xyes; then
AC_DEFINE(HAVE_ZIP, 1, [Define to have zip archive support])
fi
dnl iso9660
AC_ARG_ENABLE(iso9660,
AS_HELP_STRING([--enable-iso9660],
[enable iso9660 archive support (default: disabled)]),,
enable_iso9660=no)
if test x$enable_iso9660 = xyes; then
AC_CHECK_LIB(iso9660, iso9660_ifs_readdir,
[MPD_LIBS="$MPD_LIBS -liso9660"],
enable_iso9660=no)
fi
AM_CONDITIONAL(HAVE_ISO, test x$enable_iso9660 = xyes)
if test x$enable_iso9660 = xyes; then
AC_DEFINE(HAVE_ISO, 1, [Define to have iso archive support])
fi
dnl archive API
if
test x$enable_bzip2 = xyes ||
test x$enable_zip = xyes ||
test x$enable_iso9660 = xyes; then
enable_archive=yes
AC_DEFINE(ENABLE_ARCHIVE, 1, [The archive API is available])
else
enable_archive=no
fi
AM_CONDITIONAL(ENABLE_ARCHIVE, test x$enable_archive = xyes)
dnl
dnl metadata
dnl
AC_ARG_ENABLE(id3,
AS_HELP_STRING([--disable-id3],
[disable id3 support (default: enable)]),,
enable_id3=yes)
dnl
dnl decoder plugins
dnl
AC_ARG_ENABLE(audiofile,
AS_HELP_STRING([--disable-audiofile],
[disable audiofile support, disables wave support (default: enable)]),,
enable_audiofile=yes)
AC_ARG_ENABLE(ffmpeg,
AS_HELP_STRING([--disable-ffmpeg],
[enable FFMPEG support (default: enable)]),,
enable_ffmpeg=yes)
AC_ARG_ENABLE(flac,
AS_HELP_STRING([--disable-flac],
[disable flac support (default: enable)]),,
enable_flac=yes)
dnl ###
dnl MAD mp3 decoder
dnl ###
dnl Depreciated option, available for backwards compatibility
dnl Also, will not work without the enableval
AC_ARG_ENABLE(mp3,,
enable_mad=$enableval,
enable_mad=yes)
AC_ARG_ENABLE(mad,
AS_HELP_STRING([--disable-mad],
[disable mad mp3 decoder support (default: enable)]),,
enable_mad=yes)
if test x$enable_mad = xyes; then
PKG_CHECK_MODULES([MAD], [mad],
AC_DEFINE(HAVE_MAD, 1, [Define to use libmad]),
enable_mad=no)
fi
AM_CONDITIONAL(HAVE_MAD, test x$enable_mad = xyes)
AC_ARG_ENABLE(mod,
AS_HELP_STRING([--enable-mod],
[enable MOD support (default: disable)]),,
enable_mod=no)
AC_ARG_ENABLE(modplug,
AS_HELP_STRING([--enable-modplug],
[enable MODPLUG support (default: disable)]),,
enable_modplug=no)
AC_ARG_ENABLE(mpc,
AS_HELP_STRING([--disable-mpc],
[disable musepack (MPC) support (default: enable)]),,
enable_mpc=yes)
AC_ARG_ENABLE(oggflac,
AS_HELP_STRING([--disable-oggflac],
[disable OggFLAC support (default: enable)]),,
enable_oggflac=yes)
AC_ARG_ENABLE(oggvorbis,
AS_HELP_STRING([--disable-oggvorbis],
[disable Ogg Vorbis support (default: enable)]),,
enable_oggvorbis=yes)
dnl ###
dnl Ogg Tremor
dnl ###
AC_ARG_WITH(tremor,
AS_HELP_STRING([--with-tremor=PFX],
[use Tremor (vorbisidec) integer Ogg Vorbis decoder (with optional prefix)]),
use_tremor=yes; test x$withval != xyes && tremor_prefix="$withval",
)
AC_ARG_WITH(tremor-libraries,
AS_HELP_STRING([--with-tremor-libraries=DIR],
[directory where Tremor library is installed (optional)]),,
tremor_libraries="")
AC_ARG_WITH(tremor-includes,
AS_HELP_STRING([--with-tremor-includes=DIR],
[directory where Tremor header files are installed (optional)]),,
tremor_includes="")
AC_ARG_ENABLE(sidplay,
AS_HELP_STRING([--enable-sidplay],
[enable C64 SID support via libsidplay2 (default: disable)]),,
enable_sidplay=no)
AC_ARG_ENABLE(fluidsynth,
AS_HELP_STRING([--enable-fluidsynth],
[enable MIDI support via fluidsynth (default: disable)]),,
enable_fluidsynth=no)
AC_ARG_ENABLE(wildmidi,
AS_HELP_STRING([--enable-wildmidi],
[enable MIDI support via wildmidi (default: disable)]),,
enable_wildmidi=no)
AC_ARG_ENABLE(wavpack,
AS_HELP_STRING([--disable-wavpack],
[disable WavPack support (default: enable)]),,
enable_wavpack=yes)
dnl
dnl converters
dnl
AC_ARG_ENABLE(lsr,
AS_HELP_STRING([--disable-lsr],
[disable libsamplerate support (default: enable)]),,
enable_lsr=yes)
if test x$enable_lsr = xyes; then
PKG_CHECK_MODULES([SAMPLERATE], [samplerate >= 0.0.15],
[enable_lsr=yes;AC_DEFINE([HAVE_LIBSAMPLERATE], 1,
[Define to enable libsamplerate])]
MPD_LIBS="$MPD_LIBS $SAMPLERATE_LIBS"
MPD_CFLAGS="$MPD_CFLAGS $SAMPLERATE_CFLAGS",
[enable_lsr=no;AC_MSG_WARN([libsamplerate not found -- disabling])])
fi
if test x$enable_lsr = xyes; then
PKG_CHECK_MODULES([SAMPLERATE_013],
[samplerate >= 0.1.3],,
[AC_DEFINE([HAVE_LIBSAMPLERATE_NOINT], 1,
[libsamplerate doesn't provide src_int_to_float_array() (<0.1.3)])])
fi
AM_CONDITIONAL(HAVE_LIBSAMPLERATE, test x$enable_lsr = xyes)
dnl
dnl encoder plugins
dnl
AC_ARG_ENABLE(lame,
AS_HELP_STRING([--disable-lame],
[disable lame support (default: enable)]),,
enable_lame=yes)
dnl
dnl audio output plugins
dnl
AC_ARG_ENABLE(alsa,
AS_HELP_STRING([--disable-alsa],
[disable ALSA support (default: enable)]),,
enable_alsa=yes)
AC_ARG_ENABLE(ao,
AS_HELP_STRING([--enable-ao],
[enable support for libao (default: disable)]),,
enable_ao=no)
AC_ARG_ENABLE(fifo,
AS_HELP_STRING([--disable-fifo],
[disable support for writing audio to a FIFO (default: enable)]),,
enable_fifo=yes)
AC_ARG_ENABLE(pipe-output,
AS_HELP_STRING([--enable-pipe-output],
[enable support for writing audio to a pipe (default: disable)]),,
enable_pipe_output=no)
if test x$enable_pipe_output = xyes; then
AC_DEFINE([ENABLE_PIPE_OUTPUT], 1,
[Define to enable support for writing audio to a pipe])
fi
AM_CONDITIONAL(ENABLE_PIPE_OUTPUT, test x$enable_pipe_output = xyes)
AC_ARG_ENABLE(jack,
AS_HELP_STRING([--disable-jack],
[disable jack support (default: enable)]),,
enable_jack=yes)
AC_ARG_ENABLE(mvp,
AS_HELP_STRING([--enable-mvp],
[enable support for Hauppauge Media MVP (default: disable)]),,
enable_mvp=no)
AC_ARG_ENABLE(oss,
AS_HELP_STRING([--disable-oss],
[disable OSS support (default: enable)]),,
enable_oss=yes)
AC_ARG_ENABLE(pulse,
AS_HELP_STRING([--disable-pulse],
[disable support for the PulseAudio sound server (default: enable)]),,
enable_pulse=yes)
AC_ARG_ENABLE(shout-ogg,
AS_HELP_STRING([--disable-shout-ogg],
[disable support for ogg streaming through shout (default: enable)]),,
[enable_shout_ogg=yes])
AC_ARG_ENABLE(shout-mp3,
AS_HELP_STRING([--disable-shout-mp3],
[disable support for mp3 streaming through shout (default: enable)]),,
[enable_shout_mp3=yes])
AC_ARG_ENABLE(httpd-output,
AS_HELP_STRING([--enable-httpd-output],
[enables the HTTP server output (default: disable)]),,
[enable_httpd_output=no])
AM_CONDITIONAL(ENABLE_HTTPD_OUTPUT, test x$enable_httpd_output = xyes)
if test x$enable_httpd_output = xyes; then
AC_DEFINE(ENABLE_HTTPD_OUTPUT, 1, [Define to enable the HTTP server output])
fi
enable_osx=no
case "$host_os" in
darwin*)
AC_DEFINE(HAVE_OSX, 1, [Define for compiling OS X support])
MPD_LIBS="$MPD_LIBS -framework AudioUnit -framework CoreServices"
enable_osx=yes ;;
esac
AM_CONDITIONAL(HAVE_OSX, test x$enable_osx = xyes)
if test x$enable_shout_ogg = xyes || test x$enable_shout_mp3 = xyes; then
PKG_CHECK_MODULES([SHOUT], [shout],,
[enable_shout_ogg=no; enable_shout_mp3=no;
AC_MSG_WARN([disabling shout streaming support because libshout is not available])])
fi
if test x$enable_shout_ogg = xyes; then
if test x$enable_oggvorbis = xno; then
AC_MSG_WARN([disabling ogg shout streaming support because vorbis is not enabled])
enable_shout_ogg=no
fi
if test x$use_tremor = xyes; then
AC_MSG_WARN([disabling ogg shout streaming support because tremor does not support vorbis encoding])
enable_shout_ogg=no
fi
if test x$enable_shout_ogg = xyes; then
PKG_CHECK_MODULES(VORBISENC, [vorbisenc],,
enable_shout_ogg=no)
fi
fi
if test x$enable_lame = xyes; then
AM_PATH_LAME([MPD_LIBS="$MPD_LIBS $LAME_LIBS"
MPD_CFLAGS="$MPD_CFLAGS $LAME_CFLAGS"],
[enable_lame=no;
AC_MSG_WARN(You need lame -- disabling lame support)])
fi
if test x$enable_shout_mp3 = xyes; then
if test x$enable_lame = xno; then
AC_MSG_WARN([disabling mp3 shout streaming support because lame is not enabled])
enable_shout_mp3=no
fi
fi
if test x$enable_shout_ogg = xyes || test x$enable_shout_mp3 = xyes; then
enable_shout=yes
AC_DEFINE(HAVE_SHOUT, 1, [Define to enable libshout support])
else
enable_shout=no
fi
AM_CONDITIONAL(HAVE_SHOUT, test x$enable_shout = xyes)
AM_CONDITIONAL(ENABLE_ENCODER, test x$enable_shout = xyes)
AM_CONDITIONAL(ENABLE_VORBIS_ENCODER, test x$enable_shout_ogg = xyes)
if test x$enable_shout_ogg = xyes; then
AC_DEFINE(ENABLE_VORBIS_ENCODER, 1,
[Define to enable the vorbis encoder plugin])
fi
AM_CONDITIONAL(ENABLE_LAME_ENCODER, test x$enable_shout_mp3 = xyes)
if test x$enable_shout_mp3 = xyes; then
AC_DEFINE(ENABLE_LAME_ENCODER, 1,
[Define to enable the lame encoder plugin])
fi
if test x$enable_ao = xyes; then
PKG_CHECK_MODULES(AO, [ao],
AC_DEFINE(HAVE_AO, 1, [Define to play with ao]),
enable_ao=no)
fi
AM_CONDITIONAL(HAVE_AO, test x$enable_ao = xyes)
if test x$enable_oss = xyes; then
AC_CHECK_HEADER(sys/soundcard.h,
[enable_oss=yes;AC_DEFINE(HAVE_OSS,1,[Define to enable OSS])],
[AC_MSG_WARN(Soundcard headers not found -- disabling OSS support);
enable_oss=no])
fi
AM_CONDITIONAL(HAVE_OSS, test x$enable_oss = xyes)
if test x$enable_pulse = xyes; then
PKG_CHECK_MODULES([PULSE], [libpulse-simple],
[enable_pulse=yes;AC_DEFINE([HAVE_PULSE], 1,
[Define to enable PulseAudio support])]
MPD_LIBS="$MPD_LIBS $PULSE_LIBS"
MPD_CFLAGS="$MPD_CFLAGS $PULSE_CFLAGS",
[enable_pulse=no;AC_MSG_WARN([PulseAudio not found -- disabling])])
fi
AM_CONDITIONAL(HAVE_PULSE, test x$enable_pulse = xyes)
if test x$enable_fifo = xyes; then
AC_CHECK_FUNC([mkfifo],
[enable_fifo=yes;AC_DEFINE([HAVE_FIFO], 1,
[Define to enable support for writing audio to a FIFO])],
[enable_fifo=no;AC_MSG_WARN([mkfifo not found -- disabling support for writing audio to a FIFO])])
fi
AM_CONDITIONAL(HAVE_FIFO, test x$enable_fifo = xyes)
if test x$enable_mvp = xyes; then
AC_DEFINE(HAVE_MVP,1,[Define to enable Hauppauge Media MVP support])
fi
AM_CONDITIONAL(HAVE_MVP, test x$enable_mvp = xyes)
if test x$enable_alsa = xyes; then
PKG_CHECK_MODULES(ALSA, [alsa >= 0.9.0],
AC_DEFINE(HAVE_ALSA, 1, [Define to enable ALSA support]),
enable_alsa=no)
fi
AM_CONDITIONAL(HAVE_ALSA, test x$enable_alsa = xyes)
if test x$enable_jack = xyes; then
PKG_CHECK_MODULES([JACK],
[jack >= 0.4],
[enable_jack=yes;
AC_DEFINE([HAVE_JACK], 1,
[Define to enable JACK support])]
MPD_LIBS="$MPD_LIBS $JACK_LIBS"
MPD_CFLAGS="$MPD_CFLAGS $JACK_CFLAGS",
[enable_jack=no;AC_MSG_WARN([JACK not found -- disabling])])
fi
if test x$enable_jack = xyes; then
# check whether jack_set_info_function() is available
old_LIBS=$LIBS
LIBS="$LIBS $JACK_LIBS"
AC_CHECK_FUNCS(jack_set_info_function)
LIBS=$old_LIBS
fi
AM_CONDITIONAL(HAVE_JACK, test x$enable_jack = xyes)
if test x$enable_id3 = xyes; then
PKG_CHECK_MODULES([ID3TAG], [id3tag],,
AC_CHECK_LIB(id3tag, id3_file_open,
[ID3TAG_LIBS="-lid3tag -lz" ID3TAG_CFLAGS=""],
enable_id3=no))
fi
if test x$enable_id3 = xyes; then
AC_DEFINE(HAVE_ID3TAG, 1, [Define to use id3tag])
fi
AM_CONDITIONAL(HAVE_ID3TAG, test x$enable_id3 = xyes)
if test x$enable_mpc = xyes; then
if test "x$mpcdec_libraries" != "x" ; then
MPCDEC_LIBS="-L$mpcdec_libraries"
elif test "x$mpcdec_prefix" != "x" ; then
MPCDEC_LIBS="-L$mpcdec_prefix/lib"
fi
MPCDEC_LIBS="$MPCDEC_LIBS -lmpcdec"
if test "x$mpcdec_includes" != "x" ; then
MPCDEC_CFLAGS="-I$mpcdec_includes"
elif test "x$mpcdec_prefix" != "x" ; then
MPCDEC_CFLAGS="-I$mpcdec_prefix/include"
fi
oldcflags=$CFLAGS
oldlibs=$LIBS
oldcppflags=$CPPFLAGS
CFLAGS="$CFLAGS $MPD_CFLAGS $MPCDEC_CFLAGS -I."
LIBS="$LIBS $MPD_LIBS $MPCDEC_LIBS"
CPPFLAGS=$CFLAGS
AC_CHECK_HEADER(mpcdec/mpcdec.h,,enable_mpc=no)
if test x$enable_mpc = xyes; then
AC_CHECK_LIB(mpcdec,main,
[MPD_LIBS="$MPD_LIBS $MPCDEC_LIBS";
MPD_CFLAGS="$MPD_CFLAGS $MPCDEC_CFLAGS";],
enable_mpc=no)
fi
if test x$enable_mpc = xyes; then
AC_DEFINE(HAVE_MPCDEC,1,
[Define to use libmpcdec for MPC decoding])
else
AC_MSG_WARN([mpcdec lib needed for MPC support -- disabling MPC support])
fi
CFLAGS=$oldcflags
LIBS=$oldlibs
CPPFLAGS=$oldcppflags
fi
AM_CONDITIONAL(HAVE_MPCDEC, test x$enable_mpc = xyes)
if test x$enable_wavpack = xyes; then
PKG_CHECK_MODULES([WAVPACK], [wavpack],
[enable_wavpack=yes;
AC_DEFINE([HAVE_WAVPACK], 1,
[Define to enable WavPack support])]
MPD_LIBS="$MPD_LIBS $WAVPACK_LIBS"
MPD_CFLAGS="$MPD_CFLAGS $WAVPACK_CFLAGS",
[enable_wavpack=no;
AC_MSG_WARN([WavPack not found -- disabling])])
fi
AM_CONDITIONAL(HAVE_WAVPACK, test x$enable_wavpack = xyes)
AM_PATH_FAAD()
AM_CONDITIONAL(HAVE_FAAD, test x$enable_aac = xyes)
AM_CONDITIONAL(HAVE_MP4, test x$enable_mp4 = xyes)
if test x$use_tremor = xyes; then
if test "x$tremor_libraries" != "x" ; then
TREMOR_LIBS="-L$tremor_libraries"
elif test "x$tremor_prefix" != "x" ; then
TREMOR_LIBS="-L$tremor_prefix/lib"
fi
TREMOR_LIBS="$TREMOR_LIBS -lvorbisidec"
if test "x$tremor_includes" != "x" ; then
TREMOR_CFLAGS="-I$tremor_includes"
elif test "x$tremor_prefix" != "x" ; then
TREMOR_CFLAGS="-I$tremor_prefix/include"
fi
ac_save_CFLAGS="$CFLAGS"
ac_save_LIBS="$LIBS"
CFLAGS="$CFLAGS $TREMOR_CFLAGS"
LIBS="$LIBS $TREMOR_LIBS"
AC_CHECK_LIB(vorbisidec,ov_read,enable_oggvorbis=yes,enable_oggvorbis=no;
AC_MSG_WARN([vorbisidec lib needed for ogg support with tremor -- disabling ogg support]))
if test x$enable_oggvorbis = xyes; then
AC_DEFINE(HAVE_OGGVORBIS, 1, [Define for Ogg Vorbis support]),
else
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
fi
elif test x$enable_oggvorbis = xyes; then
PKG_CHECK_MODULES(OGGVORBIS, [ogg vorbis vorbisfile],
AC_DEFINE(HAVE_OGGVORBIS, 1, [Define for Ogg Vorbis support]),
enable_oggvorbis=no)
fi
AM_CONDITIONAL(HAVE_OGGVORBIS, test x$enable_oggvorbis = xyes)
if test x$use_tremor = xyes; then
AC_DEFINE(HAVE_TREMOR,1,
[Define to use tremor (libvorbisidec) for ogg support])
if test x$enable_oggflac = xyes; then
AC_MSG_WARN([disabling OggFLAC support because it is incompatible with tremor])
enable_oggflac=no
fi
fi
if test x$enable_flac = xyes; then
PKG_CHECK_MODULES(FLAC, [flac >= 1.1],
AC_DEFINE(HAVE_FLAC, 1, [Define for FLAC support]),
enable_flac=no)
oldcflags="$CFLAGS"
oldlibs="$LIBS"
CFLAGS="$CFLAGS $FLAC_CFLAGS"
LIBS="$LIBS $FLAC_LIBS"
if test x$enable_flac = xyes && test x$enable_oggflac = xyes; then
AC_CHECK_DECL(FLAC_API_SUPPORTS_OGG_FLAC,
[enable_oggflac=flac], [],
[#include <FLAC/export.h>])
fi
CFLAGS="$oldcflags"
LIBS="$oldlibs"
fi
AM_CONDITIONAL(HAVE_FLAC, test x$enable_flac = xyes)
if test x$enable_oggflac = xyes; then
oldmpdcflags="$MPD_CFLAGS"
oldmpdlibs="$MPD_LIBS"
AM_PATH_LIBOGGFLAC(MPD_LIBS="$MPD_LIBS $LIBOGGFLAC_LIBS"
MPD_CFLAGS="$MPD_CFLAGS $LIBOGGFLAC_CFLAGS",
enable_oggflac=no)
fi
if test x$enable_oggflac = xyes; then
AC_DEFINE(HAVE_OGGFLAC,1,[Define for OggFLAC support])
fi
AM_CONDITIONAL(HAVE_OGGFLAC, test x$enable_oggflac = xyes)
AM_CONDITIONAL(HAVE_FLAC_COMMON,
test x$enable_flac = xyes || test x$enable_oggflac = xyes)
AM_CONDITIONAL(HAVE_OGG_COMMON,
test x$enable_oggvorbis = xyes || test x$enable_oggflac = xyes || test x$enable_flac = xyes)
if test x$enable_audiofile = xyes; then
PKG_CHECK_MODULES(AUDIOFILE, [audiofile >= 0.1.7],
AC_DEFINE(HAVE_AUDIOFILE, 1, [Define for audiofile support]),
enable_audiofile=no)
fi
AM_CONDITIONAL(HAVE_AUDIOFILE, test x$enable_audiofile = xyes)
if test x$enable_mod = xyes; then
AC_PATH_PROG(LIBMIKMOD_CONFIG, libmikmod-config)
if test x$LIBMIKMOD_CONFIG != x ; then
AC_SUBST(LIBMIKMOD_CFLAGS, `$LIBMIKMOD_CONFIG --cflags`)
AC_SUBST(LIBMIKMOD_LIBS, `$LIBMIKMOD_CONFIG --libs`)
AC_DEFINE(HAVE_MIKMOD, 1, [Define for mikmod support])
else
enable_mod=no
fi
fi
AM_CONDITIONAL(HAVE_MIKMOD, test x$enable_mod = xyes)
if test x$enable_modplug = xyes; then
PKG_CHECK_MODULES(MODPLUG, [libmodplug],
AC_DEFINE(HAVE_MODPLUG, 1, [Define for modplug support]),
enable_modplug=no)
fi
AM_CONDITIONAL(HAVE_MODPLUG, test x$enable_modplug = xyes)
if test x$enable_ffmpeg = xyes; then
PKG_CHECK_MODULES(FFMPEG, [libavformat libavcodec libavutil],,
enable_ffmpeg=no)
fi
if test x$enable_ffmpeg = xyes; then
old_LIBS=$LIBS
LIBS="$LIBS $FFMPEG_LIBS"
AC_CHECK_LIB(avcodec, avcodec_decode_audio2,,
enable_ffmpeg=no)
LIBS=$old_LIBS
fi
if test x$enable_ffmpeg = xyes; then
# prior to ffmpeg svn12865, you had to specify include files
# without path prefix
old_CPPCFLAGS=$CPPFLAGS
CPPFLAGS="$CPPFLAGS $FFMPEG_CFLAGS"
AC_CHECK_HEADER(libavcodec/avcodec.h,,
AC_DEFINE(OLD_FFMPEG_INCLUDES, 1,
[Define if avcodec.h instead of libavcodec/avcodec.h should be included]))
CPPCFLAGS=$old_CPPFLAGS
fi
if test x$enable_ffmpeg = xyes; then
AC_DEFINE(HAVE_FFMPEG, 1, [Define for FFMPEG support])
fi
AM_CONDITIONAL(HAVE_FFMPEG, test x$enable_ffmpeg = xyes)
if test x$enable_sidplay = xyes; then
# we have no test yet.. we're not using pkg-config here
# because libsidplay2's .pc file requires libtool
AC_SUBST(SIDPLAY_LIBS,"-lsidplay2 -lresid-builder")
AC_SUBST(SIDPLAY_CFLAGS,)
AC_DEFINE(ENABLE_SIDPLAY, 1, [Define for libsidplay2 support])
fi
AM_CONDITIONAL(ENABLE_SIDPLAY, test x$enable_sidplay = xyes)
if test x$enable_fluidsynth = xyes; then
PKG_CHECK_MODULES(FLUIDSYNTH, [fluidsynth],
AC_DEFINE(ENABLE_FLUIDSYNTH, 1, [Define for fluidsynth support]),
enable_fluidsynth=no)
fi
AM_CONDITIONAL(ENABLE_FLUIDSYNTH, test x$enable_fluidsynth = xyes)
if test x$enable_wildmidi = xyes; then
oldcflags=$CFLAGS
oldlibs=$LIBS
oldcppflags=$CPPFLAGS
AC_CHECK_LIB(WildMidi, WildMidi_Init,,
AC_MSG_ERROR([libwildmidi not found]))
CFLAGS=$oldcflags
LIBS=$oldlibs
CPPFLAGS=$oldcppflags
AC_SUBST(WILDMIDI_LIBS,-lWildMidi)
AC_SUBST(WILDMIDI_CFLAGS,)
AC_DEFINE(ENABLE_WILDMIDI, 1, [Define for wildmidi support])
fi
AM_CONDITIONAL(ENABLE_WILDMIDI, test x$enable_wildmidi = xyes)
dnl
dnl Documentation
dnl
AC_ARG_ENABLE(documentation,
AS_HELP_STRING([--enable-documentation],
[build documentation (default: disable)]),,
[enable_documentation=no])
if test x$enable_documentation = xyes; then
AC_PATH_PROG(XMLTO, xmlto)
AC_SUBST(XMLTO)
AM_CONDITIONAL(HAVE_XMLTO, test x$XMLTO != x)
AC_PATH_PROG(DOXYGEN, doxygen)
if test x$DOXYGEN = x; then
AC_MSG_ERROR([doxygen not found])
fi
AC_SUBST(DOXYGEN)
else
AM_CONDITIONAL(HAVE_XMLTO, false)
fi
AM_CONDITIONAL(ENABLE_DOCUMENTATION, test x$enable_documentation = xyes)
dnl
dnl build options
dnl
AC_ARG_ENABLE(werror,
AS_HELP_STRING([--enable-werror],
[treat warnings as errors (default: disabled)]),,
enable_werror=no)
if test "x$enable_werror" = xyes; then
AM_CFLAGS="$AM_CFLAGS -Werror -pedantic-errors"
fi
AC_ARG_ENABLE(debug,
AS_HELP_STRING([--enable-debug],
[enable debugging (default: disabled)]),,
enable_debug=no)
#if test "x$enable_debug" = xno; then
# don't set NDEBUG for now, until MPD is stable
#AM_CFLAGS="$AM_CFLAGS -DNDEBUG"
#fi
AC_ARG_ENABLE(gprof,
AS_HELP_STRING([--enable-gprof],
[enable profiling via gprof (default: disabled)]),,
enable_gprof=no)
if test "x$enable_gprof" = xyes; then
MPD_CFLAGS="$MPD_CFLAGS -pg"
MPD_LIBS="$MPD_LIBS -pg"
fi
AC_ARG_ENABLE(test,
AS_HELP_STRING([--enable-test],
[build the test programs (default: disabled)]),,
enable_test=no)
AM_CONDITIONAL(ENABLE_TEST, test "x$enable_test" = xyes)
dnl
dnl CFLAGS
dnl
if test x$GCC = xyes
then
MPD_CHECK_FLAG([-Wall])
MPD_CHECK_FLAG([-Wextra])
MPD_CHECK_FLAG([-Wno-deprecated-declarations])
MPD_CHECK_FLAG([-Wmissing-prototypes])
MPD_CHECK_FLAG([-Wdeclaration-after-statement])
MPD_CHECK_FLAG([-Wshadow])
MPD_CHECK_FLAG([-Wpointer-arith])
MPD_CHECK_FLAG([-Wstrict-prototypes])
MPD_CHECK_FLAG([-Wcast-qual])
MPD_CHECK_FLAG([-Wwrite-strings])
MPD_CHECK_FLAG([-pedantic])
fi
dnl
dnl pretty-print result
dnl
echo ""
echo "########### MPD CONFIGURATION ############"
echo ""
echo " Client Support:"
if test x$enable_ipv6 = xyes; then
echo " IPv6 support ..................enabled"
else
echo " IPv6 support ..................disabled"
fi
if test x$enable_tcp = xyes; then
echo " TCP support ...................enabled"
else
echo " TCP support ...................disabled"
fi
if test x$enable_un = xyes; then
echo " Unix domain socket support ....enabled"
else
echo " Unix domain socket support ....disabled"
fi
echo ""
if
test x$enable_tcp = xno &&
test x$enable_un = xno; then
AC_MSG_ERROR([No client interfaces configured!])
fi
echo " Playback Support:"
if test x$enable_alsa = xyes; then
echo " ALSA support ..................enabled"
else
echo " ALSA support ..................disabled"
fi
if test x$enable_fifo = xyes; then
echo " FIFO support ..................enabled"
else
echo " FIFO support ..................disabled"
fi
if test x$enable_jack = xyes; then
echo " JACK support ..................enabled"
else
echo " JACK support ..................disabled"
fi
if test x$enable_ao = xyes; then
echo " libao support .................enabled"
else
echo " libao support .................disabled"
fi
if test x$enable_oss = xyes; then
echo " OSS support ...................enabled"
else
echo " OSS support ...................disabled"
fi
if test x$enable_osx = xyes; then
echo " OS X support ..................enabled"
else
echo " OS X support ..................disabled"
fi
if test x$enable_pipe_output = xyes; then
echo " Pipeline output support .......enabled"
else
echo " Pipeline output support .......disabled"
fi
if test x$enable_pulse = xyes; then
echo " PulseAudio support ............enabled"
else
echo " PulseAudio support ............disabled"
fi
if test x$enable_mvp = xyes; then
echo " Media MVP support .............enabled"
else
echo " Media MVP support .............disabled"
fi
if test x$enable_shout = xyes; then
echo " SHOUTcast support .............enabled"
if test x$enable_shout_mp3 = xyes; then
echo " with LAME mp3 encoder .......enabled"
else
echo " with LAME mp3 encoder .......disabled"
fi
if test x$enable_shout_ogg = xyes; then
echo " with Ogg Vorbis encoder .....enabled"
else
echo " with Ogg Vorbis encoder .....disabled"
fi
else
echo " SHOUTcast support .............disabled"
fi
if test x$enable_httpd_output = xyes; then
echo " HTTP daemon support ...........enabled"
else
echo " HTTP daemon support ...........disabled"
fi
echo ""
if
test x$enable_ao = xno &&
test x$enable_oss = xno &&
test x$enable_shout_ogg = xno &&
test x$enable_shout_mp3 = xno &&
test x$enable_alsa = xno &&
test x$enable_osx = xno &&
test x$enable_pulse = xno &&
test x$enable_jack = xno &&
test x$enable_fifo = xno &&
test x$enable_pipe_output = xno &&
test x$enable_mvp = xno; then
AC_MSG_ERROR([No Audio Output types configured!])
fi
echo " File Format Support:"
if test x$enable_aac = xyes; then
echo " AAC support ...................enabled"
else
echo " AAC support ...................disabled"
fi
if test x$enable_sidplay = xyes; then
echo " C64 SID support ...............enabled"
else
echo " C64 SID support ...............disabled"
fi
if test x$enable_ffmpeg = xyes; then
echo " FFMPEG support ................enabled"
else
echo " FFMPEG support ................disabled"
fi
if test x$enable_flac = xyes; then
echo " FLAC support ..................enabled"
else
echo " FLAC support ..................disabled"
fi
if test x$enable_fluidsynth = xyes; then
echo " fluidsynth MIDI support .......enabled"
else
echo " fluidsynth MIDI support .......disabled"
fi
if test x$enable_mod = xyes; then
echo " MOD support ...................enabled"
else
echo " MOD support ...................disabled"
fi
if test x$enable_modplug = xyes; then
echo " MODPLUG support ...............enabled"
else
echo " MODPLUG support ...............disabled"
fi
if test x$enable_mad = xyes; then
echo " MAD mp3 decoder support .......enabled"
else
echo " MAD mp3 decoder support .......disabled"
fi
if test x$enable_mp4 = xyes; then
echo " MP4 support ...................enabled"
else
echo " MP4 support ...................disabled"
fi
if test x$enable_mpc = xyes; then
echo " Musepack (MPC) support ........enabled"
else
echo " Musepack (MPC) support ........disabled"
fi
case $enable_oggflac in
yes)
echo " OggFLAC support ...............enabled"
;;
flac)
echo " OggFLAC support ...............enabled(FLAC 1.1.3)"
;;
*)
echo " OggFLAC support ...............disabled"
;;
esac
if test x$enable_oggvorbis = xyes; then
echo " Ogg Vorbis support ............enabled"
if test x$use_tremor = xyes; then
echo " using tremor.................yes"
else
echo " using tremor.................no"
fi
else
echo " Ogg Vorbis support ............disabled"
fi
if test x$enable_audiofile = xyes; then
echo " Wave file support .............enabled"
else
echo " Wave file support .............disabled"
fi
if test x$enable_wavpack = xyes; then
echo " WavPack support ...............enabled"
else
echo " WavPack support ...............disabled"
fi
if test x$enable_wildmidi = xyes; then
echo " wildmidi MIDI support .........enabled"
else
echo " wildmidi MIDI support .........disabled"
fi
if
test x$enable_mad = xno &&
test x$enable_oggvorbis = xno &&
test x$enable_flac = xno &&
test x$enable_oggflac = xno &&
test x$enable_audiofile = xno &&
test x$enable_aac = xno &&
test x$enable_mpc = xno &&
test x$enable_wavpack = xno &&
test x$enable_ffmpeg = xno &&
test x$enable_modplug = xno &&
test x$enable_sidplay = xno &&
test x$enable_fluidsynth = xno &&
test x$enable_wildmidi = xno &&
test x$enable_mp4 = xno &&
test x$enable_mod = xno; then
AC_MSG_ERROR([No input plugins supported!])
fi
echo ""
echo " Archive support:"
if test x$enable_bzip2 = xyes; then
echo " BZ2 archives support ..........enabled"
else
echo " BZ2 archives support ..........disabled"
fi
if test x$enable_iso9660 = xyes; then
echo " ISO 9660 archives support .....enabled"
else
echo " ISO 9660 archives support .....disabled"
fi
if test x$enable_zip = xyes; then
echo " ZIP archives support ..........enabled"
else
echo " ZIP archives support ..........disabled"
fi
echo ""
echo " Streaming support:"
if test x$enable_lastfm = xyes; then
echo " last.fm radio support .........enabled"
else
echo " last.fm radio support .........disabled"
fi
if test x$enable_curl = xyes; then
echo " libcurl support (streaming) ...enabled"
else
echo " libcurl support (streaming) ...disabled"
fi
if test x$enable_mms = xyes; then
echo " libmms support ................enabled"
else
echo " libmms support ................disabled"
fi
echo ""
echo " Other features:"
if test x$enable_id3 = xyes; then
echo " ID3 tag support ...............enabled"
else
echo " ID3 tag support ...............disabled"
fi
if test x$enable_lsr = xyes; then
echo " libsamplerate support .........enabled"
else
echo " libsamplerate support .........disabled"
fi
if test x$with_zeroconf != xno; then
echo " Zeroconf support ..............$with_zeroconf"
else
echo " Zeroconf support ..............disabled"
fi
echo ""
echo "##########################################"
echo ""
echo "Generating needed files for compilation"
echo ""
dnl
dnl generate files
dnl
AC_OUTPUT(Makefile)
echo ""
echo "You are now ready to compile MPD"
echo "Type \"make\" to compile MPD"