]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - configure.ac
mood.c: Improve documentation of struct admissible_file_info.
[paraslash.git] / configure.ac
index 8ac2b2a5549192a255665908c9d0be8953bc67a5..79b41a3addcf36f0066838c68edfea2b8de0b7c9 100644 (file)
@@ -3,13 +3,28 @@
 
 AC_PREREQ([2.61])
 
-AC_INIT([paraslash],[git],[maan@systemlinux.org])
-AC_CONFIG_HEADER([config.h])
+AC_INIT([paraslash], [m4_esyscmd_s(./GIT-VERSION-GEN)],
+       [maan@tuebingen.mpg.de], [], [http://people.tuebingen.mpg.de/maan/paraslash/])
+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)
@@ -41,57 +56,7 @@ test -z "$install" && AC_MSG_ERROR(
 AC_PROG_CC
 AC_PROG_CPP
 
-AC_HEADER_DIRENT
-AC_HEADER_STDC
-AC_HEADER_SYS_WAIT
-AC_HEADER_STDBOOL
-AC_CHECK_HEADERS([arpa/inet.h ctype.h fcntl.h limits.h netdb.h netinet/in.h \
-       stdlib.h string.h sys/socket.h sys/time.h sys/timeb.h sys/un.h \
-       sys/ipc.h unistd.h utime.h stddef.h],
-       [], [AC_MSG_ERROR([$ac_header not found])])
-
-# Checks for typedefs, structures, and compiler characteristics.
-AC_C_CONST
-AC_C_INLINE
-AC_TYPE_OFF_T
-AC_TYPE_PID_T
-AC_TYPE_SIZE_T
-AC_HEADER_TIME
-AC_STRUCT_TM
-AC_TYPE_INT8_T
-AC_TYPE_INT16_T
-AC_TYPE_INT32_T
-AC_TYPE_INT64_T
-AC_TYPE_MODE_T
-AC_TYPE_SSIZE_T
-AC_TYPE_UID_T
-AC_TYPE_UINT8_T
-AC_TYPE_UINT16_T
-AC_TYPE_UINT32_T
-AC_TYPE_UINT64_T
-
-# Checks for library functions.
-AC_FUNC_FORK
-AC_PROG_GCC_TRADITIONAL
-AC_FUNC_MEMCMP
-AC_FUNC_MKTIME
-AC_FUNC_MMAP
-AC_FUNC_SELECT_ARGTYPES
-AC_FUNC_STAT
-AC_FUNC_STRFTIME
-AC_FUNC_VPRINTF
-AC_FUNC_CLOSEDIR_VOID
-AC_FUNC_LSTAT
-
-AC_CHECK_FUNCS([atexit dup2 memchr memmove memset \
-       regcomp select strchr strdup strerror strstr strtol uname \
-       fchdir gettimeofday localtime_r munmap strcasecmp strcspn \
-       strncasecmp strrchr strspn alarm mkdir inet_ntoa socket], [],
-       [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 +96,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,8 +158,6 @@ if test "$check_openssl" = "yes"; then
                openssl_ldflags="$openssl_libs -lssl -lcrypto"
                AC_SUBST(openssl_ldflags)
 
-               audiod_errlist_objs="$audiod_errlist_objs crypt"
-
                check_gcrypt="no"
        else
                AC_MSG_WARN([openssl libraries not found])
@@ -230,8 +193,6 @@ if test "$check_gcrypt" = "yes"; then
                AC_SUBST(gcrypt_cppflags)
                gcrypt_ldflags="$gcrypt_libs -lgcrypt"
                AC_SUBST(gcrypt_ldflags)
-
-               audiod_errlist_objs="$audiod_errlist_objs gcrypt"
        else
                AC_MSG_WARN([gcrypt library not found])
        fi
@@ -338,10 +299,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
@@ -376,11 +333,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"
@@ -392,8 +355,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"
@@ -404,8 +373,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"
@@ -416,6 +391,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"
@@ -436,25 +414,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
@@ -463,18 +431,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"
@@ -499,11 +459,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"
@@ -537,9 +492,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
@@ -600,16 +552,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
@@ -625,14 +577,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)
@@ -676,13 +620,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"
@@ -735,10 +672,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"
@@ -770,22 +703,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
@@ -794,13 +723,21 @@ 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)
        AC_DEFINE(HAVE_READLINE, 1, define to 1 to turn on readline support)
@@ -836,9 +773,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
@@ -965,6 +899,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
@@ -975,6 +910,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
@@ -1012,21 +948,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)
@@ -1050,11 +1055,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
@@ -1071,10 +1074,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])
@@ -1087,6 +1094,7 @@ filters="
        fecdec
        wmadec
        prebuffer
+       sync
 "
 filter_errlist_objs="
        filter_common
@@ -1111,12 +1119,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
@@ -1149,6 +1159,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
@@ -1200,10 +1225,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
@@ -1224,18 +1251,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"
@@ -1275,6 +1307,7 @@ play_errlist_objs="
        write_common
        file_write
        version
+       sync_filter
 "
 play_cmdline_objs="
        http_recv
@@ -1286,10 +1319,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" || \
@@ -1363,7 +1397,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
@@ -1385,6 +1419,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,
@@ -1459,9 +1494,8 @@ done
 # use echo to replace newlines by space
 AC_SUBST(object_executable_matrix, $(echo $object_executable_matrix))
 
-for obj in $all_errlist_objs; do
-       SS="$SS SS_$(echo $obj | tr 'a-z' 'A-Z'),"
-done
+SS=$(for obj in $all_errlist_objs; do
+       printf '%s' " SS_$obj,"; done | tr 'a-z' 'A-Z')
 AC_DEFINE_UNQUOTED(DEFINE_ERRLIST_OBJECT_ENUM,
        [enum {$SS NUM_SS}],
        [list of all objects that use the paraslash error facility]
@@ -1495,36 +1529,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"
-
-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(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:
@@ -1533,10 +1537,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