]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - configure.ac
build: Call AC_CONFIG_HEADERS rather than AM_CONFIG_HEADER.
[paraslash.git] / configure.ac
index 06ce1c34a8236f04f2465d18297ea024794a64b1..6f8878a3e09c5b8b30f4f42f4a43825000b3c7a9 100644 (file)
@@ -3,13 +3,27 @@
 
 AC_PREREQ([2.61])
 
-AC_INIT([paraslash],[git],[maan@systemlinux.org])
-AC_CONFIG_HEADER([config.h])
+AC_INIT([paraslash],[git],[maan@tuebingen.mpg.de])
+AC_CONFIG_HEADERS([config.h])
 
 AC_CONFIG_FILES([Makefile])
 AC_DEFUN([add_dot_o],[$(for i in $@; do printf "$i.o "; done)])
 AC_DEFUN([add_cmdline],[$(for i in $@; do printf "${i}.cmdline "; done)])
-AC_DEFUN([objlist_to_errlist],[$(for i in $@; do printf "DEFINE_ERRLIST($(echo $i| tr 'a-z' 'A-Z'));"; done) [const char **para_errlist[[]]] = {$(for i in $@; do printf "PARA_ERRLIST($(echo $i | tr 'a-z' 'A-Z')), "; done) }])
+AC_DEFUN([make_errlist_defines], \
+       $(for i in $@; do \
+               printf "DEFINE_ERRLIST($(echo $i | tr 'a-z' 'A-Z'));"; \
+       done) \
+)
+AC_DEFUN([make_para_errlists], \
+       $(for i in $@; do \
+               printf "PARA_ERRLIST($(echo $i | tr 'a-z' 'A-Z')), "; \
+       done) \
+)
+AC_DEFUN([objlist_to_errlist],[ \
+       make_errlist_defines($@) \
+       [const char **para_errlist[[]]] = {make_para_errlists($@)} \
+])
+
 AC_PATH_PROG(UNAMEPATH, uname, no)
 if test "$UNAMEPATH" = "no"; then
        AC_MSG_ERROR(unable to determine system type)
