diff --git a/Makefile.am b/Makefile.am index 22bb8014f..689431777 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,15 +1,449 @@ ACLOCAL_AMFLAGS = -I m4 AUTOMAKE_OPTIONS = foreign 1.9 dist-bzip2 -SUBDIRS = src doc -doc_DATA = AUTHORS COPYING NEWS README TODO UPGRADING -EXTRA_DIST = $(doc_DATA) autogen.sh \ - $(wildcard scripts/*.sh) scripts/mpd.spec \ - .gitignore - AM_CFLAGS = -I$(srcdir)/src $(GLIB_CFLAGS) AM_LDFLAGS = $(GLIB_LIBS) +bin_PROGRAMS = src/mpd + +src_mpd_CFLAGS = $(MPD_CFLAGS) +src_mpd_CPPFLAGS = -I$(srcdir)/src \ + $(SQLITE_CFLAGS) \ + $(CURL_CFLAGS) \ + $(MMS_CFLAGS) \ + $(AO_CFLAGS) $(ALSA_CFLAGS) \ + $(SHOUT_CFLAGS) \ + $(OGGVORBIS_CFLAGS) $(VORBISENC_CFLAGS) \ + $(patsubst -I%/FLAC,-I%,$(FLAC_CFLAGS)) \ + $(AUDIOFILE_CFLAGS) $(LIBMIKMOD_CFLAGS) \ + $(MODPLUG_CFLAGS) \ + $(SIDPLAY_CFLAGS) \ + $(FLUIDSYNTH_CFLAGS) \ + $(WILDMIDI_CFLAGS) \ + $(ID3TAG_CFLAGS) \ + $(MAD_CFLAGS) \ + $(FFMPEG_CFLAGS) \ + $(GLIB_CFLAGS) +src_mpd_LDADD = $(MPD_LIBS) \ + $(SQLITE_LIBS) \ + $(CURL_LIBS) \ + $(MMS_LIBS) \ + $(AO_LIBS) $(ALSA_LIBS) \ + $(SHOUT_LIBS) \ + $(OGGVORBIS_LIBS) $(VORBISENC_LIBS) $(FLAC_LIBS) \ + $(AUDIOFILE_LIBS) $(LIBMIKMOD_LIBS) \ + $(MODPLUG_LIBS) \ + $(SIDPLAY_LIBS) \ + $(FLUIDSYNTH_LIBS) \ + $(WILDMIDI_LIBS) \ + $(ID3TAG_LIBS) \ + $(MAD_LIBS) \ + $(MP4FF_LIBS) \ + $(FFMPEG_LIBS) \ + $(GLIB_LIBS) + +mpd_headers = \ + src/notify.h \ + src/ack.h \ + src/audio.h \ + src/audio_format.h \ + src/audio_parser.h \ + src/audioOutput.h \ + src/output_internal.h \ + src/output_api.h \ + src/output_plugin.h \ + src/output_list.h \ + src/output_all.h \ + src/output_thread.h \ + src/output_control.h \ + src/output_state.h \ + src/output_print.h \ + src/output_command.h \ + src/buffer2array.h \ + src/command.h \ + src/idle.h \ + src/cmdline.h \ + src/conf.h \ + src/crossfade.h \ + src/dbUtils.h \ + src/decoder_thread.h \ + src/decoder_control.h \ + src/decoder_plugin.h \ + src/decoder_command.h \ + src/decoder_buffer.h \ + src/decoder_api.h \ + src/decoder_plugin.h \ + src/decoder_internal.h \ + src/directory.h \ + src/directory_save.h \ + src/directory_print.h \ + src/database.h \ + src/encoder_plugin.h \ + src/encoder_list.h \ + src/encoder_api.h \ + src/update.h \ + src/dirvec.h \ + src/gcc.h \ + src/decoder_list.h \ + src/decoder/_flac_common.h \ + src/decoder/_ogg_common.h \ + src/input_stream.h \ + src/input_file.h \ + src/input_curl.h \ + src/input_mms.h \ + src/icy_metadata.h \ + src/client.h \ + src/listen.h \ + src/log.h \ + src/ls.h \ + src/main.h \ + src/mixer_api.h \ + src/event_pipe.h \ + src/daemon.h \ + src/normalize.h \ + src/compress.h \ + src/pipe.h \ + src/path.h \ + src/mapper.h \ + src/pcm_buffer.h \ + src/pcm_utils.h \ + src/pcm_convert.h \ + src/pcm_volume.h \ + src/pcm_mix.h \ + src/pcm_channels.h \ + src/pcm_format.h \ + src/pcm_resample.h \ + src/pcm_dither.h \ + src/pcm_prng.h \ + src/permission.h \ + src/player_thread.h \ + src/player_control.h \ + src/playlist.h \ + src/playlist_internal.h \ + src/playlist_print.h \ + src/playlist_save.h \ + src/playlist_state.h \ + src/queue.h \ + src/queue_print.h \ + src/queue_save.h \ + src/replay_gain.h \ + src/sig_handlers.h \ + src/song.h \ + src/song_print.h \ + src/song_save.h \ + src/song_sticker.h \ + src/songvec.h \ + src/state_file.h \ + src/stats.h \ + src/sticker.h \ + src/tag.h \ + src/tag_internal.h \ + src/tag_pool.h \ + src/tag_id3.h \ + src/tag_print.h \ + src/tag_save.h \ + src/strset.h \ + src/utils.h \ + src/volume.h \ + src/zeroconf.h src/zeroconf-internal.h \ + src/locate.h \ + src/stored_playlist.h \ + src/timer.h \ + src/archive_api.h \ + src/archive_internal.h \ + src/archive_list.h \ + src/input_archive.h + +src_mpd_SOURCES = \ + $(mpd_headers) \ + src/notify.c \ + src/audio.c \ + src/audio_parser.c \ + src/audioOutput.c \ + src/output_api.c \ + src/output_list.c \ + src/output_all.c \ + src/output_thread.c \ + src/output_control.c \ + src/output_state.c \ + src/output_print.c \ + src/output_command.c \ + src/output_init.c \ + src/output/null_plugin.c \ + src/buffer2array.c \ + src/command.c \ + src/idle.c \ + src/cmdline.c \ + src/conf.c \ + src/crossfade.c \ + src/dbUtils.c \ + src/decoder_thread.c \ + src/decoder_control.c \ + src/decoder_buffer.c \ + src/decoder_api.c \ + src/directory.c \ + src/directory_save.c \ + src/directory_print.c \ + src/database.c \ + src/dirvec.c \ + src/update.c \ + src/decoder_list.c \ + src/input_stream.c \ + src/input_file.c \ + src/client.c \ + src/listen.c \ + src/log.c \ + src/ls.c \ + src/main.c \ + src/event_pipe.c \ + src/daemon.c \ + src/mixer_api.c \ + src/normalize.c \ + src/compress.c \ + src/pipe.c \ + src/path.c \ + src/mapper.c \ + src/pcm_convert.c \ + src/pcm_volume.c \ + src/pcm_mix.c \ + src/pcm_channels.c \ + src/pcm_format.c \ + src/pcm_resample.c \ + src/pcm_dither.c \ + src/permission.c \ + src/player_thread.c \ + src/player_control.c \ + src/playlist.c \ + src/playlist_global.c \ + src/playlist_control.c \ + src/playlist_edit.c \ + src/playlist_print.c \ + src/playlist_save.c \ + src/playlist_state.c \ + src/queue.c \ + src/queue_print.c \ + src/queue_save.c \ + src/replay_gain.c \ + src/sig_handlers.c \ + src/song.c \ + src/song_print.c \ + src/song_save.c \ + src/songvec.c \ + src/state_file.c \ + src/stats.c \ + src/tag.c \ + src/tag_pool.c \ + src/tag_print.c \ + src/tag_save.c \ + src/strset.c \ + src/utils.c \ + src/volume.c \ + src/locate.c \ + src/stored_playlist.c \ + src/timer.c + +if ENABLE_SQLITE +src_mpd_SOURCES += src/sticker.c src/song_sticker.c +endif + +if HAVE_LIBSAMPLERATE +src_mpd_SOURCES += src/pcm_resample_libsamplerate.c +else +src_mpd_SOURCES += src/pcm_resample_fallback.c +endif + +if HAVE_ID3TAG +src_mpd_SOURCES += src/tag_id3.c +endif + +# archive plugins + +if HAVE_BZ2 +src_mpd_SOURCES += src/archive/bz2_plugin.c +endif + +if HAVE_ZIP +src_mpd_SOURCES += src/archive/zip_plugin.c +endif + +if HAVE_ISO +src_mpd_SOURCES += src/archive/iso_plugin.c +endif + +if ENABLE_ARCHIVE +src_mpd_SOURCES += \ + src/archive_api.c \ + src/archive_list.c \ + src/input_archive.c +endif + + +# decoder plugins + +if HAVE_MAD +src_mpd_SOURCES += src/decoder/mad_plugin.c +endif + +if HAVE_MPCDEC +src_mpd_SOURCES += src/decoder/mpcdec_plugin.c +endif + +if HAVE_WAVPACK +src_mpd_SOURCES += src/decoder/wavpack_plugin.c +endif + +if HAVE_FAAD +src_mpd_SOURCES += src/decoder/faad_plugin.c +endif + +if HAVE_MP4 +src_mpd_SOURCES += src/decoder/mp4ff_plugin.c +endif + +if HAVE_OGG_COMMON +src_mpd_SOURCES += src/decoder/_ogg_common.c +endif + +if HAVE_FLAC_COMMON +src_mpd_SOURCES += src/decoder/_flac_common.c +endif + +if HAVE_OGGVORBIS +src_mpd_SOURCES += src/decoder/vorbis_plugin.c +endif + +if HAVE_FLAC +src_mpd_SOURCES += src/decoder/flac_plugin.c +endif + +if HAVE_OGGFLAC +src_mpd_SOURCES += src/decoder/oggflac_plugin.c +endif + +if HAVE_AUDIOFILE +src_mpd_SOURCES += src/decoder/audiofile_plugin.c +endif + +if HAVE_MIKMOD +src_mpd_SOURCES += src/decoder/mikmod_plugin.c +endif + +if HAVE_MODPLUG +src_mpd_SOURCES += src/decoder/modplug_plugin.c +endif + +if ENABLE_SIDPLAY +src_mpd_SOURCES += src/decoder/sidplay_plugin.cxx +endif + +if ENABLE_FLUIDSYNTH +src_mpd_SOURCES += src/decoder/fluidsynth_plugin.c +endif + +if ENABLE_WILDMIDI +src_mpd_SOURCES += src/decoder/wildmidi_plugin.c +endif + +if HAVE_FFMPEG +src_mpd_SOURCES += src/decoder/ffmpeg_plugin.c +endif + +# encoder plugins + +if ENABLE_ENCODER +src_mpd_SOURCES += src/encoder_list.c + +if ENABLE_VORBIS_ENCODER +src_mpd_SOURCES += src/encoder/vorbis_encoder.c +endif + +if ENABLE_LAME_ENCODER +src_mpd_SOURCES += src/encoder/lame_encoder.c +endif +endif + + +if HAVE_ZEROCONF +src_mpd_SOURCES += src/zeroconf.c + +if HAVE_AVAHI +src_mpd_SOURCES += src/zeroconf-avahi.c +endif + +if HAVE_BONJOUR +src_mpd_SOURCES += src/zeroconf-bonjour.c +endif +endif + + +if HAVE_CURL +src_mpd_SOURCES += src/input_curl.c src/icy_metadata.c +endif + +if ENABLE_MMS +src_mpd_SOURCES += src/input_mms.c +endif + + +if HAVE_ALSA +src_mpd_SOURCES += src/output/alsa_plugin.c +src_mpd_SOURCES += src/mixer/alsa_mixer.c +endif + +if HAVE_AO +src_mpd_SOURCES += src/output/ao_plugin.c +endif + +if HAVE_FIFO +src_mpd_SOURCES += src/output/fifo_plugin.c +endif + +if HAVE_JACK +src_mpd_SOURCES += src/output/jack_plugin.c +endif + +if HAVE_MVP +src_mpd_SOURCES += src/output/mvp_plugin.c +endif + +if HAVE_OSS +src_mpd_SOURCES += src/output/oss_plugin.c +src_mpd_SOURCES += src/mixer/oss_mixer.c +endif + +if HAVE_OSX +src_mpd_SOURCES += src/output/osx_plugin.c +endif + +if HAVE_PULSE +src_mpd_SOURCES += src/output/pulse_plugin.c +endif + +if HAVE_SHOUT +src_mpd_SOURCES += src/output/shout_plugin.c +endif + + +# +# Sparse code analysis +# +# sparse is a semantic parser +# URL: git://www.kernel.org/pub/scm/devel/sparse/sparse.git +# + +SPARSE = sparse +SPARSE_FLAGS = +SPARSE_CPPFLAGS = $(DEFAULT_INCLUDES) \ + -I$(shell $(CC) -print-file-name=include) \ + -I$(shell $(CC) -print-file-name=include-fixed) +sparse-check: + for i in $(src_mpd_SOURCES); \ + do \ + $(SPARSE) -I. $(src_mpd_CFLAGS) $(src_mpd_CPPFLAGS) $(SPARSE_FLAGS) $(SPARSE_CPPFLAGS) $(srcdir)/$$i || exit; \ + done + +.PHONY: sparse-check + # # Test programs @@ -22,11 +456,49 @@ noinst_PROGRAMS = test/software_volume test_software_volume_SOURCES = test/software_volume.c \ src/audio_parser.c \ src/pcm_volume.c +endif + + +# +# Documentation +# + +DOCBOOK_FILES = doc/protocol.xml +DOCBOOK_HTML = $(patsubst %.xml,%/index.html,$(DOCBOOK_FILES)) + +man_MANS = doc/mpd.1 doc/mpd.conf.5 +doc_DATA = AUTHORS COPYING NEWS README TODO UPGRADING doc/mpdconf.example + +if ENABLE_DOCUMENTATION +protocoldir = $(docdir)/protocol +protocol_DATA = $(wildcard doc/protocol/*.html) + +$(DOCBOOK_HTML): %/index.html: %.xml + $(XMLTO) -o protocol --stringparam chunker.output.encoding=utf-8 html $< + +doc/api/html/index.html: doc/doxygen.conf + $(DOXYGEN) $< + +all-local: $(DOCBOOK_HTML) doc/api/html/index.html + +clean-local: + rm -rf $(patsubst %.xml,%,$(DOCBOOK_FILES)) + rm -rf doc/api + +install-data-local: doc/api/html/index.html + $(mkinstalldirs) $(DESTDIR)$(docdir)/api/html + $(INSTALL_DATA) -c -m 644 doc/api/html/*.html doc/api/html/*.css \ + doc/api/html/*.png doc/api/html/*.gif \ + $(DESTDIR)$(docdir)/api/html endif -sparse-check test: - $(MAKE) -C src $@ +# +# Distribution +# -.PHONY: sparse-check test +EXTRA_DIST = $(doc_DATA) autogen.sh \ + $(wildcard scripts/*.sh) scripts/mpd.spec \ + .gitignore \ + $(man_MANS) $(DOCBOOK_FILES) doc/mpdconf.example diff --git a/configure.ac b/configure.ac index 8c1e1d2ca..349f110f2 100644 --- a/configure.ac +++ b/configure.ac @@ -1461,7 +1461,7 @@ dnl dnl generate files dnl -AC_OUTPUT(doc/Makefile src/Makefile Makefile) +AC_OUTPUT(Makefile) echo "" diff --git a/doc/Makefile.am b/doc/Makefile.am deleted file mode 100644 index 211a23010..000000000 --- a/doc/Makefile.am +++ /dev/null @@ -1,28 +0,0 @@ -DOCBOOK_FILES = protocol.xml -DOCBOOK_HTML = $(patsubst %.xml,%/index.html,$(DOCBOOK_FILES)) - -man_MANS = mpd.1 mpd.conf.5 -doc_DATA = mpdconf.example -EXTRA_DIST = $(man_MANS) $(DOCBOOK_FILES) mpdconf.example - -if ENABLE_DOCUMENTATION -protocoldir = $(docdir)/protocol -protocol_DATA = $(wildcard protocol/*.html) - -$(DOCBOOK_HTML): %/index.html: %.xml - $(XMLTO) -o protocol --stringparam chunker.output.encoding=utf-8 html $< - -api/html/index.html: doxygen.conf - $(DOXYGEN) $< - -all-local: $(DOCBOOK_HTML) api/html/index.html - -clean-local: - rm -rf $(patsubst %.xml,%,$(DOCBOOK_FILES)) - rm -rf api - -install-data-local: api/html/index.html - $(mkinstalldirs) $(DESTDIR)$(docdir)/api/html - $(INSTALL_DATA) -c -m 644 api/html/*.html api/html/*.css api/html/*.png api/html/*.gif $(DESTDIR)$(docdir)/api/html - -endif diff --git a/doc/doxygen.conf b/doc/doxygen.conf index 5e1ff4aaa..625e070ae 100644 --- a/doc/doxygen.conf +++ b/doc/doxygen.conf @@ -38,7 +38,7 @@ PROJECT_NUMBER = # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. -OUTPUT_DIRECTORY = api +OUTPUT_DIRECTORY = doc/api # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output @@ -534,7 +534,7 @@ WARN_LOGFILE = # directories like "/usr/src/myproject". Separate the files or directories # with spaces. -INPUT = ../src +INPUT = src # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is diff --git a/src/Makefile.am b/src/Makefile.am deleted file mode 100644 index 0183a669e..000000000 --- a/src/Makefile.am +++ /dev/null @@ -1,446 +0,0 @@ -bin_PROGRAMS = mpd - -mpd_CFLAGS = $(MPD_CFLAGS) -mpd_CPPFLAGS = \ - $(SQLITE_CFLAGS) \ - $(CURL_CFLAGS) \ - $(MMS_CFLAGS) \ - $(AO_CFLAGS) $(ALSA_CFLAGS) \ - $(SHOUT_CFLAGS) \ - $(OGGVORBIS_CFLAGS) $(VORBISENC_CFLAGS) \ - $(patsubst -I%/FLAC,-I%,$(FLAC_CFLAGS)) \ - $(AUDIOFILE_CFLAGS) $(LIBMIKMOD_CFLAGS) \ - $(MODPLUG_CFLAGS) \ - $(SIDPLAY_CFLAGS) \ - $(FLUIDSYNTH_CFLAGS) \ - $(WILDMIDI_CFLAGS) \ - $(ID3TAG_CFLAGS) \ - $(MAD_CFLAGS) \ - $(FFMPEG_CFLAGS) \ - $(GLIB_CFLAGS) -mpd_LDADD = $(MPD_LIBS) \ - $(SQLITE_LIBS) \ - $(CURL_LIBS) \ - $(MMS_LIBS) \ - $(AO_LIBS) $(ALSA_LIBS) \ - $(SHOUT_LIBS) \ - $(OGGVORBIS_LIBS) $(VORBISENC_LIBS) $(FLAC_LIBS) \ - $(AUDIOFILE_LIBS) $(LIBMIKMOD_LIBS) \ - $(MODPLUG_LIBS) \ - $(SIDPLAY_LIBS) \ - $(FLUIDSYNTH_LIBS) \ - $(WILDMIDI_LIBS) \ - $(ID3TAG_LIBS) \ - $(MAD_LIBS) \ - $(MP4FF_LIBS) \ - $(FFMPEG_LIBS) \ - $(GLIB_LIBS) - -mpd_headers = \ - notify.h \ - ack.h \ - audio.h \ - audio_format.h \ - audio_parser.h \ - audioOutput.h \ - output_internal.h \ - output_api.h \ - output_plugin.h \ - output_list.h \ - output_all.h \ - output_thread.h \ - output_control.h \ - output_state.h \ - output_print.h \ - output_command.h \ - buffer2array.h \ - command.h \ - idle.h \ - cmdline.h \ - conf.h \ - crossfade.h \ - dbUtils.h \ - decoder_thread.h \ - decoder_control.h \ - decoder_plugin.h \ - decoder_command.h \ - decoder_buffer.h \ - decoder_api.h \ - decoder_plugin.h \ - decoder_internal.h \ - directory.h \ - directory_save.h \ - directory_print.h \ - database.h \ - encoder_plugin.h \ - encoder_list.h \ - encoder_api.h \ - update.h \ - dirvec.h \ - gcc.h \ - decoder_list.h \ - decoder/_flac_common.h \ - decoder/_ogg_common.h \ - input_stream.h \ - input_file.h \ - input_curl.h \ - input_mms.h \ - icy_metadata.h \ - client.h \ - listen.h \ - log.h \ - ls.h \ - main.h \ - mixer_api.h \ - event_pipe.h \ - daemon.h \ - normalize.h \ - compress.h \ - pipe.h \ - path.h \ - mapper.h \ - pcm_buffer.h \ - pcm_utils.h \ - pcm_convert.h \ - pcm_volume.h \ - pcm_mix.h \ - pcm_channels.h \ - pcm_format.h \ - pcm_resample.h \ - pcm_dither.h \ - pcm_prng.h \ - permission.h \ - player_thread.h \ - player_control.h \ - playlist.h \ - playlist_internal.h \ - playlist_print.h \ - playlist_save.h \ - playlist_state.h \ - queue.h \ - queue_print.h \ - queue_save.h \ - replay_gain.h \ - sig_handlers.h \ - song.h \ - song_print.h \ - song_save.h \ - song_sticker.h \ - songvec.h \ - state_file.h \ - stats.h \ - sticker.h \ - tag.h \ - tag_internal.h \ - tag_pool.h \ - tag_id3.h \ - tag_print.h \ - tag_save.h \ - strset.h \ - utils.h \ - volume.h \ - zeroconf.h zeroconf-internal.h \ - locate.h \ - stored_playlist.h \ - timer.h \ - archive_api.h \ - archive_internal.h \ - archive_list.h \ - input_archive.h - - -mpd_SOURCES = \ - $(mpd_headers) \ - notify.c \ - audio.c \ - audio_parser.c \ - audioOutput.c \ - output_api.c \ - output_list.c \ - output_all.c \ - output_thread.c \ - output_control.c \ - output_state.c \ - output_print.c \ - output_command.c \ - output_init.c \ - output/null_plugin.c \ - buffer2array.c \ - command.c \ - idle.c \ - cmdline.c \ - conf.c \ - crossfade.c \ - dbUtils.c \ - decoder_thread.c \ - decoder_control.c \ - decoder_buffer.c \ - decoder_api.c \ - directory.c \ - directory_save.c \ - directory_print.c \ - database.c \ - dirvec.c \ - update.c \ - decoder_list.c \ - input_stream.c \ - input_file.c \ - client.c \ - listen.c \ - log.c \ - ls.c \ - main.c \ - event_pipe.c \ - daemon.c \ - mixer_api.c \ - normalize.c \ - compress.c \ - pipe.c \ - path.c \ - mapper.c \ - pcm_convert.c \ - pcm_volume.c \ - pcm_mix.c \ - pcm_channels.c \ - pcm_format.c \ - pcm_resample.c \ - pcm_dither.c \ - permission.c \ - player_thread.c \ - player_control.c \ - playlist.c \ - playlist_global.c \ - playlist_control.c \ - playlist_edit.c \ - playlist_print.c \ - playlist_save.c \ - playlist_state.c \ - queue.c \ - queue_print.c \ - queue_save.c \ - replay_gain.c \ - sig_handlers.c \ - song.c \ - song_print.c \ - song_save.c \ - songvec.c \ - state_file.c \ - stats.c \ - tag.c \ - tag_pool.c \ - tag_print.c \ - tag_save.c \ - strset.c \ - utils.c \ - volume.c \ - locate.c \ - stored_playlist.c \ - timer.c - -if ENABLE_SQLITE -mpd_SOURCES += sticker.c song_sticker.c -endif - -if HAVE_LIBSAMPLERATE -mpd_SOURCES += pcm_resample_libsamplerate.c -else -mpd_SOURCES += pcm_resample_fallback.c -endif - -if HAVE_ID3TAG -mpd_SOURCES += tag_id3.c -endif - -# archive plugins - -if HAVE_BZ2 -mpd_SOURCES += archive/bz2_plugin.c -endif - -if HAVE_ZIP -mpd_SOURCES += archive/zip_plugin.c -endif - -if HAVE_ISO -mpd_SOURCES += archive/iso_plugin.c -endif - -if ENABLE_ARCHIVE -mpd_SOURCES += \ - archive_api.c \ - archive_list.c \ - input_archive.c -endif - - -# decoder plugins - -if HAVE_MAD -mpd_SOURCES += decoder/mad_plugin.c -endif - -if HAVE_MPCDEC -mpd_SOURCES += decoder/mpcdec_plugin.c -endif - -if HAVE_WAVPACK -mpd_SOURCES += decoder/wavpack_plugin.c -endif - -if HAVE_FAAD -mpd_SOURCES += decoder/faad_plugin.c -endif - -if HAVE_MP4 -mpd_SOURCES += decoder/mp4ff_plugin.c -endif - -if HAVE_OGG_COMMON -mpd_SOURCES += decoder/_ogg_common.c -endif - -if HAVE_FLAC_COMMON -mpd_SOURCES += decoder/_flac_common.c -endif - -if HAVE_OGGVORBIS -mpd_SOURCES += decoder/vorbis_plugin.c -endif - -if HAVE_FLAC -mpd_SOURCES += decoder/flac_plugin.c -endif - -if HAVE_OGGFLAC -mpd_SOURCES += decoder/oggflac_plugin.c -endif - -if HAVE_AUDIOFILE -mpd_SOURCES += decoder/audiofile_plugin.c -endif - -if HAVE_MIKMOD -mpd_SOURCES += decoder/mikmod_plugin.c -endif - -if HAVE_MODPLUG -mpd_SOURCES += decoder/modplug_plugin.c -endif - -if ENABLE_SIDPLAY -mpd_SOURCES += decoder/sidplay_plugin.cxx -endif - -if ENABLE_FLUIDSYNTH -mpd_SOURCES += decoder/fluidsynth_plugin.c -endif - -if ENABLE_WILDMIDI -mpd_SOURCES += decoder/wildmidi_plugin.c -endif - -if HAVE_FFMPEG -mpd_SOURCES += decoder/ffmpeg_plugin.c -endif - -# encoder plugins - -if ENABLE_ENCODER -mpd_SOURCES += encoder_list.c - -if ENABLE_VORBIS_ENCODER -mpd_SOURCES += encoder/vorbis_encoder.c -endif - -if ENABLE_LAME_ENCODER -mpd_SOURCES += encoder/lame_encoder.c -endif -endif - - -if HAVE_ZEROCONF -mpd_SOURCES += zeroconf.c - -if HAVE_AVAHI -mpd_SOURCES += zeroconf-avahi.c -endif - -if HAVE_BONJOUR -mpd_SOURCES += zeroconf-bonjour.c -endif -endif - - -if HAVE_CURL -mpd_SOURCES += input_curl.c icy_metadata.c -endif - -if ENABLE_MMS -mpd_SOURCES += input_mms.c -endif - - -if HAVE_ALSA -mpd_SOURCES += output/alsa_plugin.c -mpd_SOURCES += mixer/alsa_mixer.c -endif - -if HAVE_AO -mpd_SOURCES += output/ao_plugin.c -endif - -if HAVE_FIFO -mpd_SOURCES += output/fifo_plugin.c -endif - -if HAVE_JACK -mpd_SOURCES += output/jack_plugin.c -endif - -if HAVE_MVP -mpd_SOURCES += output/mvp_plugin.c -endif - -if HAVE_OSS -mpd_SOURCES += output/oss_plugin.c -mpd_SOURCES += mixer/oss_mixer.c -endif - -if HAVE_OSX -mpd_SOURCES += output/osx_plugin.c -endif - -if HAVE_PULSE -mpd_SOURCES += output/pulse_plugin.c -endif - -if HAVE_SHOUT -mpd_SOURCES += output/shout_plugin.c -endif - -# sparse is a semantic parser -# URL: git://www.kernel.org/pub/scm/devel/sparse/sparse.git -SPARSE = sparse -SPARSE_FLAGS = -SPARSE_CPPFLAGS = $(DEFAULT_INCLUDES) \ - -I$(shell $(CC) -print-file-name=include) \ - -I$(shell $(CC) -print-file-name=include-fixed) -sparse-check: - for i in $(mpd_SOURCES); \ - do \ - $(SPARSE) -I. $(mpd_CFLAGS) $(mpd_CPPFLAGS) $(SPARSE_FLAGS) $(SPARSE_CPPFLAGS) $(srcdir)/$$i || exit; \ - done - -TEST_CFLAGS = -DUNIT_TEST -TEST_FILES := $(shell grep UNIT_TEST \ - $(addprefix $(srcdir)/, $(mpd_SOURCES)) | \ - awk -F: '{print $$1}' | uniq) - -test: $(addprefix test-, $(subst .c,,$(TEST_FILES))) - -test-%: %.c - $(CC) $(CFLAGS) $(TEST_CFLAGS) -o $@ $< - @./$@ - @echo $@: OK - -.PHONY: sparse-check test