Commit Graph

285 Commits

Author SHA1 Message Date
Max Kellermann c057af6cea configure.ac: removed duplicate PKG_PROG_PKG_CONFIG 2009-01-11 17:39:23 +01:00
Max Kellermann ad7b7a1664 configure.ac: declare MPD_LIBS and MPD_CFLAGS first
Declare and initialize MPD_LIBS and MPD_CFLAGS before the "OS specific
defaults" section.
2009-01-06 09:07:02 +01:00
Max Kellermann b8a1cf30e8 configure.ac: moved checks to argument declarations I
Zeroconf, curl, libsamplerate.  No libid3tag for now, because
libid3tag should be automatically disabled when no decoders using it
are enabled.
2009-01-05 09:44:48 +01:00
Max Kellermann 2856be540f configure.ac: moved checks to argument declarations I
Don't separate basic options from their according tests.  Due to lots
of interdependencies, we won't do that for the plugins yet.
2009-01-05 09:43:07 +01:00
Max Kellermann 3f4bfd22c6 configure.ac: reordered plugin types
Print input plugins first, then archive, metadatab, decoder,
converter, encoder, output plugins.
2009-01-05 09:41:45 +01:00
Max Kellermann 283bca7523 configure.ac: moved build options down
Initialize the CFLAGS (warnings, errors) after all the libraries,
because some library checks may be broken with -Werror or -pedantic.
2009-01-05 09:31:11 +01:00
Max Kellermann 0fb21e67ef configure.ac: use AC_CHECK_HEADERS to check for locale.h
AC_CHECK_HEADERS defines HAVE_LOCALE_H, so we don't have to manually
define HAVE_LOCALE.
2009-01-05 09:31:09 +01:00
Max Kellermann 694a919b8e configure.ac: moved mandatory checks up
First do the checks for mandatory stuff (libc features, glib,
pkg-config), then all the options.
2009-01-05 09:31:04 +01:00
Max Kellermann e178a6f6a7 configure.ac: removed obsolete checks
Don't check for inttypes.h and langinfo.h.
2009-01-05 09:31:02 +01:00
Max Kellermann ac0fe98ffb use GLib byte order macros 2009-01-05 08:17:22 +01:00
Max Kellermann c844bd602d configure.ac: disable ID3 support when libid3tag was not found
Fix a typo.
2009-01-05 08:04:43 +01:00
Max Kellermann 1cad0c5b1d configure.ac: detect libid3tag without pkg-config
libid3tag comes without a pkg-config file, and it is usually added by
distribution packages.  For those without .pc file, attempt to
auto-detect the library with AC_CHECK_LIB.
2009-01-04 15:31:06 +01:00
Max Kellermann 4e0973a8f7 configure.ac: link with -lws2_32 on WIN32
All socket functions are provided by ws2_32.dll.
2009-01-03 13:21:25 +01:00
Max Kellermann 71e7ce5d8e main: use the GLib main loop
This is a rather huge patch, which unfortunately cannot be splitted.

Instead of using our custom ioops.h library, convert everything to use
the GLib main loop.
2008-12-30 19:24:39 +01:00
Max Kellermann 49fa9708d5 zeroconf: moved code to zeroconf-avahi.c and zeroconf-bonjour.c
Moved implementation specific code to their own sources, internal
declarations in zeroconf-internal.h.
2008-12-30 16:43:58 +01:00
Max Kellermann 274b919966 main: use g_setenv() instead of setenv()
Removed the fallback setenv() implementation for solaris.
2008-12-29 17:37:40 +01:00
Max Kellermann 702d6a641d configure.ac: append archive libraries to $MPD_LIBS
All archive plugins used to overwrite $MPD_LIBS, ignoring the existing
value.  Make them append instead, keeping the old value.
2008-12-29 11:27:11 +01:00
Max Kellermann dfe235900f configure.ac: check for archive libraries only if enabled
Don't bother to look for libbz2, libzzip and libiso9660 if the plugins
are disabled.
2008-12-29 10:01:33 +01:00
Max Kellermann 8a8fdfb0ad configure.ac: removed pthread checks
We're now using GLib threading.
2008-12-29 08:20:19 +01:00
Max Kellermann c01aa53e6a log: support syslog()
Allow logging to syslog if log_file is configured to "syslog".
2008-12-28 19:48:53 +01:00
Viliam Mateicka d838a1ad24 decoder: new plugin using modplug library 2008-12-28 17:11:18 +01:00
Viliam Mateicka 166d326950 configure.ac: fixed description to bzip2 compile option 2008-12-27 20:16:00 +01:00
Avuton Olrich e18ded8ded Add an "Archive support" section to the configure results screen. 2008-12-27 09:54:00 -08:00
Avuton Olrich 9ca7be9e82 Change configure time option to be bzip2 rather than bz2. 2008-12-27 09:50:37 -08:00
Avuton Olrich dc0f779287 Fix text string to show bz2 rather than rar. 2008-12-27 09:49:27 -08:00
Max Kellermann 0fe0425dee disable archive API without plugins
When there are no archive plugins, we do not need the archive API at
all.  Drop all its overhead.
2008-12-27 14:33:41 +01:00
Max Kellermann 4c13a276c4 configure.ac: moved archive library checks to options
Don't split configure options and their implementation.  Check for the
backend library before the AM_CONDITIONAL, otherwise Makefile.am will
compile the plugin although the library may not be available.
2008-12-27 13:45:17 +01:00
Max Kellermann 9220e0edff Merge branch 'experimental' of git://git.musicpd.org/metyl/mpd
Conflicts:

	configure.ac
	src/ls.h
	src/output/shout_plugin.c
