2007-06-01 20:32:25 +02:00
AC_PREREQ(2.60)
2008-12-25 22:18:46 +01:00
AC_INIT(mpd, 0.15~git, musicpd-dev-team@lists.sourceforge.net)
2008-11-07 17:14:52 +01:00
AC_CONFIG_SRCDIR([src/main.c])
2008-10-18 07:21:04 +02:00
AM_INIT_AUTOMAKE([foreign 1.9 dist-bzip2])
2008-11-07 17:14:52 +01:00
AM_CONFIG_HEADER(config.h)
2008-09-23 22:38:46 +02:00
AC_CONFIG_MACRO_DIR([m4])
2004-02-24 00:41:20 +01:00
2009-02-04 18:52:34 +01:00
AC_DEFINE(PROTOCOL_VERSION, "0.15.0", [The mpd protocol version])
2009-01-05 09:31:04 +01:00
dnl
dnl programs
dnl
2004-02-24 00:41:20 +01:00
2008-09-29 15:51:02 +02:00
AC_PROG_CC_C99
2009-02-12 18:14:14 +01:00
AC_PROG_CXX
2004-03-17 19:13:29 +01:00
AC_PROG_INSTALL
2004-05-18 22:27:12 +02:00
AC_PROG_MAKE_SET
2009-01-05 09:31:04 +01:00
PKG_PROG_PKG_CONFIG
2004-03-17 19:13:29 +01:00
2004-03-18 04:29:25 +01:00
2009-01-06 09:07:02 +01:00
dnl
dnl declare variables
dnl
2009-02-25 16:46:07 +01:00
AC_SUBST(AM_CFLAGS,"")
2009-01-06 09:07:02 +01:00
AC_SUBST(MPD_LIBS)
AC_SUBST(MPD_CFLAGS)
MPD_LIBS=""
MPD_CFLAGS=""
2009-01-05 09:31:04 +01:00
dnl
dnl OS specific defaults
dnl
2006-07-18 11:55:15 +02:00
2009-02-18 23:01:08 +01:00
AC_CANONICAL_HOST
2009-02-18 23:07:13 +01:00
case "$host_os" in
mingw32* | windows*)
2009-01-03 13:21:25 +01:00
MPD_LIBS="$MPD_LIBS -lws2_32"
;;
esac
2006-07-23 01:28:30 +02:00
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
2006-07-18 11:55:15 +02:00
2006-07-23 01:28:30 +02:00
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
2004-02-24 00:41:20 +01:00
2008-10-16 08:40:55 +02:00
2008-12-28 19:48:53 +01:00
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
2009-01-05 09:31:04 +01:00
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",)
2009-01-05 09:31:09 +01:00
AC_CHECK_HEADERS(locale.h)
2009-01-05 09:31:04 +01:00
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])])
2008-12-28 19:48:53 +01:00
2008-10-16 08:40:55 +02:00
dnl
dnl protocol options
dnl
2009-01-05 09:43:07 +01:00
AC_ARG_ENABLE(tcp,
AS_HELP_STRING([--disable-tcp],
2009-03-06 09:53:12 +01:00
[disable support for clients connecting via TCP (default: enable)]),,
2009-01-05 09:43:07 +01:00
[enable_tcp=yes])
2008-10-16 08:40:55 +02:00
AC_ARG_ENABLE(ipv6,
AS_HELP_STRING([--disable-ipv6],
2009-03-06 09:53:12 +01:00
[disable IPv6 support (default: enable)]),,
2008-10-16 08:40:55 +02:00
[enable_ipv6=yes])
2009-01-05 09:43:07 +01:00
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
2008-10-16 08:40:55 +02:00
AC_ARG_ENABLE(un,
2008-12-24 03:32:11 +01:00
AS_HELP_STRING([--disable-un],
2009-03-06 09:53:12 +01:00
[disable support for clients connecting via unix domain sockets (default: enable)]),,
2008-10-16 08:40:55 +02:00
[enable_un=yes])
2009-01-05 09:43:07 +01:00
if test x$enable_un = xyes; then
AC_DEFINE(HAVE_UN, 1, [Define if unix domain socket support is enabled])
STRUCT_UCRED
fi
2008-10-16 08:40:55 +02:00
2008-10-26 19:32:43 +01:00
dnl
2009-01-05 09:41:45 +01:00
dnl misc libraries
2008-10-26 19:32:43 +01:00
dnl
2009-01-05 09:41:45 +01:00
AC_ARG_WITH(zeroconf,[[ --with-zeroconf=[auto|avahi|bonjour|no] Enable zeroconf backend (default=auto)]], with_zeroconf="$withval", with_zeroconf="auto")
2008-10-26 19:32:43 +01:00
2009-01-05 09:44:48 +01:00
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)
2009-01-12 09:56:14 +01:00
AC_ARG_ENABLE(sqlite,
AS_HELP_STRING([--enable-sqlite],
2009-03-06 09:53:12 +01:00
[enable support for the SQLite database (default: disable)]),,
2009-01-12 09:56:14 +01:00
[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)
2008-10-26 19:32:43 +01:00
2008-10-16 08:40:55 +02:00
dnl
2009-01-05 09:41:45 +01:00
dnl input plugins
2008-10-16 08:40:55 +02:00
dnl
2009-01-05 09:41:45 +01:00
AC_ARG_ENABLE(curl,
AS_HELP_STRING([--disable-curl],
2009-03-06 09:53:12 +01:00
[enable support obtaining song data via HTTP (default: enable)]),,
2009-01-05 09:41:45 +01:00
[enable_curl=yes])
2008-10-16 08:40:55 +02:00
2009-01-05 09:44:48 +01:00
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)
2009-03-02 23:11:31 +01:00
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
2009-03-06 01:21:53 +01:00
AC_DEFINE(ENABLE_LASTFM, 1, [Define when last.fm radio is enabled])
2009-03-02 23:11:31 +01:00
fi
AM_CONDITIONAL(ENABLE_LASTFM, test x$enable_lastfm = xyes)
2009-01-29 21:42:10 +01:00
AC_ARG_ENABLE(mms,
AS_HELP_STRING([--enable-mms],
[enable the MMS protocol with libmms (default: disable)]),,
2009-01-29 23:44:24 +01:00
[enable_mms=no])
2009-01-29 21:42:10 +01:00
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)
2008-10-16 08:40:55 +02:00
2008-12-16 21:45:59 +01:00
dnl
dnl archive plugins
dnl
2008-12-27 13:45:17 +01:00
dnl bzip2
2008-12-27 18:50:37 +01:00
AC_ARG_ENABLE(bzip2,
2008-12-27 19:44:58 +01:00
AS_HELP_STRING([--enable-bzip2],
2009-03-06 09:53:12 +01:00
[enable bzip2 archive support (default: disabled)]),,
2008-12-16 21:45:59 +01:00
enable_bz2=no)
2008-12-29 10:01:33 +01:00
if test x$enable_bz2 = xyes; then
2008-12-29 11:27:11 +01:00
AC_CHECK_LIB(bz2, BZ2_bzDecompressInit,
[MPD_LIBS="$MPD_LIBS -lbz2"],
enable_bz2=no)
2008-12-29 10:01:33 +01:00
fi
2008-12-27 13:45:17 +01:00
2008-12-16 21:45:59 +01:00
AM_CONDITIONAL(HAVE_BZ2, test x$enable_bz2 = xyes)
2008-12-27 13:45:17 +01:00
if test x$enable_bz2 = xyes; then
AC_DEFINE(HAVE_BZ2, 1, [Define to have bz2 archive support])
fi
2008-12-16 21:45:59 +01:00
2008-12-27 13:45:17 +01:00
dnl zip
2008-12-16 21:46:11 +01:00
AC_ARG_ENABLE(zip,
AS_HELP_STRING([--enable-zip],
2009-03-06 09:53:12 +01:00
[enable zip archive support (default: disabled)]),,
2008-12-16 21:46:11 +01:00
enable_zip=no)
2008-12-29 10:01:33 +01:00
if test x$enable_zip = xyes; then
2008-12-29 11:27:11 +01:00
AC_CHECK_LIB(zzip, zzip_dir_open,
[MPD_LIBS="$MPD_LIBS -lzzip"],
enable_zip=no)
2008-12-29 10:01:33 +01:00
fi
2008-12-27 13:45:17 +01:00
2008-12-16 21:46:11 +01:00
AM_CONDITIONAL(HAVE_ZIP, test x$enable_zip = xyes)
2008-12-27 13:45:17 +01:00
if test x$enable_zip = xyes; then
AC_DEFINE(HAVE_ZIP, 1, [Define to have zip archive support])
fi
2008-12-16 21:46:11 +01:00
2008-12-27 13:45:17 +01:00
dnl iso9660
2008-12-16 21:48:26 +01:00
AC_ARG_ENABLE(iso9660,
AS_HELP_STRING([--enable-iso9660],
2009-03-06 09:53:12 +01:00
[enable iso9660 archive support (default: disabled)]),,
2008-12-16 21:48:26 +01:00
enable_iso=no)
2008-12-29 10:01:33 +01:00
if test x$enable_iso = xyes; then
2008-12-29 11:27:11 +01:00
AC_CHECK_LIB(iso9660, iso9660_ifs_readdir,
[MPD_LIBS="$MPD_LIBS -liso9660"],
enable_iso=no)
2008-12-29 10:01:33 +01:00
fi
2008-12-27 13:45:17 +01:00
AM_CONDITIONAL(HAVE_ISO, test x$enable_iso = xyes)
2008-12-16 21:48:26 +01:00
if test x$enable_iso = xyes; then
AC_DEFINE(HAVE_ISO, 1, [Define to have iso archive support])
fi
2008-12-27 14:33:41 +01:00
dnl archive API
if test x$enable_bz2 = xyes || test x$enable_zip = xyes || test x$enable_iso = 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)
2008-12-27 13:45:17 +01:00
2008-10-16 08:40:55 +02:00
dnl
2009-01-05 09:41:45 +01:00
dnl metadata
2008-10-16 08:40:55 +02:00
dnl
2009-01-05 09:41:45 +01:00
AC_ARG_ENABLE(id3,
AS_HELP_STRING([--disable-id3],
2009-03-06 09:53:12 +01:00
[disable id3 support (default: enable)]),,
2009-01-05 09:41:45 +01:00
enable_id3=yes)
2008-10-16 08:40:55 +02:00
2009-01-05 09:41:45 +01:00
dnl
dnl decoder plugins
dnl
2008-10-16 08:40:55 +02:00
AC_ARG_ENABLE(aac,
AS_HELP_STRING([--disable-aac],
2009-03-06 09:53:12 +01:00
[disable AAC support (default: enable)]),,
2008-10-16 08:40:55 +02:00
enable_aac=yes)
2009-01-05 09:41:45 +01:00
AC_ARG_WITH(faad,[ --with-faad=PFX Prefix where faad2 is installed], faad_prefix="$withval", faad_prefix="")
AC_ARG_WITH(faad-libraries,[ --with-faad-libraries=DIR Directory where faad2 library is installed (optional)], faad_libraries="$withval", faad_libraries="")
AC_ARG_WITH(faad-includes,[ --with-faad-includes=DIR Directory where faad2 header files are installed (optional)], faad_includes="$withval", faad_includes="")
2008-10-16 08:40:55 +02:00
AC_ARG_ENABLE(audiofile,
AS_HELP_STRING([--disable-audiofile],
2009-03-06 09:53:12 +01:00
[disable audiofile support, disables wave support (default: enable)]),,
2008-10-16 08:40:55 +02:00
enable_audiofile=yes)
2009-01-05 09:41:45 +01:00
AC_ARG_ENABLE(ffmpeg,
AS_HELP_STRING([--disable-ffmpeg],
2009-03-06 09:53:12 +01:00
[enable FFMPEG support (default: enable)]),,
2009-01-05 09:41:45 +01:00
enable_ffmpeg=yes)
AC_ARG_ENABLE(flac,
AS_HELP_STRING([--disable-flac],
2009-03-06 09:53:12 +01:00
[disable flac support (default: enable)]),,
2009-01-05 09:41:45 +01:00
enable_flac=yes)
2009-03-06 10:29:11 +01:00
dnl ###
dnl MAD mp3 decoder
dnl ###
2009-03-06 11:05:20 +01:00
2009-03-06 10:29:11 +01:00
dnl Depreciated option, available for backwards compatibility
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=$enableval,
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)
2008-10-16 08:40:55 +02:00
AC_ARG_ENABLE(mod,
AS_HELP_STRING([--enable-mod],
2009-03-06 09:53:12 +01:00
[enable MOD support (default: disable)]),,
2008-12-24 03:24:23 +01:00
enable_mod=no)
2008-10-16 08:40:55 +02:00
2008-12-28 17:11:18 +01:00
AC_ARG_ENABLE(modplug,
AS_HELP_STRING([--enable-modplug],
2009-03-06 09:53:12 +01:00
[enable MODPLUG support (default: disable)]),,
2008-12-28 17:11:18 +01:00
enable_modplug=no)
2008-10-16 08:40:55 +02:00
AC_ARG_ENABLE(mpc,
AS_HELP_STRING([--disable-mpc],
2009-03-06 09:53:12 +01:00
[disable musepack (MPC) support (default: enable)]),,
2008-10-16 08:40:55 +02:00
enable_mpc=yes)
2009-01-05 09:41:45 +01:00
AC_ARG_ENABLE(oggflac,
AS_HELP_STRING([--disable-oggflac],
2009-03-06 09:53:12 +01:00
[disable OggFLAC support (default: enable)]),,
2009-01-05 09:41:45 +01:00
enable_oggflac=yes)
AC_ARG_ENABLE(oggvorbis,
AS_HELP_STRING([--disable-oggvorbis],
2009-03-06 09:53:12 +01:00
[disable Ogg Vorbis support (default: enable)]),,
2009-01-05 09:41:45 +01:00
enable_oggvorbis=yes)
2009-03-06 11:05:20 +01:00
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="")
2009-01-05 09:41:45 +01:00
2009-02-11 20:31:17 +01:00
AC_ARG_ENABLE(sidplay,
AS_HELP_STRING([--enable-sidplay],
[enable C64 SID support via libsidplay2 (default: disable)]),,
enable_sidplay=no)
2009-02-12 08:43:26 +01:00
AC_ARG_ENABLE(fluidsynth,
AS_HELP_STRING([--enable-fluidsynth],
[enable MIDI support via fluidsynth (default: disable)]),,
enable_fluidsynth=no)
2009-02-12 16:43:18 +01:00
AC_ARG_ENABLE(wildmidi,
AS_HELP_STRING([--enable-wildmidi],
[enable MIDI support via wildmidi (default: disable)]),,
enable_wildmidi=no)
2008-10-16 08:40:55 +02:00
AC_ARG_ENABLE(wavpack,
AS_HELP_STRING([--disable-wavpack],
2009-03-06 09:53:12 +01:00
[disable WavPack support (default: enable)]),,
2008-10-16 08:40:55 +02:00
enable_wavpack=yes)
2008-10-17 22:27:33 +02:00
2009-01-05 09:41:45 +01:00
dnl
dnl converters
dnl
2008-10-16 08:40:55 +02:00
AC_ARG_ENABLE(lsr,
AS_HELP_STRING([--disable-lsr],
2009-03-06 09:53:12 +01:00
[disable libsamplerate support (default: enable)]),,
2008-10-16 08:40:55 +02:00
enable_lsr=yes)
2009-01-05 09:44:48 +01:00
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)
2006-07-22 03:48:36 +02:00
2009-01-05 09:41:45 +01:00
dnl
dnl encoder plugins
dnl
2006-07-22 03:48:36 +02:00
2009-01-05 09:41:45 +01:00
AC_ARG_ENABLE(lame,
AS_HELP_STRING([--disable-lame],
2009-03-06 09:53:12 +01:00
[disable lame support (default: enable)]),,
2009-01-05 09:41:45 +01:00
enable_lame=yes)
dnl
dnl audio output plugins
dnl
AC_ARG_ENABLE(alsa,
AS_HELP_STRING([--disable-alsa],
2009-03-06 09:53:12 +01:00
[disable ALSA support (default: enable)]),,
2009-01-05 09:41:45 +01:00
enable_alsa=yes)
AC_ARG_ENABLE(ao,
AS_HELP_STRING([--enable-ao],
2009-03-06 09:53:12 +01:00
[enable support for libao (default: disable)]),,
2009-01-05 09:41:45 +01:00
enable_ao=no)
AC_ARG_ENABLE(fifo,
AS_HELP_STRING([--disable-fifo],
2009-03-06 09:53:12 +01:00
[disable support for writing audio to a FIFO (default: enable)]),,
2009-01-05 09:41:45 +01:00
enable_fifo=yes)
2009-02-28 16:11:59 +01:00
AC_ARG_ENABLE(pipe-output,
AS_HELP_STRING([--enable-pipe-output],
2009-02-28 16:41:05 +01:00
[enable support for writing audio to a pipe (default: disable)]),,
2009-02-28 16:11:59 +01:00
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)
2009-01-05 09:41:45 +01:00
AC_ARG_ENABLE(jack,
AS_HELP_STRING([--disable-jack],
2009-03-06 09:53:12 +01:00
[disable jack support (default: enable)]),,
2009-01-05 09:41:45 +01:00
enable_jack=yes)
AC_ARG_ENABLE(mvp,
AS_HELP_STRING([--enable-mvp],
2009-03-06 09:53:12 +01:00
[enable support for Hauppauge Media MVP (default: disable)]),,
2009-01-05 09:41:45 +01:00
enable_mvp=no)
AC_ARG_ENABLE(oss,
AS_HELP_STRING([--disable-oss],
2009-03-06 09:53:12 +01:00
[disable OSS support (default: enable)]),,
2009-01-05 09:41:45 +01:00
enable_oss=yes)
AC_ARG_ENABLE(pulse,
AS_HELP_STRING([--disable-pulse],
2009-03-06 09:53:12 +01:00
[disable support for the PulseAudio sound server (default: enable)]),,
2009-01-05 09:41:45 +01:00
enable_pulse=yes)
AC_ARG_ENABLE(shout-ogg,
AS_HELP_STRING([--disable-shout-ogg],
2009-03-06 09:53:12 +01:00
[disable support for ogg streaming through shout (default: enable)]),,
2009-01-05 09:41:45 +01:00
[enable_shout_ogg=yes])
AC_ARG_ENABLE(shout-mp3,
AS_HELP_STRING([--disable-shout-mp3],
2009-03-06 09:53:12 +01:00
[disable support for mp3 streaming through shout (default: enable)]),,
2009-01-05 09:41:45 +01:00
[enable_shout_mp3=yes])
2004-03-17 04:10:17 +01:00
2005-03-13 20:23:09 +01:00
enable_osx=no
2009-02-18 23:07:13 +01:00
case "$host_os" in
darwin*)
2005-03-13 20:23:09 +01:00
AC_DEFINE(HAVE_OSX, 1, [Define for compiling OS X support])
2005-03-17 03:33:40 +01:00
MPD_LIBS="$MPD_LIBS -framework AudioUnit -framework CoreServices"
2005-03-13 20:23:09 +01:00
enable_osx=yes ;;
esac
2008-10-26 21:58:37 +01:00
AM_CONDITIONAL(HAVE_OSX, test x$enable_osx = xyes)
2008-10-26 22:03:26 +01:00
if test x$enable_shout_ogg = xyes || test x$enable_shout_mp3 = xyes; then
2008-12-17 16:57:48 +01:00
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])])
shout: introduce pluggable encoder API
I've perhaps gone a bit overboard, but here's the current rundown:
Both Ogg and MP3 use the "shout" audio output plugin. The shout audio
output plugin itself has two new plugins, one for the Ogg encoder,
and another for the MP3 (LAME) encoder.
Configuration for an Ogg stream doesn't change. For an MP3 stream,
configuration is the same as Ogg, with two exceptions. First, you must
specify the optional "encoding" parameter, which should be set to "mp3".
See mpd.conf(5) for more details. Second, the "quality" parameter is
reversed for LAME, such that 1 is high quality for LAME, whereas 10 is
high quality for Ogg.
I've decomposed the code so that all libshout related operations
are done in audioOutput_shout.c, all Ogg specific functions are in
audioOutput_shout_ogg.c, and of course then all LAME specific functions
are handled in audioOutput_shout_mp3.c.
To develop encoder plugins for the shout audio output plugin, I basically
just mimicked the plugin system used for audio outputs. This might be
overkill, but hopefully if anyone ever wants to support some other sort
of stream, like maybe AAC, FLAC, or WMA (hey it could happen), they will
hopefully be all set.
The Ogg encoder is slightly less optimal under this configuration.
It used to send shout data directly out of its ogg_page structures. Now,
in the interest of encapsulation, it copies the data from its ogg_page
structures into a buffer provided by the shout audio output plugin (see
audioOutput_shout_ogg.c, line 77.) I suspect the performance impact
is negligible.
As for metadata, I'm pretty sure they'll both work. I wrote up a test
scaffold that would create a fake tag, and tell the plugin to send it
out to the stream every few seconds. It seemed to work fine. Of course,
if something does break, I'll be glad to fix it.
Lastly, I've renamed lots of things into snake_case, in keeping with
normalperson's wishes in that regard.
[mk: moved the MP3 patch after this one. Splitted this patch into
several parts; the others were already applied before this one. Fixed
a bunch GCC warnings and wrong whitespace modifications. Made it
compile with mpd-mk by adapting to its prototypes]
2008-09-12 16:04:40 +02:00
fi
if test x$enable_shout_ogg = xyes; then
2006-09-12 01:41:07 +02:00
if test x$enable_oggvorbis = xno; then
shout: introduce pluggable encoder API
I've perhaps gone a bit overboard, but here's the current rundown:
Both Ogg and MP3 use the "shout" audio output plugin. The shout audio
output plugin itself has two new plugins, one for the Ogg encoder,
and another for the MP3 (LAME) encoder.
Configuration for an Ogg stream doesn't change. For an MP3 stream,
configuration is the same as Ogg, with two exceptions. First, you must
specify the optional "encoding" parameter, which should be set to "mp3".
See mpd.conf(5) for more details. Second, the "quality" parameter is
reversed for LAME, such that 1 is high quality for LAME, whereas 10 is
high quality for Ogg.
I've decomposed the code so that all libshout related operations
are done in audioOutput_shout.c, all Ogg specific functions are in
audioOutput_shout_ogg.c, and of course then all LAME specific functions
are handled in audioOutput_shout_mp3.c.
To develop encoder plugins for the shout audio output plugin, I basically
just mimicked the plugin system used for audio outputs. This might be
overkill, but hopefully if anyone ever wants to support some other sort
of stream, like maybe AAC, FLAC, or WMA (hey it could happen), they will
hopefully be all set.
The Ogg encoder is slightly less optimal under this configuration.
It used to send shout data directly out of its ogg_page structures. Now,
in the interest of encapsulation, it copies the data from its ogg_page
structures into a buffer provided by the shout audio output plugin (see
audioOutput_shout_ogg.c, line 77.) I suspect the performance impact
is negligible.
As for metadata, I'm pretty sure they'll both work. I wrote up a test
scaffold that would create a fake tag, and tell the plugin to send it
out to the stream every few seconds. It seemed to work fine. Of course,
if something does break, I'll be glad to fix it.
Lastly, I've renamed lots of things into snake_case, in keeping with
normalperson's wishes in that regard.
[mk: moved the MP3 patch after this one. Splitted this patch into
several parts; the others were already applied before this one. Fixed
a bunch GCC warnings and wrong whitespace modifications. Made it
compile with mpd-mk by adapting to its prototypes]
2008-09-12 16:04:40 +02:00
AC_MSG_WARN([disabling ogg shout streaming support because vorbis is not enabled])
enable_shout_ogg=no
2006-09-12 01:41:07 +02:00
fi
if test x$use_tremor = xyes; then
shout: introduce pluggable encoder API
I've perhaps gone a bit overboard, but here's the current rundown:
Both Ogg and MP3 use the "shout" audio output plugin. The shout audio
output plugin itself has two new plugins, one for the Ogg encoder,
and another for the MP3 (LAME) encoder.
Configuration for an Ogg stream doesn't change. For an MP3 stream,
configuration is the same as Ogg, with two exceptions. First, you must
specify the optional "encoding" parameter, which should be set to "mp3".
See mpd.conf(5) for more details. Second, the "quality" parameter is
reversed for LAME, such that 1 is high quality for LAME, whereas 10 is
high quality for Ogg.
I've decomposed the code so that all libshout related operations
are done in audioOutput_shout.c, all Ogg specific functions are in
audioOutput_shout_ogg.c, and of course then all LAME specific functions
are handled in audioOutput_shout_mp3.c.
To develop encoder plugins for the shout audio output plugin, I basically
just mimicked the plugin system used for audio outputs. This might be
overkill, but hopefully if anyone ever wants to support some other sort
of stream, like maybe AAC, FLAC, or WMA (hey it could happen), they will
hopefully be all set.
The Ogg encoder is slightly less optimal under this configuration.
It used to send shout data directly out of its ogg_page structures. Now,
in the interest of encapsulation, it copies the data from its ogg_page
structures into a buffer provided by the shout audio output plugin (see
audioOutput_shout_ogg.c, line 77.) I suspect the performance impact
is negligible.
As for metadata, I'm pretty sure they'll both work. I wrote up a test
scaffold that would create a fake tag, and tell the plugin to send it
out to the stream every few seconds. It seemed to work fine. Of course,
if something does break, I'll be glad to fix it.
Lastly, I've renamed lots of things into snake_case, in keeping with
normalperson's wishes in that regard.
[mk: moved the MP3 patch after this one. Splitted this patch into
several parts; the others were already applied before this one. Fixed
a bunch GCC warnings and wrong whitespace modifications. Made it
compile with mpd-mk by adapting to its prototypes]
2008-09-12 16:04:40 +02:00
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
2009-02-22 17:18:28 +01:00
PKG_CHECK_MODULES(VORBISENC, [vorbisenc],,
2008-10-15 20:40:04 +02:00
enable_shout_ogg=no)
2006-09-12 01:41:07 +02:00
fi
2004-11-02 18:20:07 +01:00
fi
2008-12-17 17:16:24 +01:00
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
2008-09-12 16:05:23 +02:00
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
2008-12-17 16:57:48 +01:00
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
2008-10-26 21:58:37 +01:00
AM_CONDITIONAL(HAVE_SHOUT, test x$enable_shout = xyes)
2009-02-22 17:11:14 +01:00
AM_CONDITIONAL(ENABLE_ENCODER, test x$enable_shout = xyes)
2009-02-22 17:17:26 +01:00
AM_CONDITIONAL(ENABLE_VORBIS_ENCODER, test x$enable_shout_ogg = xyes)
if test x$enable_shout_ogg = xyes; then
2009-02-24 10:00:21 +01:00
AC_DEFINE(ENABLE_VORBIS_ENCODER, 1, [Define to enable the vorbis encoder plugin])
2009-02-22 17:17:26 +01:00
fi
2009-02-22 17:18:03 +01:00
AM_CONDITIONAL(ENABLE_LAME_ENCODER, test x$enable_shout_mp3 = xyes)
if test x$enable_shout_mp3 = xyes; then
2009-02-24 10:00:21 +01:00
AC_DEFINE(ENABLE_LAME_ENCODER, 1, [Define to enable the lame encoder plugin])
2009-02-22 17:18:03 +01:00
fi
2009-02-22 17:11:14 +01:00
2004-04-11 06:49:27 +02:00
if test x$enable_ao = xyes; then
2008-10-15 20:39:46 +02:00
PKG_CHECK_MODULES(AO, [ao],
AC_DEFINE(HAVE_AO, 1, [Define to play with ao]),
enable_ao=no)
2004-04-11 06:49:27 +02:00
fi
2008-10-26 21:58:37 +01:00
AM_CONDITIONAL(HAVE_AO, test x$enable_ao = xyes)
2005-02-02 11:27:24 +01:00
if test x$enable_oss = xyes; then
shout: introduce pluggable encoder API
I've perhaps gone a bit overboard, but here's the current rundown:
Both Ogg and MP3 use the "shout" audio output plugin. The shout audio
output plugin itself has two new plugins, one for the Ogg encoder,
and another for the MP3 (LAME) encoder.
Configuration for an Ogg stream doesn't change. For an MP3 stream,
configuration is the same as Ogg, with two exceptions. First, you must
specify the optional "encoding" parameter, which should be set to "mp3".
See mpd.conf(5) for more details. Second, the "quality" parameter is
reversed for LAME, such that 1 is high quality for LAME, whereas 10 is
high quality for Ogg.
I've decomposed the code so that all libshout related operations
are done in audioOutput_shout.c, all Ogg specific functions are in
audioOutput_shout_ogg.c, and of course then all LAME specific functions
are handled in audioOutput_shout_mp3.c.
To develop encoder plugins for the shout audio output plugin, I basically
just mimicked the plugin system used for audio outputs. This might be
overkill, but hopefully if anyone ever wants to support some other sort
of stream, like maybe AAC, FLAC, or WMA (hey it could happen), they will
hopefully be all set.
The Ogg encoder is slightly less optimal under this configuration.
It used to send shout data directly out of its ogg_page structures. Now,
in the interest of encapsulation, it copies the data from its ogg_page
structures into a buffer provided by the shout audio output plugin (see
audioOutput_shout_ogg.c, line 77.) I suspect the performance impact
is negligible.
As for metadata, I'm pretty sure they'll both work. I wrote up a test
scaffold that would create a fake tag, and tell the plugin to send it
out to the stream every few seconds. It seemed to work fine. Of course,
if something does break, I'll be glad to fix it.
Lastly, I've renamed lots of things into snake_case, in keeping with
normalperson's wishes in that regard.
[mk: moved the MP3 patch after this one. Splitted this patch into
several parts; the others were already applied before this one. Fixed
a bunch GCC warnings and wrong whitespace modifications. Made it
compile with mpd-mk by adapting to its prototypes]
2008-09-12 16:04:40 +02:00
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])
2005-02-02 11:27:24 +01:00
fi
2008-10-26 21:58:37 +01:00
AM_CONDITIONAL(HAVE_OSS, test x$enable_oss = xyes)
2006-07-13 21:03:49 +02:00
if test x$enable_pulse = xyes; then
PKG_CHECK_MODULES([PULSE], [libpulse-simple],
2006-12-17 22:30:24 +01:00
[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",
2006-07-13 21:03:49 +02:00
[enable_pulse=no;AC_MSG_WARN([PulseAudio not found -- disabling])])
fi
2008-10-26 21:58:37 +01:00
AM_CONDITIONAL(HAVE_PULSE, test x$enable_pulse = xyes)
2007-06-13 16:15:30 +02:00
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
2008-10-26 21:58:37 +01:00
AM_CONDITIONAL(HAVE_FIFO, test x$enable_fifo = xyes)
2005-08-25 02:08:41 +02:00
if test x$enable_mvp = xyes; then
AC_DEFINE(HAVE_MVP,1,[Define to enable Hauppauge Media MVP support])
fi
2008-10-26 21:58:37 +01:00
AM_CONDITIONAL(HAVE_MVP, test x$enable_mvp = xyes)
2004-03-30 23:18:03 +02:00
if test x$enable_alsa = xyes; then
2008-10-15 20:39:46 +02:00
PKG_CHECK_MODULES(ALSA, [alsa >= 0.9.0],
AC_DEFINE(HAVE_ALSA, 1, [Define to enable ALSA support]),
enable_alsa=no)
2004-03-24 00:20:21 +01:00
fi
2008-10-26 21:58:37 +01:00
AM_CONDITIONAL(HAVE_ALSA, test x$enable_alsa = xyes)
2006-12-17 22:30:24 +01:00
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])])
2006-10-18 04:49:13 +02:00
fi
2009-01-30 19:43:25 +01:00
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
2008-10-26 21:58:37 +01:00
AM_CONDITIONAL(HAVE_JACK, test x$enable_jack = xyes)
2004-02-24 00:41:20 +01:00
if test x$enable_id3 = xyes; then
2009-01-04 15:31:06 +01:00
PKG_CHECK_MODULES([ID3TAG], [id3tag],,
AC_CHECK_LIB(id3tag, id3_file_open,
[ID3TAG_LIBS="-lid3tag -lz" ID3TAG_CFLAGS=""],
2009-01-05 08:04:43 +01:00
enable_id3=no))
2009-01-04 15:31:06 +01:00
fi
if test x$enable_id3 = xyes; then
AC_DEFINE(HAVE_ID3TAG, 1, [Define to use id3tag])
2004-02-24 00:41:20 +01:00
fi
2008-10-17 21:13:23 +02:00
AM_CONDITIONAL(HAVE_ID3TAG, test x$enable_id3 = xyes)
2005-02-01 05:15:41 +01:00
if test x$enable_mpc = xyes; then
2005-07-30 12:28:43 +02:00
if test "x$mpcdec_libraries" != "x" ; then
MPCDEC_LIBS="-L$mpcdec_libraries"
elif test "x$mpcdec_prefix" != "x" ; then
2006-09-06 11:29:06 +02:00
MPCDEC_LIBS="-L$mpcdec_prefix/lib"
2005-02-01 05:15:41 +01:00
fi
2005-07-30 12:28:43 +02:00
MPCDEC_LIBS="$MPCDEC_LIBS -lmpcdec"
2005-02-01 05:15:41 +01:00
2005-07-30 12:28:43 +02:00
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"
2005-02-01 05:15:41 +01:00
fi
oldcflags=$CFLAGS
oldlibs=$LIBS
oldcppflags=$CPPFLAGS
2005-07-30 12:28:43 +02:00
CFLAGS="$CFLAGS $MPD_CFLAGS $MPCDEC_CFLAGS -I."
LIBS="$LIBS $MPD_LIBS $MPCDEC_LIBS"
2005-02-01 05:15:41 +01:00
CPPFLAGS=$CFLAGS
2005-07-30 12:28:43 +02:00
AC_CHECK_HEADER(mpcdec/mpcdec.h,,enable_mpc=no)
2005-02-01 05:15:41 +01:00
if test x$enable_mpc = xyes; then
2005-07-30 12:28:43 +02:00
AC_CHECK_LIB(mpcdec,main,[MPD_LIBS="$MPD_LIBS $MPCDEC_LIBS";MPD_CFLAGS="$MPD_CFLAGS $MPCDEC_CFLAGS";],enable_mpc=no)
2005-02-01 05:15:41 +01:00
fi
if test x$enable_mpc = xyes; then
2005-07-30 12:28:43 +02:00
AC_DEFINE(HAVE_MPCDEC,1,[Define to use libmpcdec for MPC decoding])
2005-02-01 05:15:41 +01:00
else
2005-07-30 12:28:43 +02:00
AC_MSG_WARN([mpcdec lib needed for MPC support -- disabling MPC support])
2005-02-01 05:15:41 +01:00
fi
CFLAGS=$oldcflags
LIBS=$oldlibs
CPPFLAGS=$oldcppflags
fi
2008-10-17 21:57:09 +02:00
AM_CONDITIONAL(HAVE_MPCDEC, test x$enable_mpc = xyes)
2007-06-24 22:40:04 +02:00
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
2008-10-17 21:57:09 +02:00
AM_CONDITIONAL(HAVE_WAVPACK, test x$enable_wavpack = xyes)
2004-03-17 04:10:17 +01:00
if test x$enable_aac = xyes; then
2006-07-19 17:54:53 +02:00
if test "x$faad_libraries" != "x" ; then
FAAD_LIBS="-L$faad_libraries"
elif test "x$faad_prefix" != "x" ; then
FAAD_LIBS="-L$faad_prefix/lib"
fi
2004-03-17 04:10:17 +01:00
2008-11-03 16:48:12 +01:00
FAAD_LIBS="$FAAD_LIBS -lfaad"
2004-03-17 04:10:17 +01:00
2006-07-19 17:54:53 +02:00
if test "x$faad_includes" != "x" ; then
FAAD_CFLAGS="-I$faad_includes"
elif test "x$faad_prefix" != "x" ; then
FAAD_CFLAGS="-I$faad_prefix/include"
fi
2004-03-17 04:10:17 +01:00
oldcflags=$CFLAGS
oldlibs=$LIBS
2004-03-24 04:42:24 +01:00
oldcppflags=$CPPFLAGS
2004-03-18 04:29:25 +01:00
CFLAGS="$CFLAGS $MPD_CFLAGS $FAAD_CFLAGS -I."
2004-03-17 04:10:17 +01:00
LIBS="$LIBS $MPD_LIBS $FAAD_LIBS"
2004-03-24 04:42:24 +01:00
CPPFLAGS=$CFLAGS
2004-03-17 04:10:17 +01:00
AC_CHECK_HEADER(faad.h,,enable_aac=no)
2004-03-25 02:08:13 +01:00
if test x$enable_aac = xyes; then
AC_CHECK_DECL(FAAD2_VERSION,,enable_aac=no,[#include <faad.h>])
fi
2004-03-17 18:19:52 +01:00
if test x$enable_aac = xyes; then
2004-03-21 14:47:45 +01:00
AC_CHECK_DECL(faacDecInit2,,enable_aac=no,[#include <faad.h>])
2004-03-18 04:29:25 +01:00
fi
if test x$enable_aac = xyes; then
2008-10-25 20:59:36 +02:00
AC_CHECK_LIB(faad,faacDecInit2,[MPD_LIBS="$MPD_LIBS $FAAD_LIBS";MPD_CFLAGS="$MPD_CFLAGS $FAAD_CFLAGS"],enable_aac=no)
2006-07-05 00:07:34 +02:00
if test x$enable_aac = xno; then
enable_aac=yes
2008-10-25 20:59:36 +02:00
AC_CHECK_LIB(faad,NeAACDecInit2,[MPD_LIBS="$MPD_LIBS $FAAD_LIBS";MPD_CFLAGS="$MPD_CFLAGS $FAAD_CFLAGS"],enable_aac=no)
2006-07-05 00:07:34 +02:00
fi
2004-03-21 14:47:45 +01:00
fi
if test x$enable_aac = xyes; then
2006-07-26 05:05:50 +02:00
AC_MSG_CHECKING(that FAAD2 uses buffer and bufferlen)
2004-03-25 02:08:13 +01:00
AC_COMPILE_IFELSE([
#include <faad.h>
int main() {
char buffer;
long bufferlen = 0;
faacDecHandle decoder;
faacDecFrameInfo frameInfo;
faacDecConfigurationPtr config;
unsigned char channels;
long sampleRate;
mp4AudioSpecificConfig mp4ASC;
decoder = faacDecOpen();
config = faacDecGetCurrentConfiguration(decoder);
config->outputFormat = FAAD_FMT_16BIT;
faacDecSetConfiguration(decoder,config);
AudioSpecificConfig(&buffer, bufferlen, &mp4ASC);
faacDecInit(decoder,&buffer,bufferlen,&sampleRate,&channels);
faacDecInit2(decoder,&buffer,bufferlen,&sampleRate,&channels);
faacDecDecode(decoder,&frameInfo,&buffer,bufferlen);
return 0;
}
],[AC_MSG_RESULT(yes);AC_DEFINE(HAVE_FAAD_BUFLEN_FUNCS,1,[Define if FAAD2 uses buflen in function calls])],[AC_MSG_RESULT(no);
AC_MSG_CHECKING(that FAAD2 can even be used)
AC_COMPILE_IFELSE([
#include <faad.h>
int main() {
char buffer;
faacDecHandle decoder;
faacDecFrameInfo frameInfo;
faacDecConfigurationPtr config;
unsigned char channels;
long sampleRate;
long bufferlen = 0;
unsigned long dummy1_32;
unsigned char dummy2_8, dummy3_8, dummy4_8, dummy5_8, dummy6_8,
dummy7_8, dummy8_8;
decoder = faacDecOpen();
config = faacDecGetCurrentConfiguration(decoder);
config->outputFormat = FAAD_FMT_16BIT;
faacDecSetConfiguration(decoder,config);
AudioSpecificConfig(&buffer,&dummy1_32,&dummy2_8,
&dummy3_8,&dummy4_8,&dummy5_8,
&dummy6_8,&dummy7_8,&dummy8_8);
faacDecInit(decoder,&buffer,&sampleRate,&channels);
faacDecInit2(decoder,&buffer,bufferlen,&sampleRate,&channels);
faacDecDecode(decoder,&frameInfo,&buffer);
faacDecClose(decoder);
return 0;
}
],AC_MSG_RESULT(yes),[AC_MSG_RESULT(no);enable_aac=no])
])
fi
if test x$enable_aac = xyes; then
AC_CHECK_MEMBERS([faacDecConfiguration.downMatrix,faacDecConfiguration.dontUpSampleImplicitSBR,faacDecFrameInfo.samplerate],,,[#include <faad.h>])
2004-03-18 04:29:25 +01:00
AC_DEFINE(HAVE_FAAD,1,[Define to use FAAD2 for AAC decoding])
2004-03-19 16:56:31 +01:00
else
AC_MSG_WARN([faad2 lib needed for MP4/AAC support -- disabling MP4/AAC support])
2004-03-17 04:10:17 +01:00
fi
CFLAGS=$oldcflags
LIBS=$oldlibs
2004-03-24 04:42:24 +01:00
CPPFLAGS=$oldcppflags
2004-03-17 04:10:17 +01:00
fi
2008-10-17 21:57:09 +02:00
AM_CONDITIONAL(HAVE_FAAD, test x$enable_aac = xyes)
2008-11-16 20:04:49 +01:00
if test x$enable_aac = xyes; then
oldcflags=$CFLAGS
oldlibs=$LIBS
oldcppflags=$CPPFLAGS
CFLAGS="$CFLAGS $MPD_CFLAGS $FAAD_CFLAGS -Werror"
LIBS="$LIBS $MPD_LIBS $FAAD_LIBS"
CPPFLAGS=$CFLAGS
AC_MSG_CHECKING(for broken libfaad headers)
AC_COMPILE_IFELSE([
#include <faad.h>
#include <stddef.h>
#include <stdint.h>
int main() {
unsigned char channels;
uint32_t sample_rate;
faacDecInit2(NULL, NULL, 0, &sample_rate, &channels);
return 0;
}
],
[AC_MSG_RESULT(correct)],
[AC_MSG_RESULT(broken);
AC_DEFINE(HAVE_FAAD_LONG, 1, [Define if faad.h uses the broken "unsigned long" pointers])])
CFLAGS=$oldcflags
LIBS=$oldlibs
CPPFLAGS=$oldcppflags
fi
2008-11-03 16:48:12 +01:00
if test x$enable_aac = xyes; then
enable_mp4=yes
MP4FF_LIBS="-lmp4ff"
oldcflags=$CFLAGS
oldlibs=$LIBS
oldcppflags=$CPPFLAGS
CFLAGS="$CFLAGS $FAAD_CFLAGS"
LIBS="$LIBS $MP4FF_LIBS"
CPPFLAGS=$CFLAGS
AC_CHECK_HEADER(mp4ff.h,,enable_mp4=no)
if test x$enable_mp4 = xyes; then
AC_CHECK_LIB(mp4ff,mp4ff_open_read,,enable_mp4=no)
fi
if test x$enable_mp4 = xyes; then
2008-11-03 17:35:06 +01:00
AC_SUBST(MP4FF_LIBS)
2008-11-03 16:48:12 +01:00
AC_DEFINE(HAVE_MP4, 1, [Define to use FAAD2+mp4ff for MP4 decoding])
else
AC_MSG_WARN([libmp4ff needed for MP4 support -- disabling MP4 support])
2008-11-04 07:46:47 +01:00
unset MP4FF_LIBS
2008-11-03 16:48:12 +01:00
fi
CFLAGS=$oldcflags
LIBS=$oldlibs
CPPFLAGS=$oldcppflags
fi
AM_CONDITIONAL(HAVE_MP4, test x$enable_mp4 = xyes)
2005-08-25 10:07:28 +02:00
if test x$use_tremor = xyes; then
2006-07-19 17:54:53 +02:00
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
2005-08-25 10:07:28 +02:00
ac_save_CFLAGS="$CFLAGS"
ac_save_LIBS="$LIBS"
CFLAGS="$CFLAGS $TREMOR_CFLAGS"
LIBS="$LIBS $TREMOR_LIBS"
2006-09-12 01:41:07 +02:00
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]))
2009-01-15 22:54:07 +01:00
if test x$enable_oggvorbis = xyes; then
AC_DEFINE(HAVE_OGGVORBIS, 1, [Define for Ogg Vorbis support]),
else
2006-09-12 01:41:07 +02:00
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
2005-08-25 10:07:28 +02:00
fi
2006-09-12 01:41:07 +02:00
elif test x$enable_oggvorbis = xyes; then
2008-10-15 20:39:46 +02:00
PKG_CHECK_MODULES(OGGVORBIS, [ogg vorbis vorbisfile],
AC_DEFINE(HAVE_OGGVORBIS, 1, [Define for Ogg Vorbis support]),
enable_oggvorbis=no)
2004-02-24 00:41:20 +01:00
fi
2008-10-17 21:57:09 +02:00
AM_CONDITIONAL(HAVE_OGGVORBIS, test x$enable_oggvorbis = xyes)
2005-08-25 10:07:28 +02:00
if test x$use_tremor = xyes; then
AC_DEFINE(HAVE_TREMOR,1,[Define to use tremor (libvorbisidec) for ogg support])
2006-09-12 01:41:07 +02:00
if test x$enable_oggflac = xyes; then
AC_MSG_WARN([disabling OggFLAC support because it is incompatible with tremor])
enable_oggflac=no
fi
fi
2005-08-25 10:07:28 +02:00
2004-02-24 00:41:20 +01:00
if test x$enable_flac = xyes; then
2008-10-15 20:39:46 +02:00
PKG_CHECK_MODULES(FLAC, [flac >= 1.1],
AC_DEFINE(HAVE_FLAC, 1, [Define for FLAC support]),
enable_flac=no)
2006-03-16 07:52:46 +01:00
2004-02-24 00:41:20 +01:00
oldcflags="$CFLAGS"
oldlibs="$LIBS"
2008-10-15 20:39:46 +02:00
CFLAGS="$CFLAGS $FLAC_CFLAGS"
LIBS="$LIBS $FLAC_LIBS"
2008-11-03 17:35:16 +01:00
if test x$enable_flac = xyes && test x$enable_oggflac = xyes; then
2007-01-14 05:25:19 +01:00
AC_CHECK_DECL(FLAC_API_SUPPORTS_OGG_FLAC,
[enable_oggflac=flac], [],
[#include <FLAC/export.h>])
2004-02-24 00:41:20 +01:00
fi
CFLAGS="$oldcflags"
LIBS="$oldlibs"
fi
2008-10-17 21:57:09 +02:00
AM_CONDITIONAL(HAVE_FLAC, test x$enable_flac = xyes)
2006-03-16 07:52:46 +01:00
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
2008-10-17 21:57:09 +02:00
AM_CONDITIONAL(HAVE_OGGFLAC, test x$enable_oggflac = xyes)
AM_CONDITIONAL(HAVE_FLAC_COMMON, test x$enable_flac = xyes || test x$enable_oggflac = xyes)
2008-11-07 17:21:21 +01:00
AM_CONDITIONAL(HAVE_OGG_COMMON, test x$enable_oggvorbis = xyes || test x$enable_oggflac = xyes || test x$enable_flac = xyes)
2006-03-16 07:52:46 +01:00
2004-02-24 00:41:20 +01:00
if test x$enable_audiofile = xyes; then
2008-10-15 20:39:46 +02:00
PKG_CHECK_MODULES(AUDIOFILE, [audiofile >= 0.1.7],
AC_DEFINE(HAVE_AUDIOFILE, 1, [Define for audiofile support]),
enable_audiofile=no)
2004-03-18 04:29:25 +01:00
fi
2008-10-17 21:57:09 +02:00
AM_CONDITIONAL(HAVE_AUDIOFILE, test x$enable_audiofile = xyes)
2004-05-31 22:59:55 +02:00
if test x$enable_mod = xyes; then
2008-10-18 18:34:00 +02:00
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
2004-05-31 22:59:55 +02:00
fi
2008-10-17 21:57:09 +02:00
AM_CONDITIONAL(HAVE_MIKMOD, test x$enable_mod = xyes)
2008-12-28 17:11:18 +01:00
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)
2008-10-17 22:27:33 +02:00
if test x$enable_ffmpeg = xyes; then
2009-02-09 22:22:06 +01:00
PKG_CHECK_MODULES(FFMPEG, [libavformat libavcodec libavutil],,
2008-10-17 22:27:33 +02:00
enable_ffmpeg=no)
fi
2008-11-04 17:42:37 +01:00
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
2008-10-21 08:34:19 +02:00
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
2009-02-09 22:22:06 +01:00
if test x$enable_ffmpeg = xyes; then
2009-02-11 19:58:53 +01:00
AC_DEFINE(HAVE_FFMPEG, 1, [Define for FFMPEG support])
2009-02-09 22:22:06 +01:00
fi
2008-10-17 22:27:33 +02:00
AM_CONDITIONAL(HAVE_FFMPEG, test x$enable_ffmpeg = xyes)
2009-02-11 20:31:17 +01:00
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,)
2009-02-12 08:43:26 +01:00
AC_DEFINE(ENABLE_SIDPLAY, 1, [Define for libsidplay2 support])
2009-02-11 20:31:17 +01:00
fi
AM_CONDITIONAL(ENABLE_SIDPLAY, test x$enable_sidplay = xyes)
2009-02-12 08:43:26 +01:00
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)
2009-02-12 16:43:18 +01:00
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)
2008-10-14 17:21:51 +02:00
2008-11-20 08:59:55 +01:00
dnl
dnl Documentation
dnl
2009-02-04 15:25:57 +01:00
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)
2008-11-20 08:59:55 +01:00
AC_SUBST(XMLTO)
2009-03-01 01:26:04 +01:00
AM_CONDITIONAL(HAVE_XMLTO, test x$XMLTO != x)
2009-02-13 09:11:22 +01:00
AC_PATH_PROG(DOXYGEN, doxygen)
if test x$DOXYGEN = x; then
AC_MSG_ERROR([doxygen not found])
fi
AC_SUBST(DOXYGEN)
2009-03-01 01:26:04 +01:00
else
AM_CONDITIONAL(HAVE_XMLTO, false)
2008-11-20 08:59:55 +01:00
fi
2009-02-04 15:25:57 +01:00
AM_CONDITIONAL(ENABLE_DOCUMENTATION, test x$enable_documentation = xyes)
2008-11-20 08:59:55 +01:00
2008-10-14 17:23:00 +02:00
dnl
dnl build options
dnl
2009-01-05 09:31:11 +01:00
AC_ARG_ENABLE(werror,
AS_HELP_STRING([--enable-werror],
2009-03-06 09:53:12 +01:00
[Treat warnings as errors (default: disabled)]),,
2009-01-05 09:31:11 +01:00
ENABLE_WERROR=no)
2008-10-14 17:23:00 +02:00
if test "x$ENABLE_WERROR" = xyes; then
2009-02-25 16:46:07 +01:00
AM_CFLAGS="$AM_CFLAGS -Werror -pedantic-errors"
2008-10-14 17:23:00 +02:00
fi
2009-01-05 09:31:11 +01:00
AC_ARG_ENABLE(debug,
AS_HELP_STRING([--enable-debug],
2009-03-06 09:53:12 +01:00
[Enable debugging (default: disabled)]),,
2009-01-05 09:31:11 +01:00
ENABLE_DEBUG=no)
2008-10-14 17:23:00 +02:00
#if test "x$ENABLE_DEBUG" = xno; then
# don't set NDEBUG for now, until MPD is stable
2009-02-25 16:46:07 +01:00
#AM_CFLAGS="$AM_CFLAGS -DNDEBUG"
2008-10-14 17:23:00 +02:00
#fi
2009-01-05 09:31:11 +01:00
AC_ARG_ENABLE(gprof,
AS_HELP_STRING([--enable-gprof],
2009-03-06 09:53:12 +01:00
[Enable profiling via gprof (default: disabled)]),,
2009-01-05 09:31:11 +01:00
ENABLE_GPROF=no)
2008-10-14 17:23:00 +02:00
if test "x$ENABLE_GPROF" = xyes; then
MPD_CFLAGS="$MPD_CFLAGS -pg"
fi
2009-02-18 19:27:05 +01:00
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)
2008-10-14 17:23:00 +02:00
2008-10-14 17:21:51 +02:00
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])
2008-10-14 17:21:58 +02:00
MPD_CHECK_FLAG([-pedantic])
2008-10-14 17:21:51 +02:00
fi
dnl
dnl pretty-print result
dnl
2004-03-17 19:13:29 +01:00
echo ""
echo "########### MPD CONFIGURATION ############"
2004-03-24 00:20:21 +01:00
echo ""
2008-04-12 06:07:24 +02:00
echo " Client Support:"
2008-04-12 06:07:31 +02:00
if test x$enable_ipv6 = xyes; then
echo " IPv6 support ..................enabled"
else
echo " IPv6 support ..................disabled"
fi
2009-02-28 16:50:13 +01:00
if test x$enable_tcp = xyes; then
echo " TCP support ...................enabled"
else
echo " TCP support ...................disabled"
fi
2008-04-12 06:07:24 +02:00
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
2005-03-24 01:10:14 +01:00
echo " Playback Support:"
2005-03-05 13:29:00 +01:00
if test x$enable_alsa = xyes; then
2005-03-24 01:10:14 +01:00
echo " ALSA support ..................enabled"
2005-03-05 13:29:00 +01:00
else
2005-03-24 01:10:14 +01:00
echo " ALSA support ..................disabled"
2005-03-05 13:29:00 +01:00
fi
2009-02-28 16:50:13 +01:00
if test x$enable_fifo = xyes; then
echo " FIFO support ..................enabled"
else
echo " FIFO support ..................disabled"
fi
2006-10-18 04:49:13 +02:00
if test x$enable_jack = xyes; then
echo " JACK support ..................enabled"
else
echo " JACK support ..................disabled"
fi
2009-02-28 16:50:13 +01:00
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
2005-03-13 20:23:09 +01:00
if test x$enable_osx = xyes; then
2005-03-24 01:10:14 +01:00
echo " OS X support ..................enabled"
2005-03-13 20:23:09 +01:00
else
2005-03-24 01:10:14 +01:00
echo " OS X support ..................disabled"
2005-03-13 20:23:09 +01:00
fi
2009-02-28 16:41:05 +01:00
if test x$enable_pipe_output = xyes; then
echo " Pipeline output support .......enabled"
else
echo " Pipeline output support .......disabled"
fi
2006-07-13 21:03:49 +02:00
if test x$enable_pulse = xyes; then
echo " PulseAudio support ............enabled"
else
echo " PulseAudio support ............disabled"
fi
2005-08-25 02:08:41 +02:00
if test x$enable_mvp = xyes; then
echo " Media MVP support .............enabled"
else
echo " Media MVP support .............disabled"
fi
2009-03-06 08:25:50 +01:00
if test x$enable_shout = xyes; then
echo " SHOUTcast support .............enabled"
2004-08-20 15:57:11 +02:00
2009-03-06 08:25:50 +01:00
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
2008-09-12 16:05:23 +02:00
else
2009-03-06 08:25:50 +01:00
echo " SHOUTcast support .............disabled"
2008-09-12 16:05:23 +02:00
fi
2005-03-05 13:29:00 +01:00
echo ""
2005-03-17 01:56:31 +01:00
if test x$enable_ao = xno &&
test x$enable_oss = xno &&
shout: introduce pluggable encoder API
I've perhaps gone a bit overboard, but here's the current rundown:
Both Ogg and MP3 use the "shout" audio output plugin. The shout audio
output plugin itself has two new plugins, one for the Ogg encoder,
and another for the MP3 (LAME) encoder.
Configuration for an Ogg stream doesn't change. For an MP3 stream,
configuration is the same as Ogg, with two exceptions. First, you must
specify the optional "encoding" parameter, which should be set to "mp3".
See mpd.conf(5) for more details. Second, the "quality" parameter is
reversed for LAME, such that 1 is high quality for LAME, whereas 10 is
high quality for Ogg.
I've decomposed the code so that all libshout related operations
are done in audioOutput_shout.c, all Ogg specific functions are in
audioOutput_shout_ogg.c, and of course then all LAME specific functions
are handled in audioOutput_shout_mp3.c.
To develop encoder plugins for the shout audio output plugin, I basically
just mimicked the plugin system used for audio outputs. This might be
overkill, but hopefully if anyone ever wants to support some other sort
of stream, like maybe AAC, FLAC, or WMA (hey it could happen), they will
hopefully be all set.
The Ogg encoder is slightly less optimal under this configuration.
It used to send shout data directly out of its ogg_page structures. Now,
in the interest of encapsulation, it copies the data from its ogg_page
structures into a buffer provided by the shout audio output plugin (see
audioOutput_shout_ogg.c, line 77.) I suspect the performance impact
is negligible.
As for metadata, I'm pretty sure they'll both work. I wrote up a test
scaffold that would create a fake tag, and tell the plugin to send it
out to the stream every few seconds. It seemed to work fine. Of course,
if something does break, I'll be glad to fix it.
Lastly, I've renamed lots of things into snake_case, in keeping with
normalperson's wishes in that regard.
[mk: moved the MP3 patch after this one. Splitted this patch into
several parts; the others were already applied before this one. Fixed
a bunch GCC warnings and wrong whitespace modifications. Made it
compile with mpd-mk by adapting to its prototypes]
2008-09-12 16:04:40 +02:00
test x$enable_shout_ogg = xno &&
2008-09-12 16:05:23 +02:00
test x$enable_shout_mp3 = xno &&
2005-03-17 01:56:31 +01:00
test x$enable_alsa = xno &&
2005-08-25 02:08:41 +02:00
test x$enable_osx = xno &&
2006-07-13 21:03:49 +02:00
test x$enable_pulse = xno &&
2006-10-18 04:49:13 +02:00
test x$enable_jack = xno &&
2007-06-13 16:15:30 +02:00
test x$enable_fifo = xno &&
2009-02-28 17:13:31 +01:00
test x$enable_pipe_output = xno &&
2005-08-25 02:08:41 +02:00
test x$enable_mvp = xno; then
2006-09-13 10:03:37 +02:00
AC_MSG_ERROR([No Audio Output types configured!])
2005-03-17 01:56:31 +01:00
fi
2005-03-24 01:10:14 +01:00
echo " File Format Support:"
2005-03-05 13:29:00 +01:00
2009-02-28 16:50:13 +01:00
if test x$enable_aac = xyes; then
echo " AAC support ...................enabled"
2004-03-17 19:13:29 +01:00
else
2009-02-28 16:50:13 +01:00
echo " AAC support ...................disabled"
2004-03-17 19:13:29 +01:00
fi
2009-02-28 16:50:13 +01:00
if test x$enable_sidplay = xyes; then
echo " C64 SID support ...............enabled"
2008-09-12 16:05:23 +02:00
else
2009-02-28 16:50:13 +01:00
echo " C64 SID support ...............disabled"
2008-09-12 16:05:23 +02:00
fi
2009-02-28 16:50:13 +01:00
if test x$enable_ffmpeg = xyes; then
echo " FFMPEG support ................enabled"
2004-03-17 19:13:29 +01:00
else
2009-02-28 16:50:13 +01:00
echo " FFMPEG support ................disabled"
2004-03-17 19:13:29 +01:00
fi
if test x$enable_flac = xyes; then
2005-03-24 01:10:14 +01:00
echo " FLAC support ..................enabled"
2004-03-17 19:13:29 +01:00
else
2005-03-24 01:10:14 +01:00
echo " FLAC support ..................disabled"
2004-03-17 19:13:29 +01:00
fi
2009-02-28 16:50:13 +01:00
if test x$enable_fluidsynth = xyes; then
echo " fluidsynth MIDI support .......enabled"
else
echo " fluidsynth MIDI support .......disabled"
fi
2006-03-16 07:52:46 +01:00
2009-02-28 16:50:13 +01:00
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
2009-03-06 10:29:11 +01:00
if test x$enable_mad = xyes; then
echo " MAD mp3 decoder support .......enabled"
2009-02-28 16:50:13 +01:00
else
2009-03-06 10:29:11 +01:00
echo " MAD mp3 decoder support .......disabled"
2008-11-03 16:48:12 +01:00
fi
if test x$enable_mp4 = xyes; then
echo " MP4 support ...................enabled"
2004-03-17 19:13:29 +01:00
else
2008-11-03 16:48:12 +01:00
echo " MP4 support ...................disabled"
2004-03-17 19:13:29 +01:00
fi
2005-02-01 05:15:41 +01:00
if test x$enable_mpc = xyes; then
2005-03-24 01:10:14 +01:00
echo " Musepack (MPC) support ........enabled"
2005-02-01 05:15:41 +01:00
else
2005-03-24 01:10:14 +01:00
echo " Musepack (MPC) support ........disabled"
2005-02-01 05:15:41 +01:00
fi
2009-02-28 16:50:13 +01:00
case $enable_oggflac in
yes)
echo " OggFLAC support ...............enabled"
;;
flac)
echo " OggFLAC support ...............enabled(FLAC 1.1.3)"
;;
*)
echo " OggFLAC support ...............disabled"
;;
esac
2004-05-31 22:59:55 +02:00
2009-02-28 16:50:13 +01:00
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
2008-12-28 17:11:18 +01:00
else
2009-02-28 16:50:13 +01:00
echo " Ogg Vorbis support ............disabled"
2008-12-28 17:11:18 +01:00
fi
2009-02-28 16:50:13 +01:00
if test x$enable_audiofile = xyes; then
echo " Wave file support .............enabled"
2009-02-11 20:31:17 +01:00
else
2009-02-28 16:50:13 +01:00
echo " Wave file support .............disabled"
2009-02-11 20:31:17 +01:00
fi
2009-02-28 16:50:13 +01:00
if test x$enable_wavpack = xyes; then
echo " WavPack support ...............enabled"
2009-02-12 08:43:26 +01:00
else
2009-02-28 16:50:13 +01:00
echo " WavPack support ...............disabled"
2009-02-12 08:43:26 +01:00
fi
2009-02-12 16:43:18 +01:00
if test x$enable_wildmidi = xyes; then
echo " wildmidi MIDI support .........enabled"
else
echo " wildmidi MIDI support .........disabled"
fi
2009-02-28 16:50:13 +01:00
2008-10-17 22:27:33 +02:00
2006-07-16 23:58:52 +02:00
if
2009-03-06 10:29:11 +01:00
test x$enable_mad = xno &&
2006-07-16 23:58:52 +02:00
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 &&
2007-06-24 22:40:04 +02:00
test x$enable_wavpack = xno &&
2008-10-17 22:27:33 +02:00
test x$enable_ffmpeg = xno &&
2008-12-28 17:11:18 +01:00
test x$enable_modplug = xno &&
2009-02-11 20:31:17 +01:00
test x$enable_sidplay = xno &&
2009-02-12 08:43:26 +01:00
test x$enable_fluidsynth = xno &&
2009-02-12 16:43:18 +01:00
test x$enable_wildmidi = xno &&
2009-02-28 16:55:39 +01:00
test x$enable_mp4 = xno &&
2006-07-16 23:58:52 +02:00
test x$enable_mod = xno; then
2006-09-13 10:03:37 +02:00
AC_MSG_ERROR([No input plugins supported!])
2006-07-16 23:58:52 +02:00
fi
2008-12-27 18:54:00 +01:00
echo ""
echo " Archive support:"
if test x$enable_bz2 = xyes; then
echo " BZ2 archives support ..........enabled"
else
echo " BZ2 archives support ..........disabled"
fi
if test x$enable_iso = xyes; then
echo " ISO 9660 archives support .....enabled"
else
echo " ISO 9660 archives support .....disabled"
fi
2009-02-28 16:50:13 +01:00
if test x$enable_zip = xyes; then
echo " ZIP archives support ..........enabled"
2007-01-11 21:41:17 +01:00
else
2009-02-28 16:50:13 +01:00
echo " ZIP archives support ..........disabled"
2007-01-11 21:41:17 +01:00
fi
2009-02-28 16:50:13 +01:00
echo ""
2009-03-06 01:44:36 +01:00
echo " Streaming support:"
2008-12-14 22:05:06 +01:00
2009-03-06 01:44:36 +01:00
if test x$enable_lastfm = xyes; then
echo " last.fm radio support .........enabled"
2009-02-28 17:09:43 +01:00
else
2009-03-06 01:44:36 +01:00
echo " last.fm radio support .........disabled"
2009-02-28 17:09:43 +01:00
fi
2009-03-06 08:17:00 +01:00
if test x$enable_curl = xyes; then
2009-03-06 01:44:36 +01:00
echo " libcurl support (streaming) ...enabled"
2009-02-28 17:09:43 +01:00
else
2009-03-06 01:44:36 +01:00
echo " libcurl support (streaming) ...disabled"
2009-02-28 17:09:43 +01:00
fi
2009-03-06 08:17:00 +01:00
if test x$enable_mms = xyes; then
2009-03-06 01:44:36 +01:00
echo " libmms support ................enabled"
2009-03-06 01:28:11 +01:00
else
2009-03-06 01:44:36 +01:00
echo " libmms support ................disabled"
2009-03-06 01:28:11 +01:00
fi
2009-03-06 01:44:36 +01:00
echo ""
echo " Other features:"
if test x$enable_id3 = xyes; then
echo " ID3 tag support ...............enabled"
2009-02-28 16:50:13 +01:00
else
2009-03-06 01:44:36 +01:00
echo " ID3 tag support ...............disabled"
2009-02-28 16:50:13 +01:00
fi
2009-03-06 01:44:36 +01:00
if test x$enable_lsr = xyes; then
echo " libsamplerate support .........enabled"
2009-01-29 21:42:10 +01:00
else
2009-03-06 01:44:36 +01:00
echo " libsamplerate support .........disabled"
2009-01-29 21:42:10 +01:00
fi
2009-02-28 16:50:13 +01:00
if test x$with_zeroconf != xno; then
echo " Zeroconf support ..............$with_zeroconf"
else
echo " Zeroconf support ..............disabled"
fi
2004-03-24 00:20:21 +01:00
echo ""
echo "##########################################"
2004-03-17 19:13:29 +01:00
echo ""
2008-12-22 12:02:12 +01:00
echo "Generating needed files for compilation"
echo ""
dnl
dnl generate files
dnl
2009-02-23 10:04:51 +01:00
AC_OUTPUT(Makefile)
2008-12-22 12:02:12 +01:00
echo ""
2004-03-17 19:13:29 +01:00
echo "You are now ready to compile MPD"
echo "Type \"make\" to compile MPD"