3 AC_INIT([paraslash], [m4_esyscmd_s(./GIT-VERSION-GEN)],
4 [maan@tuebingen.mpg.de], [], [http://people.tuebingen.mpg.de/maan/paraslash/])
5 AC_CONFIG_HEADERS([config.h])
7 AC_CONFIG_FILES([Makefile])
8 AC_DEFUN([add_dot_o],[$(for i in $@; do printf "$i.o "; done)])
9 AC_DEFUN([add_cmdline],[$(for i in $@; do printf "${i}.cmdline "; done)])
10 AC_DEFUN([LIB_ARG_WITH], [
11 AC_ARG_WITH($1-headers, [AS_HELP_STRING(--with-$1-headers=dir,
12 [look for $1 headers in dir])])
13 AC_ARG_WITH($1-libs, [AS_HELP_STRING(--with-$1-libs=dir,
14 [look for $1 libraries in dir])])
15 if test -n "$with_$1_headers"; then
16 $1_cppflags="-I$with_$1_headers"
17 CPPFLAGS="$CPPFLAGS $$1_cppflags"
19 if test -n "$with_$1_libs"; then
20 $1_ldflags="-L$with_$1_libs $2"
24 LDFLAGS="$LDFLAGS $$1_ldflags"
27 AC_DEFUN([STASH_FLAGS], [
28 OLD_CPPFLAGS="$CPPFLAGS"
29 OLD_LDFLAGS="$LDFLAGS"
33 AC_DEFUN([UNSTASH_FLAGS], [
34 CPPFLAGS="$OLD_CPPFLAGS"
35 LDFLAGS="$OLD_LDFLAGS"
38 AC_DEFUN([LIB_SUBST_FLAGS], [
39 if test "$HAVE_[]m4_toupper([$1])" = 'yes'; then
40 AC_DEFINE(HAVE_[]m4_toupper([$1]), 1,
41 define to 1 to turn on $1 support)
46 AC_SUBST(HAVE_[]m4_toupper([$1]))
51 AC_USE_SYSTEM_EXTENSIONS
54 AC_PATH_PROG([GENGETOPT], [gengetopt])
55 test -z "$GENGETOPT" && AC_MSG_ERROR(
56 [gengetopt is required to build this package])
58 AC_PATH_PROG([M4], [m4])
59 test -z "$M4" && AC_MSG_ERROR(
60 [The m4 macro processor is required to build this package])
62 AC_PATH_PROG([HELP2MAN], [help2man])
63 test -z "$HELP2MAN" && AC_MSG_ERROR(
64 [help2man is required to build this package])
66 AC_PATH_PROG([INSTALL], [install])
67 test -z "$INSTALL" && AC_MSG_ERROR(
68 [The install program is required to build this package])
73 executables="recv filter audioc write afh play"
74 ################################################################## clock_gettime
76 AC_CHECK_LIB([c], [clock_gettime], [clock_gettime_lib=c], [
77 AC_CHECK_LIB([rt], [clock_gettime], [clock_gettime_lib=rt], [], [])
79 if test -n "$clock_gettime_lib"; then
80 AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [
81 define to 1 if clock_gettime() is supported])
83 if test "$clock_gettime_lib" = "rt"; then
84 AC_SUBST(clock_gettime_ldflags, -lrt)
87 ########################################################################### osl
89 LIB_ARG_WITH([osl], [-losl])
91 AC_CHECK_HEADER(osl.h, [], [HAVE_OSL=no])
92 AC_CHECK_LIB([osl], [osl_open_table], [], [HAVE_OSL=no])
95 ######################################################################## openssl
98 LIB_ARG_WITH([openssl], [-lssl -lcrypto])
99 AC_CHECK_HEADER(openssl/ssl.h, [], [HAVE_OPENSSL=no])
100 AC_CHECK_LIB([crypto], [RAND_bytes], [], [HAVE_OPENSSL=no])
101 LIB_SUBST_FLAGS(openssl)
102 if test $HAVE_OPENSSL = yes; then
103 AC_CHECK_LIB([crypto], [RSA_set0_key],
104 AC_DEFINE([HAVE_RSA_SET0_KEY], [1], [openssl-1.1]))
107 ######################################################################### gcrypt
110 LIB_ARG_WITH([gcrypt], [-lgcrypt])
111 AC_CHECK_HEADER(gcrypt.h, [], [HAVE_GCRYPT=no])
112 AC_CHECK_LIB([gcrypt], [gcry_randomize], [], [HAVE_GCRYPT=no])
113 LIB_SUBST_FLAGS(gcrypt)
115 ######################################################################### crypto
116 AC_ARG_ENABLE(cryptolib, [AS_HELP_STRING(--enable-cryptolib=lib, [
117 Force using crypto library "lib". This package requires either
118 openssl or libgcrypt being installed. Possible values for "lib"
119 are thus "openssl" and "gcrypt". If this option is not given,
120 openssl is tried first. If openssl was not found, gcrypt is
123 CRYPTOLIB="$enable_cryptolib"
124 case "$enable_cryptolib" in
126 test $HAVE_OPENSSL = no && AC_MSG_ERROR(openssl not found)
127 crypto_ldflags="$openssl_ldflags"
130 test $HAVE_GCRYPT = no && AC_MSG_ERROR(gcrypt not found)
131 crypto_ldflags="$gcrypt_ldflags"
135 if test $HAVE_GCRYPT = yes; then
137 crypto_ldflags="$gcrypt_ldflags"
139 if test $HAVE_OPENSSL = yes; then
141 crypto_ldflags="$openssl_ldflags"
145 AC_MSG_ERROR([invalid value "$enable_cryptolib" for --enable-cryptolib])
148 AC_SUBST(crypto_ldflags)
149 ########################################################################## iconv
152 AC_SEARCH_LIBS([libiconv_open], [iconv],
153 [iconv_ldflags="$LIBS"],
156 AC_SUBST(iconv_ldflags)
157 AC_MSG_CHECKING([whether iconv needs const char ** cast])
162 size_t iconv(iconv_t cd, const char **inbuf,
163 size_t *inbytesleft, char **outbuf,
164 size_t *outbytesleft);
167 [cast='(const char **)'; msg=yes],
170 AC_DEFINE_UNQUOTED(ICONV_CAST, $cast, [cast for second arg to iconv()])
173 ########################################################################### ucred
174 AC_MSG_CHECKING(for struct ucred)
175 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
176 #include <sys/types.h>
177 #include <sys/socket.h>
179 struct ucred sucred; sucred.pid=0;
180 ]])],[have_ucred=yes],[have_ucred=no])
181 AC_MSG_RESULT($have_ucred)
182 if test ${have_ucred} = yes; then
183 AC_DEFINE(HAVE_UCRED, 1, define to 1 you have struct ucred)
185 ########################################################################### gengetopt
186 echo 'option "z" z "" flag off' | $GENGETOPT --file-name conftest-ggo &&
188 [gengetopt_args_info_description],
189 [ggo_descriptions_declared=yes],
190 [ggo_descriptions_declared=no],
191 [#include "conftest-ggo.h"]
193 AC_SUBST(ggo_descriptions_declared)
194 ########################################################################### curses
196 LIB_ARG_WITH([curses], [])
198 AC_CHECK_HEADER(curses.h, [], [HAVE_CURSES=no])
199 AC_SEARCH_LIBS([initscr], [ncursesw curses], [], [HAVE_CURSES=no])
200 curses_ldflags="$curses_ldflags $LIBS"
201 LIB_SUBST_FLAGS(curses)
203 ########################################################################### ip_mreqn
204 AC_MSG_CHECKING(for struct ip_mreqn (UDPv4 multicast))
205 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
211 ]])],[have_ip_mreqn=yes],[have_ip_mreqn=no])
212 AC_MSG_RESULT($have_ip_mreqn)
213 if test ${have_ip_mreqn} = yes; then
214 AC_DEFINE(HAVE_IP_MREQN, 1, define to 1 you have struct ip_mreqn)
216 ########################################################################### ogg
218 LIB_ARG_WITH([ogg], [-logg])
220 AC_CHECK_HEADERS([ogg/ogg.h], [], [HAVE_OGG=no])
221 AC_CHECK_LIB([ogg], [ogg_stream_init], [], [HAVE_OGG=no])
222 AC_CHECK_LIB([ogg], [ogg_stream_flush_fill], [
223 AC_DEFINE(HAVE_OGG_STREAM_FLUSH_FILL, 1, [libogg >= 1.3.0])])
226 ######################################################################### vorbis
228 LIB_ARG_WITH([vorbis], [-lvorbis -lvorbisfile])
230 AC_CHECK_HEADERS([vorbis/codec.h], [], [HAVE_VORBIS=no])
231 AC_CHECK_LIB([vorbis], [vorbis_info_init], [], [HAVE_VORBIS=no])
232 LIB_SUBST_FLAGS(vorbis)
234 ######################################################################### speex
236 LIB_ARG_WITH([speex], [-lspeex])
238 AC_CHECK_HEADERS([speex/speex.h], [], [HAVE_SPEEX=no])
239 AC_CHECK_LIB([speex], [speex_decoder_init], [], [HAVE_SPEEX=no])
240 LIB_SUBST_FLAGS(speex)
242 ######################################################################### opus
244 LIB_ARG_WITH([opus], [-lopus])
246 AC_CHECK_HEADERS([opus/opus.h], [], [HAVE_OPUS=no])
247 AC_CHECK_LIB([opus], [opus_multistream_decode], [], [HAVE_OPUS=no])
248 LIB_SUBST_FLAGS(opus)
250 ########################################################################### flac
252 LIB_ARG_WITH([flac], [-lFLAC -lm])
254 AC_CHECK_HEADER(FLAC/stream_decoder.h, [], HAVE_FLAC=no)
255 AC_CHECK_LIB([FLAC], [FLAC__stream_decoder_init_file], [], HAVE_FLAC=no)
256 LIB_SUBST_FLAGS(flac)
259 # some helper functions for codecs which use the ogg container format
260 AC_DEFUN([NEED_OGG_OBJECTS], [{
261 test "$HAVE_OGG" = 'yes' -a \( \
262 "$HAVE_VORBIS" = 'yes' \
263 -o "$HAVE_SPEEX" = 'yes' \
264 -o "$HAVE_OPUS" = 'yes' \
265 -o "$HAVE_FLAC" = 'yes' \
268 AC_DEFUN([NEED_VORBIS_OBJECTS], [{
269 test "$HAVE_OGG" = 'yes' -a "$HAVE_VORBIS" = 'yes'
271 AC_DEFUN([NEED_SPEEX_OBJECTS], [{
272 test "$HAVE_OGG" = 'yes' -a "$HAVE_SPEEX" = 'yes'
274 AC_DEFUN([NEED_OPUS_OBJECTS], [{
275 test "$HAVE_OGG" = 'yes' -a "$HAVE_OPUS" = 'yes'
277 AC_DEFUN([NEED_FLAC_OBJECTS], [{
278 test "$HAVE_OGG" = 'yes' -a "$HAVE_FLAC" = 'yes'
280 ########################################################################### faad
282 LIB_ARG_WITH([faad], [-lfaad])
284 AC_CHECK_HEADER(neaacdec.h, [], HAVE_FAAD=no)
285 AC_CHECK_LIB([faad], [NeAACDecOpen], [], HAVE_FAAD=no)
286 LIB_SUBST_FLAGS(faad)
288 ########################################################################### mad
290 LIB_ARG_WITH([mad], [-lmad])
292 AC_CHECK_HEADER(mad.h, [], HAVE_MAD=no)
293 AC_CHECK_LIB([mad], [mad_stream_init], [], HAVE_MAD=no)
296 ###################################################################### libid3tag
298 LIB_ARG_WITH([id3tag], [-lid3tag -lz])
300 AC_CHECK_HEADER(id3tag.h, [], HAVE_ID3TAG=no)
301 AC_CHECK_LIB([id3tag], [id3_file_fdopen], [], HAVE_ID3TAG=no)
302 LIB_SUBST_FLAGS(id3tag)
304 ########################################################################### oss
306 LIB_ARG_WITH([oss], [])
307 AC_CHECK_HEADER(sys/soundcard.h, [HAVE_OSS=yes], [HAVE_OSS=no])
308 AC_CHECK_LIB(ossaudio, _oss_ioctl, [oss_ldflags="$oss_ldflags -lossaudio"], [])
311 ########################################################################### alsa
313 LIB_ARG_WITH([alsa], [-lasound])
315 AC_CHECK_HEADER(alsa/asoundlib.h, [], HAVE_ALSA=no)
316 AC_CHECK_LIB([asound], [snd_pcm_open], [], HAVE_ALSA=no)
317 LIB_SUBST_FLAGS(alsa)
319 ######################################################################### pthread
321 LIB_ARG_WITH([pthread], [-lpthread])
323 AC_CHECK_HEADER(pthread.h, [], HAVE_PTHREAD=no)
324 AC_CHECK_LIB([pthread], [pthread_create], [], HAVE_PTHREAD=no)
325 LIB_SUBST_FLAGS(pthread)
327 ########################################################################### libao
329 LIB_ARG_WITH([ao], [-lao])
331 AC_CHECK_HEADER(ao/ao.h, [], HAVE_AO=no)
332 AC_CHECK_LIB([ao], [ao_initialize], [], HAVE_AO=no)
335 AC_DEFUN([NEED_AO_OBJECTS], [{ test $HAVE_AO = yes -a $HAVE_PTHREAD = yes; }])
336 ######################################################################## readline
338 AC_SEARCH_LIBS([tgetent], [tinfo curses terminfo termcap])
339 LIB_ARG_WITH([readline], [-lreadline $LIBS])
341 AC_CHECK_HEADER([readline/readline.h], [], [HAVE_READLINE=no])
342 AC_CHECK_LIB([readline], [rl_free_keymap], [], HAVE_READLINE=no)
345 [AC_DEFINE(RL_FREE_KEYMAP_DECLARED, 1, readline >= 6.3)],
349 #include <readline/readline.h>
352 LIB_SUBST_FLAGS(readline)
354 ############################################################# libsamplerate
356 LIB_ARG_WITH([samplerate], [-lsamplerate])
358 AC_CHECK_HEADER(samplerate.h, [], HAVE_SAMPLERATE=no)
359 AC_CHECK_LIB([samplerate], [src_process], [], HAVE_SAMPLERATE=no)
360 LIB_SUBST_FLAGS(samplerate)
362 ########################################################################## mp4v2
364 LIB_ARG_WITH([mp4v2], [-lmp4v2])
366 AC_CHECK_HEADER([mp4v2/mp4v2.h], [], [HAVE_MP4V2=no])
367 AC_CHECK_LIB([mp4v2], [MP4Read], [], [HAVE_MP4V2=no])
368 LIB_SUBST_FLAGS(mp4v2)
370 ######################################################################### server
371 if test -n "$CRYPTOLIB" && test $HAVE_OSL = yes; then
373 executables="$executables server"
374 server_cmdline_objs="server"
375 server_errlist_objs="
415 if test "$CRYPTOLIB" = openssl; then
416 server_errlist_objs="$server_errlist_objs crypt"
418 server_errlist_objs="$server_errlist_objs gcrypt"
420 NEED_OGG_OBJECTS() && server_errlist_objs="$server_errlist_objs ogg_afh_common"
421 NEED_VORBIS_OBJECTS() && server_errlist_objs="$server_errlist_objs ogg_afh"
422 NEED_SPEEX_OBJECTS() && server_errlist_objs="$server_errlist_objs spx_afh spx_common"
423 NEED_OPUS_OBJECTS() && server_errlist_objs="$server_errlist_objs opus_afh opus_common"
424 NEED_FLAC_OBJECTS && server_errlist_objs="$server_errlist_objs flac_afh"
425 if test $HAVE_FAAD = yes && test $HAVE_MP4V2 = yes; then
426 server_errlist_objs="$server_errlist_objs aac_afh aac_common"
428 server_objs="add_cmdline($server_cmdline_objs) $server_errlist_objs"
429 AC_SUBST(server_objs, add_dot_o($server_objs))
433 ############################################################# client
434 if test -n "$CRYPTOLIB"; then
436 executables="$executables client"
437 client_cmdline_objs="client"
438 client_errlist_objs="
455 if test "$CRYPTOLIB" = openssl; then
456 client_errlist_objs="$client_errlist_objs crypt"
458 client_errlist_objs="$client_errlist_objs gcrypt"
460 if test $HAVE_READLINE = yes; then
461 client_errlist_objs="$client_errlist_objs interactive"
463 client_objs="add_cmdline($client_cmdline_objs) $client_errlist_objs"
464 AC_SUBST(client_objs, add_dot_o($client_objs))
468 ############################################################# audiod
469 if test -n "$CRYPTOLIB"; then
471 executables="$executables audiod"
472 audiod_audio_formats="wma"
473 audiod_cmdline_objs="$audiod_cmdline_objs
485 audiod_errlist_objs="$audiod_errlist_objs
524 if test "$CRYPTOLIB" = openssl; then
525 audiod_errlist_objs="$audiod_errlist_objs crypt"
527 audiod_errlist_objs="$audiod_errlist_objs gcrypt"
529 NEED_VORBIS_OBJECTS && {
530 audiod_errlist_objs="$audiod_errlist_objs oggdec_filter"
531 audiod_audio_formats="$audiod_audio_formats ogg"
533 NEED_SPEEX_OBJECTS && {
534 audiod_errlist_objs="$audiod_errlist_objs spxdec_filter spx_common"
535 audiod_audio_formats="$audiod_audio_formats spx"
537 NEED_OPUS_OBJECTS && {
538 audiod_errlist_objs="$audiod_errlist_objs opusdec_filter opus_common"
539 audiod_audio_formats="$audiod_audio_formats opus"
541 NEED_FLAC_OBJECTS && {
542 audiod_errlist_objs="$audiod_errlist_objs flacdec_filter"
543 audiod_audio_formats="$audiod_audio_formats flac"
545 if test $HAVE_FAAD = yes; then
546 audiod_errlist_objs="$audiod_errlist_objs aacdec_filter aac_common"
547 audiod_audio_formats="$audiod_audio_formats aac"
549 if test $HAVE_MAD = yes; then
550 audiod_audio_formats="$audiod_audio_formats mp3"
551 audiod_cmdline_objs="$audiod_cmdline_objs mp3dec_filter"
552 audiod_errlist_objs="$audiod_errlist_objs mp3dec_filter"
554 if test $HAVE_OSS = yes; then
555 audiod_errlist_objs="$audiod_errlist_objs oss_write"
556 audiod_cmdline_objs="$audiod_cmdline_objs oss_write"
558 if test $HAVE_ALSA = yes; then
559 audiod_errlist_objs="$audiod_errlist_objs alsa_write"
560 audiod_cmdline_objs="$audiod_cmdline_objs alsa_write"
563 audiod_errlist_objs="$audiod_errlist_objs ao_write"
564 audiod_cmdline_objs="$audiod_cmdline_objs ao_write"
566 if test $HAVE_SAMPLERATE = yes; then
567 audiod_errlist_objs="$audiod_errlist_objs resample_filter check_wav"
568 audiod_cmdline_objs="$audiod_cmdline_objs resample_filter"
570 audiod_objs="add_cmdline($audiod_cmdline_objs) $audiod_errlist_objs"
571 AC_SUBST(audiod_objs, add_dot_o($audiod_objs))
573 enum="$(for i in $audiod_audio_formats; do printf "AUDIO_FORMAT_${i}, " | tr '[a-z]' '[A-Z]'; done)"
574 AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMATS_ENUM, $enum NUM_AUDIO_FORMATS,
575 enum of audio formats supported by audiod)
576 names="$(for i in $audiod_audio_formats; do printf \"$i\",' ' ; done)"
577 AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMAT_ARRAY, $names, array of audio formats supported by audiod)
581 ########################################################################### fade
582 if test $HAVE_OSS = yes -o $HAVE_ALSA = yes; then
584 executables="$executables fade"
585 fade_cmdline_objs="fade"
586 fade_errlist_objs="fade exec string fd version ggo"
587 if test $HAVE_OSS = yes; then
588 fade_errlist_objs="$fade_errlist_objs oss_mix"
589 mixers="${mixers}oss "
590 default_mixer="OSS_MIX"
592 if test $HAVE_ALSA = yes; then
593 fade_errlist_objs="$fade_errlist_objs alsa_mix"
594 mixers="${mixers}alsa "
595 default_mixer="ALSA_MIX"
597 fade_objs="add_cmdline($fade_cmdline_objs) $fade_errlist_objs"
598 AC_SUBST(fade_objs, add_dot_o($fade_objs))
601 printf "${i}_MIX, " | tr '[a-z]' '[A-Z]'
604 AC_DEFINE_UNQUOTED(MIXER_ENUM, $enum NUM_SUPPORTED_MIXERS,
605 enum of supported mixers)
606 AC_DEFINE_UNQUOTED(DEFAULT_MIXER, $default_mixer,
607 use this mixer if none was specified)
608 names="$(for i in $mixers; do printf \"$i\",' ' ; done)"
609 AC_DEFINE_UNQUOTED(MIXER_NAMES, $names, supported mixer names)
612 printf 'extern void '$i'_mix_init(struct mixer *); '
615 AC_DEFINE_UNQUOTED(DECLARE_MIXER_INITS, $inits,
616 init functions of the supported mixers)
617 array="$(for i in $mixers; do printf '{.init = '$i'_mix_init},'; done)"
618 AC_DEFINE_UNQUOTED(MIXER_ARRAY, $array, array of supported mixers)
621 AC_MSG_WARN([no mixer support])
623 ########################################################################### gui
624 if test $HAVE_CURSES = yes; then
626 executables="$executables gui"
627 gui_cmdline_objs="gui"
642 gui_objs="add_cmdline($gui_cmdline_objs) $gui_errlist_objs"
643 AC_SUBST(gui_objs, add_dot_o($gui_objs))
646 AC_MSG_WARN([no curses lib, cannot build para_gui])
648 ######################################################################## filter
658 filter_errlist_objs="
683 filter_cmdline_objs="
690 NEED_VORBIS_OBJECTS && {
691 filters="$filters oggdec"
692 filter_errlist_objs="$filter_errlist_objs oggdec_filter"
694 NEED_SPEEX_OBJECTS && {
695 filters="$filters spxdec"
696 filter_errlist_objs="$filter_errlist_objs spxdec_filter spx_common"
698 NEED_OPUS_OBJECTS && {
699 filters="$filters opusdec"
700 filter_errlist_objs="$filter_errlist_objs opusdec_filter opus_common"
702 NEED_FLAC_OBJECTS && {
703 filter_errlist_objs="$filter_errlist_objs flacdec_filter"
704 filters="$filters flacdec"
706 if test $HAVE_FAAD = yes; then
707 filter_errlist_objs="$filter_errlist_objs aacdec_filter aac_common"
708 filters="$filters aacdec"
710 if test $HAVE_MAD = yes; then
711 filter_cmdline_objs="$filter_cmdline_objs mp3dec_filter"
712 filter_errlist_objs="$filter_errlist_objs mp3dec_filter"
713 filters="$filters mp3dec"
715 if test $HAVE_SAMPLERATE = yes; then
716 filter_errlist_objs="$filter_errlist_objs resample_filter check_wav"
717 filter_cmdline_objs="$filter_cmdline_objs resample_filter"
718 filters="$filters resample"
720 filters="$(echo $filters)"
722 filter_objs="add_cmdline($filter_cmdline_objs) $filter_errlist_objs"
724 AC_SUBST(filter_objs, add_dot_o($filter_objs))
726 enum="$(for i in $filters; do printf "${i}_FILTER, " | tr '[a-z]' '[A-Z]'; done)"
727 AC_DEFINE_UNQUOTED(FILTER_ENUM, $enum NUM_SUPPORTED_FILTERS,
728 enum of supported filters)
729 inits="$(for i in $filters; do printf 'extern void '$i'_filter_init(struct filter *f); '; done)"
730 AC_DEFINE_UNQUOTED(DECLARE_FILTER_INITS, $inits, init functions of the supported filters)
731 array="$(for i in $filters; do printf '{.name = "'$i'", .init = '$i'_filter_init},'; done)"
732 AC_DEFINE_UNQUOTED(FILTER_ARRAY, $array, array of supported filters)
733 ########################################################################## recv
763 NEED_OGG_OBJECTS && recv_errlist_objs="$recv_errlist_objs ogg_afh_common"
764 NEED_VORBIS_OBJECTS && recv_errlist_objs="$recv_errlist_objs ogg_afh"
765 NEED_SPEEX_OBJECTS && recv_errlist_objs="$recv_errlist_objs spx_afh spx_common"
766 NEED_OPUS_OBJECTS && recv_errlist_objs="$recv_errlist_objs opus_afh opus_common"
767 NEED_FLAC_OBJECTS && recv_errlist_objs="$recv_errlist_objs flac_afh"
769 if test $HAVE_FAAD = yes -a $HAVE_MP4V2 = yes; then
770 recv_errlist_objs="$recv_errlist_objs aac_afh aac_common"
772 recv_objs="add_cmdline($recv_cmdline_objs) $recv_errlist_objs"
773 AC_SUBST(receivers, "http dccp udp afh")
774 AC_SUBST(recv_objs, add_dot_o($recv_objs))
775 ########################################################################### afh
776 audio_format_handlers="mp3 wma"
777 afh_cmdline_objs="afh"
790 NEED_OGG_OBJECTS && afh_errlist_objs="$afh_errlist_objs ogg_afh_common"
791 NEED_VORBIS_OBJECTS && {
792 afh_errlist_objs="$afh_errlist_objs ogg_afh"
793 audio_format_handlers="$audio_format_handlers ogg"
795 NEED_SPEEX_OBJECTS && {
796 afh_errlist_objs="$afh_errlist_objs spx_afh spx_common"
797 audio_format_handlers="$audio_format_handlers spx"
799 NEED_OPUS_OBJECTS && {
800 afh_errlist_objs="$afh_errlist_objs opus_afh opus_common"
801 audio_format_handlers="$audio_format_handlers opus"
803 NEED_FLAC_OBJECTS && {
804 afh_errlist_objs="$afh_errlist_objs flac_afh"
805 audio_format_handlers="$audio_format_handlers flac"
807 if test $HAVE_FAAD = yes -a $HAVE_MP4V2 = yes; then
808 afh_errlist_objs="$afh_errlist_objs aac_afh aac_common"
809 audio_format_handlers="$audio_format_handlers aac"
812 afh_objs="add_cmdline($afh_cmdline_objs) $afh_errlist_objs"
814 AC_SUBST(afh_objs, add_dot_o($afh_objs))
815 ########################################################################## play
861 NEED_OGG_OBJECTS && play_errlist_objs="$play_errlist_objs ogg_afh_common"
862 NEED_VORBIS_OBJECTS && {
863 play_errlist_objs="$play_errlist_objs oggdec_filter ogg_afh"
865 NEED_SPEEX_OBJECTS && {
866 play_errlist_objs="$play_errlist_objs spxdec_filter spx_afh spx_common"
869 play_errlist_objs="$play_errlist_objs
874 NEED_FLAC_OBJECTS && {
875 play_errlist_objs="$play_errlist_objs flacdec_filter flac_afh"
877 if test $HAVE_FAAD = yes; then
878 play_errlist_objs="$play_errlist_objs aacdec_filter"
880 if test $HAVE_MP4V2 = yes; then
881 play_errlist_objs="$play_errlist_objs aac_afh"
883 if test $HAVE_MP4V2 = yes || test $HAVE_FAAD = yes; then
884 play_errlist_objs="$play_errlist_objs aac_common"
886 if test $HAVE_MAD = yes; then
887 play_cmdline_objs="$play_cmdline_objs mp3dec_filter"
888 play_errlist_objs="$play_errlist_objs mp3dec_filter"
890 if test $HAVE_OSS = yes; then
891 play_errlist_objs="$play_errlist_objs oss_write"
892 play_cmdline_objs="$play_cmdline_objs oss_write"
894 if test $HAVE_ALSA = yes; then
895 play_errlist_objs="$play_errlist_objs alsa_write"
896 play_cmdline_objs="$play_cmdline_objs alsa_write"
899 play_errlist_objs="$play_errlist_objs ao_write"
900 play_cmdline_objs="$play_cmdline_objs ao_write"
902 if test $HAVE_READLINE = yes; then
903 play_errlist_objs="$play_errlist_objs interactive"
905 if test $HAVE_SAMPLERATE = yes; then
906 play_errlist_objs="$play_errlist_objs resample_filter check_wav"
907 play_cmdline_objs="$play_cmdline_objs resample_filter"
910 play_objs="add_cmdline($play_cmdline_objs) $play_errlist_objs"
911 AC_SUBST(play_objs, add_dot_o($play_objs))
912 ######################################################################### write
932 default_writer="FILE_WRITE"
935 write_errlist_objs="$write_errlist_objs ao_write"
936 write_cmdline_objs="$write_cmdline_objs ao_write"
937 writers="$writers ao"
938 default_writer="AO_WRITE"
940 if test $HAVE_OSS = yes; then
941 write_errlist_objs="$write_errlist_objs oss_write"
942 write_cmdline_objs="$write_cmdline_objs oss_write"
943 writers="$writers oss"
944 default_writer="OSS_WRITE"
946 if test $HAVE_ALSA = yes; then
947 write_errlist_objs="$write_errlist_objs alsa_write"
948 write_cmdline_objs="$write_cmdline_objs alsa_write"
949 writers="$writers alsa"
950 default_writer="ALSA_WRITE"
953 write_objs="add_cmdline($write_cmdline_objs) $write_errlist_objs"
954 AC_SUBST(write_objs, add_dot_o($write_objs))
955 enum="$(for i in $writers; do printf "${i}_WRITE, " | tr '[a-z]' '[A-Z]'; done)"
956 AC_DEFINE_UNQUOTED(WRITER_ENUM, $enum NUM_SUPPORTED_WRITERS,
957 enum of supported writers)
958 AC_DEFINE_UNQUOTED(DEFAULT_WRITER, $default_writer, use this writer if none was specified)
959 names="$(for i in $writers; do printf \"$i\",' ' ; done)"
960 AC_DEFINE_UNQUOTED(WRITER_NAMES, $names, supported writer names)
961 inits="$(for i in $writers; do printf 'extern void '$i'_write_init(struct writer *); '; done)"
962 AC_DEFINE_UNQUOTED(DECLARE_WRITER_INITS, $inits, init functions of the supported writers)
963 array="$(for i in $writers; do printf '{.init = '$i'_write_init},'; done)"
964 AC_DEFINE_UNQUOTED(WRITER_ARRAY, $array, array of supported writers)
965 ######################################################################## audioc
966 audioc_cmdline_objs="audioc"
967 audioc_errlist_objs="
975 if test $HAVE_READLINE = yes; then
976 audioc_errlist_objs="$audioc_errlist_objs
983 audioc_objs="add_cmdline($audioc_cmdline_objs) $audioc_errlist_objs"
984 AC_SUBST(audioc_objs, add_dot_o($audioc_objs))
985 ################################################################## status items
987 status_items="basename status num_played mtime bitrate frequency file_size
988 status_flags format score techinfo afs_mode
989 attributes_txt decoder_flags audiod_status play_time attributes_bitmap
990 offset seconds_total stream_start current_time audiod_uptime image_id
991 lyrics_id duration directory lyrics_name image_name path hash channels
992 last_played num_chunks chunk_time amplification artist title year album
996 for i in $status_items; do
997 result="$result SI_$(echo $i | tr 'a-z' 'A-Z'), "
999 AC_DEFINE_UNQUOTED(STATUS_ITEM_ENUM, [$result],
1000 [enum of all status items])
1003 for i in $status_items; do
1004 result="$result \"$i\", "
1006 AC_DEFINE_UNQUOTED(STATUS_ITEM_ARRAY, [$result],
1007 [char * array of all status items])
1009 AC_DEFINE_UNQUOTED(AUDIO_FORMAT_HANDLERS, "$audio_format_handlers",
1010 [formats supported by para_server and para_afh])
1012 AC_SUBST(executables)
1016 paraslash configuration:
1017 ~~~~~~~~~~~~~~~~~~~~~~~~
1018 crypto lib: ${CRYPTOLIB:-[none]}
1019 unix socket credentials: $have_ucred
1020 readline (interactive CLIs): $HAVE_READLINE
1021 id3 version 2 support: $HAVE_ID3TAG
1025 audio format handlers: $audio_format_handlers
1026 filters: $(echo $filters)
1029 para_server: $build_server
1030 para_gui: $build_gui
1031 para_fade: $build_fade
1032 para_client: $build_client
1033 para_audiod: $build_audiod