@@ -90,8 +104,6 @@ AC_CHECK_FUNCS([atexit dup2 memchr memmove memset \
        [AC_MSG_ERROR([function not found, cannot live without it])])
 
 executables="recv filter audioc write afh play"
-audio_format_handlers="mp3 wma"
-
 ################################################################## clock_gettime
 clock_gettime_lib=
 AC_CHECK_LIB([c], [clock_gettime], [clock_gettime_lib=c], [
@@ -131,7 +143,7 @@ if test "$have_osl" = "yes"; then
 else
        AC_MSG_WARN([libosl not found, can not build para_server.
 Download libosl at
-       http://systemlinux.org/~maan/osl
+       http://people.tuebingen.mpg.de/maan/osl/
 or execute
        git clone git://git.tuebingen.mpg.de/osl
        ])
@@ -193,9 +205,6 @@ if test "$check_openssl" = "yes"; then
                openssl_ldflags="$openssl_libs -lssl -lcrypto"
                AC_SUBST(openssl_ldflags)
 
-               client_errlist_objs="$client_errlist_objs crypt"
-               audiod_errlist_objs="$audiod_errlist_objs crypt"
-
                check_gcrypt="no"
        else
                AC_MSG_WARN([openssl libraries not found])
@@ -231,9 +240,6 @@ if test "$check_gcrypt" = "yes"; then
                AC_SUBST(gcrypt_cppflags)
                gcrypt_ldflags="$gcrypt_libs -lgcrypt"
                AC_SUBST(gcrypt_ldflags)
-
-               client_errlist_objs="$client_errlist_objs gcrypt"
-               audiod_errlist_objs="$audiod_errlist_objs gcrypt"
        else
                AC_MSG_WARN([gcrypt library not found])
        fi
@@ -340,10 +346,6 @@ if test ${have_core_audio} = yes; then
        f4="-framework CoreServices"
        core_audio_ldflags="$f1 $f2 $f3 $f4"
        AC_SUBST(core_audio_ldflags)
-
-       audiod_errlist_objs="$audiod_errlist_objs osx_write ipc"
-       audiod_cmdline_objs="$audiod_cmdline_objs osx_write.cmdline"
-
        AC_DEFINE(HAVE_CORE_AUDIO, 1, define to 1 on Mac Os X)
 fi
 ####################################################### ogg/vorbis/speex/opus
@@ -378,11 +380,17 @@ if test -n "$with_ogg_libs"; then
 fi
 AC_CHECK_HEADERS([ogg/ogg.h], [], [ have_ogg="no"; ])
 AC_CHECK_LIB([ogg], [ogg_stream_init], [], [ have_ogg="no" ])
+CPPFLAGS="$OLD_CPPFLAGS"
+LDFLAGS="$OLD_LDFLAGS"
+LIBS="$OLD_LIBS"
 
 have_vorbis="yes"
 have_speex="yes"
 have_opus="yes"
 if test "$have_ogg" = "yes"; then
+       OLD_CPPFLAGS="$CPPFLAGS"
+       OLD_LDFLAGS="$LDFLAGS"
+       OLD_LIBS="$LIBS"
        # vorbis
        if test -n "$with_vorbis_headers"; then
                vorbis_cppflags="-I$with_vorbis_headers"
@@ -394,8 +402,14 @@ if test "$have_ogg" = "yes"; then
        fi
        AC_CHECK_HEADERS([vorbis/codec.h], [], [ have_vorbis="no" ])
        AC_CHECK_LIB([vorbis], [vorbis_info_init], [], [ have_vorbis="no" ])
+       CPPFLAGS="$OLD_CPPFLAGS"
+       LDFLAGS="$OLD_LDFLAGS"
+       LIBS="$OLD_LIBS"
 
        # speex
+       OLD_CPPFLAGS="$CPPFLAGS"
+       OLD_LDFLAGS="$LDFLAGS"
+       OLD_LIBS="$LIBS"
        if test -n "$with_speex_headers"; then
                speex_cppflags="-I$with_speex_headers"
                CPPFLAGS="$CPPFLAGS $speex_cppflags"
@@ -406,8 +420,14 @@ if test "$have_ogg" = "yes"; then
        fi
        AC_CHECK_LIB([speex], [speex_decoder_init], [], [ have_speex="no" ])
        AC_CHECK_HEADERS([speex/speex.h], [], [ have_speex="no" ])
+       CPPFLAGS="$OLD_CPPFLAGS"
+       LDFLAGS="$OLD_LDFLAGS"
+       LIBS="$OLD_LIBS"
 
        # opus
+       OLD_CPPFLAGS="$CPPFLAGS"
+       OLD_LDFLAGS="$LDFLAGS"
+       OLD_LIBS="$LIBS"
        if test -n "$with_opus_headers"; then
                opus_cppflags="-I$with_opus_headers"
                CPPFLAGS="$CPPFLAGS $opus_cppflags"
@@ -418,6 +438,9 @@ if test "$have_ogg" = "yes"; then
        fi
        AC_CHECK_LIB([opus], [opus_multistream_decode], [], [ have_opus="no" ])
        AC_CHECK_HEADERS([opus/opus.h], [], [ have_opus="no" ])
+       CPPFLAGS="$OLD_CPPFLAGS"
+       LDFLAGS="$OLD_LDFLAGS"
+       LIBS="$OLD_LIBS"
 else
        AC_MSG_WARN([vorbis/speex/opus depend on libogg, which was not detected])
        have_vorbis="no"
@@ -438,25 +461,15 @@ if test "$have_vorbis" = "yes" || \
 fi
 if test "$have_vorbis" = "yes"; then
        AC_DEFINE(HAVE_OGGVORBIS, 1, define to 1 to turn on ogg/vorbis support)
+       AC_SUBST(vorbis_cppflags)
        vorbis_ldflags="$vorbis_libs -lvorbis -lvorbisfile"
        AC_SUBST(vorbis_ldflags)
-
-       audiod_errlist_objs="$audiod_errlist_objs oggdec_filter"
-
-       audiod_audio_formats="$audiod_audio_formats ogg"
-       audio_format_handlers="$audio_format_handlers ogg"
 fi
 if test "$have_speex" = "yes"; then
        AC_DEFINE(HAVE_SPEEX, 1, define to 1 to turn on ogg/speex support)
        AC_SUBST(speex_cppflags)
        speex_ldflags="$speex_libs -lspeex"
        AC_SUBST(speex_ldflags)
-
-
-       audiod_errlist_objs="$audiod_errlist_objs spxdec_filter spx_common"
-
-       audiod_audio_formats="$audiod_audio_formats spx"
-       audio_format_handlers="$audio_format_handlers spx"
 else
        AC_MSG_WARN([no ogg/speex $msg])
 fi
@@ -465,18 +478,10 @@ if test "$have_opus" = "yes"; then
        AC_SUBST(opus_cppflags)
        opus_ldflags="$opus_libs -lopus"
        AC_SUBST(opus_ldflags)
-
-
-       audiod_errlist_objs="$audiod_errlist_objs opusdec_filter opus_common"
-
-       audiod_audio_formats="$audiod_audio_formats opus"
        audio_format_handlers="$audio_format_handlers opus"
 else
        AC_MSG_WARN([no ogg/opus $msg])
 fi
-CPPFLAGS="$OLD_CPPFLAGS"
-LDFLAGS="$OLD_LDFLAGS"
-LIBS="$OLD_LIBS"
 ########################################################################### faad
 have_faad=yes
 OLD_CPPFLAGS="$CPPFLAGS"
@@ -501,11 +506,6 @@ if test "$have_faad" = "yes"; then
        AC_SUBST(faad_cppflags)
        faad_ldflags="$faad_libs -lfaad"
        AC_SUBST(faad_ldflags)
-
-       audiod_errlist_objs="$audiod_errlist_objs aacdec_filter aac_common"
-
-       audiod_audio_formats="$audiod_audio_formats aac"
-       audio_format_handlers="$audio_format_handlers aac"
 fi
 CPPFLAGS="$OLD_CPPFLAGS"
 LDFLAGS="$OLD_LDFLAGS"
@@ -539,9 +539,6 @@ if test "$have_mad" = "yes"; then
        AC_SUBST(mad_cppflags)
        mad_ldflags="$mad_libs -lmad"
        AC_SUBST(mad_ldflags)
-       audiod_cmdline_objs="$audiod_cmdline_objs mp3dec_filter"
-       audiod_errlist_objs="$audiod_errlist_objs mp3dec_filter"
-       audiod_audio_formats="$audiod_audio_formats mp3"
 else
        AC_MSG_WARN([no mp3dec support in para_audiod/para_filter])
 fi
@@ -602,16 +599,16 @@ if test -n "$with_flac_libs"; then
        LDFLAGS="$LDFLAGS $flac_libs"
 fi
 AC_CHECK_HEADER(FLAC/stream_decoder.h, [], have_flac=no)
-AC_CHECK_LIB([FLAC], [FLAC__stream_decoder_init_file], [], have_flac=no, -logg -lm)
+AC_CHECK_LIB([FLAC], [FLAC__stream_decoder_init_file], [], [
+       # nope, try again with -logg
+       AC_CHECK_LIB([FLAC], [FLAC__stream_decoder_init_file], [],
+               have_flac=no, -lm -logg)
+       ], -lm)
 if test "$have_flac" = "yes"; then
        AC_DEFINE(HAVE_FLAC, 1, define to 1 if you want to build the flacdec filter)
        AC_SUBST(flac_cppflags)
        flac_ldflags="$flac_libs -lFLAC"
        AC_SUBST(flac_ldflags)
-
-       audiod_errlist_objs="$audiod_errlist_objs flacdec_filter"
-       audio_format_handlers="$audio_format_handlers flac"
-       audiod_audio_formats="$audiod_audio_formats flac"
 else
        AC_MSG_WARN([no flac support in para_audiod/para_filter/para_afh/para_server])
 fi
@@ -627,14 +624,6 @@ have_oss="yes"
 msg="=> will not build oss writer"
 
 AC_CHECK_HEADER(sys/soundcard.h, [
-       audiod_errlist_objs="$audiod_errlist_objs oss_write"
-       audiod_cmdline_objs="$audiod_cmdline_objs oss_write"
-
-       fade_errlist_objs="$fade_errlist_objs oss_mix"
-
-       mixers="${mixers}oss "
-       default_mixer="OSS_MIX"
-
        AC_CHECK_LIB(ossaudio, _oss_ioctl, [
                        oss_ldflags="-lossaudio"
                        AC_SUBST(oss_ldflags)
@@ -678,13 +667,6 @@ fi
 if test "$have_alsa" = "yes"; then
        alsa_ldflags="-lasound"
        AC_SUBST(alsa_ldflags)
-       audiod_errlist_objs="$audiod_errlist_objs alsa_write"
-       audiod_cmdline_objs="$audiod_cmdline_objs alsa_write"
-
-       fade_errlist_objs="$fade_errlist_objs alsa_mix"
-
-       mixers="${mixers}alsa "
-       default_mixer="ALSA_MIX"
 fi
 
 CPPFLAGS="$OLD_CPPFLAGS"
@@ -737,10 +719,6 @@ if test "$have_ao" = "yes"; then
        AC_SUBST(ao_cppflags)
        ao_ldflags="$ao_libs -lao -lpthread"
        AC_SUBST(ao_ldflags)
-
-       audiod_errlist_objs="$audiod_errlist_objs ao_write"
-       audiod_cmdline_objs="$audiod_cmdline_objs ao_write"
-
 fi
 
 CPPFLAGS="$OLD_CPPFLAGS"
@@ -772,22 +750,18 @@ AC_CHECK_HEADERS([readline/readline.h], [
        AC_MSG_WARN([readline/readline.h not found, $msg])
 ])
 
-if test "$have_curses" != "yes"; then
-       have_readline="no"
-       AC_MSG_WARN([interactive cli support depends on curses,])
-       AC_MSG_WARN([but no curses lib was detected, $msg])
-fi
-
 if test "$have_readline" = "yes"; then
-       readline_ldflags="$readline_libs -lreadline"
-       AC_SEARCH_LIBS([rl_free_keymap], [readline], [], [have_readline="no"])
+       readline_ldflags="$readline_libs"
+       AC_SEARCH_LIBS([rl_free_keymap], [readline], [
+               readline_ldflags="$readline_ldflags -lreadline"
+       ], [have_readline="no"])
        if test "$have_readline" = "no"; then # try with -lcurses
                 # clear cache
                AC_MSG_NOTICE([trying again with -lcurses])
                 unset ac_cv_search_rl_free_keymap 2> /dev/null
                AC_SEARCH_LIBS([rl_free_keymap], [readline], [
                        have_readline=yes
-                       readline_ldflags="$readline_ldflags -lcurses"
+                       readline_ldflags="$readline_ldflags -lreadline -lcurses"
                ], [], [-lcurses])
        fi
        if test "$have_readline" = "no"; then # try with -ltermcap
@@ -796,15 +770,23 @@ if test "$have_readline" = "yes"; then
                 unset ac_cv_search_rl_free_keymap 2> /dev/null
                AC_SEARCH_LIBS([rl_free_keymap], [readline], [
                        have_readline=yes
-                       readline_ldflags="$readline_ldflags -ltermcap"
+                       readline_ldflags="$readline_ldflags -lreadline -ltermcap"
                ], [], [-ltermcap])
        fi
 fi
 
 if test "$have_readline" = "yes"; then
+       AC_CHECK_DECL(
+               [rl_free_keymap],
+               [AC_DEFINE(RL_FREE_KEYMAP_DECLARED, 1, readline >= 6.3)],
+               [],
+               [
+                       #include <stdio.h>
+                       #include <readline/readline.h>
+               ]
+       )
        AC_SUBST(readline_cppflags)
        AC_SUBST(readline_ldflags)
-       client_errlist_objs="$client_errlist_objs interactive"
        AC_DEFINE(HAVE_READLINE, 1, define to 1 to turn on readline support)
 else
        AC_MSG_WARN([libreadline not found or unusable])
@@ -838,9 +820,6 @@ if test "$have_samplerate" = "yes"; then
        AC_SUBST(samplerate_cppflags)
        samplerate_ldflags="$samplerate_libs -lsamplerate"
        AC_SUBST(samplerate_ldflags)
-
-       audiod_errlist_objs="$audiod_errlist_objs resample_filter check_wav"
-       audiod_cmdline_objs="$audiod_cmdline_objs resample_filter"
 else
        AC_MSG_WARN([no resample support in para_audiod/para_filter])
 fi
@@ -931,7 +910,7 @@ if test "$have_openssl" = "yes" -o "$have_gcrypt" = "yes"; then
        build_client="yes"
        executables="$executables client"
        client_cmdline_objs="client"
-       client_errlist_objs="$client_errlist_objs
+       client_errlist_objs="
                client
                net
                string
@@ -947,6 +926,19 @@ if test "$have_openssl" = "yes" -o "$have_gcrypt" = "yes"; then
                version
                ggo
        "
+       if test "$have_openssl" = "yes"; then
+               client_errlist_objs="$client_errlist_objs crypt"
+       fi
+       if test "$have_gcrypt" = "yes"; then
+               client_errlist_objs="$client_errlist_objs gcrypt"
+       fi
+       if test "$have_readline" = "yes"; then
+               client_errlist_objs="$client_errlist_objs interactive"
+       fi
+       client_objs="add_cmdline($client_cmdline_objs) $client_errlist_objs"
+       AC_SUBST(client_objs, add_dot_o($client_objs))
+       AC_DEFINE_UNQUOTED(INIT_CLIENT_ERRLISTS,
+               objlist_to_errlist($client_errlist_objs), errors used by para_client)
 else
        build_client="no"
 fi
@@ -954,6 +946,7 @@ fi
 if test "$have_openssl" = "yes" -o "$have_gcrypt" = "yes"; then
        build_audiod="yes"
        executables="$executables audiod"
+       audiod_audio_formats="wma"
        audiod_cmdline_objs="$audiod_cmdline_objs
                audiod
                compress_filter
@@ -964,6 +957,7 @@ if test "$have_openssl" = "yes" -o "$have_gcrypt" = "yes"; then
                amp_filter
                udp_recv
                prebuffer_filter
+               sync_filter
        "
        audiod_errlist_objs="$audiod_errlist_objs
                audiod
@@ -1001,21 +995,90 @@ if test "$have_openssl" = "yes" -o "$have_gcrypt" = "yes"; then
                wma_common
                wmadec_filter
                buffer_tree
+               sync_filter
        "
-       audiod_ldflags="$audiod_ldflags -lm"
-       audiod_audio_formats="$audiod_audio_formats wma"
+       if test "$have_openssl" = "yes"; then
+               audiod_errlist_objs="$audiod_errlist_objs crypt"
+       fi
+       if test "$have_gcrypt" = "yes"; then
+               audiod_errlist_objs="$audiod_errlist_objs gcrypt"
+       fi
+       if test "$have_core_audio" = "yes"; then
+               audiod_errlist_objs="$audiod_errlist_objs osx_write ipc"
+               audiod_cmdline_objs="$audiod_cmdline_objs osx_write"
+       fi
+       if test "$have_vorbis" = "yes"; then
+               audiod_errlist_objs="$audiod_errlist_objs oggdec_filter"
+               audiod_audio_formats="$audiod_audio_formats ogg"
+       fi
+       if test "$have_speex" = "yes"; then
+               audiod_errlist_objs="$audiod_errlist_objs spxdec_filter spx_common"
+               audiod_audio_formats="$audiod_audio_formats spx"
+       fi
+       if test "$have_opus" = "yes"; then
+               audiod_errlist_objs="$audiod_errlist_objs opusdec_filter opus_common"
+               audiod_audio_formats="$audiod_audio_formats opus"
+       fi
+       if test "$have_faad" = "yes"; then
+               audiod_errlist_objs="$audiod_errlist_objs aacdec_filter aac_common"
+               audiod_audio_formats="$audiod_audio_formats aac"
+       fi
+       if test "$have_mad" = "yes"; then
+               audiod_audio_formats="$audiod_audio_formats mp3"
+               audiod_cmdline_objs="$audiod_cmdline_objs mp3dec_filter"
+               audiod_errlist_objs="$audiod_errlist_objs mp3dec_filter"
+       fi
+       if test "$have_flac" = "yes"; then
+               audiod_errlist_objs="$audiod_errlist_objs flacdec_filter"
+               audiod_audio_formats="$audiod_audio_formats flac"
+       fi
+       if test "$have_oss" = "yes"; then
+               audiod_errlist_objs="$audiod_errlist_objs oss_write"
+               audiod_cmdline_objs="$audiod_cmdline_objs oss_write"
+       fi
+       if test "$have_alsa" = "yes"; then
+               audiod_errlist_objs="$audiod_errlist_objs alsa_write"
+               audiod_cmdline_objs="$audiod_cmdline_objs alsa_write"
+       fi
+       if test "$have_ao" = "yes"; then
+               audiod_errlist_objs="$audiod_errlist_objs ao_write"
+               audiod_cmdline_objs="$audiod_cmdline_objs ao_write"
+       fi
+       if test "$have_samplerate" = "yes"; then
+               audiod_errlist_objs="$audiod_errlist_objs resample_filter check_wav"
+               audiod_cmdline_objs="$audiod_cmdline_objs resample_filter"
+       fi
+       audiod_objs="add_cmdline($audiod_cmdline_objs) $audiod_errlist_objs"
+       AC_SUBST(audiod_objs, add_dot_o($audiod_objs))
+       AC_DEFINE_UNQUOTED(INIT_AUDIOD_ERRLISTS, objlist_to_errlist($audiod_errlist_objs),
+               errors used by para_audiod)
+
+       enum="$(for i in $audiod_audio_formats; do printf "AUDIO_FORMAT_${i}, " | tr '[a-z]' '[A-Z]'; done)"
+       AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMATS_ENUM, $enum NUM_AUDIO_FORMATS,
+               enum of audio formats supported by audiod)
+       names="$(for i in $audiod_audio_formats; do printf \"$i\",' ' ; done)"
+       AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMAT_ARRAY, $names, array of audio formats supported by audiod)
 else
        build_audiod="no"
 fi
 ########################################################################### fade
-if test -n "$mixers"; then
+if test "$have_oss" = "yes" -o "$have_alsa" = "yes"; then
        build_fade="yes"
        executables="$executables fade"
-       fade_errlist_objs="$fade_errlist_objs fade exec string fd version ggo"
        fade_cmdline_objs="fade"
+       fade_errlist_objs="fade exec string fd version ggo"
+       if test "$have_oss" = "yes"; then
+               fade_errlist_objs="$fade_errlist_objs oss_mix"
+               mixers="${mixers}oss "
+               default_mixer="OSS_MIX"
+       fi
+       if test "$have_alsa" = "yes"; then
+               fade_errlist_objs="$fade_errlist_objs alsa_mix"
+               mixers="${mixers}alsa "
+               default_mixer="ALSA_MIX"
+       fi
        fade_objs="add_cmdline($fade_cmdline_objs) $fade_errlist_objs"
        AC_SUBST(fade_objs, add_dot_o($fade_objs))
-       AC_SUBST(fade_ldflags, $fade_ldflags)
        AC_DEFINE_UNQUOTED(INIT_FADE_ERRLISTS,
                objlist_to_errlist($fade_errlist_objs),
                errors used by para_fade)
@@ -1039,11 +1102,9 @@ if test -n "$mixers"; then
                init functions of the supported mixers)
        array="$(for i in $mixers; do printf '{.init = '$i'_mix_init},'; done)"
        AC_DEFINE_UNQUOTED(MIXER_ARRAY, $array, array of supported mixers)
-       mixer_summary="supported mixers:: $mixers, default: $default_mixer"
 else
        build_fade="no"
        AC_MSG_WARN([no mixer support])
-       mixer_summary="para_fade: no"
 fi
 ########################################################################### gui
 if test "$have_curses" = "yes"; then
@@ -1060,10 +1121,14 @@ if test "$have_curses" = "yes"; then
                gui
                gui_theme
                time
+               sched
                version
                ggo
        "
        gui_objs="add_cmdline($gui_cmdline_objs) $gui_errlist_objs"
+       AC_SUBST(gui_objs, add_dot_o($gui_objs))
+       AC_DEFINE_UNQUOTED(INIT_GUI_ERRLISTS,
+               objlist_to_errlist($gui_errlist_objs), errors used by para_gui)
 else
        build_gui="no"
        AC_MSG_WARN([no curses lib, cannot build para_gui])
@@ -1076,6 +1141,7 @@ filters="
        fecdec
        wmadec
        prebuffer
+       sync
 "
 filter_errlist_objs="
        filter_common
@@ -1100,12 +1166,14 @@ filter_errlist_objs="
        wmadec_filter
        buffer_tree
        net
+       sync_filter
 "
 filter_cmdline_objs="
        filter
        compress_filter
        amp_filter
        prebuffer_filter
+       sync_filter
 "
 
 if test "$have_vorbis" = "yes"; then
@@ -1138,6 +1206,21 @@ if test "$have_samplerate" = "yes"; then
        filter_cmdline_objs="$filter_cmdline_objs resample_filter"
        filters="$filters resample"
 fi
+filters="$(echo $filters)"
+AC_SUBST(filters)
+filter_objs="add_cmdline($filter_cmdline_objs) $filter_errlist_objs"
+
+AC_SUBST(filter_objs, add_dot_o($filter_objs))
+AC_DEFINE_UNQUOTED(INIT_FILTER_ERRLISTS,
+       objlist_to_errlist($filter_errlist_objs), errors used by para_filter)
+
+enum="$(for i in $filters; do printf "${i}_FILTER, " | tr '[a-z]' '[A-Z]'; done)"
+AC_DEFINE_UNQUOTED(FILTER_ENUM, $enum NUM_SUPPORTED_FILTERS,
+       enum of supported filters)
+inits="$(for i in $filters; do printf 'extern void '$i'_filter_init(struct filter *f); '; done)"
+AC_DEFINE_UNQUOTED(DECLARE_FILTER_INITS, $inits, init functions of the supported filters)
+array="$(for i in $filters; do printf '{.name = "'$i'", .init = '$i'_filter_init},'; done)"
+AC_DEFINE_UNQUOTED(FILTER_ARRAY, $array, array of supported filters)
 ########################################################################## recv
 recv_cmdline_objs="
        recv
@@ -1189,10 +1272,12 @@ if test "$have_flac" = "yes"; then
        recv_errlist_objs="$recv_errlist_objs flac_afh"
 fi
 recv_objs="add_cmdline($recv_cmdline_objs) $recv_errlist_objs"
+AC_SUBST(receivers, "http dccp udp afh")
 AC_SUBST(recv_objs, add_dot_o($recv_objs))
 AC_DEFINE_UNQUOTED(INIT_RECV_ERRLISTS, objlist_to_errlist($recv_errlist_objs),
        errors used by para_recv)
 ########################################################################### afh
+audio_format_handlers="mp3 wma"
 afh_cmdline_objs="afh"
 afh_errlist_objs="
        afh
@@ -1213,18 +1298,23 @@ if test "$have_vorbis" = "yes" || \
 fi
 if test "$have_vorbis" = "yes"; then
        afh_errlist_objs="$afh_errlist_objs ogg_afh"
+       audio_format_handlers="$audio_format_handlers ogg"
 fi
 if test "$have_speex" = "yes"; then
        afh_errlist_objs="$afh_errlist_objs spx_afh spx_common"
+       audio_format_handlers="$audio_format_handlers spx"
 fi
 if test "$have_opus" = "yes"; then
        afh_errlist_objs="$afh_errlist_objs opus_afh opus_common"
+       audio_format_handlers="$audio_format_handlers opus"
 fi
 if test "$have_faad" = "yes"; then
        afh_errlist_objs="$afh_errlist_objs aac_common aac_afh"
+       audio_format_handlers="$audio_format_handlers aac"
 fi
 if test "$have_flac" = "yes"; then
        afh_errlist_objs="$afh_errlist_objs flac_afh"
+       audio_format_handlers="$audio_format_handlers flac"
 fi
 
 afh_objs="add_cmdline($afh_cmdline_objs) $afh_errlist_objs"
@@ -1264,6 +1354,7 @@ play_errlist_objs="
        write_common
        file_write
        version
+       sync_filter
 "
 play_cmdline_objs="
        http_recv
@@ -1275,10 +1366,11 @@ play_cmdline_objs="
        prebuffer_filter
        file_write
        play
+       sync_filter
 "
 if test "$have_core_audio" = "yes"; then
        play_errlist_objs="$play_errlist_objs osx_write ipc"
-       play_cmdline_objs="$play_cmdline_objs osx_write.cmdline"
+       play_cmdline_objs="$play_cmdline_objs osx_write"
 fi
 if test "$have_vorbis" = "yes" || \
                test "$have_speex" = "yes" || \
@@ -1352,7 +1444,7 @@ default_writer="FILE_WRITE"
 
 if test "$have_core_audio" = "yes"; then
        write_errlist_objs="$write_errlist_objs osx_write ipc"
-       write_cmdline_objs="$write_cmdline_objs osx_write.cmdline"
+       write_cmdline_objs="$write_cmdline_objs osx_write"
        writers="$writers osx"
        default_writer="OSX_WRITE"
 fi
@@ -1374,6 +1466,7 @@ if test "$have_alsa" = "yes"; then
        writers="$writers alsa"
        default_writer="ALSA_WRITE"
 fi
+AC_SUBST(writers)
 write_objs="add_cmdline($write_cmdline_objs) $write_errlist_objs"
 AC_SUBST(write_objs, add_dot_o($write_objs))
 AC_DEFINE_UNQUOTED(INIT_WRITE_ERRLISTS,
@@ -1484,42 +1577,6 @@ AC_DEFINE_UNQUOTED(AUDIO_FORMAT_HANDLERS, "$audio_format_handlers",
 
 AC_SUBST(executables)
 
-filter_objs="add_cmdline($filter_cmdline_objs) $filter_errlist_objs"
-audiod_objs="add_cmdline($audiod_cmdline_objs) $audiod_errlist_objs"
-client_objs="add_cmdline($client_cmdline_objs) $client_errlist_objs"
-
-AC_SUBST(filter_objs, add_dot_o($filter_objs))
-AC_DEFINE_UNQUOTED(INIT_FILTER_ERRLISTS,
-       objlist_to_errlist($filter_errlist_objs), errors used by para_filter)
-
-AC_SUBST(audiod_objs, add_dot_o($audiod_objs))
-AC_SUBST(audiod_ldflags, $audiod_ldflags)
-AC_DEFINE_UNQUOTED(INIT_AUDIOD_ERRLISTS, objlist_to_errlist($audiod_errlist_objs),
-       errors used by para_audiod)
-
-AC_SUBST(client_objs, add_dot_o($client_objs))
-AC_SUBST(client_ldflags, $client_ldflags)
-AC_DEFINE_UNQUOTED(INIT_CLIENT_ERRLISTS,
-       objlist_to_errlist($client_errlist_objs), errors used by para_client)
-
-AC_SUBST(gui_objs, add_dot_o($gui_objs))
-AC_DEFINE_UNQUOTED(INIT_GUI_ERRLISTS,
-       objlist_to_errlist($gui_errlist_objs), errors used by para_gui)
-
-enum="$(for i in $filters; do printf "${i}_FILTER, " | tr '[a-z]' '[A-Z]'; done)"
-AC_DEFINE_UNQUOTED(FILTER_ENUM, $enum NUM_SUPPORTED_FILTERS,
-       enum of supported filters)
-inits="$(for i in $filters; do printf 'extern void '$i'_filter_init(struct filter *f); '; done)"
-AC_DEFINE_UNQUOTED(DECLARE_FILTER_INITS, $inits, init functions of the supported filters)
-array="$(for i in $filters; do printf '{.name = "'$i'", .init = '$i'_filter_init},'; done)"
-AC_DEFINE_UNQUOTED(FILTER_ARRAY, $array, array of supported filters)
-
-enum="$(for i in $audiod_audio_formats; do printf "AUDIO_FORMAT_${i}, " | tr '[a-z]' '[A-Z]'; done)"
-AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMATS_ENUM, $enum NUM_AUDIO_FORMATS,
-       enum of audio formats supported by audiod)
-names="$(for i in $audiod_audio_formats; do printf \"$i\",' ' ; done)"
-AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMAT_ARRAY, $names, array of audio formats supported by audiod)
-
 AC_OUTPUT
 AC_MSG_NOTICE([
 paraslash configuration:
@@ -1528,10 +1585,10 @@ unix socket credentials: $have_ucred
 readline (interactive CLIs): $have_readline
 audio formats handlers: $audio_format_handlers
 id3 version2 support: $have_libid3tag
-filters: $(echo $filters)
+filters: $filters
 writers: $writers
 
-$mixer_summary
+para_fade: $build_fade
 para_server: $build_server
 para_gui: $build_gui
 para_fade: $build_fade