X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=configure.ac;h=07ecffdd71f31e1246d8262bda5fbdd762212f99;hp=8ac2b2a5549192a255665908c9d0be8953bc67a5;hb=42ddd68159d7eff0f3e7c225665c97f9abd59425;hpb=4e978838232d77bdb610325b56f4a1a5a0481562 diff --git a/configure.ac b/configure.ac index 8ac2b2a5..07ecffdd 100644 --- a/configure.ac +++ b/configure.ac @@ -9,7 +9,21 @@ AC_CONFIG_HEADER([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], [ @@ -193,8 +205,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 +240,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 +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 @@ -438,23 +442,12 @@ if test "$have_vorbis" = "yes"; then AC_DEFINE(HAVE_OGGVORBIS, 1, define to 1 to turn on ogg/vorbis support) 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,11 +456,6 @@ 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]) @@ -499,11 +487,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 +520,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 +580,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 +605,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 +648,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 +700,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 +731,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,7 +751,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_ldflags="$readline_ldflags -ltermcap" + readline_ldflags="$readline_ldflags -lreadline -ltermcap" ], [], [-ltermcap]) fi fi @@ -836,9 +793,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 +919,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 +930,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 +968,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.cmdline" + 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 +1075,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 @@ -1075,6 +1098,9 @@ if test "$have_curses" = "yes"; then 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 +1113,7 @@ filters=" fecdec wmadec prebuffer + sync " filter_errlist_objs=" filter_common @@ -1111,12 +1138,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 +1178,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 +1244,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 +1270,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 +1326,7 @@ play_errlist_objs=" write_common file_write version + sync_filter " play_cmdline_objs=" http_recv @@ -1286,6 +1338,7 @@ 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" @@ -1385,6 +1438,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, @@ -1495,36 +1549,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 +1557,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