2008-12-27 13:34:51 +01:00
Qball Cow 0e7c67067b Check for pkg-config before using it 2008-12-27 10:07:46 +01:00
Avuton Olrich 571b789dd0 Modify version string to post-release version 0.15~git 2008-12-25 13:18:46 -08:00
Avuton Olrich 8b7d7f8abd MPD version 0.14 2008-12-25 13:18:46 -08:00
Max Kellermann 136670832c configure.ac: renamed shout options
configure options should use the dash instead of the underscore.
2008-12-24 03:40:00 +01:00
Max Kellermann 2888ff9bfa configure.ac: fix --enable-un documentation
Unix domain socket support is enabled by default.
2008-12-24 03:32:11 +01:00
Max Kellermann 7950a6d612 configure.ac: disable the mikmod plugin by default
libmikmod seems to be unmaintained, and has several critical bugs
which make MPD crash.

 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=461519
 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=476339

Disable the plugin by default to minimize harm.  Users should
explicitly enable the mikmod decoder (--enable-mod) if they wish to
have it anyway.
2008-12-24 03:24:23 +01:00
Qball Cow fe4a9a6d67 Build makefiles after checking available outputs and decoder plugins
Move the AC_OUTPUT below the checks. So you nicely see what goes wrong.
2008-12-22 12:02:12 +01:00
Avuton Olrich 5c0c66d676 MPD version 0.14~beta3 2008-12-20 06:49:31 -08:00
Max Kellermann c41fa6cf5e configure.ac: check lame availability before shout_mp3 test
If lame was not available, the shout_mp3 plugin was enabled anyway,
and triggered compiler errors.
2008-12-17 17:16:24 +01:00
Max Kellermann caf601199b configure.ac: disable shout when no encoder is found
First check if an ecoder plugin is available, then determine whether
to enable the shout output plugin.
2008-12-17 16:57:48 +01:00
Viliam Mateicka 37796699cf archiveapi: archive plugin for ISO files 2008-12-16 21:48:26 +01:00
Viliam Mateicka ddcf0a4078 archiveapi: archive plugin for ZIP files 2008-12-16 21:46:11 +01:00
Viliam Mateicka 98fd9b7da8 archiveapi: archive plugin for BZ2 files 2008-12-16 21:45:59 +01:00
jefromi 9deecd219e configure.ac: added libcurl to configure summary
When updating from a version before libcurl was used for streaming
support, this is confusing - streaming will work with the old version
(e.g. 0.13.2) but will give "no such file" errors with the new due to
the missing dependency. However, the missing dependency will not be
obvious when running the configure script.
2008-12-14 22:05:06 +01:00
Avuton Olrich fe6292fa5c MPD version 0.14~beta2 2008-12-02 20:01:50 -08:00
Avuton Olrich 29dd5b4aa5 MPD version 0.14~beta1 2008-11-23 12:53:43 -08:00
Max Kellermann 90bfe65e54 doc: process protocol.xml with xmlto
Generate and install protocol.html if xmlto is available.
2008-11-20 08:59:55 +01:00
Max Kellermann 9c4e97a61b aac: detect whether to pass "uint32_t*" to NeAACDecInit2()
neaacdec.h declares all arguments as "unsigned long", but internally
expects uint32_t pointers.  This triggers gcc warnings on 64 bit
architectures.  To avoid that, make configure.ac detect whether we're
using Debian's corrected headers or the original libfaad headers.  In
any case, pass a pointer to an uint32_t, conditionally casted to
"unsigned long*".
2008-11-16 20:04:49 +01:00
Avuton Olrich 0efd80d2e5 MPD version 0.14~alpha3 2008-11-14 10:29:06 -08:00
Avuton Olrich 3eb9b3218d MPD version 0.14~alpha2 2008-11-13 14:43:10 +01:00
Max Kellermann 343f2ac3fc configure.ac: enable _ogg_common.c when flac is enabled
The build failed when the oggvorbis and oggflac decoders were
disabled, because the flac decoder references a symbol from
_ogg_common.c.
2008-11-07 17:21:21 +01:00
Max Kellermann 2172505f5c configure.ac: added AC_CONFIG_SRCDIR 2008-11-07 17:14:52 +01:00
Max Kellermann 91c1a279e4 MPD version 0.14~alpha1
First alpha version for the upcoming version 0.14.
2008-11-05 21:50:53 +01:00
Max Kellermann 259c6ed164 enable GLib threading
Call g_thread_init() from main() to enable the GLib features which
make it thread safe.
2008-11-05 18:21:49 +01:00
Max Kellermann 104d5120c9 configure.ac: check for avcodec_decode_audio2()
Disable the ffmpeg decoder plugin if avcodec_decode_audio2() is not
available.
2008-11-04 17:42:37 +01:00
Max Kellermann 792711bddd configure.ac: unset MP4FF_LIBS when MP4 support is disabled
Although there is no AC_SUBST when $enable_mp4=no, autoconf
substitutes its value in Makefile.am.  Clear it in this case.
2008-11-04 07:46:47 +01:00
Avuton Olrich b54348a1e5 configure.ac: disable libflac's oggflac support with --disable-oggflac
The configure flag "--disable-oggflac" disabled only liboggflac.
2008-11-03 17:35:16 +01:00
Max Kellermann dda8fc4f6b configure.ac: AC_SUBST(MP4FF_LIBS)
The AC_SUBST() call was missing in the previous patch.
2008-11-03 17:35:06 +01:00
Max Kellermann f70dccdce1 configure.ac: separate the "aac" and "mp4" decoder tests
MPD used to have a copy of the mp4ff library.  Since that has been
removed, AAC suport was disabled when there was no libmp4ff.  Separate
the libmp4ff test, and enable AAC support no matter if libmp4ff is
available.
2008-11-03 16:48:12 +01:00
Max Kellermann 355108666c configure.ac: fix "xyes: command not found"
Due to a missing "test", the "xyes" token was interpreted as a
command.
2008-10-26 22:03:26 +01:00
Max Kellermann 0800c6f4ca output: don't compile plugins which are disabled
Don't compile the sources of disabled output plugins at all.
2008-10-26 21:58:37 +01:00
Max Kellermann 3609de8685 http: use libcurl
MPD's HTTP client code has always been broken, no matter how effort
was put into fixing it.  Replace it with libcurl, which is known to be
quite stable.  This adds a fat library dependency, but only for people
who need streaming.
2008-10-26 19:32:43 +01:00
Max Kellermann cbc71191f0 configure.ac: reverted protocol version to 0.14.0
Several clients refuse to accept the protocol version "0.14~git",
because they think it is malformed.  This is clearly a client bug, but
we cannot wait for all clients to fix this bug right now.  For now,
change the version back to "0.14.0".
2008-10-26 10:32:20 +01:00
Max Kellermann f9d52dc968 configure.ac: changed version number to "0.14~git"
For testers, it should be clear that they're not using version 0.14.0
final, but an inofficial intermediate version from the git repository.
The protocol version is set to the same string, since the protocol is
subject to change during MPD development.
2008-10-25 21:23:54 +02:00
Max Kellermann befecb1d47 configure.ac: disable libtool
Since we're not building the local mp4ff library anymore, we can
remove AC_PROG_LIBTOOL.
2008-10-25 21:23:52 +02:00
Max Kellermann 1110a6d410 removed internal copy of libmp4ff
MPD shouldn't integrate sources of other libraries.  Since libmp4ff is
part of libfaad, we should remove the old copy from src/mp4ff and link
with the current version from libfaad instead.
2008-10-25 20:59:36 +02:00
Max Kellermann 8b4829c2fe pcm_resample: support for libsamplerate < 0.1.3
libsamplerate 0.1.2 didn't have the 32 bit <-> float conversion
routines.  Emulate them in case they aren't supported.
2008-10-24 08:41:34 +02:00
Max Kellermann 6b1c54ef96 pcm_utils: moved code to pcm_resample.c
Separate the resampling code from the rest of pcm_utils.c.  Create two
sub-libraries: pcm_resample_libsamplerate.c and
pcm_resample_fallback.c.
2008-10-23 20:00:51 +02:00
Max Kellermann e4df17f611 ffmpeg: link with libavutil
Since ffmpeg svn r13528, you have to link with libavutil manually.
2008-10-21 08:46:51 +02:00
Max Kellermann def97411f2 ffmpeg: detect which ffmpeg headers should be included
Since ffmpeg svn r12865, you have to include libavcodec/avcodec.h
instead of avcodec.h.  This cannot be checked at compile time, instead
we have to add a check to configure.ac.  Viliam's original ffmpeg
plugin was based on the newer ffmpeg library, while my Debian
installation had the older version.  My attempt to correct his include
statements wasn't correct after all.
2008-10-21 08:34:19 +02:00
Andrzej Rybczak 7487f9810c configure.ac: use libmikmod-config instead of pkg-config
[mk: use AC_SUBST instead of appending to MPD_CFLAGS / MPD_LIBS]
2008-10-18 18:34:00 +02:00
Max Kellermann 90fdf07aa9 Makefile.am: require automake 1.9
With heavy use of conditionals, I broke Makefile.am for the ancient
automake version 1.6.  Instead of supporting this automake version
forever, I'm removing support for it now.  Since automake isn't
required on the build machine, nobody should have a serious problem
with that.
2008-10-18 07:21:04 +02:00
Max Kellermann eace565212 reverted package name to "mpd"
Since mpd-mk has become the "official" MPD, the rename from commit
ba892cbc can be reverted.
2008-10-17 23:59:39 +02:00
Max Kellermann ae6ca0b8af configure.ac: test $with_zeroconf!=no
Patch 25b5d90e broke zeroconf compilation, because it assumed that
$with_zeroconf was set to "yes", although it can be either "bonjour"
or "avahi".
2008-10-17 22:48:43 +02:00
Viliam Mateicka 11ad997141 ffmpeg: new decoder plugin
[mk: fixed indent, changed copyright statement, added autoconf test,
fixed includes paths, fixed 2 gcc warnings, don't close input stream
twice]
2008-10-17 22:27:33 +02:00
Max Kellermann 4ee8da2e69 Makefile.am: don't compile disabled decoder plugins
Don't compile the sources of disabled decoder plugins at all, and
don't attempt to register these.
2008-10-17 21:57:09 +02:00
Max Kellermann 25b5d90e44 Makefile.am: don't compile disabled sources
If a feature is disabled, don't compile the source file at all,
disable it completely in Makefile.am instead.
2008-10-17 21:13:23 +02:00
Max Kellermann 9b5ce27c3b configure.ac: check if "struct ucred" is available
By default, glibc 2.8 hides struct ucred behind the _GNU_SOURCE
macro.  I don't want to enable that globally, because it may encourage
the use of non-portable functions.  Test if "struct ucred" is
available, and enable _GNU_SOURCE if required.

