]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - configure.ac
build: Create section for para_recv.
[paraslash.git] / configure.ac
index e18a22e4d9f361ed3c18dd9adb0ad3755c05f23a..42a5083492c24f4d122b6253f0fb5a000db27f00 100644 (file)
@@ -92,34 +92,6 @@ AC_CHECK_FUNCS([atexit dup2 memchr memmove memset \
 executables="recv filter audioc write afh play"
 audio_format_handlers="mp3 wma"
 
-recv_cmdline_objs="
-       recv
-       http_recv
-       dccp_recv
-       udp_recv
-       afh_recv
-"
-
-recv_errlist_objs="
-       http_recv recv_common recv time string net dccp_recv fd
-       sched stdout ggo udp_recv buffer_tree afh_recv afh_common
-       wma_afh wma_common mp3_afh version
-"
-
-recv_ldflags=""
-
-filter_cmdline_objs="
-       filter
-       compress_filter
-       amp_filter
-       prebuffer_filter
-"
-filter_errlist_objs="filter_common wav_filter compress_filter filter string
-       stdin stdout sched fd amp_filter ggo fecdec_filter fec version
-       prebuffer_filter time bitstream imdct wma_common wmadec_filter buffer_tree"
-filter_ldflags="-lm"
-filters=" compress wav amp fecdec wmadec prebuffer"
-
 audioc_cmdline_objs="audioc"
 audioc_errlist_objs="
        audioc
@@ -132,25 +104,72 @@ audioc_errlist_objs="
 audioc_ldflags=""
 
 afh_cmdline_objs="afh"
-afh_errlist_objs="afh string fd mp3_afh afh_common time wma_afh wma_common
-       version ggo"
+afh_errlist_objs="
+       afh
+       string
+       fd
+       mp3_afh
+       afh_common
+       time
+       wma_afh
+       wma_common
+       version
+       ggo
+"
 afh_ldflags=""
 
-write_cmdline_objs="write file_write"
-write_errlist_objs="write write_common file_write time fd string sched stdin
-       buffer_tree ggo check_wav version"
+write_cmdline_objs="
+       write
+       file_write
+"
+write_errlist_objs="
+       write
+       write_common
+       file_write
+       time
+       fd
+       string
+       sched
+       stdin
+       buffer_tree
+       ggo
+       check_wav
+       version
+"
 write_ldflags=""
-writers=" file"
+writers="file"
 default_writer="FILE_WRITE"
 
-play_errlist_objs="play fd sched ggo buffer_tree time string net
-       afh_recv afh_common
-       wma_afh wma_common mp3_afh
-       recv_common udp_recv http_recv dccp_recv
-       filter_common fec bitstream imdct
-       wav_filter compress_filter amp_filter prebuffer_filter fecdec_filter
-               wmadec_filter
-       write_common file_write
+play_errlist_objs="
+       play
+       fd
+       sched
+       ggo
+       buffer_tree
+       time
+       string
+       net
+       afh_recv
+       afh_common
+       wma_afh
+       wma_common
+       mp3_afh
+       recv_common
+       udp_recv
+       http_recv
+       dccp_recv
+       filter_common
+       fec
+       bitstream
+       imdct
+       wav_filter
+       compress_filter
+       amp_filter
+       prebuffer_filter
+       fecdec_filter
+       wmadec_filter
+       write_common
+       file_write
        version
 "
 play_cmdline_objs="
@@ -197,7 +216,11 @@ fi
 
 AC_CHECK_HEADER(osl.h, [], have_osl=no)
 AC_CHECK_LIB([osl], [osl_open_table], [], have_osl=no)
-if test "$have_osl" = "no"; then
+if test "$have_osl" = "yes"; then
+       AC_SUBST(osl_cppflags)
+       osl_ldflags="$osl_libs -losl"
+       AC_SUBST(osl_ldflags)
+else
        AC_MSG_WARN([libosl not found, can not build para_server.
 Download libosl at
        http://systemlinux.org/~maan/osl
@@ -205,7 +228,6 @@ or execute
        git clone git://git.tuebingen.mpg.de/osl
        ])
 fi
-AC_SUBST(osl_cppflags)
 CPPFLAGS="$OLD_CPPFLAGS"
 LDFLAGS="$OLD_LDFLAGS"
 LIBS="$OLD_LIBS"
@@ -260,10 +282,8 @@ if test "$check_openssl" = "yes"; then
        if test "$have_openssl" = "yes"; then
                AC_DEFINE(HAVE_OPENSSL, 1, [define to 1 to turn on openssl support])
                AC_SUBST(openssl_cppflags)
-               openssl_libs="$openssl_libs -lssl -lcrypto"
-               server_ldflags="$server_ldflags $openssl_libs"
-               client_ldflags="$client_ldflags $openssl_libs"
-               audiod_ldflags="$audiod_ldflags $openssl_libs"
+               openssl_ldflags="$openssl_libs -lssl -lcrypto"
+               AC_SUBST(openssl_ldflags)
 
                server_errlist_objs="$server_errlist_objs crypt"
                client_errlist_objs="$client_errlist_objs crypt"
@@ -302,10 +322,8 @@ if test "$check_gcrypt" = "yes"; then
        if test "$have_gcrypt" = "yes"; then
                AC_DEFINE(HAVE_GCRYPT, 1, [define to 1 to turn on gcrypt support])
                AC_SUBST(gcrypt_cppflags)
-               gcrypt_libs="$gcrypt_libs -lgcrypt"
-               server_ldflags="$server_ldflags $gcrypt_libs"
-               client_ldflags="$client_ldflags $gcrypt_libs"
-               audiod_ldflags="$audiod_ldflags $gcrypt_libs"
+               gcrypt_ldflags="$gcrypt_libs -lgcrypt"
+               AC_SUBST(gcrypt_ldflags)
 
                server_errlist_objs="$server_errlist_objs gcrypt"
                client_errlist_objs="$client_errlist_objs gcrypt"
@@ -321,29 +339,16 @@ else
 fi
 ########################################################################### libsocket
 AC_CHECK_LIB([c], [socket],
-       [socket_lib=],
-       [socket_lib="-lsocket"]
+       [socket_ldlflags=],
+       [socket_ldflags="-lsocket"]
 )
-server_ldflags="$server_ldflags $socket_lib"
-client_ldflags="$client_ldflags $socket_lib"
-audioc_ldflags="$audioc_ldflags $socket_lib"
-audiod_ldflags="$audiod_ldflags $socket_lib"
-recv_ldflags="$recv_ldflags $socket_lib"
-AC_SEARCH_LIBS([connect],[socket],[],[
-       AC_MSG_ERROR([Fatal: Did not find connect().])
-],[])
+AC_SUBST(socket_ldflags)
 ########################################################################### libnsl
 AC_CHECK_LIB([c], [gethostbyname],
-       [nsl_lib=],
-       [nsl_lib="-lnsl"]
+       [nsl_ldflags=],
+       [nsl_ldflags="-lnsl"]
 )
-server_ldflags="$server_ldflags $nsl_lib"
-client_ldflags="$client_ldflags $nsl_lib"
-audioc_ldflags="$audioc_ldflags $nsl_lib"
-recv_ldflags="$recv_ldflags $nsl_lib"
-AC_SEARCH_LIBS([inet_ntoa],[nsl],[],[
-       AC_MSG_ERROR([Fatal: Did not find inet_ntoa().])
-],[])
+AC_SUBST(nsl_ldflags)
 ########################################################################### ucred
 AC_MSG_CHECKING(for struct ucred)
 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
@@ -427,19 +432,17 @@ if test ${have_core_audio} = yes; then
        f2="-framework AudioToolbox"
        f3="-framework AudioUnit"
        f4="-framework CoreServices"
-       f="$f1 $f2 $f3 $f4"
+       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"
-       audiod_ldflags="$audiod_ldflags $f"
 
        play_errlist_objs="$play_errlist_objs osx_write ipc"
        play_cmdline_objs="$play_cmdline_objs osx_write.cmdline"
-       play_ldflags="$play_ldflags $f"
 
        write_errlist_objs="$write_errlist_objs osx_write ipc"
        write_cmdline_objs="$write_cmdline_objs osx_write.cmdline"
-       write_ldflags="$write_ldflags $f"
        writers="$writers osx"
        default_writer="OSX_WRITE"
        AC_DEFINE(HAVE_CORE_AUDIO, 1, define to 1 on Mac Os X)
@@ -528,61 +531,39 @@ if test "$have_vorbis" = "yes" || \
                test "$have_speex" = "yes" || \
                test "$have_opus" = "yes"; then
        AC_SUBST(ogg_cppflags)
-       ogg_libs="$ogg_libs -logg"
+       ogg_ldflags="$ogg_libs -logg"
        if test "$OSTYPE" = "Darwin"; then
-               ogg_libs="-Wl,-bind_at_load $ogg_libs"
+               ogg_ldflags="-Wl,-bind_at_load $ogg_ldflags"
        fi
-       server_ldflags="$server_ldflags $ogg_libs"
-       filter_ldflags="$filter_ldflags $ogg_libs"
-       audiod_ldflags="$audiod_ldflags $ogg_libs"
-       play_ldflags="$play_ldflags $ogg_libs"
-       afh_ldflags="$afh_ldflags $ogg_libs"
-       recv_ldflags="$recv_ldflags $ogg_libs"
+       AC_SUBST(ogg_ldflags)
        afh_errlist_objs="$afh_errlist_objs ogg_afh_common"
-       recv_errlist_objs="$recv_errlist_objs ogg_afh_common"
        server_errlist_objs="$server_errlist_objs ogg_afh_common"
        play_errlist_objs="$play_errlist_objs ogg_afh_common"
 fi
 if test "$have_vorbis" = "yes"; then
        AC_DEFINE(HAVE_OGGVORBIS, 1, define to 1 to turn on ogg/vorbis support)
-       filters="$filters oggdec"
-       vorbis_libs="-lvorbis -lvorbisfile"
-       server_ldflags="$server_ldflags $vorbis_libs"
-       filter_ldflags="$filter_ldflags $vorbis_libs"
-       audiod_ldflags="$audiod_ldflags $vorbis_libs"
-       play_ldflags="$play_ldflags $vorbis_libs"
-       afh_ldflags="$afh_ldflags $vorbis_libs"
-       recv_ldflags="$recv_ldflags $vorbis_libs"
+       vorbis_ldflags="$vorbis_libs -lvorbis -lvorbisfile"
+       AC_SUBST(vorbis_ldflags)
 
        server_errlist_objs="$server_errlist_objs ogg_afh"
-       filter_errlist_objs="$filter_errlist_objs oggdec_filter"
        audiod_errlist_objs="$audiod_errlist_objs oggdec_filter"
        play_errlist_objs="$play_errlist_objs oggdec_filter ogg_afh"
        afh_errlist_objs="$afh_errlist_objs ogg_afh"
-       recv_errlist_objs="$recv_errlist_objs ogg_afh"
 
        audiod_audio_formats="$audiod_audio_formats ogg"
        audio_format_handlers="$audio_format_handlers ogg"
-else
-       AC_MSG_WARN([no ogg/vorbis $msg])
 fi
 if test "$have_speex" = "yes"; then
        AC_DEFINE(HAVE_SPEEX, 1, define to 1 to turn on ogg/speex support)
-       filters="$filters spxdec"
-       speex_libs="-lspeex"
-       server_ldflags="$server_ldflags $speex_libs"
-       filter_ldflags="$filter_ldflags $speex_libs"
-       audiod_ldflags="$audiod_ldflags $speex_libs"
-       play_ldflags="$play_ldflags $speex_libs"
-       afh_ldflags="$afh_ldflags $speex_libs"
-       recv_ldflags="$recv_ldflags $speex_libs"
+       AC_SUBST(speex_cppflags)
+       speex_ldflags="$speex_libs -lspeex"
+       AC_SUBST(speex_ldflags)
+
 
        server_errlist_objs="$server_errlist_objs spx_afh spx_common"
-       filter_errlist_objs="$filter_errlist_objs spxdec_filter spx_common"
        audiod_errlist_objs="$audiod_errlist_objs spxdec_filter spx_common"
        play_errlist_objs="$play_errlist_objs spxdec_filter spx_afh spx_common"
        afh_errlist_objs="$afh_errlist_objs spx_afh spx_common"
-       recv_errlist_objs="$recv_errlist_objs spx_afh spx_common"
 
        audiod_audio_formats="$audiod_audio_formats spx"
        audio_format_handlers="$audio_format_handlers spx"
@@ -591,21 +572,15 @@ else
 fi
 if test "$have_opus" = "yes"; then
        AC_DEFINE(HAVE_OPUS, 1, define to 1 to turn on ogg/opus support)
-       filters="$filters opusdec"
-       opus_libs="-lopus"
-       server_ldflags="$server_ldflags $opus_libs"
-       filter_ldflags="$filter_ldflags $opus_libs"
-       audiod_ldflags="$audiod_ldflags $opus_libs"
-       afh_ldflags="$afh_ldflags $opus_libs"
-       play_ldflags="$play_ldflags $opus_libs"
-       recv_ldflags="$recv_ldflags $opus_libs"
+       AC_SUBST(opus_cppflags)
+       opus_ldflags="$opus_libs -lopus"
+       AC_SUBST(opus_ldflags)
+
 
        server_errlist_objs="$server_errlist_objs opus_afh opus_common"
-       filter_errlist_objs="$filter_errlist_objs opusdec_filter opus_common"
        audiod_errlist_objs="$audiod_errlist_objs opusdec_filter opus_common"
        afh_errlist_objs="$afh_errlist_objs opus_afh opus_common"
        play_errlist_objs="$play_errlist_objs opusdec_filter opus_afh opus_common"
-       recv_errlist_objs="$recv_errlist_objs opus_afh opus_common"
 
        audiod_audio_formats="$audiod_audio_formats opus"
        audio_format_handlers="$audio_format_handlers opus"
@@ -636,26 +611,17 @@ AC_CHECK_HEADER(neaacdec.h, [], have_faad=no)
 AC_CHECK_LIB([faad], [NeAACDecOpen], [], have_faad=no)
 if test "$have_faad" = "yes"; then
        AC_DEFINE(HAVE_FAAD, 1, define to 1 if you want to build the aacdec filter)
-       filter_errlist_objs="$filter_errlist_objs aacdec_filter aac_common"
+       AC_SUBST(faad_cppflags)
+       faad_ldflags="$faad_libs -lfaad"
+       AC_SUBST(faad_ldflags)
+
        afh_errlist_objs="$afh_errlist_objs aac_common aac_afh"
        audiod_errlist_objs="$audiod_errlist_objs aacdec_filter aac_common"
        play_errlist_objs="$play_errlist_objs aacdec_filter aac_afh aac_common"
        server_errlist_objs="$server_errlist_objs aac_afh aac_common"
-       recv_errlist_objs="$recv_errlist_objs aac_afh aac_common"
-
-       server_ldflags="$server_ldflags $faad_libs -lfaad"
-       filter_ldflags="$filter_ldflags $faad_libs -lfaad"
-       audiod_ldflags="$audiod_ldflags $faad_libs -lfaad"
-       play_ldflags="$play_ldflags $faad_libs -lfaad"
-       afh_ldflags="$afh_ldflags $faad_libs -lfaad"
-       recv_ldflags="$afh_ldflags $faad_libs -lfaad"
 
        audiod_audio_formats="$audiod_audio_formats aac"
        audio_format_handlers="$audio_format_handlers aac"
-       filters="$filters aacdec"
-       AC_SUBST(faad_cppflags)
-else
-       AC_MSG_WARN([no aac support in para_audiod/para_filter])
 fi
 CPPFLAGS="$OLD_CPPFLAGS"
 LDFLAGS="$OLD_LDFLAGS"
@@ -686,18 +652,14 @@ AC_CHECK_LIB([mad], [mad_stream_init], [], [
 ])
 if test "$have_mad" = "yes"; then
        AC_DEFINE(HAVE_MAD, 1, define to 1 if you want to build the mp3dec filter)
-       filter_cmdline_objs="$filter_cmdline_objs mp3dec_filter"
+       AC_SUBST(mad_cppflags)
+       mad_ldflags="$mad_libs -lmad"
+       AC_SUBST(mad_ldflags)
        audiod_cmdline_objs="$audiod_cmdline_objs mp3dec_filter"
        play_cmdline_objs="$play_cmdline_objs mp3dec_filter"
-       filter_errlist_objs="$filter_errlist_objs mp3dec_filter"
        audiod_errlist_objs="$audiod_errlist_objs mp3dec_filter"
        play_errlist_objs="$play_errlist_objs mp3dec_filter"
-       filter_ldflags="$filter_ldflags $mad_libs -lmad"
-       audiod_ldflags="$audiod_ldflags $mad_libs -lmad"
-       play_ldflags="$play_ldflags $mad_libs -lmad"
        audiod_audio_formats="$audiod_audio_formats mp3"
-       filters="$filters mp3dec"
-       AC_SUBST(mad_cppflags)
 else
        AC_MSG_WARN([no mp3dec support in para_audiod/para_filter])
 fi
@@ -733,14 +695,8 @@ AC_MSG_RESULT($have_libid3tag)
 
 if test ${have_libid3tag} = yes; then
        AC_DEFINE(HAVE_LIBID3TAG, 1, define to 1 you have libid3tag)
-       server_ldflags="$server_ldflags $id3tag_libs -lid3tag -lz"
-       afh_ldflags="$afh_ldflags $id3tag_libs -lid3tag -lz"
-       play_ldflags="$play_ldflags -lz"
-       recv_ldflags="$recv_ldflags $id3tag_libs -lid3tag"
-       play_ldflags="$play_ldflags $id3tag_libs -lid3tag"
        AC_SUBST(id3tag_cppflags)
-else
-       AC_MSG_WARN([no support for id3v2 tags])
+       AC_SUBST(id3tag_ldflags, "$id3tag_libs -lid3tag -lz")
 fi
 CPPFLAGS="$OLD_CPPFLAGS"
 LDFLAGS="$OLD_LDFLAGS"
@@ -767,22 +723,16 @@ AC_CHECK_HEADER(FLAC/stream_decoder.h, [], have_flac=no)
 AC_CHECK_LIB([FLAC], [FLAC__stream_decoder_init_file], [], have_flac=no, -logg -lm)
 if test "$have_flac" = "yes"; then
        AC_DEFINE(HAVE_FLAC, 1, define to 1 if you want to build the flacdec filter)
-       filter_errlist_objs="$filter_errlist_objs flacdec_filter"
+       AC_SUBST(flac_cppflags)
+       flac_ldflags="$flac_libs -lFLAC"
+       AC_SUBST(flac_ldflags)
+
        audiod_errlist_objs="$audiod_errlist_objs flacdec_filter"
        play_errlist_objs="$play_errlist_objs flacdec_filter flac_afh"
        afh_errlist_objs="$afh_errlist_objs flac_afh"
        server_errlist_objs="$server_errlist_objs flac_afh"
-       recv_errlist_objs="$recv_errlist_objs flac_afh"
-       filter_ldflags="$filter_ldflags $flac_libs -lFLAC"
-       audiod_ldflags="$audiod_ldflags $flac_libs -lFLAC"
-       play_ldflags="$play_ldflags $flac_libs -lFLAC"
-       server_ldflags="$server_ldflags $flac_libs -lFLAC"
-       afh_ldflags="$afh_ldflags $flac_libs -lFLAC"
-       recv_ldflags="$recv_ldflags $flac_libs -lFLAC"
-       filters="$filters flacdec"
        audio_format_handlers="$audio_format_handlers flac"
        audiod_audio_formats="$audiod_audio_formats flac"
-       AC_SUBST(flac_cppflags)
 else
        AC_MSG_WARN([no flac support in para_audiod/para_filter/para_afh/para_server])
 fi
@@ -813,10 +763,8 @@ AC_CHECK_HEADER(sys/soundcard.h, [
        default_mixer="OSS_MIX"
 
        AC_CHECK_LIB(ossaudio, _oss_ioctl, [
-                       audiod_ldflags="$audiod_ldflags -lossaudio"
-                       play_ldflags="$play_ldflags -lossaudio"
-                       write_ldflags="$write_ldflags -lossaudio"
-                       fade_ldflags="$fade_ldflags -lossaudio"
+                       oss_ldflags="-lossaudio"
+                       AC_SUBST(oss_ldflags)
                ]
        )
        ],
@@ -855,18 +803,16 @@ if test "$have_alsa" = "yes"; then
 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"
-       audiod_ldflags="$audiod_ldflags -lasound"
        play_errlist_objs="$play_errlist_objs alsa_write"
        play_cmdline_objs="$play_cmdline_objs alsa_write"
-       play_ldflags="$play_ldflags -lasound"
 
        write_errlist_objs="$write_errlist_objs alsa_write"
        write_cmdline_objs="$write_cmdline_objs alsa_write"
-       write_ldflags="$write_ldflags -lasound"
        fade_errlist_objs="$fade_errlist_objs alsa_mix"
-       fade_ldflags="$fade_ldflags -lasound"
 
        writers="$writers alsa"
        default_writer="ALSA_WRITE"
@@ -921,19 +867,19 @@ if test "$have_ao" = "yes"; then
        ])
 fi
 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"
-       audiod_ldflags="$audiod_ldflags -lao -lpthread"
 
        play_errlist_objs="$play_errlist_objs ao_write"
        play_cmdline_objs="$play_cmdline_objs ao_write"
-       play_ldflags="$play_ldflags -lao -lpthread"
 
        write_errlist_objs="$write_errlist_objs ao_write"
        write_cmdline_objs="$write_cmdline_objs ao_write"
-       write_ldflags="$write_ldflags $ao_libs -lao -lpthread"
        writers="$writers ao"
-       AC_SUBST(ao_cppflags)
 fi
 
 CPPFLAGS="$OLD_CPPFLAGS"
@@ -972,7 +918,7 @@ if test "$have_curses" != "yes"; then
 fi
 
 if test "$have_readline" = "yes"; then
-       readline_libs="$readline_libs -lreadline"
+       readline_ldflags="$readline_libs -lreadline"
        AC_SEARCH_LIBS([rl_free_keymap], [readline], [], [have_readline="no"])
        if test "$have_readline" = "no"; then # try with -lcurses
                 # clear cache
@@ -980,7 +926,7 @@ 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_libs="$readline_libs -lcurses"
+                       readline_ldflags="$readline_ldflags -lcurses"
                ], [], [-lcurses])
        fi
        if test "$have_readline" = "no"; then # try with -ltermcap
