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.])
114 AC_CHECK_LIB([crypto], [OSSL_PARAM_construct_BN], [HAVE_OSSL_PARAM=yes],
115 [HAVE_OSSL_PARAM=no])
116 test $HAVE_OSSL_PARAM = yes &&
117 AC_DEFINE([HAVE_OSSL_PARAM], [1], [openssl >= 3.0])
118 HAVE_CRYPTO_CLEANUP_ALL_EX_DATA=yes
119 AC_CHECK_DECL([CRYPTO_cleanup_all_ex_data], [],
120 [HAVE_CRYPTO_CLEANUP_ALL_EX_DATA=no],
121 [#include <openssl/rsa.h>])
122 AC_CHECK_LIB([crypto], [CRYPTO_cleanup_all_ex_data], [],
123 [HAVE_CRYPTO_CLEANUP_ALL_EX_DATA=no])
124 test $HAVE_CRYPTO_CLEANUP_ALL_EX_DATA = yes &&
125 AC_DEFINE([HAVE_CRYPTO_CLEANUP_ALL_EX_DATA], [1],
126 [not available on FreeBSD 12])
127 HAVE_OPENSSL_THREAD_STOP=yes
128 AC_CHECK_DECL([OPENSSL_thread_stop], [],
129 [HAVE_OPENSSL_THREAD_STOP=no],
130 [#include <openssl/crypto.h>])
131 AC_CHECK_LIB([crypto], [OPENSSL_thread_stop], [],
132 [HAVE_OPENSSL_THREAD_STOP=no])
133 test $HAVE_OPENSSL_THREAD_STOP = yes &&
134 AC_DEFINE([HAVE_OPENSSL_THREAD_STOP], [1],
135 [not available on openssl-1.0])
138 ######################################################################### gcrypt
141 LIB_ARG_WITH([gcrypt], [-lgcrypt])
142 AC_CHECK_HEADER(gcrypt.h, [], [HAVE_GCRYPT=no])
143 AC_CHECK_LIB([gcrypt], [gcry_randomize], [], [HAVE_GCRYPT=no])
144 LIB_SUBST_FLAGS(gcrypt)
146 ######################################################################### crypto
147 AC_ARG_ENABLE(cryptolib, [AS_HELP_STRING(--enable-cryptolib=lib, [
148 Force using crypto library "lib". This package requires either
149 openssl or libgcrypt being installed. Possible values for "lib"
150 are thus "openssl" and "gcrypt". If this option is not given,
151 openssl is tried first. If openssl was not found, gcrypt is
154 CRYPTOLIB="$enable_cryptolib"
155 case "$enable_cryptolib" in
157 test $HAVE_OPENSSL = no && AC_MSG_ERROR(openssl not found)
158 crypto_ldflags="$openssl_ldflags"
161 test $HAVE_GCRYPT = no && AC_MSG_ERROR(gcrypt not found)
162 crypto_ldflags="$gcrypt_ldflags"
166 if test $HAVE_GCRYPT = yes; then
168 crypto_ldflags="$gcrypt_ldflags"
170 if test $HAVE_OPENSSL = yes; then
172 crypto_ldflags="$openssl_ldflags"
176 AC_MSG_ERROR([invalid value "$enable_cryptolib" for --enable-cryptolib])
179 AC_SUBST(crypto_ldflags)
180 ########################################################################## iconv
183 AC_SEARCH_LIBS([libiconv_open], [iconv],
184 [iconv_ldflags="$LIBS"],
187 AC_SUBST(iconv_ldflags)
188 AC_MSG_CHECKING([whether iconv needs const char ** cast])
193 size_t iconv(iconv_t cd, const char **inbuf,
194 size_t *inbytesleft, char **outbuf,
195 size_t *outbytesleft);
198 [cast='(const char **)'; msg=yes],
201 AC_DEFINE_UNQUOTED(ICONV_CAST, $cast, [cast for second arg to iconv()])
204 ########################################################################### ucred
205 AC_CHECK_TYPE([struct ucred], [
206 AC_DEFINE(HAVE_UCRED, 1, define to 1 you have struct ucred)
208 #include <sys/types.h>
209 #include <sys/socket.h>
211 ################################################################### FNM_EXTMATCH
212 AC_MSG_CHECKING(for extended wildcard pattern matching)
213 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
216 unsigned n = FNM_EXTMATCH;
217 ]])], [have_fnm_extmatch=yes], [have_fnm_extmatch=no])
218 AC_MSG_RESULT($have_fnm_extmatch)
219 if test $have_fnm_extmatch = yes; then
220 AC_DEFINE(HAVE_FNM_EXTMATCH, 1, define to 1 if FNM_EXTMATCH is defined)
222 ########################################################################### curses
224 LIB_ARG_WITH([curses], [])
226 AC_CHECK_HEADER(curses.h, [], [HAVE_CURSES=no])
227 AC_SEARCH_LIBS([initscr], [ncursesw curses], [], [HAVE_CURSES=no])
228 curses_ldflags="$curses_ldflags $LIBS"
229 LIB_SUBST_FLAGS(curses)
231 ########################################################################### ip_mreqn
232 AC_CHECK_TYPE([struct ip_mreqn], [
233 AC_DEFINE(HAVE_IP_MREQN, 1, define to 1 if you have struct ip_mreqn)
238 ########################################################################### ogg
240 LIB_ARG_WITH([ogg], [-logg])
242 AC_CHECK_HEADERS([ogg/ogg.h], [], [HAVE_OGG=no])
243 AC_CHECK_LIB([ogg], [ogg_stream_init], [], [HAVE_OGG=no])
244 AC_CHECK_LIB([ogg], [ogg_stream_flush_fill], [
245 AC_DEFINE(HAVE_OGG_STREAM_FLUSH_FILL, 1, [libogg >= 1.3.0])])
248 ######################################################################### vorbis
250 LIB_ARG_WITH([vorbis], [-lvorbis -lvorbisfile])
252 AC_CHECK_HEADERS([vorbis/codec.h], [], [HAVE_VORBIS=no])
253 AC_CHECK_LIB([vorbis], [vorbis_info_init], [], [HAVE_VORBIS=no])
254 LIB_SUBST_FLAGS(vorbis)
256 ######################################################################### speex
258 LIB_ARG_WITH([speex], [-lspeex])
260 AC_CHECK_HEADERS([speex/speex.h], [], [HAVE_SPEEX=no])
261 AC_CHECK_LIB([speex], [speex_decoder_init], [], [HAVE_SPEEX=no])
262 LIB_SUBST_FLAGS(speex)
264 ######################################################################### opus
266 LIB_ARG_WITH([opus], [-lopus])
268 AC_CHECK_HEADERS([opus/opus.h], [], [HAVE_OPUS=no])
269 AC_CHECK_LIB([opus], [opus_multistream_decode], [], [HAVE_OPUS=no])
270 LIB_SUBST_FLAGS(opus)
272 ########################################################################### flac
274 LIB_ARG_WITH([flac], [-lFLAC -lm])
276 AC_CHECK_HEADER(FLAC/stream_decoder.h, [], HAVE_FLAC=no)
277 AC_CHECK_LIB([FLAC], [FLAC__stream_decoder_init_file], [], HAVE_FLAC=no)
278 LIB_SUBST_FLAGS(flac)
281 # some helper functions for codecs which use the ogg container format
282 AC_DEFUN([NEED_OGG_OBJECTS], [{
283 test "$HAVE_OGG" = 'yes' -a \( \
284 "$HAVE_VORBIS" = 'yes' \
285 -o "$HAVE_SPEEX" = 'yes' \
286 -o "$HAVE_OPUS" = 'yes' \
287 -o "$HAVE_FLAC" = 'yes' \
290 AC_DEFUN([NEED_VORBIS_OBJECTS], [{
291 test "$HAVE_OGG" = 'yes' -a "$HAVE_VORBIS" = 'yes'
293 AC_DEFUN([NEED_SPEEX_OBJECTS], [{
294 test "$HAVE_OGG" = 'yes' -a "$HAVE_SPEEX" = 'yes'
296 AC_DEFUN([NEED_OPUS_OBJECTS], [{
297 test "$HAVE_OGG" = 'yes' -a "$HAVE_OPUS" = 'yes'
299 AC_DEFUN([NEED_FLAC_OBJECTS], [{
300 test "$HAVE_OGG" = 'yes' -a "$HAVE_FLAC" = 'yes'
302 ########################################################################### faad
304 LIB_ARG_WITH([faad], [-lfaad])
306 AC_CHECK_HEADER(neaacdec.h, [], HAVE_FAAD=no)
307 AC_CHECK_LIB([faad], [NeAACDecOpen], [], HAVE_FAAD=no)
308 LIB_SUBST_FLAGS(faad)
310 ########################################################################### mad
312 LIB_ARG_WITH([mad], [-lmad])
314 AC_CHECK_HEADER(mad.h, [], HAVE_MAD=no)
315 AC_CHECK_LIB([mad], [mad_stream_init], [], HAVE_MAD=no)
318 ###################################################################### libid3tag
320 LIB_ARG_WITH([id3tag], [-lid3tag -lz])
322 AC_CHECK_HEADER(id3tag.h, [], HAVE_ID3TAG=no)
323 AC_CHECK_LIB([id3tag], [id3_file_fdopen], [], HAVE_ID3TAG=no)
324 LIB_SUBST_FLAGS(id3tag)
326 ########################################################################### oss
328 LIB_ARG_WITH([oss], [])
329 AC_CHECK_HEADER(sys/soundcard.h, [HAVE_OSS=yes], [HAVE_OSS=no])
330 AC_CHECK_LIB(ossaudio, _oss_ioctl, [oss_ldflags="$oss_ldflags -lossaudio"], [])
333 ########################################################################### alsa
335 LIB_ARG_WITH([alsa], [-lasound])
337 AC_CHECK_HEADER(alsa/asoundlib.h, [], HAVE_ALSA=no)
338 AC_CHECK_LIB([asound], [snd_pcm_open], [], HAVE_ALSA=no)
339 LIB_SUBST_FLAGS(alsa)
341 ######################################################################### pthread
343 LIB_ARG_WITH([pthread], [-lpthread])
345 AC_CHECK_HEADER(pthread.h, [], HAVE_PTHREAD=no)
346 AC_CHECK_LIB([pthread], [pthread_create], [], HAVE_PTHREAD=no)
347 LIB_SUBST_FLAGS(pthread)
349 ########################################################################### libao
351 LIB_ARG_WITH([ao], [-lao])
353 AC_CHECK_HEADER(ao/ao.h, [], HAVE_AO=no)
354 AC_CHECK_LIB([ao], [ao_initialize], [], HAVE_AO=no)
357 AC_DEFUN([NEED_AO_OBJECTS], [{ test $HAVE_AO = yes -a $HAVE_PTHREAD = yes; }])
358 ######################################################################## readline
360 AC_SEARCH_LIBS([tgetent], [tinfo curses terminfo termcap])
361 LIB_ARG_WITH([readline], [-lreadline $LIBS])
363 AC_CHECK_HEADER([readline/readline.h], [], [HAVE_READLINE=no])
364 AC_CHECK_LIB([readline], [rl_free_keymap], [], HAVE_READLINE=no)
367 [AC_DEFINE(RL_FREE_KEYMAP_DECLARED, 1, readline >= 6.3)],
371 #include <readline/readline.h>
374 LIB_SUBST_FLAGS(readline)
376 ############################################################# libsamplerate
378 LIB_ARG_WITH([samplerate], [-lsamplerate])
380 AC_CHECK_HEADER(samplerate.h, [], HAVE_SAMPLERATE=no)
381 AC_CHECK_LIB([samplerate], [src_process], [], HAVE_SAMPLERATE=no)
382 LIB_SUBST_FLAGS(samplerate)
384 ######################################################################### ubsan
385 AC_ARG_ENABLE([ubsan], [AS_HELP_STRING(--enable-ubsan,
386 [Detect and report undefined behaviour.])],
387 [ENABLE_UBSAN=yes], [ENABLE_UBSAN=no])
388 AC_SUBST(ENABLE_UBSAN)
389 ######################################################################### server
390 if test -n "$CRYPTOLIB" && test $HAVE_OSL = yes && test -n "$BISON" && \
391 test -n "$FLEX"; then
393 executables="$executables server upgrade_db"
394 server_errlist_objs="
434 if test "$CRYPTOLIB" = openssl; then
435 server_errlist_objs="$server_errlist_objs openssl"
437 server_errlist_objs="$server_errlist_objs gcrypt"
439 NEED_OGG_OBJECTS() && server_errlist_objs="$server_errlist_objs ogg_afh_common"
440 NEED_VORBIS_OBJECTS() && server_errlist_objs="$server_errlist_objs ogg_afh"
441 NEED_SPEEX_OBJECTS() && server_errlist_objs="$server_errlist_objs spx_afh spx_common"
442 NEED_OPUS_OBJECTS() && server_errlist_objs="$server_errlist_objs opus_afh opus_common"
443 NEED_FLAC_OBJECTS && server_errlist_objs="$server_errlist_objs flac_afh"
444 if test $HAVE_FAAD = yes; then
445 server_errlist_objs="$server_errlist_objs aac_afh mp4"
447 server_objs="$server_errlist_objs"
448 AC_SUBST(server_objs, add_dot_o($server_objs))
452 ############################################################# upgrade_db
462 AC_SUBST(upgrade_db_objs, add_dot_o($upgrade_db_objs))
463 ############################################################# client
464 if test -n "$CRYPTOLIB"; then
466 executables="$executables client"
467 client_errlist_objs="
484 if test "$CRYPTOLIB" = openssl; then
485 client_errlist_objs="$client_errlist_objs openssl"
487 client_errlist_objs="$client_errlist_objs gcrypt"
489 if test $HAVE_READLINE = yes; then
490 client_errlist_objs="$client_errlist_objs interactive"
492 client_objs="$client_errlist_objs"
493 AC_SUBST(client_objs, add_dot_o($client_errlist_objs))
497 ############################################################# audiod
498 if test -n "$CRYPTOLIB"; then
500 executables="$executables audiod"
501 audiod_audio_formats="wma"
502 audiod_errlist_objs="$audiod_errlist_objs
541 if test "$CRYPTOLIB" = openssl; then
542 audiod_errlist_objs="$audiod_errlist_objs openssl"
544 audiod_errlist_objs="$audiod_errlist_objs gcrypt"
546 NEED_VORBIS_OBJECTS && {
547 audiod_errlist_objs="$audiod_errlist_objs oggdec_filter"
548 audiod_audio_formats="$audiod_audio_formats ogg"
550 NEED_SPEEX_OBJECTS && {
551 audiod_errlist_objs="$audiod_errlist_objs spxdec_filter spx_common"
552 audiod_audio_formats="$audiod_audio_formats spx"
554 NEED_OPUS_OBJECTS && {
555 audiod_errlist_objs="$audiod_errlist_objs opusdec_filter opus_common"
556 audiod_audio_formats="$audiod_audio_formats opus"
558 NEED_FLAC_OBJECTS && {
559 audiod_errlist_objs="$audiod_errlist_objs flacdec_filter"
560 audiod_audio_formats="$audiod_audio_formats flac"
562 if test $HAVE_FAAD = yes; then
563 audiod_errlist_objs="$audiod_errlist_objs aacdec_filter"
564 audiod_audio_formats="$audiod_audio_formats aac"
566 if test $HAVE_MAD = yes; then
567 audiod_audio_formats="$audiod_audio_formats mp3"
568 audiod_errlist_objs="$audiod_errlist_objs mp3dec_filter"
570 if test $HAVE_OSS = yes; then
571 audiod_errlist_objs="$audiod_errlist_objs oss_write"
573 if test $HAVE_ALSA = yes; then
574 audiod_errlist_objs="$audiod_errlist_objs alsa_write"
577 audiod_errlist_objs="$audiod_errlist_objs ao_write"
579 if test $HAVE_SAMPLERATE = yes; then
580 audiod_errlist_objs="$audiod_errlist_objs resample_filter check_wav"
582 audiod_objs="$audiod_errlist_objs"
583 AC_SUBST(audiod_objs, add_dot_o($audiod_objs))
585 enum="$(for i in $audiod_audio_formats; do printf "AUDIO_FORMAT_${i}, " | tr '[a-z]' '[A-Z]'; done)"
586 AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMATS_ENUM, $enum NUM_AUDIO_FORMATS,
587 enum of audio formats supported by audiod)
588 names="$(for i in $audiod_audio_formats; do printf \"$i\",' ' ; done)"
589 AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMAT_ARRAY, $names, array of audio formats supported by audiod)
593 ########################################################################### mixer
594 if test $HAVE_OSS = yes -o $HAVE_ALSA = yes; then
596 executables="$executables mixer"
597 mixer_errlist_objs="mixer exec string fd time lsu version"
598 if test $HAVE_OSS = yes; then
599 mixer_errlist_objs="$mixer_errlist_objs oss_mix"
601 if test $HAVE_ALSA = yes; then
602 mixer_errlist_objs="$mixer_errlist_objs alsa_mix"
604 mixer_objs="$mixer_errlist_objs"
605 AC_SUBST(mixer_objs, add_dot_o($mixer_objs))
608 AC_MSG_WARN([no mixer support])
610 ########################################################################### gui
611 if test $HAVE_CURSES = yes; then
613 executables="$executables gui"
628 gui_objs="$gui_errlist_objs"
629 AC_SUBST(gui_objs, add_dot_o($gui_objs))
632 AC_MSG_WARN([no curses lib, cannot build para_gui])
634 ######################################################################## filter
635 filter_errlist_objs="
660 NEED_VORBIS_OBJECTS && filter_errlist_objs="$filter_errlist_objs oggdec_filter"
661 NEED_SPEEX_OBJECTS && filter_errlist_objs="$filter_errlist_objs spxdec_filter spx_common"
662 NEED_OPUS_OBJECTS && filter_errlist_objs="$filter_errlist_objs opusdec_filter opus_common"
663 NEED_FLAC_OBJECTS && filter_errlist_objs="$filter_errlist_objs flacdec_filter"
664 if test $HAVE_FAAD = yes; then
665 filter_errlist_objs="$filter_errlist_objs aacdec_filter"
667 if test $HAVE_MAD = yes; then
668 filter_errlist_objs="$filter_errlist_objs mp3dec_filter"
670 if test $HAVE_SAMPLERATE = yes; then
671 filter_errlist_objs="$filter_errlist_objs resample_filter check_wav"
673 filter_objs="$filter_errlist_objs"
675 AC_SUBST(filter_objs, add_dot_o($filter_objs))
676 ########################################################################## recv
697 NEED_OGG_OBJECTS && recv_errlist_objs="$recv_errlist_objs ogg_afh_common"
698 NEED_VORBIS_OBJECTS && recv_errlist_objs="$recv_errlist_objs ogg_afh"
699 NEED_SPEEX_OBJECTS && recv_errlist_objs="$recv_errlist_objs spx_afh spx_common"
700 NEED_OPUS_OBJECTS && recv_errlist_objs="$recv_errlist_objs opus_afh opus_common"
701 NEED_FLAC_OBJECTS && recv_errlist_objs="$recv_errlist_objs flac_afh"
703 if test $HAVE_FAAD = yes; then
704 recv_errlist_objs="$recv_errlist_objs aac_afh mp4"
706 recv_objs="$recv_errlist_objs"
707 AC_SUBST(recv_objs, add_dot_o($recv_objs))
708 ########################################################################### afh
709 audio_format_handlers="mp3 wma"
721 NEED_OGG_OBJECTS && afh_errlist_objs="$afh_errlist_objs ogg_afh_common"
722 NEED_VORBIS_OBJECTS && {
723 afh_errlist_objs="$afh_errlist_objs ogg_afh"
724 audio_format_handlers="$audio_format_handlers ogg"
726 NEED_SPEEX_OBJECTS && {
727 afh_errlist_objs="$afh_errlist_objs spx_afh spx_common"
728 audio_format_handlers="$audio_format_handlers spx"
730 NEED_OPUS_OBJECTS && {
731 afh_errlist_objs="$afh_errlist_objs opus_afh opus_common"
732 audio_format_handlers="$audio_format_handlers opus"
734 NEED_FLAC_OBJECTS && {
735 afh_errlist_objs="$afh_errlist_objs flac_afh"
736 audio_format_handlers="$audio_format_handlers flac"
738 if test $HAVE_FAAD = yes; then
739 afh_errlist_objs="$afh_errlist_objs aac_afh mp4"
740 audio_format_handlers="$audio_format_handlers aac"
743 afh_objs="$afh_errlist_objs"
745 AC_SUBST(afh_objs, add_dot_o($afh_objs))
746 ########################################################################## play
780 NEED_OGG_OBJECTS && play_errlist_objs="$play_errlist_objs ogg_afh_common"
781 NEED_VORBIS_OBJECTS && {
782 play_errlist_objs="$play_errlist_objs oggdec_filter ogg_afh"
784 NEED_SPEEX_OBJECTS && {
785 play_errlist_objs="$play_errlist_objs spxdec_filter spx_afh spx_common"
788 play_errlist_objs="$play_errlist_objs
793 NEED_FLAC_OBJECTS && {
794 play_errlist_objs="$play_errlist_objs flacdec_filter flac_afh"
796 if test $HAVE_FAAD = yes; then
797 play_errlist_objs="$play_errlist_objs aac_afh aacdec_filter mp4"
799 if test $HAVE_MAD = yes; then
800 play_errlist_objs="$play_errlist_objs mp3dec_filter"
802 if test $HAVE_OSS = yes; then
803 play_errlist_objs="$play_errlist_objs oss_write"
805 if test $HAVE_ALSA = yes; then
806 play_errlist_objs="$play_errlist_objs alsa_write"
809 play_errlist_objs="$play_errlist_objs ao_write"
811 if test $HAVE_READLINE = yes; then
812 play_errlist_objs="$play_errlist_objs interactive"
814 if test $HAVE_SAMPLERATE = yes; then
815 play_errlist_objs="$play_errlist_objs resample_filter check_wav"
818 play_objs="$play_errlist_objs"
819 AC_SUBST(play_objs, add_dot_o($play_objs))
820 ######################################################################### write
836 write_errlist_objs="$write_errlist_objs ao_write"
838 if test $HAVE_OSS = yes; then
839 write_errlist_objs="$write_errlist_objs oss_write"
841 if test $HAVE_ALSA = yes; then
842 write_errlist_objs="$write_errlist_objs alsa_write"
844 write_objs="$write_errlist_objs"
845 AC_SUBST(write_objs, add_dot_o($write_objs))
846 ######################################################################## audioc
847 audioc_errlist_objs="
856 if test $HAVE_READLINE = yes; then
857 audioc_errlist_objs="$audioc_errlist_objs
863 audioc_objs="$audioc_errlist_objs"
864 AC_SUBST(audioc_objs, add_dot_o($audioc_objs))
866 AC_DEFINE_UNQUOTED(AUDIO_FORMAT_HANDLERS, "$audio_format_handlers",
867 [formats supported by para_server and para_afh])
868 AC_SUBST(executables)
872 paraslash configuration:
873 ~~~~~~~~~~~~~~~~~~~~~~~~
874 crypto lib: ${CRYPTOLIB:-[none]}
875 unix socket credentials: $have_ucred
876 readline (interactive CLIs): $HAVE_READLINE
877 id3 version 2 support: $HAVE_ID3TAG
879 audio format handlers: $audio_format_handlers
882 para_server: $build_server
884 para_mixer: $build_mixer
885 para_client: $build_client
886 para_audiod: $build_audiod