]> git.tuebingen.mpg.de Git - paraslash.git/blob - configure.ac
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 ])