@@ -989,19 +935,17 @@ 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_libs="$readline_libs -ltermcap"
+                       readline_ldflags="$readline_ldflags -ltermcap"
                ], [], [-ltermcap])
        fi
 fi
 
 if test "$have_readline" = "yes"; then
+       AC_SUBST(readline_cppflags)
+       AC_SUBST(readline_ldflags)
        client_errlist_objs="$client_errlist_objs interactive"
-       client_ldflags="$client_ldflags $readline_libs"
        audioc_errlist_objs="$audioc_errlist_objs buffer_tree interactive sched time"
-       audioc_ldflags="$audioc_ldflags $readline_libs"
        play_errlist_objs="$play_errlist_objs interactive"
-       play_ldflags="$play_ldflags $readline_libs"
-       AC_SUBST(readline_cppflags)
        AC_DEFINE(HAVE_READLINE, 1, define to 1 to turn on readline support)
 else
        AC_MSG_WARN([libreadline not found or unusable])
@@ -1032,17 +976,14 @@ AC_CHECK_HEADER(samplerate.h, [], have_samplerate=no)
 AC_CHECK_LIB([samplerate], [src_process], [], have_samplerate=no, [])
 
 if test "$have_samplerate" = "yes"; then
-       filter_errlist_objs="$filter_errlist_objs resample_filter check_wav"
-       filter_cmdline_objs="$filter_cmdline_objs resample_filter"
+       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"
        play_errlist_objs="$play_errlist_objs resample_filter check_wav"
        play_cmdline_objs="$play_cmdline_objs resample_filter"
