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])
70 AC_PATH_PROG([lopsubgen], [lopsubgen])
71 test -z "$lopsubgen" && AC_MSG_ERROR(
72 [lopsubgen is required to build this package])
77 executables="recv filter audioc write afh play"
78 ################################################################## clock_gettime
80 AC_CHECK_LIB([c], [clock_gettime], [clock_gettime_lib=c], [
81 AC_CHECK_LIB([rt], [clock_gettime], [clock_gettime_lib=rt], [], [])
83 if test -n "$clock_gettime_lib"; then
84 AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [
85 define to 1 if clock_gettime() is supported])
87 if test "$clock_gettime_lib" = "rt"; then
88 AC_SUBST(clock_gettime_ldflags, -lrt)
91 ########################################################################### osl
93 LIB_ARG_WITH([osl], [-losl])
95 AC_CHECK_HEADER(osl.h, [], [HAVE_OSL=no])
96 AC_CHECK_LIB([osl], [osl_open_table], [], [HAVE_OSL=no])
99 ######################################################################## lopsub
101 LIB_ARG_WITH([lopsub], [-llopsub])
103 AC_CHECK_HEADER(lopsub.h, [], [HAVE_LOPSUB=no])
104 AC_CHECK_LIB([lopsub], [lls_merge], [], [HAVE_LOPSUB=yes])
105 if test $HAVE_LOPSUB = no; then AC_MSG_ERROR([
106 The lopsub library is required to build this software, but
107 the above checks indicate it is not installed on your system.
108 Run the following command to download a copy.
109 git clone git://git.tuebingen.mpg.de/lopsub.git
110 Install the library, then run this configure script again.
113 LIB_SUBST_FLAGS([lopsub])
115 ######################################################################## openssl
118 LIB_ARG_WITH([openssl], [-lssl -lcrypto])
119 AC_CHECK_HEADER(openssl/ssl.h, [], [HAVE_OPENSSL=no])
120 AC_CHECK_LIB([crypto], [RAND_bytes], [], [HAVE_OPENSSL=no])
121 LIB_SUBST_FLAGS(openssl)
122 if test $HAVE_OPENSSL = yes; then
123 AC_CHECK_LIB([crypto], [RSA_set0_key],
124 AC_DEFINE([HAVE_RSA_SET0_KEY], [1], [openssl-1.1]))
127 ######################################################################### gcrypt
130 LIB_ARG_WITH([gcrypt], [-lgcrypt])
131 AC_CHECK_HEADER(gcrypt.h, [], [HAVE_GCRYPT=no])
132 AC_CHECK_LIB([gcrypt], [gcry_randomize], [], [HAVE_GCRYPT=no])
133 LIB_SUBST_FLAGS(gcrypt)
135 ######################################################################### crypto
136 AC_ARG_ENABLE(cryptolib, [AS_HELP_STRING(--enable-cryptolib=lib, [
137 Force using crypto library "lib". This package requires either
138 openssl or libgcrypt being installed. Possible values for "lib"
139 are thus "openssl" and "gcrypt". If this option is not given,
140 openssl is tried first. If openssl was not found, gcrypt is
143 CRYPTOLIB="$enable_cryptolib"
144 case "$enable_cryptolib" in
146 test $HAVE_OPENSSL = no && AC_MSG_ERROR(openssl not found)
147 crypto_ldflags="$openssl_ldflags"
150 test $HAVE_GCRYPT = no && AC_MSG_ERROR(gcrypt not found)
151 crypto_ldflags="$gcrypt_ldflags"
155 if test $HAVE_GCRYPT = yes; then
157 crypto_ldflags="$gcrypt_ldflags"
159 if test $HAVE_OPENSSL = yes; then
161 crypto_ldflags="$openssl_ldflags"
165 AC_MSG_ERROR([invalid value "$enable_cryptolib" for --enable-cryptolib])
168 AC_SUBST(crypto_ldflags)
169 ########################################################################## iconv
172 AC_SEARCH_LIBS([libiconv_open], [iconv],
173 [iconv_ldflags="$LIBS"],
176 AC_SUBST(iconv_ldflags)
177 AC_MSG_CHECKING([whether iconv needs const char ** cast])
182 size_t iconv(iconv_t cd, const char **inbuf,
183 size_t *inbytesleft, char **outbuf,
184 size_t *outbytesleft);
187 [cast='(const char **)'; msg=yes],
190 AC_DEFINE_UNQUOTED(ICONV_CAST, $cast, [cast for second arg to iconv()])
193 ########################################################################### ucred
194 AC_MSG_CHECKING(for struct ucred)
195 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
196 #include <sys/types.h>
197 #include <sys/socket.h>
199 struct ucred sucred; sucred.pid=0;
200 ]])],[have_ucred=yes],[have_ucred=no])
201 AC_MSG_RESULT($have_ucred)
202 if test ${have_ucred} = yes; then
203 AC_DEFINE(HAVE_UCRED, 1, define to 1 you have struct ucred)
205 ########################################################################### gengetopt
206 echo 'option "z" z "" flag off' | $GENGETOPT --file-name conftest-ggo &&
208 [gengetopt_args_info_description],
209 [ggo_descriptions_declared=yes],
210 [ggo_descriptions_declared=no],
211 [#include "conftest-ggo.h"]
213 AC_SUBST(ggo_descriptions_declared)
214 ########################################################################### curses
216 LIB_ARG_WITH([curses], [])
218 AC_CHECK_HEADER(curses.h, [], [HAVE_CURSES=no])
219 AC_SEARCH_LIBS([initscr], [ncursesw curses], [], [HAVE_CURSES=no])
220 curses_ldflags="$curses_ldflags $LIBS"
221 LIB_SUBST_FLAGS(curses)
223 ########################################################################### ip_mreqn
224 AC_MSG_CHECKING(for struct ip_mreqn (UDPv4 multicast))
225 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
231 ]])],[have_ip_mreqn=yes],[have_ip_mreqn=no])
232 AC_MSG_RESULT($have_ip_mreqn)
233 if test ${have_ip_mreqn} = yes; then
234 AC_DEFINE(HAVE_IP_MREQN, 1, define to 1 you have struct ip_mreqn)
236 ########################################################################### osx
238 AC_MSG_CHECKING(for CoreAudio (MacOs))
239 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
240 #include <CoreAudio/CoreAudio.h>
243 ]])],[have_core_audio=yes],[have_core_audio=no])
244 AC_MSG_RESULT($have_core_audio)
245 if test ${have_core_audio} = yes; then
246 f1="-framework CoreAudio"
247 f2="-framework AudioToolbox"
248 f3="-framework AudioUnit"
249 f4="-framework CoreServices"
250 core_audio_ldflags="$f1 $f2 $f3 $f4"
251 AC_SUBST(core_audio_ldflags)
252 AC_DEFINE(HAVE_CORE_AUDIO, 1, define to 1 on Mac Os X)
254 ########################################################################### ogg
256 LIB_ARG_WITH([ogg], [-logg])
258 AC_CHECK_HEADERS([ogg/ogg.h], [], [HAVE_OGG=no])
259 AC_CHECK_LIB([ogg], [ogg_stream_init], [], [HAVE_OGG=no])
260 AC_CHECK_LIB([ogg], [ogg_stream_flush_fill], [
261 AC_DEFINE(HAVE_OGG_STREAM_FLUSH_FILL, 1, [libogg >= 1.3.0])])
264 ######################################################################### vorbis
266 LIB_ARG_WITH([vorbis], [-lvorbis -lvorbisfile])
268 AC_CHECK_HEADERS([vorbis/codec.h], [], [HAVE_VORBIS=no])
269 AC_CHECK_LIB([vorbis], [vorbis_info_init], [], [HAVE_VORBIS=no])
270 LIB_SUBST_FLAGS(vorbis)
272 ######################################################################### speex
274 LIB_ARG_WITH([speex], [-lspeex])
276 AC_CHECK_HEADERS([speex/speex.h], [], [HAVE_SPEEX=no])
277 AC_CHECK_LIB([speex], [speex_decoder_init], [], [HAVE_SPEEX=no])
278 LIB_SUBST_FLAGS(speex)
280 ######################################################################### opus
282 LIB_ARG_WITH([opus], [-lopus])
284 AC_CHECK_HEADERS([opus/opus.h], [], [HAVE_OPUS=no])
285 AC_CHECK_LIB([opus], [opus_multistream_decode], [], [HAVE_OPUS=no])
286 LIB_SUBST_FLAGS(opus)
288 ########################################################################### flac
290 LIB_ARG_WITH([flac], [-lFLAC -lm])
292 AC_CHECK_HEADER(FLAC/stream_decoder.h, [], HAVE_FLAC=no)
293 AC_CHECK_LIB([FLAC], [FLAC__stream_decoder_init_file], [], HAVE_FLAC=no)
294 LIB_SUBST_FLAGS(flac)
297 # some helper functions for codecs which use the ogg container format
298 AC_DEFUN([NEED_OGG_OBJECTS], [{
299 test "$HAVE_OGG" = 'yes' -a \( \
300 "$HAVE_VORBIS" = 'yes' \
301 -o "$HAVE_SPEEX" = 'yes' \
302 -o "$HAVE_OPUS" = 'yes' \
303 -o "$HAVE_FLAC" = 'yes' \
306 AC_DEFUN([NEED_VORBIS_OBJECTS], [{
307 test "$HAVE_OGG" = 'yes' -a "$HAVE_VORBIS" = 'yes'
309 AC_DEFUN([NEED_SPEEX_OBJECTS], [{
310 test "$HAVE_OGG" = 'yes' -a "$HAVE_SPEEX" = 'yes'
312 AC_DEFUN([NEED_OPUS_OBJECTS], [{
313 test "$HAVE_OGG" = 'yes' -a "$HAVE_OPUS" = 'yes'
315 AC_DEFUN([NEED_FLAC_OBJECTS], [{
316 test "$HAVE_OGG" = 'yes' -a "$HAVE_FLAC" = 'yes'
318 ########################################################################### faad
320 LIB_ARG_WITH([faad], [-lfaad])
322 AC_CHECK_HEADER(neaacdec.h, [], HAVE_FAAD=no)
323 AC_CHECK_LIB([faad], [NeAACDecOpen], [], HAVE_FAAD=no)
324 LIB_SUBST_FLAGS(faad)
326 ########################################################################### mad
328 LIB_ARG_WITH([mad], [-lmad])
330 AC_CHECK_HEADER(mad.h, [], HAVE_MAD=no)
331 AC_CHECK_LIB([mad], [mad_stream_init], [], HAVE_MAD=no)
334 ###################################################################### libid3tag
336 LIB_ARG_WITH([id3tag], [-lid3tag -lz])
338 AC_CHECK_HEADER(id3tag.h, [], HAVE_ID3TAG=no)
339 AC_CHECK_LIB([id3tag], [id3_file_fdopen], [], HAVE_ID3TAG=no)
340 LIB_SUBST_FLAGS(id3tag)
342 ########################################################################### oss
344 LIB_ARG_WITH([oss], [])
345 AC_CHECK_HEADER(sys/soundcard.h, [HAVE_OSS=yes], [HAVE_OSS=no])
346 AC_CHECK_LIB(ossaudio, _oss_ioctl, [oss_ldflags="$oss_ldflags -lossaudio"], [])
349 ########################################################################### alsa
351 LIB_ARG_WITH([alsa], [-lasound])
353 AC_CHECK_HEADER(alsa/asoundlib.h, [], HAVE_ALSA=no)
354 AC_CHECK_LIB([asound], [snd_pcm_open], [], HAVE_ALSA=no)
355 LIB_SUBST_FLAGS(alsa)
357 ######################################################################### pthread
359 LIB_ARG_WITH([pthread], [-lpthread])
361 AC_CHECK_HEADER(pthread.h, [], HAVE_PTHREAD=no)
362 AC_CHECK_LIB([pthread], [pthread_create], [], HAVE_PTHREAD=no)
363 LIB_SUBST_FLAGS(pthread)
365 ########################################################################### libao
367 LIB_ARG_WITH([ao], [-lao])
369 AC_CHECK_HEADER(ao/ao.h, [], HAVE_AO=no)
370 AC_CHECK_LIB([ao], [ao_initialize], [], HAVE_AO=no)
373 AC_DEFUN([NEED_AO_OBJECTS], [{ test $HAVE_AO = yes -a $HAVE_PTHREAD = yes; }])
374 ######################################################################## readline
376 AC_SEARCH_LIBS([tgetent], [tinfo curses terminfo termcap])
377 LIB_ARG_WITH([readline], [-lreadline $LIBS])
379 AC_CHECK_HEADER([readline/readline.h], [], [HAVE_READLINE=no])
380 AC_CHECK_LIB([readline], [rl_free_keymap], [], HAVE_READLINE=no)
383 [AC_DEFINE(RL_FREE_KEYMAP_DECLARED, 1, readline >= 6.3)],
387 #include <readline/readline.h>
390 LIB_SUBST_FLAGS(readline)
392 ############################################################# libsamplerate
394 LIB_ARG_WITH([samplerate], [-lsamplerate])
396 AC_CHECK_HEADER(samplerate.h, [], HAVE_SAMPLERATE=no)
397 AC_CHECK_LIB([samplerate], [src_process], [], HAVE_SAMPLERATE=no)
398 LIB_SUBST_FLAGS(samplerate)
400 ########################################################################## mp4v2
402 LIB_ARG_WITH([mp4v2], [-lmp4v2])
404 AC_CHECK_HEADER([mp4v2/mp4v2.h], [], [HAVE_MP4V2=no])
405 AC_CHECK_LIB([mp4v2], [MP4Read], [], [HAVE_MP4V2=no])
406 LIB_SUBST_FLAGS(mp4v2)
408 ######################################################################### server
409 if test -n "$CRYPTOLIB" && test $HAVE_OSL = yes; then
411 executables="$executables server"
412 server_cmdline_objs="server"
413 server_errlist_objs="
453 if test "$CRYPTOLIB" = openssl; then
454 server_errlist_objs="$server_errlist_objs crypt"
456 server_errlist_objs="$server_errlist_objs gcrypt"
458 NEED_OGG_OBJECTS() && server_errlist_objs="$server_errlist_objs ogg_afh_common"
459 NEED_VORBIS_OBJECTS() && server_errlist_objs="$server_errlist_objs ogg_afh"
460 NEED_SPEEX_OBJECTS() && server_errlist_objs="$server_errlist_objs spx_afh spx_common"
461 NEED_OPUS_OBJECTS() && server_errlist_objs="$server_errlist_objs opus_afh opus_common"
462 NEED_FLAC_OBJECTS && server_errlist_objs="$server_errlist_objs flac_afh"
463 if test $HAVE_FAAD = yes && test $HAVE_MP4V2 = yes; then
464 server_errlist_objs="$server_errlist_objs aac_afh aac_common"
466 server_objs="add_cmdline($server_cmdline_objs) $server_errlist_objs"
467 AC_SUBST(server_objs, add_dot_o($server_objs))
471 ############################################################# client
472 if test -n "$CRYPTOLIB"; then
474 executables="$executables client"
475 client_errlist_objs="
491 if test "$CRYPTOLIB" = openssl; then
492 client_errlist_objs="$client_errlist_objs crypt"
494 client_errlist_objs="$client_errlist_objs gcrypt"
496 if test $HAVE_READLINE = yes; then
497 client_errlist_objs="$client_errlist_objs interactive"
499 client_objs="$client_errlist_objs"
500 AC_SUBST(client_objs, add_dot_o($client_errlist_objs))
504 ############################################################# audiod
505 if test -n "$CRYPTOLIB"; then
507 executables="$executables audiod"
508 audiod_audio_formats="wma"
509 audiod_cmdline_objs="$audiod_cmdline_objs
517 audiod_errlist_objs="$audiod_errlist_objs
556 if test "$CRYPTOLIB" = openssl; then
557 audiod_errlist_objs="$audiod_errlist_objs crypt"
559 audiod_errlist_objs="$audiod_errlist_objs gcrypt"
561 if test "$have_core_audio" = "yes"; then
562 audiod_errlist_objs="$audiod_errlist_objs osx_write ipc"
563 audiod_cmdline_objs="$audiod_cmdline_objs osx_write"
565 NEED_VORBIS_OBJECTS && {
566 audiod_errlist_objs="$audiod_errlist_objs oggdec_filter"
567 audiod_audio_formats="$audiod_audio_formats ogg"
569 NEED_SPEEX_OBJECTS && {
570 audiod_errlist_objs="$audiod_errlist_objs spxdec_filter spx_common"
571 audiod_audio_formats="$audiod_audio_formats spx"
573 NEED_OPUS_OBJECTS && {
574 audiod_errlist_objs="$audiod_errlist_objs opusdec_filter opus_common"
575 audiod_audio_formats="$audiod_audio_formats opus"
577 NEED_FLAC_OBJECTS && {
578 audiod_errlist_objs="$audiod_errlist_objs flacdec_filter"
579 audiod_audio_formats="$audiod_audio_formats flac"
581 if test $HAVE_FAAD = yes; then
582 audiod_errlist_objs="$audiod_errlist_objs aacdec_filter aac_common"
583 audiod_audio_formats="$audiod_audio_formats aac"
585 if test $HAVE_MAD = yes; then
586 audiod_audio_formats="$audiod_audio_formats mp3"
587 audiod_cmdline_objs="$audiod_cmdline_objs mp3dec_filter"
588 audiod_errlist_objs="$audiod_errlist_objs mp3dec_filter"
590 if test $HAVE_OSS = yes; then
591 audiod_errlist_objs="$audiod_errlist_objs oss_write"
592 audiod_cmdline_objs="$audiod_cmdline_objs oss_write"
594 if test $HAVE_ALSA = yes; then
595 audiod_errlist_objs="$audiod_errlist_objs alsa_write"
596 audiod_cmdline_objs="$audiod_cmdline_objs alsa_write"
599 audiod_errlist_objs="$audiod_errlist_objs ao_write"
600 audiod_cmdline_objs="$audiod_cmdline_objs ao_write"
602 if test $HAVE_SAMPLERATE = yes; then
603 audiod_errlist_objs="$audiod_errlist_objs resample_filter check_wav"
604 audiod_cmdline_objs="$audiod_cmdline_objs resample_filter"
606 audiod_objs="add_cmdline($audiod_cmdline_objs) $audiod_errlist_objs"
607 AC_SUBST(audiod_objs, add_dot_o($audiod_objs))
609 enum="$(for i in $audiod_audio_formats; do printf "AUDIO_FORMAT_${i}, " | tr '[a-z]' '[A-Z]'; done)"
610 AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMATS_ENUM, $enum NUM_AUDIO_FORMATS,
611 enum of audio formats supported by audiod)
612 names="$(for i in $audiod_audio_formats; do printf \"$i\",' ' ; done)"
613 AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMAT_ARRAY, $names, array of audio formats supported by audiod)
617 ########################################################################### fade
618 if test $HAVE_OSS = yes -o $HAVE_ALSA = yes; then
620 executables="$executables fade"
621 fade_cmdline_objs="fade"
622 fade_errlist_objs="fade exec string fd version ggo"
623 if test $HAVE_OSS = yes; then
624 fade_errlist_objs="$fade_errlist_objs oss_mix"
625 mixers="${mixers}oss "
626 default_mixer="OSS_MIX"
628 if test $HAVE_ALSA = yes; then
629 fade_errlist_objs="$fade_errlist_objs alsa_mix"
630 mixers="${mixers}alsa "
631 default_mixer="ALSA_MIX"
633 fade_objs="add_cmdline($fade_cmdline_objs) $fade_errlist_objs"
634 AC_SUBST(fade_objs, add_dot_o($fade_objs))
637 printf "${i}_MIX, " | tr '[a-z]' '[A-Z]'
640 AC_DEFINE_UNQUOTED(MIXER_ENUM, $enum NUM_SUPPORTED_MIXERS,
641 enum of supported mixers)
642 AC_DEFINE_UNQUOTED(DEFAULT_MIXER, $default_mixer,
643 use this mixer if none was specified)
644 names="$(for i in $mixers; do printf \"$i\",' ' ; done)"
645 AC_DEFINE_UNQUOTED(MIXER_NAMES, $names, supported mixer names)
648 printf 'extern void '$i'_mix_init(struct mixer *); '
651 AC_DEFINE_UNQUOTED(DECLARE_MIXER_INITS, $inits,
652 init functions of the supported mixers)
653 array="$(for i in $mixers; do printf '{.init = '$i'_mix_init},'; done)"
654 AC_DEFINE_UNQUOTED(MIXER_ARRAY, $array, array of supported mixers)
657 AC_MSG_WARN([no mixer support])
659 ########################################################################### gui
660 if test $HAVE_CURSES = yes; then
662 executables="$executables gui"
663 gui_cmdline_objs="gui"
678 gui_objs="add_cmdline($gui_cmdline_objs) $gui_errlist_objs"
679 AC_SUBST(gui_objs, add_dot_o($gui_objs))
682 AC_MSG_WARN([no curses lib, cannot build para_gui])
684 ######################################################################## filter
694 filter_errlist_objs="
719 filter_cmdline_objs="
726 NEED_VORBIS_OBJECTS && {
727 filters="$filters oggdec"
728 filter_errlist_objs="$filter_errlist_objs oggdec_filter"
730 NEED_SPEEX_OBJECTS && {
731 filters="$filters spxdec"
732 filter_errlist_objs="$filter_errlist_objs spxdec_filter spx_common"
734 NEED_OPUS_OBJECTS && {
735 filters="$filters opusdec"
736 filter_errlist_objs="$filter_errlist_objs opusdec_filter opus_common"
738 NEED_FLAC_OBJECTS && {
739 filter_errlist_objs="$filter_errlist_objs flacdec_filter"
740 filters="$filters flacdec"
742 if test $HAVE_FAAD = yes; then
743 filter_errlist_objs="$filter_errlist_objs aacdec_filter aac_common"
744 filters="$filters aacdec"
746 if test $HAVE_MAD = yes; then
747 filter_cmdline_objs="$filter_cmdline_objs mp3dec_filter"
748 filter_errlist_objs="$filter_errlist_objs mp3dec_filter"
749 filters="$filters mp3dec"
751 if test $HAVE_SAMPLERATE = yes; then
752 filter_errlist_objs="$filter_errlist_objs resample_filter check_wav"
753 filter_cmdline_objs="$filter_cmdline_objs resample_filter"
754 filters="$filters resample"
756 filters="$(echo $filters)"
758 filter_objs="add_cmdline($filter_cmdline_objs) $filter_errlist_objs"
760 AC_SUBST(filter_objs, add_dot_o($filter_objs))
762 enum="$(for i in $filters; do printf "${i}_FILTER, " | tr '[a-z]' '[A-Z]'; done)"
763 AC_DEFINE_UNQUOTED(FILTER_ENUM, $enum NUM_SUPPORTED_FILTERS,
764 enum of supported filters)
765 inits="$(for i in $filters; do printf 'extern void '$i'_filter_init(struct filter *f); '; done)"
766 AC_DEFINE_UNQUOTED(DECLARE_FILTER_INITS, $inits, init functions of the supported filters)
767 array="$(for i in $filters; do printf '{.name = "'$i'", .init = '$i'_filter_init},'; done)"
768 AC_DEFINE_UNQUOTED(FILTER_ARRAY, $array, array of supported filters)
769 ########################################################################## recv
794 NEED_OGG_OBJECTS && recv_errlist_objs="$recv_errlist_objs ogg_afh_common"
795 NEED_VORBIS_OBJECTS && recv_errlist_objs="$recv_errlist_objs ogg_afh"
796 NEED_SPEEX_OBJECTS && recv_errlist_objs="$recv_errlist_objs spx_afh spx_common"
797 NEED_OPUS_OBJECTS && recv_errlist_objs="$recv_errlist_objs opus_afh opus_common"
798 NEED_FLAC_OBJECTS && recv_errlist_objs="$recv_errlist_objs flac_afh"
800 if test $HAVE_FAAD = yes -a $HAVE_MP4V2 = yes; then
801 recv_errlist_objs="$recv_errlist_objs aac_afh aac_common"
803 recv_objs="add_cmdline($recv_cmdline_objs) $recv_errlist_objs"
804 AC_SUBST(recv_objs, add_dot_o($recv_objs))
805 ########################################################################### afh
806 audio_format_handlers="mp3 wma"
807 afh_cmdline_objs="afh"
820 NEED_OGG_OBJECTS && afh_errlist_objs="$afh_errlist_objs ogg_afh_common"
821 NEED_VORBIS_OBJECTS && {
822 afh_errlist_objs="$afh_errlist_objs ogg_afh"
823 audio_format_handlers="$audio_format_handlers ogg"
825 NEED_SPEEX_OBJECTS && {
826 afh_errlist_objs="$afh_errlist_objs spx_afh spx_common"
827 audio_format_handlers="$audio_format_handlers spx"
829 NEED_OPUS_OBJECTS && {
830 afh_errlist_objs="$afh_errlist_objs opus_afh opus_common"
831 audio_format_handlers="$audio_format_handlers opus"
833 NEED_FLAC_OBJECTS && {
834 afh_errlist_objs="$afh_errlist_objs flac_afh"
835 audio_format_handlers="$audio_format_handlers flac"
837 if test $HAVE_FAAD = yes -a $HAVE_MP4V2 = yes; then
838 afh_errlist_objs="$afh_errlist_objs aac_afh aac_common"
839 audio_format_handlers="$audio_format_handlers aac"
842 afh_objs="add_cmdline($afh_cmdline_objs) $afh_errlist_objs"
844 AC_SUBST(afh_objs, add_dot_o($afh_objs))
845 ########################################################################## play
887 if test "$have_core_audio" = "yes"; then
888 play_errlist_objs="$play_errlist_objs osx_write ipc"
889 play_cmdline_objs="$play_cmdline_objs osx_write"
891 NEED_OGG_OBJECTS && play_errlist_objs="$play_errlist_objs ogg_afh_common"
892 NEED_VORBIS_OBJECTS && {
893 play_errlist_objs="$play_errlist_objs oggdec_filter ogg_afh"
895 NEED_SPEEX_OBJECTS && {
896 play_errlist_objs="$play_errlist_objs spxdec_filter spx_afh spx_common"
899 play_errlist_objs="$play_errlist_objs
904 NEED_FLAC_OBJECTS && {
905 play_errlist_objs="$play_errlist_objs flacdec_filter flac_afh"
907 if test $HAVE_FAAD = yes; then
908 play_errlist_objs="$play_errlist_objs aacdec_filter"
910 if test $HAVE_MP4V2 = yes; then
911 play_errlist_objs="$play_errlist_objs aac_afh"
913 if test $HAVE_MP4V2 = yes || test $HAVE_FAAD = yes; then
914 play_errlist_objs="$play_errlist_objs aac_common"
916 if test $HAVE_MAD = yes; then
917 play_cmdline_objs="$play_cmdline_objs mp3dec_filter"
918 play_errlist_objs="$play_errlist_objs mp3dec_filter"
920 if test $HAVE_OSS = yes; then
921 play_errlist_objs="$play_errlist_objs oss_write"
922 play_cmdline_objs="$play_cmdline_objs oss_write"
924 if test $HAVE_ALSA = yes; then
925 play_errlist_objs="$play_errlist_objs alsa_write"
926 play_cmdline_objs="$play_cmdline_objs alsa_write"
929 play_errlist_objs="$play_errlist_objs ao_write"
930 play_cmdline_objs="$play_cmdline_objs ao_write"
932 if test $HAVE_READLINE = yes; then
933 play_errlist_objs="$play_errlist_objs interactive"
935 if test $HAVE_SAMPLERATE = yes; then
936 play_errlist_objs="$play_errlist_objs resample_filter check_wav"
937 play_cmdline_objs="$play_cmdline_objs resample_filter"
940 play_objs="add_cmdline($play_cmdline_objs) $play_errlist_objs"
941 AC_SUBST(play_objs, add_dot_o($play_objs))
942 ######################################################################### write
962 default_writer="FILE_WRITE"
964 if test "$have_core_audio" = "yes"; then
965 write_errlist_objs="$write_errlist_objs osx_write ipc"
966 write_cmdline_objs="$write_cmdline_objs osx_write"
967 writers="$writers osx"
968 default_writer="OSX_WRITE"
971 write_errlist_objs="$write_errlist_objs ao_write"
972 write_cmdline_objs="$write_cmdline_objs ao_write"
973 writers="$writers ao"
974 default_writer="AO_WRITE"
976 if test $HAVE_OSS = yes; then
977 write_errlist_objs="$write_errlist_objs oss_write"
978 write_cmdline_objs="$write_cmdline_objs oss_write"
979 writers="$writers oss"
980 default_writer="OSS_WRITE"
982 if test $HAVE_ALSA = yes; then
983 write_errlist_objs="$write_errlist_objs alsa_write"
984 write_cmdline_objs="$write_cmdline_objs alsa_write"
985 writers="$writers alsa"
986 default_writer="ALSA_WRITE"
989 write_objs="add_cmdline($write_cmdline_objs) $write_errlist_objs"
990 AC_SUBST(write_objs, add_dot_o($write_objs))
991 enum="$(for i in $writers; do printf "${i}_WRITE, " | tr '[a-z]' '[A-Z]'; done)"
992 AC_DEFINE_UNQUOTED(WRITER_ENUM, $enum NUM_SUPPORTED_WRITERS,
993 enum of supported writers)
994 AC_DEFINE_UNQUOTED(DEFAULT_WRITER, $default_writer, use this writer if none was specified)
995 names="$(for i in $writers; do printf \"$i\",' ' ; done)"
996 AC_DEFINE_UNQUOTED(WRITER_NAMES, $names, supported writer names)
997 inits="$(for i in $writers; do printf 'extern void '$i'_write_init(struct writer *); '; done)"
998 AC_DEFINE_UNQUOTED(DECLARE_WRITER_INITS, $inits, init functions of the supported writers)
999 array="$(for i in $writers; do printf '{.init = '$i'_write_init},'; done)"
1000 AC_DEFINE_UNQUOTED(WRITER_ARRAY, $array, array of supported writers)
1001 ######################################################################## audioc
1002 audioc_errlist_objs="
1009 if test $HAVE_READLINE = yes; then
1010 audioc_errlist_objs="$audioc_errlist_objs
1017 audioc_objs="$audioc_errlist_objs"
1018 AC_SUBST(audioc_objs, add_dot_o($audioc_objs))
1019 ################################################################## status items
1021 status_items="basename status num_played mtime bitrate frequency file_size
1022 status_flags format score techinfo afs_mode
1023 attributes_txt decoder_flags audiod_status play_time attributes_bitmap
1024 offset seconds_total stream_start current_time audiod_uptime image_id
1025 lyrics_id duration directory lyrics_name image_name path hash channels
1026 last_played num_chunks chunk_time amplification artist title year album
1030 for i in $status_items; do
1031 result="$result SI_$(echo $i | tr 'a-z' 'A-Z'), "
1033 AC_DEFINE_UNQUOTED(STATUS_ITEM_ENUM, [$result],
1034 [enum of all status items])
1037 for i in $status_items; do
1038 result="$result \"$i\", "
1040 AC_DEFINE_UNQUOTED(STATUS_ITEM_ARRAY, [$result],
1041 [char * array of all status items])
1043 AC_DEFINE_UNQUOTED(AUDIO_FORMAT_HANDLERS, "$audio_format_handlers",
1044 [formats supported by para_server and para_afh])
1046 AC_SUBST(executables)
1050 paraslash configuration:
1051 ~~~~~~~~~~~~~~~~~~~~~~~~
1052 crypto lib: ${CRYPTOLIB:-[none]}
1053 unix socket credentials: $have_ucred
1054 readline (interactive CLIs): $HAVE_READLINE
1055 id3 version 2 support: $HAVE_ID3TAG
1059 audio format handlers: $audio_format_handlers
1060 filters: $(echo $filters)
1063 para_server: $build_server
1064 para_gui: $build_gui
1065 para_fade: $build_fade
1066 para_client: $build_client
1067 para_audiod: $build_audiod