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 helper functions for codecs which use the ogg container format
277 AC_DEFUN([NEED_OGG_OBJECTS], [{
278 test "$HAVE_OGG" = 'yes' -a \( \
279 "$HAVE_VORBIS" = 'yes' \
280 -o "$HAVE_SPEEX" = 'yes' \
281 -o "$HAVE_OPUS" = 'yes' \
282 -o "$HAVE_FLAC" = 'yes' \
285 AC_DEFUN([NEED_VORBIS_OBJECTS], [{
286 test "$HAVE_OGG" = 'yes' -a "$HAVE_VORBIS" = 'yes'
288 AC_DEFUN([NEED_SPEEX_OBJECTS], [{
289 test "$HAVE_OGG" = 'yes' -a "$HAVE_SPEEX" = 'yes'
291 AC_DEFUN([NEED_OPUS_OBJECTS], [{
292 test "$HAVE_OGG" = 'yes' -a "$HAVE_OPUS" = 'yes'
294 AC_DEFUN([NEED_FLAC_OBJECTS], [{
295 test "$HAVE_OGG" = 'yes' -a "$HAVE_FLAC" = 'yes'
297 ########################################################################### faad
299 LIB_ARG_WITH([faad], [-lfaad])
301 AC_CHECK_HEADER(neaacdec.h, [], HAVE_FAAD=no)
302 AC_CHECK_LIB([faad], [NeAACDecOpen], [], HAVE_FAAD=no)
303 LIB_SUBST_FLAGS(faad)
305 ########################################################################### mad
307 LIB_ARG_WITH([mad], [-lmad])
309 AC_CHECK_HEADER(mad.h, [], HAVE_MAD=no)
310 AC_CHECK_LIB([mad], [mad_stream_init], [], HAVE_MAD=no)
313 ###################################################################### libid3tag
315 LIB_ARG_WITH([id3tag], [-lid3tag -lz])
317 AC_CHECK_HEADER(id3tag.h, [], HAVE_ID3TAG=no)
318 AC_CHECK_LIB([id3tag], [id3_file_fdopen], [], HAVE_ID3TAG=no)
319 LIB_SUBST_FLAGS(id3tag)
321 ########################################################################### oss
323 LIB_ARG_WITH([oss], [])
324 AC_CHECK_HEADER(sys/soundcard.h, [HAVE_OSS=yes], [HAVE_OSS=no])
325 AC_CHECK_LIB(ossaudio, _oss_ioctl, [oss_ldflags="$oss_ldflags -lossaudio"], [])
328 ########################################################################### alsa
330 LIB_ARG_WITH([alsa], [-lasound])
332 AC_CHECK_HEADER(alsa/asoundlib.h, [], HAVE_ALSA=no)
333 AC_CHECK_LIB([asound], [snd_pcm_open], [], HAVE_ALSA=no)
334 LIB_SUBST_FLAGS(alsa)
336 ######################################################################### pthread
338 LIB_ARG_WITH([pthread], [-lpthread])
340 AC_CHECK_HEADER(pthread.h, [], HAVE_PTHREAD=no)
341 AC_CHECK_LIB([pthread], [pthread_create], [], HAVE_PTHREAD=no)
342 LIB_SUBST_FLAGS(pthread)
344 ########################################################################### libao
346 LIB_ARG_WITH([ao], [-lao])
348 AC_CHECK_HEADER(ao/ao.h, [], HAVE_AO=no)
349 AC_CHECK_LIB([ao], [ao_initialize], [], HAVE_AO=no)
352 AC_DEFUN([NEED_AO_OBJECTS], [{ test $HAVE_AO = yes -a $HAVE_PTHREAD = yes; }])
353 ######################################################################## readline
355 AC_SEARCH_LIBS([tgetent], [tinfo curses terminfo termcap])
356 LIB_ARG_WITH([readline], [-lreadline $LIBS])
358 AC_CHECK_HEADER([readline/readline.h], [], [HAVE_READLINE=no])
359 AC_CHECK_LIB([readline], [rl_free_keymap], [], HAVE_READLINE=no)
362 [AC_DEFINE(RL_FREE_KEYMAP_DECLARED, 1, readline >= 6.3)],
366 #include <readline/readline.h>
369 LIB_SUBST_FLAGS(readline)
371 ############################################################# libsamplerate
373 LIB_ARG_WITH([samplerate], [-lsamplerate])
375 AC_CHECK_HEADER(samplerate.h, [], HAVE_SAMPLERATE=no)
376 AC_CHECK_LIB([samplerate], [src_process], [], HAVE_SAMPLERATE=no)
377 LIB_SUBST_FLAGS(samplerate)
379 ######################################################################### ubsan
380 AC_ARG_ENABLE([ubsan], [AS_HELP_STRING(--enable-ubsan,
381 [Detect and report undefined behaviour.])],
382 [ENABLE_UBSAN=yes], [ENABLE_UBSAN=no])
383 AC_SUBST(ENABLE_UBSAN)
384 ######################################################################### server
385 if test -n "$CRYPTOLIB" && test $HAVE_OSL = yes && test -n "$BISON" && \
386 test -n "$FLEX"; then
388 executables="$executables server upgrade_db"
389 server_errlist_objs="
429 if test "$CRYPTOLIB" = openssl; then
430 server_errlist_objs="$server_errlist_objs openssl"
432 server_errlist_objs="$server_errlist_objs gcrypt"
434 NEED_OGG_OBJECTS() && server_errlist_objs="$server_errlist_objs ogg_afh_common"
435 NEED_VORBIS_OBJECTS() && server_errlist_objs="$server_errlist_objs ogg_afh"
436 NEED_SPEEX_OBJECTS() && server_errlist_objs="$server_errlist_objs spx_afh spx_common"
437 NEED_OPUS_OBJECTS() && server_errlist_objs="$server_errlist_objs opus_afh opus_common"
438 NEED_FLAC_OBJECTS && server_errlist_objs="$server_errlist_objs flac_afh"
439 if test $HAVE_FAAD = yes; then
440 server_errlist_objs="$server_errlist_objs aac_afh mp4"
442 server_objs="$server_errlist_objs"
443 AC_SUBST(server_objs, add_dot_o($server_objs))
447 ############################################################# upgrade_db
457 AC_SUBST(upgrade_db_objs, add_dot_o($upgrade_db_objs))
458 ############################################################# client
459 if test -n "$CRYPTOLIB"; then
461 executables="$executables client"
462 client_errlist_objs="
479 if test "$CRYPTOLIB" = openssl; then
480 client_errlist_objs="$client_errlist_objs openssl"
482 client_errlist_objs="$client_errlist_objs gcrypt"
484 if test $HAVE_READLINE = yes; then
485 client_errlist_objs="$client_errlist_objs interactive"
487 client_objs="$client_errlist_objs"
488 AC_SUBST(client_objs, add_dot_o($client_errlist_objs))
492 ############################################################# audiod
493 if test -n "$CRYPTOLIB"; then
495 executables="$executables audiod"
496 audiod_audio_formats="wma"
497 audiod_errlist_objs="$audiod_errlist_objs
536 if test "$CRYPTOLIB" = openssl; then
537 audiod_errlist_objs="$audiod_errlist_objs openssl"
539 audiod_errlist_objs="$audiod_errlist_objs gcrypt"
541 NEED_VORBIS_OBJECTS && {
542 audiod_errlist_objs="$audiod_errlist_objs oggdec_filter"
543 audiod_audio_formats="$audiod_audio_formats ogg"
545 NEED_SPEEX_OBJECTS && {
546 audiod_errlist_objs="$audiod_errlist_objs spxdec_filter spx_common"
547 audiod_audio_formats="$audiod_audio_formats spx"
549 NEED_OPUS_OBJECTS && {
550 audiod_errlist_objs="$audiod_errlist_objs opusdec_filter opus_common"
551 audiod_audio_formats="$audiod_audio_formats opus"
553 NEED_FLAC_OBJECTS && {
554 audiod_errlist_objs="$audiod_errlist_objs flacdec_filter"
555 audiod_audio_formats="$audiod_audio_formats flac"
557 if test $HAVE_FAAD = yes; then
558 audiod_errlist_objs="$audiod_errlist_objs aacdec_filter"
559 audiod_audio_formats="$audiod_audio_formats aac"
561 if test $HAVE_MAD = yes; then
562 audiod_audio_formats="$audiod_audio_formats mp3"
563 audiod_errlist_objs="$audiod_errlist_objs mp3dec_filter"
565 if test $HAVE_OSS = yes; then
566 audiod_errlist_objs="$audiod_errlist_objs oss_write"
568 if test $HAVE_ALSA = yes; then
569 audiod_errlist_objs="$audiod_errlist_objs alsa_write"
572 audiod_errlist_objs="$audiod_errlist_objs ao_write"
574 if test $HAVE_SAMPLERATE = yes; then
575 audiod_errlist_objs="$audiod_errlist_objs resample_filter check_wav"
577 audiod_objs="$audiod_errlist_objs"
578 AC_SUBST(audiod_objs, add_dot_o($audiod_objs))
580 enum="$(for i in $audiod_audio_formats; do printf "AUDIO_FORMAT_${i}, " | tr '[a-z]' '[A-Z]'; done)"
581 AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMATS_ENUM, $enum NUM_AUDIO_FORMATS,
582 enum of audio formats supported by audiod)
583 names="$(for i in $audiod_audio_formats; do printf \"$i\",' ' ; done)"
584 AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMAT_ARRAY, $names, array of audio formats supported by audiod)
588 ########################################################################### mixer
589 if test $HAVE_OSS = yes -o $HAVE_ALSA = yes; then
591 executables="$executables mixer"
592 mixer_errlist_objs="mixer exec string fd time lsu version"
593 if test $HAVE_OSS = yes; then
594 mixer_errlist_objs="$mixer_errlist_objs oss_mix"
596 if test $HAVE_ALSA = yes; then
597 mixer_errlist_objs="$mixer_errlist_objs alsa_mix"
599 mixer_objs="$mixer_errlist_objs"
600 AC_SUBST(mixer_objs, add_dot_o($mixer_objs))
603 AC_MSG_WARN([no mixer support])
605 ########################################################################### gui
606 if test $HAVE_CURSES = yes; then
608 executables="$executables gui"
623 gui_objs="$gui_errlist_objs"
624 AC_SUBST(gui_objs, add_dot_o($gui_objs))
627 AC_MSG_WARN([no curses lib, cannot build para_gui])
629 ######################################################################## filter
630 filter_errlist_objs="
655 NEED_VORBIS_OBJECTS && filter_errlist_objs="$filter_errlist_objs oggdec_filter"
656 NEED_SPEEX_OBJECTS && filter_errlist_objs="$filter_errlist_objs spxdec_filter spx_common"
657 NEED_OPUS_OBJECTS && filter_errlist_objs="$filter_errlist_objs opusdec_filter opus_common"
658 NEED_FLAC_OBJECTS && filter_errlist_objs="$filter_errlist_objs flacdec_filter"
659 if test $HAVE_FAAD = yes; then
660 filter_errlist_objs="$filter_errlist_objs aacdec_filter"
662 if test $HAVE_MAD = yes; then
663 filter_errlist_objs="$filter_errlist_objs mp3dec_filter"
665 if test $HAVE_SAMPLERATE = yes; then
666 filter_errlist_objs="$filter_errlist_objs resample_filter check_wav"
668 filter_objs="$filter_errlist_objs"
670 AC_SUBST(filter_objs, add_dot_o($filter_objs))
671 ########################################################################## recv
692 NEED_OGG_OBJECTS && recv_errlist_objs="$recv_errlist_objs ogg_afh_common"
693 NEED_VORBIS_OBJECTS && recv_errlist_objs="$recv_errlist_objs ogg_afh"
694 NEED_SPEEX_OBJECTS && recv_errlist_objs="$recv_errlist_objs spx_afh spx_common"
695 NEED_OPUS_OBJECTS && recv_errlist_objs="$recv_errlist_objs opus_afh opus_common"
696 NEED_FLAC_OBJECTS && recv_errlist_objs="$recv_errlist_objs flac_afh"
698 if test $HAVE_FAAD = yes; then
699 recv_errlist_objs="$recv_errlist_objs aac_afh mp4"
701 recv_objs="$recv_errlist_objs"
702 AC_SUBST(recv_objs, add_dot_o($recv_objs))
703 ########################################################################### afh
704 audio_format_handlers="mp3 wma"
716 NEED_OGG_OBJECTS && afh_errlist_objs="$afh_errlist_objs ogg_afh_common"
717 NEED_VORBIS_OBJECTS && {
718 afh_errlist_objs="$afh_errlist_objs ogg_afh"
719 audio_format_handlers="$audio_format_handlers ogg"
721 NEED_SPEEX_OBJECTS && {
722 afh_errlist_objs="$afh_errlist_objs spx_afh spx_common"
723 audio_format_handlers="$audio_format_handlers spx"
725 NEED_OPUS_OBJECTS && {
726 afh_errlist_objs="$afh_errlist_objs opus_afh opus_common"
727 audio_format_handlers="$audio_format_handlers opus"
729 NEED_FLAC_OBJECTS && {
730 afh_errlist_objs="$afh_errlist_objs flac_afh"
731 audio_format_handlers="$audio_format_handlers flac"
733 if test $HAVE_FAAD = yes; then
734 afh_errlist_objs="$afh_errlist_objs aac_afh mp4"
735 audio_format_handlers="$audio_format_handlers aac"
738 afh_objs="$afh_errlist_objs"
740 AC_SUBST(afh_objs, add_dot_o($afh_objs))
741 ########################################################################## play
775 NEED_OGG_OBJECTS && play_errlist_objs="$play_errlist_objs ogg_afh_common"
776 NEED_VORBIS_OBJECTS && {
777 play_errlist_objs="$play_errlist_objs oggdec_filter ogg_afh"
779 NEED_SPEEX_OBJECTS && {
780 play_errlist_objs="$play_errlist_objs spxdec_filter spx_afh spx_common"
783 play_errlist_objs="$play_errlist_objs
788 NEED_FLAC_OBJECTS && {
789 play_errlist_objs="$play_errlist_objs flacdec_filter flac_afh"
791 if test $HAVE_FAAD = yes; then
792 play_errlist_objs="$play_errlist_objs aac_afh aacdec_filter mp4"
794 if test $HAVE_MAD = yes; then
795 play_errlist_objs="$play_errlist_objs mp3dec_filter"
797 if test $HAVE_OSS = yes; then
798 play_errlist_objs="$play_errlist_objs oss_write"
800 if test $HAVE_ALSA = yes; then
801 play_errlist_objs="$play_errlist_objs alsa_write"
804 play_errlist_objs="$play_errlist_objs ao_write"
806 if test $HAVE_READLINE = yes; then
807 play_errlist_objs="$play_errlist_objs interactive"
809 if test $HAVE_SAMPLERATE = yes; then
810 play_errlist_objs="$play_errlist_objs resample_filter check_wav"
813 play_objs="$play_errlist_objs"
814 AC_SUBST(play_objs, add_dot_o($play_objs))
815 ######################################################################### write
831 write_errlist_objs="$write_errlist_objs ao_write"
833 if test $HAVE_OSS = yes; then
834 write_errlist_objs="$write_errlist_objs oss_write"
836 if test $HAVE_ALSA = yes; then
837 write_errlist_objs="$write_errlist_objs alsa_write"
839 write_objs="$write_errlist_objs"
840 AC_SUBST(write_objs, add_dot_o($write_objs))
841 ######################################################################## audioc
842 audioc_errlist_objs="
851 if test $HAVE_READLINE = yes; then
852 audioc_errlist_objs="$audioc_errlist_objs
858 audioc_objs="$audioc_errlist_objs"
859 AC_SUBST(audioc_objs, add_dot_o($audioc_objs))
861 AC_DEFINE_UNQUOTED(AUDIO_FORMAT_HANDLERS, "$audio_format_handlers",
862 [formats supported by para_server and para_afh])
863 AC_SUBST(executables)
867 paraslash configuration:
868 ~~~~~~~~~~~~~~~~~~~~~~~~
869 crypto lib: ${CRYPTOLIB:-[none]}
870 unix socket credentials: $have_ucred
871 readline (interactive CLIs): $HAVE_READLINE
872 id3 version 2 support: $HAVE_ID3TAG
874 audio format handlers: $audio_format_handlers
877 para_server: $build_server
879 para_mixer: $build_mixer
880 para_client: $build_client
881 para_audiod: $build_audiod