-       filter_ldflags="$filter_ldflags $samplerate_libs -lsamplerate"
-       audiod_ldflags="$audiod_ldflags $samplerate_libs -lsamplerate"
-       play_ldflags="$play_ldflags $samplerate_libs -lsamplerate"
-       filters="$filters resample"
-       AC_SUBST(samplerate_cppflags)
 else
        AC_MSG_WARN([no resample support in para_audiod/para_filter])
 fi
@@ -1095,7 +1036,6 @@ if test \( "$have_openssl" = "yes" -o "$have_gcrypt" = "yes" \) \
                version
                ggo
        "
-       server_ldflags="$server_ldflags $osl_libs -losl"
 else
        build_server="no"
 fi
@@ -1241,9 +1181,131 @@ else
        build_gui="no"
        AC_MSG_WARN([no curses lib, cannot build para_gui])
 fi
-############################################################# error2.h
-AC_MSG_NOTICE(creating error2.h)
+######################################################################## filter
+filters="
+       compress
+       wav
+       amp
+       fecdec
+       wmadec
+       prebuffer
+"
+filter_errlist_objs="
+       filter_common
+       wav_filter
+       compress_filter
+       filter
+       string
+       stdin
+       stdout
+       sched
+       fd
+       amp_filter
+       ggo
+       fecdec_filter
+       fec
+       version
+       prebuffer_filter
+       time
+       bitstream
+       imdct
+       wma_common
+       wmadec_filter
+       buffer_tree
+       net
+"
+filter_cmdline_objs="
+       filter
+       compress_filter
+       amp_filter
+       prebuffer_filter
+"
+
+if test "$have_vorbis" = "yes"; then
+       filters="$filters oggdec"
+       filter_errlist_objs="$filter_errlist_objs oggdec_filter"
+fi
+if test "$have_speex" = "yes"; then
+       filters="$filters spxdec"
+       filter_errlist_objs="$filter_errlist_objs spxdec_filter spx_common"
+fi
+if test "$have_opus" = "yes"; then
+       filters="$filters opusdec"
+       filter_errlist_objs="$filter_errlist_objs opusdec_filter opus_common"
+fi
+if test "$have_faad" = "yes"; then
+       filter_errlist_objs="$filter_errlist_objs aacdec_filter aac_common"
+       filters="$filters aacdec"
+fi
+if test "$have_mad" = "yes"; then
+       filter_cmdline_objs="$filter_cmdline_objs mp3dec_filter"
+       filter_errlist_objs="$filter_errlist_objs mp3dec_filter"
+       filters="$filters mp3dec"
+fi
+if test "$have_flac" = "yes"; then
+       filter_errlist_objs="$filter_errlist_objs flacdec_filter"
+       filters="$filters flacdec"
+fi
+if test "$have_samplerate" = "yes"; then
+       filter_errlist_objs="$filter_errlist_objs resample_filter check_wav"
+       filter_cmdline_objs="$filter_cmdline_objs resample_filter"
+       filters="$filters resample"
+fi
+########################################################################## recv
+recv_cmdline_objs="
+       recv
+       http_recv
+       dccp_recv
+       udp_recv
+       afh_recv
+"
 
