filter: Use lsu_merge_config_file_options().
[paraslash.git] / configure.ac
1 AC_PREREQ([2.61])
2
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])
6
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"
17 fi
18 if test -n "$with_$1_libs"; then
19 $1_ldflags="-L$with_$1_libs $2"
20 else
21 $1_ldflags="$2"
22 fi
23 LDFLAGS="$LDFLAGS $$1_ldflags"
24 ])
25
26 AC_DEFUN([STASH_FLAGS], [
27 OLD_CPPFLAGS="$CPPFLAGS"
28 OLD_LDFLAGS="$LDFLAGS"
29 OLD_LIBS="$LIBS"
30 ])
31
32 AC_DEFUN([UNSTASH_FLAGS], [
33 CPPFLAGS="$OLD_CPPFLAGS"
34 LDFLAGS="$OLD_LDFLAGS"
35 LIBS="$OLD_LIBS"
36 ])
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)
41 else
42 $1_cppflags=
43 $1_ldflags=
44 fi
45 AC_SUBST(HAVE_[]m4_toupper([$1]))
46 AC_SUBST($1_cppflags)
47 AC_SUBST($1_ldflags)
48 ])
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])
53 ])
54
55 AC_USE_SYSTEM_EXTENSIONS
56 AC_C_BIGENDIAN()
57 AC_PROG_CC
58 AC_PROG_CPP
59
60 REQUIRE_EXECUTABLE([bison])
61 REQUIRE_EXECUTABLE([flex])
62 REQUIRE_EXECUTABLE([m4])
63
64 executables="recv filter audioc write afh play"
65 ########################################################################### osl
66 STASH_FLAGS
67 LIB_ARG_WITH([osl], [-losl])
68 HAVE_OSL=yes
69 AC_CHECK_HEADER(osl.h, [], [HAVE_OSL=no])
70 AC_CHECK_LIB([osl], [osl_open_table], [], [HAVE_OSL=no])
71 LIB_SUBST_FLAGS(osl)
72 UNSTASH_FLAGS
73 ######################################################################## lopsub
74 HAVE_LOPSUB=yes
75 AC_PATH_PROG([LOPSUBGEN], [lopsubgen])
76 test -z "$LOPSUBGEN" && HAVE_LOPSUB=no
77 STASH_FLAGS
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.
87 ])
88 fi
89 LIB_SUBST_FLAGS([lopsub])
90 UNSTASH_FLAGS
91 ######################################################################## openssl
92 STASH_FLAGS
93 HAVE_OPENSSL=yes
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
99 AC_CHECK_LIB([crypto], [RSA_set0_key],
100 AC_DEFINE([HAVE_RSA_SET0_KEY], [1], [openssl-1.1]))
101 fi
102 UNSTASH_FLAGS
103 ######################################################################### gcrypt
104 STASH_FLAGS
105 HAVE_GCRYPT=yes
106 LIB_ARG_WITH([gcrypt], [-lgcrypt])
107 AC_CHECK_HEADER(gcrypt.h, [], [HAVE_GCRYPT=no])
108 AC_CHECK_LIB([gcrypt], [gcry_randomize], [], [HAVE_GCRYPT=no])
109 LIB_SUBST_FLAGS(gcrypt)
110 UNSTASH_FLAGS
111 ######################################################################### crypto
112 AC_ARG_ENABLE(cryptolib, [AS_HELP_STRING(--enable-cryptolib=lib, [
113 Force using crypto library "lib". This package requires either
114 openssl or libgcrypt being installed. Possible values for "lib"
115 are thus "openssl" and "gcrypt". If this option is not given,
116 openssl is tried first. If openssl was not found, gcrypt is
117 tried next.])])
118
119 CRYPTOLIB="$enable_cryptolib"
120 case "$enable_cryptolib" in
121 "openssl")
122 test $HAVE_OPENSSL = no && AC_MSG_ERROR(openssl not found)
123 crypto_ldflags="$openssl_ldflags"
124 ;;
125 "gcrypt")
126 test $HAVE_GCRYPT = no && AC_MSG_ERROR(gcrypt not found)
127 crypto_ldflags="$gcrypt_ldflags"
128 ;;
129 "")
130 crypto_ldflags=
131 if test $HAVE_GCRYPT = yes; then
132 CRYPTOLIB=gcrypt
133 crypto_ldflags="$gcrypt_ldflags"
134 fi
135 if test $HAVE_OPENSSL = yes; then
136 CRYPTOLIB=openssl
137 crypto_ldflags="$openssl_ldflags"
138 fi
139 ;;
140 *)
141 AC_MSG_ERROR([invalid value "$enable_cryptolib" for --enable-cryptolib])
142 ;;
143 esac
144 AC_SUBST(crypto_ldflags)
145 ########################################################################## iconv
146 STASH_FLAGS
147 LIBS=
148 AC_SEARCH_LIBS([libiconv_open], [iconv],
149 [iconv_ldflags="$LIBS"],
150 []
151 )
152 AC_SUBST(iconv_ldflags)
153 AC_MSG_CHECKING([whether iconv needs const char ** cast])
154 AC_COMPILE_IFELSE([
155 AC_LANG_PROGRAM([
156 #include <iconv.h>
157 ],[
158 size_t iconv(iconv_t cd, const char **inbuf,
159 size_t *inbytesleft, char **outbuf,
160 size_t *outbytesleft);
161 ])
162 ],
163 [cast='(const char **)'; msg=yes],
164 [cast=; msg=no]
165 )
166 AC_DEFINE_UNQUOTED(ICONV_CAST, $cast, [cast for second arg to iconv()])
167 AC_MSG_RESULT($msg)
168 UNSTASH_FLAGS
169 ########################################################################### ucred
170 AC_CHECK_TYPE([struct ucred], [
171 AC_DEFINE(HAVE_UCRED, 1, define to 1 you have struct ucred)
172 ], [], [
173 #include <sys/types.h>
174 #include <sys/socket.h>
175 ])
176 ################################################################### FNM_EXTMATCH
177 AC_MSG_CHECKING(for extended wildcard pattern matching)
178 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
179 #include <fnmatch.h>
180 ]], [[
181 unsigned n = FNM_EXTMATCH;
182 ]])], [have_fnm_extmatch=yes], [have_fnm_extmatch=no])
183 AC_MSG_RESULT($have_fnm_extmatch)
184 if test $have_fnm_extmatch = yes; then
185 AC_DEFINE(HAVE_FNM_EXTMATCH, 1, define to 1 if FNM_EXTMATCH is defined)
186 fi
187 ########################################################################### curses
188 STASH_FLAGS
189 LIB_ARG_WITH([curses], [])
190 HAVE_CURSES=yes
191 AC_CHECK_HEADER(curses.h, [], [HAVE_CURSES=no])
192 AC_SEARCH_LIBS([initscr], [ncursesw curses], [], [HAVE_CURSES=no])
193 curses_ldflags="$curses_ldflags $LIBS"
194 LIB_SUBST_FLAGS(curses)
195 UNSTASH_FLAGS
196 ########################################################################### ip_mreqn
197 AC_CHECK_TYPE([struct ip_mreqn], [
198 AC_DEFINE(HAVE_IP_MREQN, 1, define to 1 if you have struct ip_mreqn)
199 ], [], [
200 #include <netdb.h>
201 #include <net/if.h>
202 ])
203 ########################################################################### ogg
204 STASH_FLAGS
205 LIB_ARG_WITH([ogg], [-logg])
206 HAVE_OGG=yes
207 AC_CHECK_HEADERS([ogg/ogg.h], [], [HAVE_OGG=no])
208 AC_CHECK_LIB([ogg], [ogg_stream_init], [], [HAVE_OGG=no])
209 AC_CHECK_LIB([ogg], [ogg_stream_flush_fill], [
210 AC_DEFINE(HAVE_OGG_STREAM_FLUSH_FILL, 1, [libogg >= 1.3.0])])
211 LIB_SUBST_FLAGS(ogg)
212 UNSTASH_FLAGS
213 ######################################################################### vorbis
214 STASH_FLAGS
215 LIB_ARG_WITH([vorbis], [-lvorbis -lvorbisfile])
216 HAVE_VORBIS=yes
217 AC_CHECK_HEADERS([vorbis/codec.h], [], [HAVE_VORBIS=no])
218 AC_CHECK_LIB([vorbis], [vorbis_info_init], [], [HAVE_VORBIS=no])
219 LIB_SUBST_FLAGS(vorbis)
220 UNSTASH_FLAGS
221 ######################################################################### speex
222 STASH_FLAGS
223 LIB_ARG_WITH([speex], [-lspeex])
224 HAVE_SPEEX=yes
225 AC_CHECK_HEADERS([speex/speex.h], [], [HAVE_SPEEX=no])
226 AC_CHECK_LIB([speex], [speex_decoder_init], [], [HAVE_SPEEX=no])
227 LIB_SUBST_FLAGS(speex)
228 UNSTASH_FLAGS
229 ######################################################################### opus
230 STASH_FLAGS
231 LIB_ARG_WITH([opus], [-lopus])
232 HAVE_OPUS=yes
233 AC_CHECK_HEADERS([opus/opus.h], [], [HAVE_OPUS=no])
234 AC_CHECK_LIB([opus], [opus_multistream_decode], [], [HAVE_OPUS=no])
235 LIB_SUBST_FLAGS(opus)
236 UNSTASH_FLAGS
237 ########################################################################### flac
238 STASH_FLAGS
239 LIB_ARG_WITH([flac], [-lFLAC -lm])
240 HAVE_FLAC=yes
241 AC_CHECK_HEADER(FLAC/stream_decoder.h, [], HAVE_FLAC=no)
242 AC_CHECK_LIB([FLAC], [FLAC__stream_decoder_init_file], [], HAVE_FLAC=no)
243 LIB_SUBST_FLAGS(flac)
244 UNSTASH_FLAGS
245
246 # some helper functions for codecs which use the ogg container format
247 AC_DEFUN([NEED_OGG_OBJECTS], [{
248 test "$HAVE_OGG" = 'yes' -a \( \
249 "$HAVE_VORBIS" = 'yes' \
250 -o "$HAVE_SPEEX" = 'yes' \
251 -o "$HAVE_OPUS" = 'yes' \
252 -o "$HAVE_FLAC" = 'yes' \
253 \)
254 }])
255 AC_DEFUN([NEED_VORBIS_OBJECTS], [{
256 test "$HAVE_OGG" = 'yes' -a "$HAVE_VORBIS" = 'yes'
257 }])
258 AC_DEFUN([NEED_SPEEX_OBJECTS], [{
259 test "$HAVE_OGG" = 'yes' -a "$HAVE_SPEEX" = 'yes'
260 }])
261 AC_DEFUN([NEED_OPUS_OBJECTS], [{
262 test "$HAVE_OGG" = 'yes' -a "$HAVE_OPUS" = 'yes'
263 }])
264 AC_DEFUN([NEED_FLAC_OBJECTS], [{
265 test "$HAVE_OGG" = 'yes' -a "$HAVE_FLAC" = 'yes'
266 }])
267 ########################################################################### faad
268 STASH_FLAGS
269 LIB_ARG_WITH([faad], [-lfaad -lmp4ff])
270 HAVE_FAAD=yes
271 AC_CHECK_HEADER(neaacdec.h, [], HAVE_FAAD=no)
272 AC_CHECK_HEADER(mp4ff.h, [], HAVE_FAAD=no)
273 AC_CHECK_LIB([faad], [NeAACDecOpen], [], HAVE_FAAD=no)
274 AC_CHECK_LIB([mp4ff], [mp4ff_meta_get_artist], [], HAVE_FAAD=no)
275 LIB_SUBST_FLAGS(faad)
276 UNSTASH_FLAGS
277 ########################################################################### mad
278 STASH_FLAGS
279 LIB_ARG_WITH([mad], [-lmad])
280 HAVE_MAD=yes
281 AC_CHECK_HEADER(mad.h, [], HAVE_MAD=no)
282 AC_CHECK_LIB([mad], [mad_stream_init], [], HAVE_MAD=no)
283 LIB_SUBST_FLAGS(mad)
284 UNSTASH_FLAGS
285 ###################################################################### libid3tag
286 STASH_FLAGS
287 LIB_ARG_WITH([id3tag], [-lid3tag -lz])
288 HAVE_ID3TAG=yes
289 AC_CHECK_HEADER(id3tag.h, [], HAVE_ID3TAG=no)
290 AC_CHECK_LIB([id3tag], [id3_file_fdopen], [], HAVE_ID3TAG=no)
291 LIB_SUBST_FLAGS(id3tag)
292 UNSTASH_FLAGS
293 ########################################################################### oss
294 STASH_FLAGS
295 LIB_ARG_WITH([oss], [])
296 AC_CHECK_HEADER(sys/soundcard.h, [HAVE_OSS=yes], [HAVE_OSS=no])
297 AC_CHECK_LIB(ossaudio, _oss_ioctl, [oss_ldflags="$oss_ldflags -lossaudio"], [])
298 LIB_SUBST_FLAGS(oss)
299 UNSTASH_FLAGS
300 ########################################################################### alsa
301 STASH_FLAGS
302 LIB_ARG_WITH([alsa], [-lasound])
303 HAVE_ALSA=yes
304 AC_CHECK_HEADER(alsa/asoundlib.h, [], HAVE_ALSA=no)
305 AC_CHECK_LIB([asound], [snd_pcm_open], [], HAVE_ALSA=no)
306 LIB_SUBST_FLAGS(alsa)
307 UNSTASH_FLAGS
308 ######################################################################### pthread
309 STASH_FLAGS
310 LIB_ARG_WITH([pthread], [-lpthread])
311 HAVE_PTHREAD=yes
312 AC_CHECK_HEADER(pthread.h, [], HAVE_PTHREAD=no)
313 AC_CHECK_LIB([pthread], [pthread_create], [], HAVE_PTHREAD=no)
314 LIB_SUBST_FLAGS(pthread)
315 UNSTASH_FLAGS
316 ########################################################################### libao
317 STASH_FLAGS
318 LIB_ARG_WITH([ao], [-lao])
319 HAVE_AO=yes
320 AC_CHECK_HEADER(ao/ao.h, [], HAVE_AO=no)
321 AC_CHECK_LIB([ao], [ao_initialize], [], HAVE_AO=no)
322 LIB_SUBST_FLAGS(ao)
323 UNSTASH_FLAGS
324 AC_DEFUN([NEED_AO_OBJECTS], [{ test $HAVE_AO = yes -a $HAVE_PTHREAD = yes; }])
325 ######################################################################## readline
326 STASH_FLAGS
327 AC_SEARCH_LIBS([tgetent], [tinfo curses terminfo termcap])
328 LIB_ARG_WITH([readline], [-lreadline $LIBS])
329 HAVE_READLINE=yes
330 AC_CHECK_HEADER([readline/readline.h], [], [HAVE_READLINE=no])
331 AC_CHECK_LIB([readline], [rl_free_keymap], [], HAVE_READLINE=no)
332 AC_CHECK_DECL(
333 [rl_free_keymap],
334 [AC_DEFINE(RL_FREE_KEYMAP_DECLARED, 1, readline >= 6.3)],
335 [],
336 [
337 #include <stdio.h>
338 #include <readline/readline.h>
339 ]
340 )
341 LIB_SUBST_FLAGS(readline)
342 UNSTASH_FLAGS
343 ############################################################# libsamplerate
344 STASH_FLAGS
345 LIB_ARG_WITH([samplerate], [-lsamplerate])
346 HAVE_SAMPLERATE=yes
347 AC_CHECK_HEADER(samplerate.h, [], HAVE_SAMPLERATE=no)
348 AC_CHECK_LIB([samplerate], [src_process], [], HAVE_SAMPLERATE=no)
349 LIB_SUBST_FLAGS(samplerate)
350 UNSTASH_FLAGS
351 ######################################################################### server
352 if test -n "$CRYPTOLIB" && test $HAVE_OSL = yes && test -n "$BISON" && \
353 test -n "$FLEX"; then
354 build_server="yes"
355 executables="$executables server"
356 server_errlist_objs="
357 server
358 afh_common
359 mp3_afh
360 vss
361 command
362 net
363 string
364 signal
365 time
366 daemon
367 http_send
368 close_on_fork
369 mm
370 crypt_common
371 base64
372 ipc
373 dccp_send
374 fd
375 user_list
376 chunk_queue
377 afs
378 aft
379 mood
380 mp
381 score
382 attribute
383 blob
384 playlist
385 sched
386 acl
387 send_common
388 udp_send
389 color
390 fec
391 wma_afh
392 wma_common
393 sideband
394 version
395 lsu
396 "
397 if test "$CRYPTOLIB" = openssl; then
398 server_errlist_objs="$server_errlist_objs crypt"
399 else
400 server_errlist_objs="$server_errlist_objs gcrypt"
401 fi
402 NEED_OGG_OBJECTS() && server_errlist_objs="$server_errlist_objs ogg_afh_common"
403 NEED_VORBIS_OBJECTS() && server_errlist_objs="$server_errlist_objs ogg_afh"
404 NEED_SPEEX_OBJECTS() && server_errlist_objs="$server_errlist_objs spx_afh spx_common"
405 NEED_OPUS_OBJECTS() && server_errlist_objs="$server_errlist_objs opus_afh opus_common"
406 NEED_FLAC_OBJECTS && server_errlist_objs="$server_errlist_objs flac_afh"
407 if test $HAVE_FAAD = yes; then
408 server_errlist_objs="$server_errlist_objs aac_afh"
409 fi
410 server_objs="$server_errlist_objs"
411 AC_SUBST(server_objs, add_dot_o($server_objs))
412 else
413 build_server="no"
414 fi
415 ############################################################# client
416 if test -n "$CRYPTOLIB"; then
417 build_client="yes"
418 executables="$executables client"
419 client_errlist_objs="
420 client
421 net
422 string
423 fd
424 lsu
425 sched
426 stdin
427 stdout
428 time
429 sideband
430 client_common
431 buffer_tree
432 crypt_common
433 base64
434 version
435 "
436 if test "$CRYPTOLIB" = openssl; then
437 client_errlist_objs="$client_errlist_objs crypt"
438 else
439 client_errlist_objs="$client_errlist_objs gcrypt"
440 fi
441 if test $HAVE_READLINE = yes; then
442 client_errlist_objs="$client_errlist_objs interactive"
443 fi
444 client_objs="$client_errlist_objs"
445 AC_SUBST(client_objs, add_dot_o($client_errlist_objs))
446 else
447 build_client="no"
448 fi
449 ############################################################# audiod
450 if test -n "$CRYPTOLIB"; then
451 build_audiod="yes"
452 executables="$executables audiod"
453 audiod_audio_formats="wma"
454 audiod_errlist_objs="$audiod_errlist_objs
455 audiod
456 signal
457 string
458 daemon
459 stat
460 net
461 crypt_common
462 base64
463 sideband
464 time
465 grab_client
466 filter_common
467 wav_filter
468 compress_filter
469 amp_filter
470 http_recv
471 dccp_recv
472 recv_common
473 fd
474 sched
475 write_common
476 file_write
477 audiod_command
478 fecdec_filter
479 client_common
480 udp_recv
481 color
482 fec
483 prebuffer_filter
484 version
485 bitstream
486 imdct
487 wma_common
488 wmadec_filter
489 buffer_tree
490 sync_filter
491 lsu
492 "
493 if test "$CRYPTOLIB" = openssl; then
494 audiod_errlist_objs="$audiod_errlist_objs crypt"
495 else
496 audiod_errlist_objs="$audiod_errlist_objs gcrypt"
497 fi
498 NEED_VORBIS_OBJECTS && {
499 audiod_errlist_objs="$audiod_errlist_objs oggdec_filter"
500 audiod_audio_formats="$audiod_audio_formats ogg"
501 }
502 NEED_SPEEX_OBJECTS && {
503 audiod_errlist_objs="$audiod_errlist_objs spxdec_filter spx_common"
504 audiod_audio_formats="$audiod_audio_formats spx"
505 }
506 NEED_OPUS_OBJECTS && {
507 audiod_errlist_objs="$audiod_errlist_objs opusdec_filter opus_common"
508 audiod_audio_formats="$audiod_audio_formats opus"
509 }
510 NEED_FLAC_OBJECTS && {
511 audiod_errlist_objs="$audiod_errlist_objs flacdec_filter"
512 audiod_audio_formats="$audiod_audio_formats flac"
513 }
514 if test $HAVE_FAAD = yes; then
515 audiod_errlist_objs="$audiod_errlist_objs aacdec_filter"
516 audiod_audio_formats="$audiod_audio_formats aac"
517 fi
518 if test $HAVE_MAD = yes; then
519 audiod_audio_formats="$audiod_audio_formats mp3"
520 audiod_errlist_objs="$audiod_errlist_objs mp3dec_filter"
521 fi
522 if test $HAVE_OSS = yes; then
523 audiod_errlist_objs="$audiod_errlist_objs oss_write"
524 fi
525 if test $HAVE_ALSA = yes; then
526 audiod_errlist_objs="$audiod_errlist_objs alsa_write"
527 fi
528 NEED_AO_OBJECTS && {
529 audiod_errlist_objs="$audiod_errlist_objs ao_write"
530 }
531 if test $HAVE_SAMPLERATE = yes; then
532 audiod_errlist_objs="$audiod_errlist_objs resample_filter check_wav"
533 fi
534 audiod_objs="$audiod_errlist_objs"
535 AC_SUBST(audiod_objs, add_dot_o($audiod_objs))
536
537 enum="$(for i in $audiod_audio_formats; do printf "AUDIO_FORMAT_${i}, " | tr '[a-z]' '[A-Z]'; done)"
538 AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMATS_ENUM, $enum NUM_AUDIO_FORMATS,
539 enum of audio formats supported by audiod)
540 names="$(for i in $audiod_audio_formats; do printf \"$i\",' ' ; done)"
541 AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMAT_ARRAY, $names, array of audio formats supported by audiod)
542 else
543 build_audiod="no"
544 fi
545 ########################################################################### mixer
546 if test $HAVE_OSS = yes -o $HAVE_ALSA = yes; then
547 build_mixer="yes"
548 executables="$executables mixer"
549 mixer_errlist_objs="mixer exec string fd version"
550 if test $HAVE_OSS = yes; then
551 mixer_errlist_objs="$mixer_errlist_objs oss_mix"
552 fi
553 if test $HAVE_ALSA = yes; then
554 mixer_errlist_objs="$mixer_errlist_objs alsa_mix"
555 fi
556 mixer_objs="$mixer_errlist_objs"
557 AC_SUBST(mixer_objs, add_dot_o($mixer_objs))
558 else
559 build_mixer="no"
560 AC_MSG_WARN([no mixer support])
561 fi
562 ########################################################################### gui
563 if test $HAVE_CURSES = yes; then
564 build_gui="yes"
565 executables="$executables gui"
566 gui_errlist_objs="
567 exec
568 signal
569 string
570 stat
571 ringbuffer
572 fd
573 gui
574 gui_theme
575 time
576 sched
577 version
578 "
579 gui_objs="$gui_errlist_objs"
580 AC_SUBST(gui_objs, add_dot_o($gui_objs))
581 else
582 build_gui="no"
583 AC_MSG_WARN([no curses lib, cannot build para_gui])
584 fi
585 ######################################################################## filter
586 filter_errlist_objs="
587 filter_common
588 wav_filter
589 compress_filter
590 filter
591 string
592 stdin
593 stdout
594 sched
595 fd
596 amp_filter
597 fecdec_filter
598 fec
599 lsu
600 version
601 prebuffer_filter
602 time
603 bitstream
604 imdct
605 wma_common
606 wmadec_filter
607 buffer_tree
608 net
609 sync_filter
610 "
611 NEED_VORBIS_OBJECTS && filter_errlist_objs="$filter_errlist_objs oggdec_filter"
612 NEED_SPEEX_OBJECTS && filter_errlist_objs="$filter_errlist_objs spxdec_filter spx_common"
613 NEED_OPUS_OBJECTS && filter_errlist_objs="$filter_errlist_objs opusdec_filter opus_common"
614 NEED_FLAC_OBJECTS && filter_errlist_objs="$filter_errlist_objs flacdec_filter"
615 if test $HAVE_FAAD = yes; then
616 filter_errlist_objs="$filter_errlist_objs aacdec_filter"
617 fi
618 if test $HAVE_MAD = yes; then
619 filter_errlist_objs="$filter_errlist_objs mp3dec_filter"
620 fi
621 if test $HAVE_SAMPLERATE = yes; then
622 filter_errlist_objs="$filter_errlist_objs resample_filter check_wav"
623 fi
624 filter_objs="$filter_errlist_objs"
625
626 AC_SUBST(filter_objs, add_dot_o($filter_objs))
627 ########################################################################## recv
628 recv_errlist_objs="
629 http_recv
630 recv_common
631 recv
632 time
633 string
634 net
635 dccp_recv
636 fd
637 sched
638 stdout
639 udp_recv
640 buffer_tree
641 afh_recv
642 afh_common
643 wma_afh
644 wma_common
645 mp3_afh
646 version
647 "
648 NEED_OGG_OBJECTS && recv_errlist_objs="$recv_errlist_objs ogg_afh_common"
649 NEED_VORBIS_OBJECTS && recv_errlist_objs="$recv_errlist_objs ogg_afh"
650 NEED_SPEEX_OBJECTS && recv_errlist_objs="$recv_errlist_objs spx_afh spx_common"
651 NEED_OPUS_OBJECTS && recv_errlist_objs="$recv_errlist_objs opus_afh opus_common"
652 NEED_FLAC_OBJECTS && recv_errlist_objs="$recv_errlist_objs flac_afh"
653
654 if test $HAVE_FAAD = yes; then
655 recv_errlist_objs="$recv_errlist_objs aac_afh"
656 fi
657 recv_objs="$recv_errlist_objs"
658 AC_SUBST(recv_objs, add_dot_o($recv_objs))
659 ########################################################################### afh
660 audio_format_handlers="mp3 wma"
661 afh_errlist_objs="
662 afh
663 string
664 fd
665 mp3_afh
666 afh_common
667 time
668 wma_afh
669 wma_common
670 version
671 "
672 NEED_OGG_OBJECTS && afh_errlist_objs="$afh_errlist_objs ogg_afh_common"
673 NEED_VORBIS_OBJECTS && {
674 afh_errlist_objs="$afh_errlist_objs ogg_afh"
675 audio_format_handlers="$audio_format_handlers ogg"
676 }
677 NEED_SPEEX_OBJECTS && {
678 afh_errlist_objs="$afh_errlist_objs spx_afh spx_common"
679 audio_format_handlers="$audio_format_handlers spx"
680 }
681 NEED_OPUS_OBJECTS && {
682 afh_errlist_objs="$afh_errlist_objs opus_afh opus_common"
683 audio_format_handlers="$audio_format_handlers opus"
684 }
685 NEED_FLAC_OBJECTS && {
686 afh_errlist_objs="$afh_errlist_objs flac_afh"
687 audio_format_handlers="$audio_format_handlers flac"
688 }
689 if test $HAVE_FAAD = yes; then
690 afh_errlist_objs="$afh_errlist_objs aac_afh"
691 audio_format_handlers="$audio_format_handlers aac"
692 fi
693
694 afh_objs="$afh_errlist_objs"
695
696 AC_SUBST(afh_objs, add_dot_o($afh_objs))
697 ########################################################################## play
698 play_errlist_objs="
699 play
700 fd
701 sched
702 buffer_tree
703 time
704 string
705 net
706 afh_recv
707 afh_common
708 wma_afh
709 wma_common
710 mp3_afh
711 recv_common
712 udp_recv
713 http_recv
714 dccp_recv
715 filter_common
716 fec
717 bitstream
718 imdct
719 wav_filter
720 compress_filter
721 amp_filter
722 prebuffer_filter
723 fecdec_filter
724 wmadec_filter
725 write_common
726 file_write
727 version
728 sync_filter
729 lsu
730 "
731 NEED_OGG_OBJECTS && play_errlist_objs="$play_errlist_objs ogg_afh_common"
732 NEED_VORBIS_OBJECTS && {
733 play_errlist_objs="$play_errlist_objs oggdec_filter ogg_afh"
734 }
735 NEED_SPEEX_OBJECTS && {
736 play_errlist_objs="$play_errlist_objs spxdec_filter spx_afh spx_common"
737 }
738 NEED_OPUS_OBJECTS &&
739 play_errlist_objs="$play_errlist_objs
740 opusdec_filter
741 opus_afh
742 opus_common
743 "
744 NEED_FLAC_OBJECTS && {
745 play_errlist_objs="$play_errlist_objs flacdec_filter flac_afh"
746 }
747 if test $HAVE_FAAD = yes; then
748 play_errlist_objs="$play_errlist_objs aac_afh aacdec_filter"
749 fi
750 if test $HAVE_MAD = yes; then
751 play_errlist_objs="$play_errlist_objs mp3dec_filter"
752 fi
753 if test $HAVE_OSS = yes; then
754 play_errlist_objs="$play_errlist_objs oss_write"
755 fi
756 if test $HAVE_ALSA = yes; then
757 play_errlist_objs="$play_errlist_objs alsa_write"
758 fi
759 NEED_AO_OBJECTS && {
760 play_errlist_objs="$play_errlist_objs ao_write"
761 }
762 if test $HAVE_READLINE = yes; then
763 play_errlist_objs="$play_errlist_objs interactive"
764 fi
765 if test $HAVE_SAMPLERATE = yes; then
766 play_errlist_objs="$play_errlist_objs resample_filter check_wav"
767 fi
768
769 play_objs="$play_errlist_objs"
770 AC_SUBST(play_objs, add_dot_o($play_objs))
771 ######################################################################### write
772 write_errlist_objs="
773 write
774 write_common
775 file_write
776 time
777 fd
778 string
779 sched
780 stdin
781 buffer_tree
782 check_wav
783 version
784 "
785
786 NEED_AO_OBJECTS && {
787 write_errlist_objs="$write_errlist_objs ao_write"
788 }
789 if test $HAVE_OSS = yes; then
790 write_errlist_objs="$write_errlist_objs oss_write"
791 fi
792 if test $HAVE_ALSA = yes; then
793 write_errlist_objs="$write_errlist_objs alsa_write"
794 fi
795 write_objs="$write_errlist_objs"
796 AC_SUBST(write_objs, add_dot_o($write_objs))
797 ######################################################################## audioc
798 audioc_errlist_objs="
799 audioc
800 string
801 lsu
802 net
803 fd
804 version
805 "
806 if test $HAVE_READLINE = yes; then
807 audioc_errlist_objs="$audioc_errlist_objs
808 buffer_tree
809 interactive
810 sched
811 time
812 "
813 fi
814 audioc_objs="$audioc_errlist_objs"
815 AC_SUBST(audioc_objs, add_dot_o($audioc_objs))
816
817 AC_DEFINE_UNQUOTED(AUDIO_FORMAT_HANDLERS, "$audio_format_handlers",
818 [formats supported by para_server and para_afh])
819 AC_SUBST(executables)
820
821 AC_OUTPUT
822 AC_MSG_NOTICE([
823 paraslash configuration:
824 ~~~~~~~~~~~~~~~~~~~~~~~~
825 crypto lib: ${CRYPTOLIB:-[none]}
826 unix socket credentials: $have_ucred
827 readline (interactive CLIs): $HAVE_READLINE
828 id3 version 2 support: $HAVE_ID3TAG
829 faad: $HAVE_FAAD
830 audio format handlers: $audio_format_handlers
831
832 para_server: $build_server
833 para_gui: $build_gui
834 para_mixer: $build_mixer
835 para_client: $build_client
836 para_audiod: $build_audiod
837 ])