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([LIB_ARG_WITH], [
10 AC_ARG_WITH($1-headers, [AS_HELP_STRING(--with-$1-headers=dir,
11 [look for $1 headers in dir])])
12 AC_ARG_WITH($1-libs, [AS_HELP_STRING(--with-$1-libs=dir,
13 [look for $1 libraries in dir])])
14 if test -n "$with_$1_headers"; then
15 $1_cppflags="-I$with_$1_headers"
16 CPPFLAGS="$CPPFLAGS $$1_cppflags"
18 if test -n "$with_$1_libs"; then
19 $1_ldflags="-L$with_$1_libs $2"
23 LDFLAGS="$LDFLAGS $$1_ldflags"
26 AC_DEFUN([STASH_FLAGS], [
27 OLD_CPPFLAGS="$CPPFLAGS"
28 OLD_LDFLAGS="$LDFLAGS"
32 AC_DEFUN([UNSTASH_FLAGS], [
33 CPPFLAGS="$OLD_CPPFLAGS"
34 LDFLAGS="$OLD_LDFLAGS"
37 AC_DEFUN([LIB_SUBST_FLAGS], [
38 if test "$HAVE_[]m4_toupper([$1])" = 'yes'; then
39 AC_DEFINE(HAVE_[]m4_toupper([$1]), 1,
40 define to 1 to turn on $1 support)
45 AC_SUBST(HAVE_[]m4_toupper([$1]))
49 AC_DEFUN([REQUIRE_EXECUTABLE], [
50 AC_PATH_PROG(m4_toupper([$1]), [$1])
51 test -z "$m4_toupper([$1])" && AC_MSG_ERROR(
52 [$1 is required to build this package])
55 AC_USE_SYSTEM_EXTENSIONS
60 REQUIRE_EXECUTABLE([bison])
61 REQUIRE_EXECUTABLE([flex])
62 REQUIRE_EXECUTABLE([m4])
64 executables="recv filter audioc write afh play"
65 ########################################################################### osl
67 LIB_ARG_WITH([osl], [-losl])
69 AC_CHECK_HEADER(osl.h, [], [HAVE_OSL=no])
70 AC_CHECK_LIB([osl], [osl_open_table], [], [HAVE_OSL=no])
73 ######################################################################## lopsub
75 AC_PATH_PROG([LOPSUBGEN], [lopsubgen])
76 test -z "$LOPSUBGEN" && HAVE_LOPSUB=no
78 LIB_ARG_WITH([lopsub], [-llopsub])
79 AC_CHECK_HEADER(lopsub.h, [], [HAVE_LOPSUB=no])
80 AC_CHECK_LIB([lopsub], [lls_merge], [], [HAVE_LOPSUB=no])
81 if test $HAVE_LOPSUB = no; then AC_MSG_ERROR([
82 The lopsub library is required to build this software, but
83 the above checks indicate it is not installed on your system.
84 Run the following command to download a copy.
85 git clone git://git.tuebingen.mpg.de/lopsub.git
86 Install the library, then run this configure script again.
89 LIB_SUBST_FLAGS([lopsub])
91 ######################################################################## openssl
94 LIB_ARG_WITH([openssl], [-lssl -lcrypto])
95 AC_CHECK_HEADER(openssl/ssl.h, [], [HAVE_OPENSSL=no])
96 AC_CHECK_LIB([crypto], [RAND_bytes], [], [HAVE_OPENSSL=no])
97 LIB_SUBST_FLAGS(openssl)
98 if test $HAVE_OPENSSL = yes; then
100 AC_CHECK_DECL([RSA_set0_key], [], [], [#include <openssl/rsa.h>])
101 AC_CHECK_LIB([crypto], [RSA_set0_key], [], [])
102 if test "$ac_cv_have_decl_RSA_set0_key" != "$ac_cv_lib_crypto_RSA_set0_key"; then
103 AC_MSG_ERROR([openssl header/library mismatch])
105 if test "$ac_cv_have_decl_RSA_set0_key" = yes; then
106 AC_DEFINE([HAVE_RSA_SET0_KEY], [1], [openssl >= 1.1])
109 Old openssl library detected. Support for openssl-1.0 and earlier
110 will be removed in the next major paraslash release. Please upgrade
111 your openssl installation.])
113 HAVE_CRYPTO_CLEANUP_ALL_EX_DATA=yes
114 AC_CHECK_DECL([CRYPTO_cleanup_all_ex_data], [],
115 [HAVE_CRYPTO_CLEANUP_ALL_EX_DATA=no],
116 [#include <openssl/rsa.h>])
117 AC_CHECK_LIB([crypto], [CRYPTO_cleanup_all_ex_data], [],
118 [HAVE_CRYPTO_CLEANUP_ALL_EX_DATA=no])
119 test $HAVE_CRYPTO_CLEANUP_ALL_EX_DATA = yes &&
120 AC_DEFINE([HAVE_CRYPTO_CLEANUP_ALL_EX_DATA], [1],
121 [not available on FreeBSD 12])
122 HAVE_OPENSSL_THREAD_STOP=yes
123 AC_CHECK_DECL([OPENSSL_thread_stop], [],
124 [HAVE_OPENSSL_THREAD_STOP=no],
125 [#include <openssl/crypto.h>])
126 AC_CHECK_LIB([crypto], [OPENSSL_thread_stop], [],
127 [HAVE_OPENSSL_THREAD_STOP=no])
128 test $HAVE_OPENSSL_THREAD_STOP = yes &&
129 AC_DEFINE([HAVE_OPENSSL_THREAD_STOP], [1],
130 [not available on openssl-1.0])
133 ######################################################################### gcrypt
136 LIB_ARG_WITH([gcrypt], [-lgcrypt])
137 AC_CHECK_HEADER(gcrypt.h, [], [HAVE_GCRYPT=no])
138 AC_CHECK_LIB([gcrypt], [gcry_randomize], [], [HAVE_GCRYPT=no])
139 LIB_SUBST_FLAGS(gcrypt)
141 ######################################################################### crypto
142 AC_ARG_ENABLE(cryptolib, [AS_HELP_STRING(--enable-cryptolib=lib, [
143 Force using crypto library "lib". This package requires either
144 openssl or libgcrypt being installed. Possible values for "lib"
145 are thus "openssl" and "gcrypt". If this option is not given,
146 openssl is tried first. If openssl was not found, gcrypt is
149 CRYPTOLIB="$enable_cryptolib"
150 case "$enable_cryptolib" in
152 test $HAVE_OPENSSL = no && AC_MSG_ERROR(openssl not found)
153 crypto_ldflags="$openssl_ldflags"
156 test $HAVE_GCRYPT = no && AC_MSG_ERROR(gcrypt not found)
157 crypto_ldflags="$gcrypt_ldflags"
161 if test $HAVE_GCRYPT = yes; then
163 crypto_ldflags="$gcrypt_ldflags"
165 if test $HAVE_OPENSSL = yes; then
167 crypto_ldflags="$openssl_ldflags"
171 AC_MSG_ERROR([invalid value "$enable_cryptolib" for --enable-cryptolib])
174 AC_SUBST(crypto_ldflags)
175 ########################################################################## iconv
178 AC_SEARCH_LIBS([libiconv_open], [iconv],
179 [iconv_ldflags="$LIBS"],
182 AC_SUBST(iconv_ldflags)
183 AC_MSG_CHECKING([whether iconv needs const char ** cast])
188 size_t iconv(iconv_t cd, const char **inbuf,
189 size_t *inbytesleft, char **outbuf,
190 size_t *outbytesleft);
193 [cast='(const char **)'; msg=yes],
196 AC_DEFINE_UNQUOTED(ICONV_CAST, $cast, [cast for second arg to iconv()])
199 ########################################################################### ucred
200 AC_CHECK_TYPE([struct ucred], [
201 AC_DEFINE(HAVE_UCRED, 1, define to 1 you have struct ucred)
203 #include <sys/types.h>
204 #include <sys/socket.h>
206 ################################################################### FNM_EXTMATCH
207 AC_MSG_CHECKING(for extended wildcard pattern matching)
208 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
211 unsigned n = FNM_EXTMATCH;
212 ]])], [have_fnm_extmatch=yes], [have_fnm_extmatch=no])
213 AC_MSG_RESULT($have_fnm_extmatch)
214 if test $have_fnm_extmatch = yes; then
215 AC_DEFINE(HAVE_FNM_EXTMATCH, 1, define to 1 if FNM_EXTMATCH is defined)
217 ########################################################################### curses
219 LIB_ARG_WITH([curses], [])
221 AC_CHECK_HEADER(curses.h, [], [HAVE_CURSES=no])
222 AC_SEARCH_LIBS([initscr], [ncursesw curses], [], [HAVE_CURSES=no])
223 curses_ldflags="$curses_ldflags $LIBS"
224 LIB_SUBST_FLAGS(curses)
226 ########################################################################### ip_mreqn
227 AC_CHECK_TYPE([struct ip_mreqn], [
228 AC_DEFINE(HAVE_IP_MREQN, 1, define to 1 if you have struct ip_mreqn)
233 ########################################################################### ogg
235 LIB_ARG_WITH([ogg], [-logg])
237 AC_CHECK_HEADERS([ogg/ogg.h], [], [HAVE_OGG=no])
238 AC_CHECK_LIB([ogg], [ogg_stream_init], [], [HAVE_OGG=no])
239 AC_CHECK_LIB([ogg], [ogg_stream_flush_fill], [
240 AC_DEFINE(HAVE_OGG_STREAM_FLUSH_FILL, 1, [libogg >= 1.3.0])])
243 ######################################################################### vorbis
245 LIB_ARG_WITH([vorbis], [-lvorbis -lvorbisfile])
247 AC_CHECK_HEADERS([vorbis/codec.h], [], [HAVE_VORBIS=no])
248 AC_CHECK_LIB([vorbis], [vorbis_info_init], [], [HAVE_VORBIS=no])
249 LIB_SUBST_FLAGS(vorbis)
251 ######################################################################### speex
253 LIB_ARG_WITH([speex], [-lspeex])
255 AC_CHECK_HEADERS([speex/speex.h], [], [HAVE_SPEEX=no])
256 AC_CHECK_LIB([speex], [speex_decoder_init], [], [HAVE_SPEEX=no])
257 LIB_SUBST_FLAGS(speex)
259 ######################################################################### opus
261 LIB_ARG_WITH([opus], [-lopus])
263 AC_CHECK_HEADERS([opus/opus.h], [], [HAVE_OPUS=no])
264 AC_CHECK_LIB([opus], [opus_multistream_decode], [], [HAVE_OPUS=no])
265 LIB_SUBST_FLAGS(opus)
267 ########################################################################### flac
269 LIB_ARG_WITH([flac], [-lFLAC -lm])
271 AC_CHECK_HEADER(FLAC/stream_decoder.h, [], HAVE_FLAC=no)
272 AC_CHECK_LIB([FLAC], [FLAC__stream_decoder_init_file], [], HAVE_FLAC=no)
273 LIB_SUBST_FLAGS(flac)
276 # some helpers for the ogg container format
277 AS_IF([test "$HAVE_OGG" = 'yes' -a \( \
278 "$HAVE_VORBIS" = 'yes' \
279 -o "$HAVE_SPEEX" = 'yes' \
280 -o "$HAVE_OPUS" = 'yes' \
281 -o "$HAVE_FLAC" = 'yes' \
282 \)], [NEED_OGG_OBJECTS=yes], [NEED_OGG_OBJECTS=no])
283 AS_IF([test "$HAVE_OGG" = 'yes' -a "$HAVE_VORBIS" = 'yes'],
284 [NEED_VORBIS_OBJECTS=yes], [NEED_VORBIS_OBJECTS=no])
285 AS_IF([test "$HAVE_OGG" = 'yes' -a "$HAVE_SPEEX" = 'yes'],
286 [NEED_SPEEX_OBJECTS=yes], [NEED_SPEEX_OBJECTS=no])
287 AS_IF([test "$HAVE_OGG" = 'yes' -a "$HAVE_OPUS" = 'yes'],
288 [NEED_OPUS_OBJECTS=yes], [NEED_OPUS_OBJECTS=no])
289 AS_IF([test "$HAVE_OGG" = 'yes' -a "$HAVE_FLAC" = 'yes'],
290 [NEED_FLAC_OBJECTS=yes], [NEED_FLAC_OBJECTS=no])
291 ########################################################################### faad
293 LIB_ARG_WITH([faad], [-lfaad])
295 AC_CHECK_HEADER(neaacdec.h, [], HAVE_FAAD=no)
296 AC_CHECK_LIB([faad], [NeAACDecOpen], [], HAVE_FAAD=no)
297 LIB_SUBST_FLAGS(faad)
299 ########################################################################### mad
301 LIB_ARG_WITH([mad], [-lmad])
303 AC_CHECK_HEADER(mad.h, [], HAVE_MAD=no)
304 AC_CHECK_LIB([mad], [mad_stream_init], [], HAVE_MAD=no)
307 ###################################################################### libid3tag
309 LIB_ARG_WITH([id3tag], [-lid3tag -lz])
311 AC_CHECK_HEADER(id3tag.h, [], HAVE_ID3TAG=no)
312 AC_CHECK_LIB([id3tag], [id3_file_fdopen], [], HAVE_ID3TAG=no)
313 LIB_SUBST_FLAGS(id3tag)
315 ########################################################################### oss
317 LIB_ARG_WITH([oss], [])
318 AC_CHECK_HEADER(sys/soundcard.h, [HAVE_OSS=yes], [HAVE_OSS=no])
319 AC_CHECK_LIB(ossaudio, _oss_ioctl, [oss_ldflags="$oss_ldflags -lossaudio"], [])
322 ########################################################################### alsa
324 LIB_ARG_WITH([alsa], [-lasound])
326 AC_CHECK_HEADER(alsa/asoundlib.h, [], HAVE_ALSA=no)
327 AC_CHECK_LIB([asound], [snd_pcm_open], [], HAVE_ALSA=no)
328 LIB_SUBST_FLAGS(alsa)
330 ######################################################################### pthread
332 LIB_ARG_WITH([pthread], [-lpthread])
334 AC_CHECK_HEADER(pthread.h, [], HAVE_PTHREAD=no)
335 AC_CHECK_LIB([pthread], [pthread_create], [], HAVE_PTHREAD=no)
336 LIB_SUBST_FLAGS(pthread)
338 ########################################################################### libao
340 LIB_ARG_WITH([ao], [-lao])
342 AC_CHECK_HEADER(ao/ao.h, [], HAVE_AO=no)
343 AC_CHECK_LIB([ao], [ao_initialize], [], HAVE_AO=no)
346 AC_DEFUN([NEED_AO_OBJECTS], [{ test $HAVE_AO = yes -a $HAVE_PTHREAD = yes; }])
347 ######################################################################## readline
349 AC_SEARCH_LIBS([tgetent], [tinfo curses terminfo termcap])
350 LIB_ARG_WITH([readline], [-lreadline $LIBS])
352 AC_CHECK_HEADER([readline/readline.h], [], [HAVE_READLINE=no])
353 AC_CHECK_LIB([readline], [rl_free_keymap], [], HAVE_READLINE=no)
356 [AC_DEFINE(RL_FREE_KEYMAP_DECLARED, 1, readline >= 6.3)],
360 #include <readline/readline.h>
363 LIB_SUBST_FLAGS(readline)
365 ############################################################# libsamplerate
367 LIB_ARG_WITH([samplerate], [-lsamplerate])
369 AC_CHECK_HEADER(samplerate.h, [], HAVE_SAMPLERATE=no)
370 AC_CHECK_LIB([samplerate], [src_process], [], HAVE_SAMPLERATE=no)
371 LIB_SUBST_FLAGS(samplerate)
373 ######################################################################### ubsan
374 AC_ARG_ENABLE([ubsan], [AS_HELP_STRING(--enable-ubsan,
375 [Detect and report undefined behaviour.])],
376 [ENABLE_UBSAN=yes], [ENABLE_UBSAN=no])
377 AC_SUBST(ENABLE_UBSAN)
378 ######################################################################### server
379 if test -n "$CRYPTOLIB" && test $HAVE_OSL = yes && test -n "$BISON" && \
380 test -n "$FLEX"; then
382 executables="$executables server upgrade_db"
423 if test "$CRYPTOLIB" = openssl; then
424 server_objs="$server_objs openssl"
426 server_objs="$server_objs gcrypt"
428 AS_IF([test $NEED_OGG_OBJECTS = yes],
429 [server_objs="$server_objs ogg_afh_common"])
430 AS_IF([test $NEED_VORBIS_OBJECTS = yes],
431 [server_objs="$server_objs ogg_afh"])
432 AS_IF([test $NEED_SPEEX_OBJECTS = yes],
433 [server_objs="$server_objs spx_afh spx_common"])
434 AS_IF([test $NEED_OPUS_OBJECTS = yes],
435 [server_objs="$server_objs opus_afh opus_common"])
436 AS_IF([test $NEED_FLAC_OBJECTS = yes],
437 [server_objs="$server_objs flac_afh"])
438 if test $HAVE_FAAD = yes; then
439 server_objs="$server_objs aac_afh mp4"
441 AC_SUBST(server_objs, add_dot_o($server_objs))
445 ############################################################# upgrade_db
455 AC_SUBST(upgrade_db_objs, add_dot_o($upgrade_db_objs))
456 ############################################################# client
457 if test -n "$CRYPTOLIB"; then
459 executables="$executables client"
477 if test "$CRYPTOLIB" = openssl; then
478 client_objs="$client_objs openssl"
480 client_objs="$client_objs gcrypt"
482 if test $HAVE_READLINE = yes; then
483 client_objs="$client_objs interactive"
485 AC_SUBST(client_objs, add_dot_o($client_objs))
489 ############################################################# audiod
490 if test -n "$CRYPTOLIB"; then
492 executables="$executables audiod"
493 audiod_audio_formats="wma"
494 audiod_objs="$audiod_objs
533 if test "$CRYPTOLIB" = openssl; then
534 audiod_objs="$audiod_objs openssl"
536 audiod_objs="$audiod_objs gcrypt"
538 AS_IF([test $NEED_VORBIS_OBJECTS = yes], [
539 audiod_objs="$audiod_objs oggdec_filter"
540 audiod_audio_formats="$audiod_audio_formats ogg"
542 AS_IF([test $NEED_SPEEX_OBJECTS = yes], [
543 audiod_objs="$audiod_objs spxdec_filter spx_common"
544 audiod_audio_formats="$audiod_audio_formats spx"
546 AS_IF([test $NEED_OPUS_OBJECTS = yes], [
547 audiod_objs="$audiod_objs opusdec_filter opus_common"
548 audiod_audio_formats="$audiod_audio_formats opus"
550 AS_IF([test $NEED_FLAC_OBJECTS = yes], [
551 audiod_objs="$audiod_objs flacdec_filter"
552 audiod_audio_formats="$audiod_audio_formats flac"
554 if test $HAVE_FAAD = yes; then
555 audiod_objs="$audiod_objs aacdec_filter"
556 audiod_audio_formats="$audiod_audio_formats aac"
558 if test $HAVE_MAD = yes; then
559 audiod_audio_formats="$audiod_audio_formats mp3"
560 audiod_objs="$audiod_objs mp3dec_filter"
562 if test $HAVE_OSS = yes; then
563 audiod_objs="$audiod_objs oss_write"
565 if test $HAVE_ALSA = yes; then
566 audiod_objs="$audiod_objs alsa_write"
569 audiod_objs="$audiod_objs ao_write"
571 if test $HAVE_SAMPLERATE = yes; then
572 audiod_objs="$audiod_objs resample_filter check_wav"
574 AC_SUBST(audiod_objs, add_dot_o($audiod_objs))
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 ########################################################################### mixer
582 if test $HAVE_OSS = yes -o $HAVE_ALSA = yes; then
584 executables="$executables mixer"
585 mixer_objs="mixer exec string fd time lsu version"
586 if test $HAVE_OSS = yes; then
587 mixer_objs="$mixer_objs oss_mix"
589 if test $HAVE_ALSA = yes; then
590 mixer_objs="$mixer_objs alsa_mix"
592 AC_SUBST(mixer_objs, add_dot_o($mixer_objs))
595 AC_MSG_WARN([no mixer support])
597 ########################################################################### gui
598 if test $HAVE_CURSES = yes; then
600 executables="$executables gui"
615 AC_SUBST(gui_objs, add_dot_o($gui_objs))
618 AC_MSG_WARN([no curses lib, cannot build para_gui])
620 ######################################################################## filter
646 AS_IF([test $NEED_VORBIS_OBJECTS = yes],
647 [filter_objs="$filter_objs oggdec_filter"])
648 AS_IF([test $NEED_SPEEX_OBJECTS = yes],
649 [filter_objs="$filter_objs spxdec_filter spx_common"])
650 AS_IF([test $NEED_OPUS_OBJECTS = yes],
651 [filter_objs="$filter_objs opusdec_filter opus_common"])
652 AS_IF([test $NEED_FLAC_OBJECTS = yes],
653 [filter_objs="$filter_objs flacdec_filter"])
654 if test $HAVE_FAAD = yes; then
655 filter_objs="$filter_objs aacdec_filter"
657 if test $HAVE_MAD = yes; then
658 filter_objs="$filter_objs mp3dec_filter"
660 if test $HAVE_SAMPLERATE = yes; then
661 filter_objs="$filter_objs resample_filter check_wav"
663 AC_SUBST(filter_objs, add_dot_o($filter_objs))
664 ########################################################################## recv
685 AS_IF([test $NEED_OGG_OBJECTS = yes], [recv_objs="$recv_objs ogg_afh_common"])
686 AS_IF([test $NEED_VORBIS_OBJECTS = yes], [recv_objs="$recv_objs ogg_afh"])
687 AS_IF([test $NEED_SPEEX_OBJECTS = yes],
688 [recv_objs="$recv_objs spx_afh spx_common"])
689 AS_IF([test $NEED_OPUS_OBJECTS = yes],
690 [recv_objs="$recv_objs opus_afh opus_common"])
691 AS_IF([test $NEED_FLAC_OBJECTS = yes], [recv_objs="$recv_objs flac_afh"])
693 if test $HAVE_FAAD = yes; then
694 recv_objs="$recv_objs aac_afh mp4"
696 AC_SUBST(recv_objs, add_dot_o($recv_objs))
697 ########################################################################### afh
698 audio_format_handlers="mp3 wma"
710 AS_IF([test $NEED_OGG_OBJECTS = yes], [afh_objs="$afh_objs ogg_afh_common"])
711 AS_IF([test $NEED_VORBIS_OBJECTS = yes], [
712 afh_objs="$afh_objs ogg_afh"
713 audio_format_handlers="$audio_format_handlers ogg"
715 AS_IF([test $NEED_SPEEX_OBJECTS = yes], [
716 afh_objs="$afh_objs spx_afh spx_common"
717 audio_format_handlers="$audio_format_handlers spx"
719 AS_IF([test $NEED_OPUS_OBJECTS = yes], [
720 afh_objs="$afh_objs opus_afh opus_common"
721 audio_format_handlers="$audio_format_handlers opus"
723 AS_IF([test $NEED_FLAC_OBJECTS = yes], [
724 afh_objs="$afh_objs flac_afh"
725 audio_format_handlers="$audio_format_handlers flac"
727 if test $HAVE_FAAD = yes; then
728 afh_objs="$afh_objs aac_afh mp4"
729 audio_format_handlers="$audio_format_handlers aac"
731 AC_SUBST(afh_objs, add_dot_o($afh_objs))
732 ########################################################################## play
766 AS_IF([test $NEED_OGG_OBJECTS = yes], [play_objs="$play_objs ogg_afh_common"])
767 AS_IF([test $NEED_VORBIS_OBJECTS = yes],
768 [play_objs="$play_objs oggdec_filter ogg_afh"])
769 AS_IF([test $NEED_SPEEX_OBJECTS = yes],
770 [play_objs="$play_objs spxdec_filter spx_afh spx_common"])
771 AS_IF([test $NEED_OPUS_OBJECTS = yes],
772 [play_objs="$play_objs opusdec_filter opus_afh opus_common"])
773 AS_IF([test $NEED_FLAC_OBJECTS = yes],
774 [play_objs="$play_objs flacdec_filter flac_afh"])
775 if test $HAVE_FAAD = yes; then
776 play_objs="$play_objs aac_afh aacdec_filter mp4"
778 if test $HAVE_MAD = yes; then
779 play_objs="$play_objs mp3dec_filter"
781 if test $HAVE_OSS = yes; then
782 play_objs="$play_objs oss_write"
784 if test $HAVE_ALSA = yes; then
785 play_objs="$play_objs alsa_write"
788 play_objs="$play_objs ao_write"
790 if test $HAVE_READLINE = yes; then
791 play_objs="$play_objs interactive"
793 if test $HAVE_SAMPLERATE = yes; then
794 play_objs="$play_objs resample_filter check_wav"
796 AC_SUBST(play_objs, add_dot_o($play_objs))
797 ######################################################################### write
813 write_objs="$write_objs ao_write"
815 if test $HAVE_OSS = yes; then
816 write_objs="$write_objs oss_write"
818 if test $HAVE_ALSA = yes; then
819 write_objs="$write_objs alsa_write"
821 AC_SUBST(write_objs, add_dot_o($write_objs))
822 ######################################################################## audioc
832 if test $HAVE_READLINE = yes; then
833 audioc_objs="$audioc_objs
839 AC_SUBST(audioc_objs, add_dot_o($audioc_objs))
841 AC_DEFINE_UNQUOTED(AUDIO_FORMAT_HANDLERS, "$audio_format_handlers",
842 [formats supported by para_server and para_afh])
843 AC_SUBST(executables)
847 paraslash configuration:
848 ~~~~~~~~~~~~~~~~~~~~~~~~
849 crypto lib: ${CRYPTOLIB:-[none]}
850 readline (interactive CLIs): $HAVE_READLINE
851 id3 version 2 support: $HAVE_ID3TAG
853 audio format handlers: $audio_format_handlers
856 para_server: $build_server
858 para_mixer: $build_mixer
859 para_client: $build_client
860 para_audiod: $build_audiod