+recv_errlist_objs="
+       http_recv
+       recv_common
+       recv
+       time
+       string
+       net
+       dccp_recv
+       fd
+       sched
+       stdout
+       ggo
+       udp_recv
+       buffer_tree
+       afh_recv
+       afh_common
+       wma_afh
+       wma_common
+       mp3_afh
+       version
+"
+if test "$have_vorbis" = "yes" || \
+               test "$have_speex" = "yes" || \
+               test "$have_opus" = "yes"; then
+       recv_errlist_objs="$recv_errlist_objs ogg_afh_common"
+fi
+if test "$have_vorbis" = "yes"; then
+       recv_errlist_objs="$recv_errlist_objs ogg_afh"
+fi
+if test "$have_speex" = "yes"; then
+       recv_errlist_objs="$recv_errlist_objs spx_afh spx_common"
+fi
+if test "$have_opus" = "yes"; then
+       recv_errlist_objs="$recv_errlist_objs opus_afh opus_common"
+fi
+if test "$have_faad" = "yes"; then
+       recv_errlist_objs="$recv_errlist_objs aac_afh aac_common"
+fi
+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(recv_objs, add_dot_o($recv_objs))
+AC_DEFINE_UNQUOTED(INIT_RECV_ERRLISTS, objlist_to_errlist($recv_errlist_objs),
+       errors used by para_recv)
+############################################################# error2.h
 # these are always built
 all_errlist_objs="
        $recv_errlist_objs