For details about that issue, see glib's bug database:

 http://sources.redhat.com/bugzilla/show_bug.cgi?id=6545
2008-10-16 14:59:26 +02:00
Max Kellermann 3b20fa4f3f configure.ac: reformatted AC_ARG_ENABLE section
Make the configure.ac script more readable by wrapping lines and using
proper indentation.
2008-10-16 08:40:55 +02:00
Max Kellermann b53365949a configure.ac: find more libraries with pkg-config
Detect the following libraries with pkg-config: libshout, libid3tag,
libmad.
2008-10-16 08:33:29 +02:00
Max Kellermann da83f2bbe7 configure.ac: removed iconv option
We're using GLib's character set conversion functions instead of iconv
now.
2008-10-16 08:31:21 +02:00
Max Kellermann 92513c3309 shout: check for vorbisenc library
The switch from ogg.m4 to pkg-config intentionally disabled
libvorbisenc.  Enable it when shout_ogg is used.
2008-10-15 20:40:04 +02:00
Enrico Weigelt 30cd345581 fixing several imports to work via pkg-config
This patch fixes several imports to use pkg-config instead of certain
esoteric tests.
2008-10-15 20:39:46 +02:00
Max Kellermann e89599eaad use GLib
GLib is a nice and portable utility library.  We are going to use it
from now on, and eliminate a lot of duplicated code from MPD.  Why
invent the wheel again and again?
2008-10-15 19:35:04 +02:00
Max Kellermann df5f16b54e configure.ac: enable unix socket support by default 2008-10-14 17:23:14 +02:00
Max Kellermann 50ecbec3de configure.ac: removed deprecated checks
Removed some configure checks which aren't used anymore since we use
C99.
2008-10-14 17:23:11 +02:00
Max Kellermann 731c629c6a configure.ac: disabled the C++ and fortran checks
Why check for C++ and fortran compilers?  This hack was borrowed from
Qball's gmpc git repository.
2008-10-14 17:23:06 +02:00
Max Kellermann e9ed10de3a configure.ac: added --enable-debug, --enable-werror, --enable-profile
Add more configure options which control how MPD is compiled.
--enable-debug is always enabled, until there is a stable release.
2008-10-14 17:23:00 +02:00
Max Kellermann b0c1cf7590 configure.ac: enable -pedantic
Yet another gcc flag which gives us lots of interesting warnings.
2008-10-14 17:21:58 +02:00
Max Kellermann 37b69759da configure.ac: moved CFLAGS checks down
Some warning flags may cause errors during library detection code.  Do
the CFLAGS checks at the end.
2008-10-14 17:21:51 +02:00
Max Kellermann ba892cbcb0 changed package name to "mpd-mk", updated version number
This git branch has become a real MPD fork now.  Time to change the
package name to the code name "mpd-mk".  Set the version number to
"0.14~git" to mark this as a non-released version.
2008-10-14 17:21:27 +02:00
Eric Wong a792dc5b93 autotools: add pthreads linker support
This is needed for people that don't use any of the following:
JACK, ALSA, libmikmod, Shout.
2008-10-06 18:52:48 +02:00
Max Kellermann 798eeeee63 require a C99 compiler
C99 will soon have its 10th birthday.  Let's not beat the dead C89
horse, and raise the compiler requirements.  From now on, we need a
C99 compiler.  This adds "-std=gnu99" to the GCC compiler options, in
case GCC is used.
2008-09-29 15:51:02 +02:00
Max Kellermann 9899ab5ac2 properly configure the M4 macro directory
Add information about the M4 macro dir ./m4/ to both configure.ac and
Makefile.am.
2008-09-23 22:38:46 +02:00
Eric Wollesen 5f8eebd122 shout: added mp3 encoder
[mk: moved this patch after "Refactor and cleanup of shout Ogg and MP3
audio outputs".  The original commit message follows, although it is
outdated:]

