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], [
openssl_ldflags="$openssl_libs -lssl -lcrypto"
AC_SUBST(openssl_ldflags)
- client_errlist_objs="$client_errlist_objs crypt"
- audiod_errlist_objs="$audiod_errlist_objs crypt"
-
check_gcrypt="no"
else
AC_MSG_WARN([openssl libraries not found])
AC_SUBST(gcrypt_cppflags)
gcrypt_ldflags="$gcrypt_libs -lgcrypt"
AC_SUBST(gcrypt_ldflags)
-
- client_errlist_objs="$client_errlist_objs gcrypt"
- audiod_errlist_objs="$audiod_errlist_objs gcrypt"
else
AC_MSG_WARN([gcrypt library not found])
fi
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
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
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])
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"
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
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
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)
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"
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"
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
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)
- client_errlist_objs="$client_errlist_objs interactive"
AC_DEFINE(HAVE_READLINE, 1, define to 1 to turn on readline support)
else
AC_MSG_WARN([libreadline not found or unusable])
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
build_client="yes"
executables="$executables client"
client_cmdline_objs="client"
- client_errlist_objs="$client_errlist_objs
+ client_errlist_objs="
client
net
string
version
ggo
"
+ if test "$have_openssl" = "yes"; then
+ client_errlist_objs="$client_errlist_objs crypt"
+ fi
+ if test "$have_gcrypt" = "yes"; then
+ client_errlist_objs="$client_errlist_objs gcrypt"
+ fi
+ if test "$have_readline" = "yes"; then
+ client_errlist_objs="$client_errlist_objs interactive"
+ fi
+ client_objs="add_cmdline($client_cmdline_objs) $client_errlist_objs"
+ AC_SUBST(client_objs, add_dot_o($client_objs))
+ AC_DEFINE_UNQUOTED(INIT_CLIENT_ERRLISTS,
+ objlist_to_errlist($client_errlist_objs), errors used by para_client)
else
build_client="no"
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
amp_filter
udp_recv
prebuffer_filter
+ sync_filter
"
audiod_errlist_objs="$audiod_errlist_objs
audiod
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)
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"
-audiod_objs="add_cmdline($audiod_cmdline_objs) $audiod_errlist_objs"
-client_objs="add_cmdline($client_cmdline_objs) $client_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(client_objs, add_dot_o($client_objs))
-AC_SUBST(client_ldflags, $client_ldflags)
-AC_DEFINE_UNQUOTED(INIT_CLIENT_ERRLISTS,
- objlist_to_errlist($client_errlist_objs), errors used by para_client)
-
-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:
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