@@ -1273,10 +1335,14 @@ fi
 
 all_errlist_objs="$(echo $all_errlist_objs | tr ' ' '\n' | sort | uniq)"
 
+object_executable_matrix=
 for i in $executables; do
-       echo "$i: "
-       eval echo \$${i}_errlist_objs
-done | ./error2.pl > error2.h
+       eval objs=\$${i}_errlist_objs
+       object_executable_matrix="$object_executable_matrix $i: $objs"
+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
@@ -1284,7 +1350,6 @@ AC_DEFINE_UNQUOTED(DEFINE_ERRLIST_OBJECT_ENUM,
        [enum {$SS NUM_SS}],
        [list of all objects that use the paraslash error facility]
 )
-
 ################################################################## status items
 
 status_items="basename status num_played mtime bitrate frequency file_size
@@ -1314,7 +1379,6 @@ AC_DEFINE_UNQUOTED(AUDIO_FORMAT_HANDLERS, "$audio_format_handlers",
 
 AC_SUBST(executables)
 
-recv_objs="add_cmdline($recv_cmdline_objs) $recv_errlist_objs"
 filter_objs="add_cmdline($filter_cmdline_objs) $filter_errlist_objs"
 audiod_objs="add_cmdline($audiod_cmdline_objs) $audiod_errlist_objs"
 server_objs="add_cmdline($server_cmdline_objs) $server_errlist_objs"
@@ -1325,13 +1389,7 @@ afh_objs="add_cmdline($afh_cmdline_objs) $afh_errlist_objs"
 play_objs="add_cmdline($play_cmdline_objs) $play_errlist_objs"
 gui_objs="add_cmdline($gui_cmdline_objs) $gui_errlist_objs"
 
-AC_SUBST(recv_objs, add_dot_o($recv_objs))
-AC_SUBST(recv_ldflags, $recv_ldflags)
-AC_DEFINE_UNQUOTED(INIT_RECV_ERRLISTS, objlist_to_errlist($recv_errlist_objs),
-       errors used by para_recv)
-
 AC_SUBST(filter_objs, add_dot_o($filter_objs))
-AC_SUBST(filter_ldflags, $filter_ldflags)
 AC_DEFINE_UNQUOTED(INIT_FILTER_ERRLISTS,
        objlist_to_errlist($filter_errlist_objs), errors used by para_filter)
 
@@ -1407,7 +1465,7 @@ unix socket credentials: $have_ucred
 readline (interactive CLIs): $have_readline
 audio formats handlers: $audio_format_handlers
 id3 version2 support: $have_libid3tag
-filters: $filters
+filters: $(echo $filters)
 writers: $writers
 
 $mixer_summary