X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=configure.ac;h=e423d851f11ccd2e6a950324c54c921d395581e7;hp=abf8c071b8a53091ec3c263576fa9f6fae5a74cd;hb=821492dacaf35773acc59b45ef2b3c4f072581f4;hpb=0f4790f2eb859832419e5aeb3d4549fbde3b0499 diff --git a/configure.ac b/configure.ac index abf8c071..e423d851 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], [ @@ -430,14 +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) - 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) - audio_format_handlers="$audio_format_handlers spx" else AC_MSG_WARN([no ogg/speex $msg]) fi @@ -477,8 +487,6 @@ if test "$have_faad" = "yes"; then AC_SUBST(faad_cppflags) faad_ldflags="$faad_libs -lfaad" AC_SUBST(faad_ldflags) - - audio_format_handlers="$audio_format_handlers aac" fi CPPFLAGS="$OLD_CPPFLAGS" LDFLAGS="$OLD_LDFLAGS" @@ -572,13 +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) - audio_format_handlers="$audio_format_handlers flac" else AC_MSG_WARN([no flac support in para_audiod/para_filter/para_afh/para_server]) fi @@ -594,11 +605,6 @@ have_oss="yes" msg="=> will not build oss writer" AC_CHECK_HEADER(sys/soundcard.h, [ - 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) @@ -642,10 +648,6 @@ fi if test "$have_alsa" = "yes"; then alsa_ldflags="-lasound" AC_SUBST(alsa_ldflags) - fade_errlist_objs="$fade_errlist_objs alsa_mix" - - mixers="${mixers}alsa " - default_mixer="ALSA_MIX" fi CPPFLAGS="$OLD_CPPFLAGS" @@ -729,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 @@ -753,13 +751,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 + #include + ] + ) AC_SUBST(readline_cppflags) AC_SUBST(readline_ldflags) AC_DEFINE(HAVE_READLINE, 1, define to 1 to turn on readline support) @@ -932,6 +938,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 @@ -969,6 +976,7 @@ if test "$have_openssl" = "yes" -o "$have_gcrypt" = "yes"; then wma_common wmadec_filter buffer_tree + sync_filter " if test "$have_openssl" = "yes"; then audiod_errlist_objs="$audiod_errlist_objs crypt" @@ -1035,14 +1043,23 @@ 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) @@ -1066,11 +1083,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 @@ -1087,10 +1102,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]) @@ -1103,6 +1122,7 @@ filters=" fecdec wmadec prebuffer + sync " filter_errlist_objs=" filter_common @@ -1127,12 +1147,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 @@ -1165,6 +1187,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 @@ -1216,10 +1253,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 @@ -1240,18 +1279,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" @@ -1291,6 +1335,7 @@ play_errlist_objs=" write_common file_write version + sync_filter " play_cmdline_objs=" http_recv @@ -1302,6 +1347,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" @@ -1401,6 +1447,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, @@ -1511,24 +1558,6 @@ AC_DEFINE_UNQUOTED(AUDIO_FORMAT_HANDLERS, "$audio_format_handlers", AC_SUBST(executables) -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) - -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) - AC_OUTPUT AC_MSG_NOTICE([ paraslash configuration: @@ -1537,10 +1566,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