Creation of shout_mp3 audio output plugin. Basically I just copied the
existing shout plugin and replaced ogg with lame. Uses lame for mp3
encoding. Next step is to pull common functionality out of each shout
plugin and share it between them.

Configuration options for "shout_mp3" are the same as for "shout".
2008-09-12 16:05:23 +02:00
Eric Wollesen 4970c42c86 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
Eric Wong b67bb05d05 build: enable -Wcast-qual -Wwrite-strings CFLAGS
We're pretty careful about using const these days, so
enable these warnings to keep us that way.
2008-09-07 18:37:29 +02:00
Eric Wong 5c26e73226 Point the contact email to musicpd-dev-team
Warren hasn't been active in development in a while and probably
doesn't have much time to answer user questions.  So point the
mailing contact to the public mailing lists where any developer
can see and answer.
2008-08-28 20:40:17 +02:00
Max Kellermann a383f45117 enable -Wpointer-arith, -Wstrict-prototypes
Also enable -Wunused-parameter - this forces us to add the gcc
"unused" attribute to a lot of parameters (mostly library callback
functions), but it's worth it during code refactorizations.
2008-08-26 08:27:02 +02:00
Jim Ramsay 72434d212c Die if a specific backend is requested but not found.
git-svn-id: https://svn.musicpd.org/mpd/trunk@7382 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2008-06-16 13:43:03 +00:00
Eric Wong 4e4441fd32 configure: better CFLAGS checking
needed for compatibility with older gcc.  Also, threw in
some warnings for things I find offensive
(declaration-after-statement, shadow)

git-svn-id: https://svn.musicpd.org/mpd/trunk@7299 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2008-04-12 04:16:22 +00:00
Max Kellermann 913b2b8399 configure: output ipv6 support option result
[ew: rewrote commit message as it was confusing]

git-svn-id: https://svn.musicpd.org/mpd/trunk@7237 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2008-04-12 04:07:31 +00:00