AC_INIT([paraslash],[git],[maan@systemlinux.org])
AC_CONFIG_HEADER([config.h])
-AC_SUBST(install_sh, [$INSTALL])
AC_CONFIG_FILES([Makefile])
AC_DEFUN([add_dot_o],[$(for i in $@; do printf "$i.o "; done)])
AC_DEFUN([add_para],[$(for i in $@; do printf "para_$i "; done)])
AC_PROG_CC
AC_PROG_CPP
AC_PROG_INSTALL
+AC_SUBST(install_sh, [$INSTALL])
AC_REPLACE_FNMATCH
AC_HEADER_DIRENT
exec send_common ggo udp_recv color fec fecdec_filter
prebuffer_filter bitstream imdct check_wav
wma_afh wma_common wmadec_filter buffer_tree crypt_common
- gui gui_theme sideband"
+ gui gui_theme sideband afh_recv play"
+
+executables="recv filter audioc write client afh audiod play"
-executables="recv filter audioc write client afh audiod"
+recv_cmdline_objs="add_cmdline(recv http_recv dccp_recv udp_recv afh_recv)"
-recv_cmdline_objs="add_cmdline(recv http_recv dccp_recv udp_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
+"
-recv_errlist_objs="http_recv recv_common recv time string net dccp_recv
- fd sched stdout ggo udp_recv buffer_tree"
recv_ldflags=""
filter_cmdline_objs="add_cmdline(filter compress_filter amp_filter prebuffer_filter)"
client_ldflags=""
gui_cmdline_objs="add_cmdline(gui)"
-gui_errlist_objs="exec signal string stat ringbuffer fd gui gui_theme"
+gui_errlist_objs="exec signal string stat ringbuffer fd gui gui_theme time"
gui_objs="$gui_cmdline_objs $gui_errlist_objs"
+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_cmdline_objs="add_cmdline(http_recv dccp_recv udp_recv afh_recv compress_filter amp_filter prebuffer_filter file_write play)"
+play_ldflags="-lm"
########################################################################### snprintf
# ===========================================================================
# http://www.nongnu.org/autoconf-archive/ax_func_snprintf.html
AC_MSG_ERROR([fatal: buggy snprintf() detected])
fi])
AX_FUNC_SNPRINTF()
+################################################################## clock_gettime
+clock_gettime_lib=
+AC_CHECK_LIB([c], [clock_gettime], [clock_gettime_lib=c], [
+ AC_CHECK_LIB([rt], [clock_gettime], [clock_gettime_lib=rt], [], [])
+])
+if test -n "$clock_gettime_lib"; then
+ AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [
+ define to 1 if clock_gettime() is supported])
+fi
+if test "$clock_gettime_lib" = "rt"; then
+ AC_SUBST(clock_gettime_ldflags, -lrt)
+fi
########################################################################### osl
have_osl=yes
OLD_CPPFLAGS="$CPPFLAGS"
acl udp_send"
server_ldflags=""
- server_audio_formats="mp3 wma"
+ audio_format_handlers="mp3 wma"
AC_SUBST(osl_cppflags)
server_ldflags="$server_ldflags $osl_libs -losl"
fi
AC_CHECK_HEADER(curses.h, [], [
have_curses="no"
])
-AC_CHECK_LIB([curses], [initscr], [], [
- have_curses="no"
-])
+gui_ldflags="$curses_libs"
+AC_CHECK_LIB([ncursesw], [initscr],
+ [gui_ldflags="$curses_libs -lncursesw"], [
+ AC_CHECK_LIB([curses], [initscr],
+ [gui_ldflags="$curses_libs -lcurses"],
+ [have_curses="no"]
+ )
+ ]
+)
if test "$have_curses" = "yes"; then
AC_SUBST(curses_cppflags)
- AC_DEFINE(HAVE_NCURSES, 1, [define to 1 to turn on curses support])
extras="$extras gui"
executables="$executables gui"
else
- AC_MSG_WARN([cannot build para_gui])
+ AC_MSG_WARN([no curses lib, cannot build para_gui])
fi
CPPFLAGS="$OLD_CPPFLAGS"
LDFLAGS="$OLD_LDFLAGS"
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"
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"
all_errlist_objs="$all_errlist_objs ogg_afh_common"
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
all_errlist_objs="$all_errlist_objs oggdec_filter ogg_afh"
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"
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"
- server_audio_formats="$server_audio_formats ogg"
+ audio_format_handlers="$audio_format_handlers ogg"
else
AC_MSG_WARN([no ogg/vorbis $msg])
fi
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"
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"
- server_audio_formats="$server_audio_formats spx"
+ audio_format_handlers="$audio_format_handlers spx"
else
AC_MSG_WARN([no ogg/speex $msg])
fi
filter_errlist_objs="$filter_errlist_objs aacdec_filter aac_common"
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"
- server_audio_formats="$server_audio_formats aac"
+ audio_format_handlers="$audio_format_handlers aac"
filters="$filters aacdec"
AC_SUBST(faad_cppflags)
else
AC_DEFINE(HAVE_MAD, 1, define to 1 if you want to build the mp3dec filter)
filter_cmdline_objs="$filter_cmdline_objs add_cmdline(mp3dec_filter)"
audiod_cmdline_objs="$audiod_cmdline_objs add_cmdline(mp3dec_filter)"
+ play_cmdline_objs="$play_cmdline_objs add_cmdline(mp3dec_filter)"
all_errlist_objs="$all_errlist_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)
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])
all_errlist_objs="$all_errlist_objs flacdec_filter flac_afh"
filter_errlist_objs="$filter_errlist_objs flacdec_filter"
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="$afh_ldflags $flac_libs -lFLAC"
filters="$filters flacdec"
- server_audio_formats="$server_audio_formats flac"
+ audio_format_handlers="$audio_format_handlers flac"
audiod_audio_formats="$audiod_audio_formats flac"
AC_SUBST(flac_cppflags)
else
AC_CHECK_HEADER(sys/soundcard.h, [
audiod_errlist_objs="$audiod_errlist_objs oss_write"
+ play_errlist_objs="$play_errlist_objs oss_write"
audiod_cmdline_objs="$audiod_cmdline_objs add_cmdline(oss_write)"
+ play_cmdline_objs="$play_cmdline_objs add_cmdline(oss_write)"
+
write_errlist_objs="$write_errlist_objs oss_write"
write_cmdline_objs="$write_cmdline_objs add_cmdline(oss_write)"
fade_errlist_objs="$fade_errlist_objs 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"
]
audiod_errlist_objs="$audiod_errlist_objs alsa_write"
audiod_cmdline_objs="$audiod_cmdline_objs add_cmdline(alsa_write)"
audiod_ldflags="$audiod_ldflags -lasound"
+ play_errlist_objs="$play_errlist_objs alsa_write"
+ play_cmdline_objs="$play_cmdline_objs add_cmdline(alsa_write)"
+ play_ldflags="$play_ldflags -lasound"
+
write_errlist_objs="$write_errlist_objs alsa_write"
write_cmdline_objs="$write_cmdline_objs add_cmdline(alsa_write)"
write_ldflags="$write_ldflags -lasound"
audiod_cmdline_objs="$audiod_cmdline_objs add_cmdline(ao_write)"
audiod_ldflags="$audiod_ldflags -lao -lpthread"
+ play_errlist_objs="$play_errlist_objs ao_write"
+ play_cmdline_objs="$play_cmdline_objs add_cmdline(ao_write)"
+ play_ldflags="$play_ldflags -lao -lpthread"
+
write_errlist_objs="$write_errlist_objs ao_write"
write_cmdline_objs="$write_cmdline_objs add_cmdline(ao_write)"
write_ldflags="$write_ldflags $ao_libs -lao -lpthread"
have_readline="no"
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_libs="$readline_libs -lreadline"
- AC_SEARCH_LIBS([rl_replace_line], [readline], [], [have_readline="no"])
+ AC_SEARCH_LIBS([rl_free_keymap], [readline], [], [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_replace_line 2> /dev/null
- AC_SEARCH_LIBS([rl_replace_line], [readline], [
+ 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"
], [], [-lcurses])
if test "$have_readline" = "no"; then # try with -ltermcap
# clear cache
AC_MSG_NOTICE([trying again with -ltermcap])
- unset ac_cv_search_rl_replace_line 2> /dev/null
- AC_SEARCH_LIBS([rl_replace_line], [readline], [
+ 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"
], [], [-ltermcap])
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
filter_cmdline_objs="$filter_cmdline_objs add_cmdline(resample_filter)"
audiod_errlist_objs="$audiod_errlist_objs resample_filter check_wav"
audiod_cmdline_objs="$audiod_cmdline_objs add_cmdline(resample_filter)"
+ play_errlist_objs="$play_errlist_objs resample_filter check_wav"
+ play_cmdline_objs="$play_cmdline_objs add_cmdline(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_DEFINE_UNQUOTED(STATUS_ITEM_ARRAY, [$result],
[char * array of all status items])
-AC_DEFINE_UNQUOTED(SERVER_AUDIO_FORMATS, "$server_audio_formats",
+AC_DEFINE_UNQUOTED(AUDIO_FORMAT_HANDLERS, "$audio_format_handlers",
[formats supported by para_server and para_afh])
AC_SUBST(executables, add_para($executables))
client_objs="$client_cmdline_objs $client_errlist_objs"
audioc_objs="$audioc_cmdline_objs $audioc_errlist_objs"
afh_objs="$afh_cmdline_objs $afh_errlist_objs"
+play_objs="$play_cmdline_objs $play_errlist_objs"
+
AC_SUBST(recv_objs, add_dot_o($recv_objs))
AC_SUBST(recv_ldflags, $recv_ldflags)
objlist_to_errlist($audioc_errlist_objs), errors used by para_audioc)
AC_SUBST(gui_objs, add_dot_o($gui_objs))
+AC_SUBST(gui_ldflags, $gui_ldflags)
AC_DEFINE_UNQUOTED(INIT_GUI_ERRLISTS,
objlist_to_errlist($gui_errlist_objs), errors used by para_gui)
+AC_SUBST(play_objs, add_dot_o($play_objs))
+AC_SUBST(play_ldflags, $play_ldflags)
+AC_DEFINE_UNQUOTED(INIT_PLAY_ERRLISTS,
+ objlist_to_errlist($play_errlist_objs), errors used by para_play)
+
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)
~~~~~~~~~~~~~~~~~~~~~~~~
unix socket credentials: $have_ucred
readline (interactive CLIs): $have_readline
-audio formats supported by para_server/para_afh: $server_audio_formats
+audio formats handlers: $audio_format_handlers
id3 version2 support: $have_libid3tag
-filters supported by para_audiod/para_filter: $filters
-writers supported by para_audiod/para_write: $writers
+filters: $filters
+writers: $writers
optional executables: $extras
$mixer_summary
])