Rename crypt.c -> openssl.c.
[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 "
396 if test "$CRYPTOLIB" = openssl; then
397 server_errlist_objs="$server_errlist_objs openssl"
398 else
399 server_errlist_objs="$server_errlist_objs gcrypt"
400 fi
401 NEED_OGG_OBJECTS() && server_errlist_objs="$server_errlist_objs ogg_afh_common"
402 NEED_VORBIS_OBJECTS() && server_errlist_objs="$server_errlist_objs ogg_afh"
403 NEED_SPEEX_OBJECTS() && server_errlist_objs="$server_errlist_objs spx_afh spx_common"
404 NEED_OPUS_OBJECTS() && server_errlist_objs="$server_errlist_objs opus_afh opus_common"
405 NEED_FLAC_OBJECTS && server_errlist_objs="$server_errlist_objs flac_afh"
406 if test $HAVE_FAAD = yes; then
407 server_errlist_objs="$server_errlist_objs aac_afh"
408 fi
409 server_objs="$server_errlist_objs"
410 AC_SUBST(server_objs, add_dot_o($server_objs))
411 else
412 build_server="no"
413 fi
414 ############################################################# client
415 if test -n "$CRYPTOLIB"; then
416 build_client="yes"
417 executables="$executables client"
418 client_errlist_objs="
419 client
420 net
421 string
422 fd
423 sched
424 stdin
425 stdout
426 time
427 sideband
428 client_common
429 buffer_tree
430 crypt_common
431 base64
432 version
433 "
434 if test "$CRYPTOLIB" = openssl; then
435 client_errlist_objs="$client_errlist_objs openssl"
436 else
437 client_errlist_objs="$client_errlist_objs gcrypt"
438 fi
439 if test $HAVE_READLINE = yes; then
440 client_errlist_objs="$client_errlist_objs interactive"
441 fi
442 client_objs="$client_errlist_objs"
443 AC_SUBST(client_objs, add_dot_o($client_errlist_objs))
444 else
445 build_client="no"
446 fi
447 ############################################################# audiod
448 if test -n "$CRYPTOLIB"; then
449 build_audiod="yes"
450 executables="$executables audiod"
451 audiod_audio_formats="wma"
452 audiod_errlist_objs="$audiod_errlist_objs
453 audiod
454 signal
455 string
456 daemon
457 stat
458 net
459 crypt_common
460 base64
461 sideband
462 time
463 grab_client
464 filter_common
465 wav_filter
466 compress_filter
467 amp_filter
468 http_recv
469 dccp_recv
470 recv_common
471 fd
472 sched
473 write_common
474 file_write
475 audiod_command
476 fecdec_filter
477 client_common
478 udp_recv
479 color
480 fec
481 prebuffer_filter
482 version
483 bitstream
484 imdct
485 wma_common
486 wmadec_filter
487 buffer_tree
488 sync_filter
489 "
490 if test "$CRYPTOLIB" = openssl; then
491 audiod_errlist_objs="$audiod_errlist_objs openssl"
492 else
493 audiod_errlist_objs="$audiod_errlist_objs gcrypt"
494 fi
495 NEED_VORBIS_OBJECTS && {
496 audiod_errlist_objs="$audiod_errlist_objs oggdec_filter"
497 audiod_audio_formats="$audiod_audio_formats ogg"
498 }
499 NEED_SPEEX_OBJECTS && {
500 audiod_errlist_objs="$audiod_errlist_objs spxdec_filter spx_common"
501 audiod_audio_formats="$audiod_audio_formats spx"
502 }
503 NEED_OPUS_OBJECTS && {
504 audiod_errlist_objs="$audiod_errlist_objs opusdec_filter opus_common"
505 audiod_audio_formats="$audiod_audio_formats opus"
506 }
507 NEED_FLAC_OBJECTS && {
508 audiod_errlist_objs="$audiod_errlist_objs flacdec_filter"
509 audiod_audio_formats="$audiod_audio_formats flac"
510 }
511 if test $HAVE_FAAD = yes; then
512 audiod_errlist_objs="$audiod_errlist_objs aacdec_filter"
513 audiod_audio_formats="$audiod_audio_formats aac"
514 fi
515 if test $HAVE_MAD = yes; then
516 audiod_audio_formats="$audiod_audio_formats mp3"
517 audiod_errlist_objs="$audiod_errlist_objs mp3dec_filter"
518 fi
519 if test $HAVE_OSS = yes; then
520 audiod_errlist_objs="$audiod_errlist_objs oss_write"
521 fi
522 if test $HAVE_ALSA = yes; then
523 audiod_errlist_objs="$audiod_errlist_objs alsa_write"
524 fi
525 NEED_AO_OBJECTS && {
526 audiod_errlist_objs="$audiod_errlist_objs ao_write"
527 }
528 if test $HAVE_SAMPLERATE = yes; then
529 audiod_errlist_objs="$audiod_errlist_objs resample_filter check_wav"
530 fi
531 audiod_objs="$audiod_errlist_objs"
532 AC_SUBST(audiod_objs, add_dot_o($audiod_objs))
533
534 enum="$(for i in $audiod_audio_formats; do printf "AUDIO_FORMAT_${i}, " | tr '[a-z]' '[A-Z]'; done)"
535 AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMATS_ENUM, $enum NUM_AUDIO_FORMATS,
536 enum of audio formats supported by audiod)
537 names="$(for i in $audiod_audio_formats; do printf \"$i\",' ' ; done)"
538 AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMAT_ARRAY, $names, array of audio formats supported by audiod)
539 else
540 build_audiod="no"
541 fi
542 ########################################################################### mixer
543 if test $HAVE_OSS = yes -o $HAVE_ALSA = yes; then
544 build_mixer="yes"
545 executables="$executables mixer"
546 mixer_errlist_objs="mixer exec string fd version"
547 if test $HAVE_OSS = yes; then
548 mixer_errlist_objs="$mixer_errlist_objs oss_mix"
549 fi
550 if test $HAVE_ALSA = yes; then
551 mixer_errlist_objs="$mixer_errlist_objs alsa_mix"
552 fi
553 mixer_objs="$mixer_errlist_objs"
554 AC_SUBST(mixer_objs, add_dot_o($mixer_objs))
555 else
556 build_mixer="no"
557 AC_MSG_WARN([no mixer support])
558 fi
559 ########################################################################### gui
560 if test $HAVE_CURSES = yes; then
561 build_gui="yes"
562 executables="$executables gui"
563 gui_errlist_objs="
564 exec
565 signal
566 string
567 stat
568 ringbuffer
569 fd
570 gui
571 gui_theme
572 time
573 sched
574 version
575 "
576 gui_objs="$gui_errlist_objs"
577 AC_SUBST(gui_objs, add_dot_o($gui_objs))
578 else
579 build_gui="no"
580 AC_MSG_WARN([no curses lib, cannot build para_gui])
581 fi
582 ######################################################################## filter
583 filter_errlist_objs="
584 filter_common
585 wav_filter
586 compress_filter
587 filter
588 string
589 stdin
590 stdout
591 sched
592 fd
593 amp_filter
594 fecdec_filter
595 fec
596 version
597 prebuffer_filter
598 time
599 bitstream
600 imdct
601 wma_common
602 wmadec_filter
603 buffer_tree
604 net
605 sync_filter
606 "
607 NEED_VORBIS_OBJECTS && filter_errlist_objs="$filter_errlist_objs oggdec_filter"
608 NEED_SPEEX_OBJECTS && filter_errlist_objs="$filter_errlist_objs spxdec_filter spx_common"
609 NEED_OPUS_OBJECTS && filter_errlist_objs="$filter_errlist_objs opusdec_filter opus_common"
610 NEED_FLAC_OBJECTS && filter_errlist_objs="$filter_errlist_objs flacdec_filter"
611 if test $HAVE_FAAD = yes; then
612 filter_errlist_objs="$filter_errlist_objs aacdec_filter"
613 fi
614 if test $HAVE_MAD = yes; then
615 filter_errlist_objs="$filter_errlist_objs mp3dec_filter"
616 fi
617 if test $HAVE_SAMPLERATE = yes; then
618 filter_errlist_objs="$filter_errlist_objs resample_filter check_wav"
619 fi
620 filter_objs="$filter_errlist_objs"
621
622 AC_SUBST(filter_objs, add_dot_o($filter_objs))
623 ########################################################################## recv
624 recv_errlist_objs="
625 http_recv
626 recv_common
627 recv
628 time
629 string
630 net
631 dccp_recv
632 fd
633 sched
634 stdout
635 udp_recv
636 buffer_tree
637 afh_recv
638 afh_common
639 wma_afh
640 wma_common
641 mp3_afh
642 version
643 "
644 NEED_OGG_OBJECTS && recv_errlist_objs="$recv_errlist_objs ogg_afh_common"
645 NEED_VORBIS_OBJECTS && recv_errlist_objs="$recv_errlist_objs ogg_afh"
646 NEED_SPEEX_OBJECTS && recv_errlist_objs="$recv_errlist_objs spx_afh spx_common"
647 NEED_OPUS_OBJECTS && recv_errlist_objs="$recv_errlist_objs opus_afh opus_common"
648 NEED_FLAC_OBJECTS && recv_errlist_objs="$recv_errlist_objs flac_afh"
649
650 if test $HAVE_FAAD = yes; then
651 recv_errlist_objs="$recv_errlist_objs aac_afh"
652 fi
653 recv_objs="$recv_errlist_objs"
654 AC_SUBST(recv_objs, add_dot_o($recv_objs))
655 ########################################################################### afh
656 audio_format_handlers="mp3 wma"
657 afh_errlist_objs="
658 afh
659 string
660 fd
661 mp3_afh
662 afh_common
663 time
664 wma_afh
665 wma_common
666 version
667 "
668 NEED_OGG_OBJECTS && afh_errlist_objs="$afh_errlist_objs ogg_afh_common"
669 NEED_VORBIS_OBJECTS && {
670 afh_errlist_objs="$afh_errlist_objs ogg_afh"
671 audio_format_handlers="$audio_format_handlers ogg"
672 }
673 NEED_SPEEX_OBJECTS && {
674 afh_errlist_objs="$afh_errlist_objs spx_afh spx_common"
675 audio_format_handlers="$audio_format_handlers spx"
676 }
677 NEED_OPUS_OBJECTS && {
678 afh_errlist_objs="$afh_errlist_objs opus_afh opus_common"
679 audio_format_handlers="$audio_format_handlers opus"
680 }
681 NEED_FLAC_OBJECTS && {
682 afh_errlist_objs="$afh_errlist_objs flac_afh"
683 audio_format_handlers="$audio_format_handlers flac"
684 }
685 if test $HAVE_FAAD = yes; then
686 afh_errlist_objs="$afh_errlist_objs aac_afh"
687 audio_format_handlers="$audio_format_handlers aac"
688 fi
689
690 afh_objs="$afh_errlist_objs"
691
692 AC_SUBST(afh_objs, add_dot_o($afh_objs))
693 ########################################################################## play
694 play_errlist_objs="
695 play
696 fd
697 sched
698 buffer_tree
699 time
700 string
701 net
702 afh_recv
703 afh_common
704 wma_afh
705 wma_common
706 mp3_afh
707 recv_common
708 udp_recv
709 http_recv
710 dccp_recv
711 filter_common
712 fec
713 bitstream
714 imdct
715 wav_filter
716 compress_filter
717 amp_filter
718 prebuffer_filter
719 fecdec_filter
720 wmadec_filter
721 write_common
722 file_write
723 version
724 sync_filter
725 "
726 NEED_OGG_OBJECTS && play_errlist_objs="$play_errlist_objs ogg_afh_common"
727 NEED_VORBIS_OBJECTS && {
728 play_errlist_objs="$play_errlist_objs oggdec_filter ogg_afh"
729 }
730 NEED_SPEEX_OBJECTS && {
731 play_errlist_objs="$play_errlist_objs spxdec_filter spx_afh spx_common"
732 }
733 NEED_OPUS_OBJECTS &&
734 play_errlist_objs="$play_errlist_objs
735 opusdec_filter
736 opus_afh
737 opus_common
738 "
739 NEED_FLAC_OBJECTS && {
740 play_errlist_objs="$play_errlist_objs flacdec_filter flac_afh"
741 }
742 if test $HAVE_FAAD = yes; then
743 play_errlist_objs="$play_errlist_objs aac_afh aacdec_filter"
744 fi
745 if test $HAVE_MAD = yes; then
746 play_errlist_objs="$play_errlist_objs mp3dec_filter"
747 fi
748 if test $HAVE_OSS = yes; then
749 play_errlist_objs="$play_errlist_objs oss_write"
750 fi
751 if test $HAVE_ALSA = yes; then
752 play_errlist_objs="$play_errlist_objs alsa_write"
753 fi
754 NEED_AO_OBJECTS && {
755 play_errlist_objs="$play_errlist_objs ao_write"
756 }
757 if test $HAVE_READLINE = yes; then
758 play_errlist_objs="$play_errlist_objs interactive"
759 fi
760 if test $HAVE_SAMPLERATE = yes; then
761 play_errlist_objs="$play_errlist_objs resample_filter check_wav"
762 fi
763
764 play_objs="$play_errlist_objs"
765 AC_SUBST(play_objs, add_dot_o($play_objs))
766 ######################################################################### write
767 write_errlist_objs="
768 write
769 write_common
770 file_write
771 time
772 fd
773 string
774 sched
775 stdin
776 buffer_tree
777 check_wav
778 version
779 "
780
781 NEED_AO_OBJECTS && {
782 write_errlist_objs="$write_errlist_objs ao_write"
783 }
784 if test $HAVE_OSS = yes; then
785 write_errlist_objs="$write_errlist_objs oss_write"
786 fi
787 if test $HAVE_ALSA = yes; then
788 write_errlist_objs="$write_errlist_objs alsa_write"
789 fi
790 write_objs="$write_errlist_objs"
791 AC_SUBST(write_objs, add_dot_o($write_objs))
792 ######################################################################## audioc
793 audioc_errlist_objs="
794 audioc
795 string
796 net
797 fd
798 version
799 "
800 if test $HAVE_READLINE = yes; then
801 audioc_errlist_objs="$audioc_errlist_objs
802 buffer_tree
803 interactive
804 sched
805 time
806 "
807 fi
808 audioc_objs="$audioc_errlist_objs"
809 AC_SUBST(audioc_objs, add_dot_o($audioc_objs))
810
811 AC_DEFINE_UNQUOTED(AUDIO_FORMAT_HANDLERS, "$audio_format_handlers",
812 [formats supported by para_server and para_afh])
813 AC_SUBST(executables)
814
815 AC_OUTPUT
816 AC_MSG_NOTICE([
817 paraslash configuration:
818 ~~~~~~~~~~~~~~~~~~~~~~~~
819 crypto lib: ${CRYPTOLIB:-[none]}
820 unix socket credentials: $have_ucred
821 readline (interactive CLIs): $HAVE_READLINE
822 id3 version 2 support: $HAVE_ID3TAG
823 faad: $HAVE_FAAD
824 audio format handlers: $audio_format_handlers
825
826 para_server: $build_server
827 para_gui: $build_gui
828 para_mixer: $build_mixer
829 para_client: $build_client
830 para_audiod: $build_audiod
831 ])