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)
[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], [
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
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"
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
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)
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"
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
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
amp_filter
udp_recv
prebuffer_filter
+ sync_filter
"
audiod_errlist_objs="$audiod_errlist_objs
audiod
wma_common
wmadec_filter
buffer_tree
+ sync_filter
"
if test "$have_openssl" = "yes"; then
audiod_errlist_objs="$audiod_errlist_objs crypt"
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)
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
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])
fecdec
wmadec
prebuffer
+ sync
"
filter_errlist_objs="
filter_common
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
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
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
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"
write_common
file_write
version
+ sync_filter
"
play_cmdline_objs="
http_recv
prebuffer_filter
file_write
play
+ sync_filter
"
if test "$have_core_audio" = "yes"; then
play_errlist_objs="$play_errlist_objs osx_write ipc"
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,
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:
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