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_errlist_objs="
451 if test "$CRYPTOLIB" = openssl; then
452 server_errlist_objs="$server_errlist_objs crypt"
454 server_errlist_objs="$server_errlist_objs gcrypt"
456 NEED_OGG_OBJECTS() && server_errlist_objs="$server_errlist_objs ogg_afh_common"
457 NEED_VORBIS_OBJECTS() && server_errlist_objs="$server_errlist_objs ogg_afh"
458 NEED_SPEEX_OBJECTS() && server_errlist_objs="$server_errlist_objs spx_afh spx_common"
459 NEED_OPUS_OBJECTS() && server_errlist_objs="$server_errlist_objs opus_afh opus_common"
460 NEED_FLAC_OBJECTS && server_errlist_objs="$server_errlist_objs flac_afh"
461 if test $HAVE_FAAD = yes && test $HAVE_MP4V2 = yes; then
462 server_errlist_objs="$server_errlist_objs aac_afh aac_common"
464 server_objs="$server_errlist_objs"
465 AC_SUBST(server_objs, add_dot_o($server_objs))
469 ############################################################# client
470 if test -n "$CRYPTOLIB"; then
472 executables="$executables client"
473 client_errlist_objs="
489 if test "$CRYPTOLIB" = openssl; then
490 client_errlist_objs="$client_errlist_objs crypt"
492 client_errlist_objs="$client_errlist_objs gcrypt"
494 if test $HAVE_READLINE = yes; then
495 client_errlist_objs="$client_errlist_objs interactive"
497 client_objs="$client_errlist_objs"
498 AC_SUBST(client_objs, add_dot_o($client_errlist_objs))
502 ############################################################# audiod
503 if test -n "$CRYPTOLIB"; then
505 executables="$executables audiod"
506 audiod_audio_formats="wma"
507 audiod_errlist_objs="$audiod_errlist_objs
545 if test "$CRYPTOLIB" = openssl; then
546 audiod_errlist_objs="$audiod_errlist_objs crypt"
548 audiod_errlist_objs="$audiod_errlist_objs gcrypt"
550 if test "$have_core_audio" = "yes"; then
551 audiod_errlist_objs="$audiod_errlist_objs osx_write ipc"
553 NEED_VORBIS_OBJECTS && {
554 audiod_errlist_objs="$audiod_errlist_objs oggdec_filter"
555 audiod_audio_formats="$audiod_audio_formats ogg"
557 NEED_SPEEX_OBJECTS && {
558 audiod_errlist_objs="$audiod_errlist_objs spxdec_filter spx_common"
559 audiod_audio_formats="$audiod_audio_formats spx"
561 NEED_OPUS_OBJECTS && {
562 audiod_errlist_objs="$audiod_errlist_objs opusdec_filter opus_common"
563 audiod_audio_formats="$audiod_audio_formats opus"
565 NEED_FLAC_OBJECTS && {
566 audiod_errlist_objs="$audiod_errlist_objs flacdec_filter"
567 audiod_audio_formats="$audiod_audio_formats flac"
569 if test $HAVE_FAAD = yes; then
570 audiod_errlist_objs="$audiod_errlist_objs aacdec_filter aac_common"
571 audiod_audio_formats="$audiod_audio_formats aac"
573 if test $HAVE_MAD = yes; then
574 audiod_audio_formats="$audiod_audio_formats mp3"
575 audiod_errlist_objs="$audiod_errlist_objs mp3dec_filter"
577 if test $HAVE_OSS = yes; then
578 audiod_errlist_objs="$audiod_errlist_objs oss_write"
580 if test $HAVE_ALSA = yes; then
581 audiod_errlist_objs="$audiod_errlist_objs alsa_write"
584 audiod_errlist_objs="$audiod_errlist_objs ao_write"
586 if test $HAVE_SAMPLERATE = yes; then
587 audiod_errlist_objs="$audiod_errlist_objs resample_filter check_wav"
589 audiod_objs="$audiod_errlist_objs"
590 AC_SUBST(audiod_objs, add_dot_o($audiod_objs))
592 enum="$(for i in $audiod_audio_formats; do printf "AUDIO_FORMAT_${i}, " | tr '[a-z]' '[A-Z]'; done)"
593 AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMATS_ENUM, $enum NUM_AUDIO_FORMATS,
594 enum of audio formats supported by audiod)
595 names="$(for i in $audiod_audio_formats; do printf \"$i\",' ' ; done)"
596 AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMAT_ARRAY, $names, array of audio formats supported by audiod)
600 ########################################################################### fade
601 if test $HAVE_OSS = yes -o $HAVE_ALSA = yes; then
603 executables="$executables fade"
604 fade_errlist_objs="fade exec string fd version"
605 if test $HAVE_OSS = yes; then
606 fade_errlist_objs="$fade_errlist_objs oss_mix"
607 mixers="${mixers}oss "
608 default_mixer="OSS_MIX"
610 if test $HAVE_ALSA = yes; then
611 fade_errlist_objs="$fade_errlist_objs alsa_mix"
612 mixers="${mixers}alsa "
613 default_mixer="ALSA_MIX"
615 fade_objs="$fade_errlist_objs"
616 AC_SUBST(fade_objs, add_dot_o($fade_objs))
619 printf "${i}_MIX, " | tr '[a-z]' '[A-Z]'
622 AC_DEFINE_UNQUOTED(MIXER_ENUM, $enum NUM_SUPPORTED_MIXERS,
623 enum of supported mixers)
624 AC_DEFINE_UNQUOTED(DEFAULT_MIXER, $default_mixer,
625 use this mixer if none was specified)
626 names="$(for i in $mixers; do printf \"$i\",' ' ; done)"
627 AC_DEFINE_UNQUOTED(MIXER_NAMES, $names, supported mixer names)
630 printf 'extern void '$i'_mix_init(struct mixer *); '
633 AC_DEFINE_UNQUOTED(DECLARE_MIXER_INITS, $inits,
634 init functions of the supported mixers)
635 array="$(for i in $mixers; do printf '{.init = '$i'_mix_init},'; done)"
636 AC_DEFINE_UNQUOTED(MIXER_ARRAY, $array, array of supported mixers)
639 AC_MSG_WARN([no mixer support])
641 ########################################################################### gui
642 if test $HAVE_CURSES = yes; then
644 executables="$executables gui"
658 gui_objs="$gui_errlist_objs"
659 AC_SUBST(gui_objs, add_dot_o($gui_objs))
662 AC_MSG_WARN([no curses lib, cannot build para_gui])
664 ######################################################################## filter
665 filter_errlist_objs="
689 NEED_VORBIS_OBJECTS && filter_errlist_objs="$filter_errlist_objs oggdec_filter"
690 NEED_SPEEX_OBJECTS && filter_errlist_objs="$filter_errlist_objs spxdec_filter spx_common"
691 NEED_OPUS_OBJECTS && filter_errlist_objs="$filter_errlist_objs opusdec_filter opus_common"
692 NEED_FLAC_OBJECTS && filter_errlist_objs="$filter_errlist_objs flacdec_filter"
693 if test $HAVE_FAAD = yes; then
694 filter_errlist_objs="$filter_errlist_objs aacdec_filter aac_common"
696 if test $HAVE_MAD = yes; then
697 filter_errlist_objs="$filter_errlist_objs mp3dec_filter"
699 if test $HAVE_SAMPLERATE = yes; then
700 filter_errlist_objs="$filter_errlist_objs resample_filter check_wav"
702 filter_objs="$filter_errlist_objs"
704 AC_SUBST(filter_objs, add_dot_o($filter_objs))
705 ########################################################################## recv
726 NEED_OGG_OBJECTS && recv_errlist_objs="$recv_errlist_objs ogg_afh_common"
727 NEED_VORBIS_OBJECTS && recv_errlist_objs="$recv_errlist_objs ogg_afh"
728 NEED_SPEEX_OBJECTS && recv_errlist_objs="$recv_errlist_objs spx_afh spx_common"
729 NEED_OPUS_OBJECTS && recv_errlist_objs="$recv_errlist_objs opus_afh opus_common"
730 NEED_FLAC_OBJECTS && recv_errlist_objs="$recv_errlist_objs flac_afh"
732 if test $HAVE_FAAD = yes -a $HAVE_MP4V2 = yes; then
733 recv_errlist_objs="$recv_errlist_objs aac_afh aac_common"
735 recv_objs="$recv_errlist_objs"
736 AC_SUBST(recv_objs, add_dot_o($recv_objs))
737 ########################################################################### afh
738 audio_format_handlers="mp3 wma"
750 NEED_OGG_OBJECTS && afh_errlist_objs="$afh_errlist_objs ogg_afh_common"
751 NEED_VORBIS_OBJECTS && {
752 afh_errlist_objs="$afh_errlist_objs ogg_afh"
753 audio_format_handlers="$audio_format_handlers ogg"
755 NEED_SPEEX_OBJECTS && {
756 afh_errlist_objs="$afh_errlist_objs spx_afh spx_common"
757 audio_format_handlers="$audio_format_handlers spx"
759 NEED_OPUS_OBJECTS && {
760 afh_errlist_objs="$afh_errlist_objs opus_afh opus_common"
761 audio_format_handlers="$audio_format_handlers opus"
763 NEED_FLAC_OBJECTS && {
764 afh_errlist_objs="$afh_errlist_objs flac_afh"
765 audio_format_handlers="$audio_format_handlers flac"
767 if test $HAVE_FAAD = yes -a $HAVE_MP4V2 = yes; then
768 afh_errlist_objs="$afh_errlist_objs aac_afh aac_common"
769 audio_format_handlers="$audio_format_handlers aac"
772 afh_objs="$afh_errlist_objs"
774 AC_SUBST(afh_objs, add_dot_o($afh_objs))
775 ########################################################################## play
808 if test "$have_core_audio" = "yes"; then
809 play_errlist_objs="$play_errlist_objs osx_write ipc"
811 NEED_OGG_OBJECTS && play_errlist_objs="$play_errlist_objs ogg_afh_common"
812 NEED_VORBIS_OBJECTS && {
813 play_errlist_objs="$play_errlist_objs oggdec_filter ogg_afh"
815 NEED_SPEEX_OBJECTS && {
816 play_errlist_objs="$play_errlist_objs spxdec_filter spx_afh spx_common"
819 play_errlist_objs="$play_errlist_objs
824 NEED_FLAC_OBJECTS && {
825 play_errlist_objs="$play_errlist_objs flacdec_filter flac_afh"
827 if test $HAVE_FAAD = yes; then
828 play_errlist_objs="$play_errlist_objs aacdec_filter"
830 if test $HAVE_MP4V2 = yes; then
831 play_errlist_objs="$play_errlist_objs aac_afh"
833 if test $HAVE_MP4V2 = yes || test $HAVE_FAAD = yes; then
834 play_errlist_objs="$play_errlist_objs aac_common"
836 if test $HAVE_MAD = yes; then
837 play_errlist_objs="$play_errlist_objs mp3dec_filter"
839 if test $HAVE_OSS = yes; then
840 play_errlist_objs="$play_errlist_objs oss_write"
842 if test $HAVE_ALSA = yes; then
843 play_errlist_objs="$play_errlist_objs alsa_write"
846 play_errlist_objs="$play_errlist_objs ao_write"
848 if test $HAVE_READLINE = yes; then
849 play_errlist_objs="$play_errlist_objs interactive"
851 if test $HAVE_SAMPLERATE = yes; then
852 play_errlist_objs="$play_errlist_objs resample_filter check_wav"
855 play_objs="$play_errlist_objs"
856 AC_SUBST(play_objs, add_dot_o($play_objs))
857 ######################################################################### write
872 if test "$have_core_audio" = "yes"; then
873 write_errlist_objs="$write_errlist_objs osx_write ipc"
876 write_errlist_objs="$write_errlist_objs ao_write"
878 if test $HAVE_OSS = yes; then
879 write_errlist_objs="$write_errlist_objs oss_write"
881 if test $HAVE_ALSA = yes; then
882 write_errlist_objs="$write_errlist_objs alsa_write"
884 write_objs="$write_errlist_objs"
885 AC_SUBST(write_objs, add_dot_o($write_objs))
886 ######################################################################## audioc
887 audioc_errlist_objs="
894 if test $HAVE_READLINE = yes; then
895 audioc_errlist_objs="$audioc_errlist_objs
902 audioc_objs="$audioc_errlist_objs"
903 AC_SUBST(audioc_objs, add_dot_o($audioc_objs))
904 ################################################################## status items
906 status_items="basename status num_played mtime bitrate frequency file_size
907 status_flags format score techinfo afs_mode
908 attributes_txt decoder_flags audiod_status play_time attributes_bitmap
909 offset seconds_total stream_start current_time audiod_uptime image_id
910 lyrics_id duration directory lyrics_name image_name path hash channels
911 last_played num_chunks chunk_time amplification artist title year album
915 for i in $status_items; do
916 result="$result SI_$(echo $i | tr 'a-z' 'A-Z'), "
918 AC_DEFINE_UNQUOTED(STATUS_ITEM_ENUM, [$result],
919 [enum of all status items])
922 for i in $status_items; do
923 result="$result \"$i\", "
925 AC_DEFINE_UNQUOTED(STATUS_ITEM_ARRAY, [$result],
926 [char * array of all status items])
928 AC_DEFINE_UNQUOTED(AUDIO_FORMAT_HANDLERS, "$audio_format_handlers",
929 [formats supported by para_server and para_afh])
931 AC_SUBST(executables)
935 paraslash configuration:
936 ~~~~~~~~~~~~~~~~~~~~~~~~
937 crypto lib: ${CRYPTOLIB:-[none]}
938 unix socket credentials: $have_ucred
939 readline (interactive CLIs): $HAVE_READLINE
940 id3 version 2 support: $HAVE_ID3TAG
943 audio format handlers: $audio_format_handlers
945 para_server: $build_server
947 para_fade: $build_fade
948 para_client: $build_client
949 para_audiod: $build_audiod