build: Rewrite objlist_to_errlist().
[paraslash.git] / configure.ac
1 # -*- Autoconf -*-
2 # Process this file with autoconf to produce a configure script.
3
4 AC_PREREQ([2.61])
5
6 AC_INIT([paraslash],[git],[maan@systemlinux.org])
7 AC_CONFIG_HEADER([config.h])
8
9 AC_CONFIG_FILES([Makefile])
10 AC_DEFUN([add_dot_o],[$(for i in $@; do printf "$i.o "; done)])
11 AC_DEFUN([add_cmdline],[$(for i in $@; do printf "${i}.cmdline "; done)])
12 AC_DEFUN([make_errlist_defines], \
13 $(for i in $@; do \
14 printf "DEFINE_ERRLIST($(echo $i | tr 'a-z' 'A-Z'));"; \
15 done) \
16 )
17 AC_DEFUN([make_para_errlists], \
18 $(for i in $@; do \
19 printf "PARA_ERRLIST($(echo $i | tr 'a-z' 'A-Z')), "; \
20 done) \
21 )
22 AC_DEFUN([objlist_to_errlist],[ \
23 make_errlist_defines($@) \
24 [const char **para_errlist[[]]] = {make_para_errlists($@)} \
25 ])
26
27 AC_PATH_PROG(UNAMEPATH, uname, no)
28 if test "$UNAMEPATH" = "no"; then
29 AC_MSG_ERROR(unable to determine system type)
30 fi
31 AC_MSG_CHECKING(os type)
32 OSTYPE="`$UNAMEPATH -s`"
33 AC_MSG_RESULT("$OSTYPE")
34
35 if test "$OSTYPE" = "SunOS"; then
36 # needed on SunOS for socket magic
37 arch_cppflags="-D_XOPEN_SOURCE=500 -D__EXTENSIONS__"
38 AC_SUBST(arch_cppflags)
39 fi
40
41 AC_C_BIGENDIAN()
42
43 AC_PATH_PROG([gengetopt], [gengetopt])
44 test -z "$gengetopt" && AC_MSG_ERROR(
45 [gengetopt is required to build this package])
46
47 AC_PATH_PROG([help2man], [help2man])
48 test -z "$help2man" && AC_MSG_ERROR(
49 [help2man is required to build this package])
50
51 AC_PATH_PROG([install], [install])
52 test -z "$install" && AC_MSG_ERROR(
53 [The install program is required to build this package])
54
55 AC_PROG_CC
56 AC_PROG_CPP
57
58 AC_HEADER_DIRENT
59 AC_HEADER_STDC
60 AC_HEADER_SYS_WAIT
61 AC_HEADER_STDBOOL
62 AC_CHECK_HEADERS([arpa/inet.h ctype.h fcntl.h limits.h netdb.h netinet/in.h \
63 stdlib.h string.h sys/socket.h sys/time.h sys/timeb.h sys/un.h \
64 sys/ipc.h unistd.h utime.h stddef.h],
65 [], [AC_MSG_ERROR([$ac_header not found])])
66
67 # Checks for typedefs, structures, and compiler characteristics.
68 AC_C_CONST
69 AC_C_INLINE
70 AC_TYPE_OFF_T
71 AC_TYPE_PID_T
72 AC_TYPE_SIZE_T
73 AC_HEADER_TIME
74 AC_STRUCT_TM
75 AC_TYPE_INT8_T
76 AC_TYPE_INT16_T
77 AC_TYPE_INT32_T
78 AC_TYPE_INT64_T
79 AC_TYPE_MODE_T
80 AC_TYPE_SSIZE_T
81 AC_TYPE_UID_T
82 AC_TYPE_UINT8_T
83 AC_TYPE_UINT16_T
84 AC_TYPE_UINT32_T
85 AC_TYPE_UINT64_T
86
87 # Checks for library functions.
88 AC_FUNC_FORK
89 AC_PROG_GCC_TRADITIONAL
90 AC_FUNC_MEMCMP
91 AC_FUNC_MKTIME
92 AC_FUNC_MMAP
93 AC_FUNC_SELECT_ARGTYPES
94 AC_FUNC_STAT
95 AC_FUNC_STRFTIME
96 AC_FUNC_VPRINTF
97 AC_FUNC_CLOSEDIR_VOID
98 AC_FUNC_LSTAT
99
100 AC_CHECK_FUNCS([atexit dup2 memchr memmove memset \
101 regcomp select strchr strdup strerror strstr strtol uname \
102 fchdir gettimeofday localtime_r munmap strcasecmp strcspn \
103 strncasecmp strrchr strspn alarm mkdir inet_ntoa socket], [],
104 [AC_MSG_ERROR([function not found, cannot live without it])])
105
106 executables="recv filter audioc write afh play"
107 ################################################################## clock_gettime
108 clock_gettime_lib=
109 AC_CHECK_LIB([c], [clock_gettime], [clock_gettime_lib=c], [
110 AC_CHECK_LIB([rt], [clock_gettime], [clock_gettime_lib=rt], [], [])
111 ])
112 if test -n "$clock_gettime_lib"; then
113 AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [
114 define to 1 if clock_gettime() is supported])
115 fi
116 if test "$clock_gettime_lib" = "rt"; then
117 AC_SUBST(clock_gettime_ldflags, -lrt)
118 fi
119 ########################################################################### osl
120 have_osl=yes
121 OLD_CPPFLAGS="$CPPFLAGS"
122 OLD_LDFLAGS="$LDFLAGS"
123 OLD_LIBS="$LIBS"
124 AC_ARG_WITH(osl_headers, [AS_HELP_STRING(--with-osl-headers=dir,
125 [look for osl.h also in dir])])
126 if test -n "$with_osl_headers"; then
127 osl_cppflags="-I$with_osl_headers"
128 CPPFLAGS="$CPPFLAGS $osl_cppflags"
129 fi
130 AC_ARG_WITH(osl_libs, [AS_HELP_STRING(--with-osl-libs=dir,
131 [look for libosl also in dir])])
132 if test -n "$with_osl_libs"; then
133 osl_libs="-L$with_osl_libs"
134 LDFLAGS="$LDFLAGS $osl_libs"
135 fi
136
137 AC_CHECK_HEADER(osl.h, [], have_osl=no)
138 AC_CHECK_LIB([osl], [osl_open_table], [], have_osl=no)
139 if test "$have_osl" = "yes"; then
140 AC_SUBST(osl_cppflags)
141 osl_ldflags="$osl_libs -losl"
142 AC_SUBST(osl_ldflags)
143 else
144 AC_MSG_WARN([libosl not found, can not build para_server.
145 Download libosl at
146 http://systemlinux.org/~maan/osl
147 or execute
148 git clone git://git.tuebingen.mpg.de/osl
149 ])
150 fi
151 CPPFLAGS="$OLD_CPPFLAGS"
152 LDFLAGS="$OLD_LDFLAGS"
153 LIBS="$OLD_LIBS"
154 ########################################################################### crypto
155 AC_ARG_ENABLE(cryptolib, [AS_HELP_STRING(--enable-cryptolib=lib, [
156 Force using crypto library "lib". This package requires either
157 openssl or libgcrypt being installed. Possible values for "lib"
158 are thus "openssl" and "gcrypt". If this option is not given,
159 openssl is tried first. If openssl was not found, gcrypt is
160 tried next.])])
161
162 case "$enable_cryptolib" in
163 "openssl") check_openssl="yes"; check_gcrypt="no";;
164 "gcrypt") check_openssl="no"; check_gcrypt="yes";;
165 "") check_openssl="yes"; check_gcrypt="yes";;
166 *) AC_MSG_ERROR([invalid value "$enable_cryptolib" for --enable-cryptolib]);;
167 esac
168 ###################################################################### openssl
169 if test "$check_openssl" = "yes"; then
170 OLD_CPPFLAGS="$CPPFLAGS"
171 OLD_LDFLAGS="$LDFLAGS"
172 OLD_LIBS="$LIBS"
173 have_openssl="yes"
174 AC_ARG_WITH(openssl_headers, [AS_HELP_STRING(--with-openssl-headers=dir,
175 [look for openssl headers also in dir])])
176 if test -n "$with_openssl_headers"; then
177 openssl_cppflags="-I$with_openssl_headers"
178 CPPFLAGS="$CPPFLAGS $openssl_cppflags"
179 fi
180 AC_ARG_WITH(openssl_libs, [AS_HELP_STRING(--with-openssl-libs=dir,
181 [look for openssl libraries also in dir])])
182 if test -n "$with_openssl_libs"; then
183 openssl_libs="-L$with_openssl_libs"
184 LDFLAGS="$LDFLAGS $openssl_libs"
185 fi
186 AC_CHECK_HEADER(openssl/ssl.h, [], [have_openssl="no"])
187 AC_CHECK_LIB([crypto], [RAND_bytes], [], [have_openssl="no"])
188 if test "$have_openssl" = "no" -a -z "$with_openssl_headers$with_openssl_libs"; then
189 # try harder: openssl is sometimes installed in /usr/local/ssl
190 openssl_cppflags="-I/usr/local/ssl/include"
191 CPPFLAGS="$CPPFLAGS $openssl_cppflags"
192 openssl_libs="-L/usr/local/ssl/lib"
193 LDFLAGS="$LDFLAGS $openssl_libs"
194 # clear cache
195 unset ac_cv_header_openssl_ssl_h 2> /dev/null
196 unset ac_cv_lib_crypto_RAND_bytes 2> /dev/null
197 AC_CHECK_HEADER(openssl/ssl.h, [have_openssl="yes"], [])
198 if test "$have_openssl" = "yes"; then
199 AC_CHECK_LIB([crypto], [RAND_bytes], [], [have_openssl="no"])
200 fi
201 fi
202 if test "$have_openssl" = "yes"; then
203 AC_DEFINE(HAVE_OPENSSL, 1, [define to 1 to turn on openssl support])
204 AC_SUBST(openssl_cppflags)
205 openssl_ldflags="$openssl_libs -lssl -lcrypto"
206 AC_SUBST(openssl_ldflags)
207
208 check_gcrypt="no"
209 else
210 AC_MSG_WARN([openssl libraries not found])
211 fi
212 CPPFLAGS="$OLD_CPPFLAGS"
213 LDFLAGS="$OLD_LDFLAGS"
214 LIBS="$OLD_LIBS"
215 else
216 have_openssl="no"
217 fi
218 ########################################################################### gcrypt
219 if test "$check_gcrypt" = "yes"; then
220 OLD_CPPFLAGS="$CPPFLAGS"
221 OLD_LDFLAGS="$LDFLAGS"
222 OLD_LIBS="$LIBS"
223 have_gcrypt="yes"
224 AC_ARG_WITH(gcrypt_headers, [AS_HELP_STRING(--with-gcrypt-headers=dir,
225 [look for gcrypt headers also in dir])])
226 if test -n "$with_gcrypt_headers"; then
227 gcrypt_cppflags="-I$with_gcrypt_headers"
228 CPPFLAGS="$CPPFLAGS $gcrypt_cppflags"
229 fi
230 AC_ARG_WITH(gcrypt_libs, [AS_HELP_STRING(--with-gcrypt-libs=dir,
231 [look for libgcrypt also in dir])])
232 if test -n "$with_gcrypt_libs"; then
233 gcrypt_libs="-L$with_gcrypt_libs"
234 LDFLAGS="$LDFLAGS $gcrypt_libs"
235 fi
236 AC_CHECK_HEADER(gcrypt.h, [], [have_gcrypt="no"])
237 AC_CHECK_LIB([gcrypt], [gcry_randomize], [], [have_gcrypt="no"])
238 if test "$have_gcrypt" = "yes"; then
239 AC_DEFINE(HAVE_GCRYPT, 1, [define to 1 to turn on gcrypt support])
240 AC_SUBST(gcrypt_cppflags)
241 gcrypt_ldflags="$gcrypt_libs -lgcrypt"
242 AC_SUBST(gcrypt_ldflags)
243 else
244 AC_MSG_WARN([gcrypt library not found])
245 fi
246 CPPFLAGS="$OLD_CPPFLAGS"
247 LDFLAGS="$OLD_LDFLAGS"
248 LIBS="$OLD_LIBS"
249 else
250 have_gcrypt="no"
251 fi
252 ########################################################################### libsocket
253 AC_CHECK_LIB([c], [socket],
254 [socket_ldlflags=],
255 [socket_ldflags="-lsocket"]
256 )
257 AC_SUBST(socket_ldflags)
258 ########################################################################### libnsl
259 AC_CHECK_LIB([c], [gethostbyname],
260 [nsl_ldflags=],
261 [nsl_ldflags="-lnsl"]
262 )
263 AC_SUBST(nsl_ldflags)
264 ########################################################################### ucred
265 AC_MSG_CHECKING(for struct ucred)
266 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
267 #define _GNU_SOURCE
268 #include <sys/types.h>
269 #include <sys/socket.h>
270 ]], [[
271 struct ucred sucred; sucred.pid=0;
272 ]])],[have_ucred=yes],[have_ucred=no])
273 AC_MSG_RESULT($have_ucred)
274 if test ${have_ucred} = yes; then
275 AC_DEFINE(HAVE_UCRED, 1, define to 1 you have struct ucred)
276 fi
277 ########################################################################### gengetopt
278 echo 'option "z" z "" flag off' | $gengetopt --file-name conftest-ggo &&
279 AC_CHECK_DECL(
280 [gengetopt_args_info_description],
281 [ggo_descriptions_declared=yes],
282 [ggo_descriptions_declared=no],
283 [#include "conftest-ggo.h"]
284 )
285 AC_SUBST(ggo_descriptions_declared)
286 ########################################################################### curses
287 have_curses="yes"
288 OLD_CPPFLAGS="$CPPFLAGS"
289 OLD_LDFLAGS="$LDFLAGS"
290 OLD_LIBS="$LIBS"
291 AC_ARG_WITH(curses_headers, [AS_HELP_STRING(--with-curses-headers=dir,
292 [look for curses.h also in dir])])
293 if test -n "$with_curses_headers"; then
294 curses_cppflags="-I$with_curses_headers"
295 CPPFLAGS="$CPPFLAGS $curses_cppflags"
296 fi
297 AC_ARG_WITH(curses_libs, [AS_HELP_STRING(--with-curses-libs=dir,
298 [look for libcurses also in dir])])
299 if test -n "$with_curses_libs"; then
300 curses_libs="-L$with_curses_libs"
301 LDFLAGS="$LDFLAGS $curses_libs"
302 fi
303 AC_CHECK_HEADER(curses.h, [], [
304 have_curses="no"
305 ])
306 curses_ldflags="$curses_libs"
307 AC_CHECK_LIB([ncursesw], [initscr],
308 [curses_ldflags="$curses_libs -lncursesw"], [
309 AC_CHECK_LIB([curses], [initscr],
310 [curses_ldflags="$curses_libs -lcurses"],
311 [have_curses="no"]
312 )
313 ]
314 )
315 AC_SUBST(curses_cppflags)
316 AC_SUBST(curses_ldflags)
317 CPPFLAGS="$OLD_CPPFLAGS"
318 LDFLAGS="$OLD_LDFLAGS"
319 LIBS="$OLD_LIBS"
320 ########################################################################### ip_mreqn
321 AC_MSG_CHECKING(for struct ip_mreqn (UDPv4 multicast))
322 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
323 #include <netdb.h>
324 #include <net/if.h>
325 ]], [[
326 struct ip_mreqn mn;
327 mn.imr_ifindex = 0;
328 ]])],[have_ip_mreqn=yes],[have_ip_mreqn=no])
329 AC_MSG_RESULT($have_ip_mreqn)
330 if test ${have_ip_mreqn} = yes; then
331 AC_DEFINE(HAVE_IP_MREQN, 1, define to 1 you have struct ip_mreqn)
332 fi
333 ########################################################################### osx
334
335 AC_MSG_CHECKING(for CoreAudio (MacOs))
336 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
337 #include <CoreAudio/CoreAudio.h>
338 ]], [[
339 AudioDeviceID id;
340 ]])],[have_core_audio=yes],[have_core_audio=no])
341 AC_MSG_RESULT($have_core_audio)
342 if test ${have_core_audio} = yes; then
343 f1="-framework CoreAudio"
344 f2="-framework AudioToolbox"
345 f3="-framework AudioUnit"
346 f4="-framework CoreServices"
347 core_audio_ldflags="$f1 $f2 $f3 $f4"
348 AC_SUBST(core_audio_ldflags)
349 AC_DEFINE(HAVE_CORE_AUDIO, 1, define to 1 on Mac Os X)
350 fi
351 ####################################################### ogg/vorbis/speex/opus
352 have_ogg="yes"
353 OLD_CPPFLAGS="$CPPFLAGS"
354 OLD_LDFLAGS="$LDFLAGS"
355 OLD_LIBS="$LIBS"
356 AC_ARG_WITH(ogg_headers, [AS_HELP_STRING(--with-ogg-headers=dir,
357 [look for ogg headers also in dir])])
358 AC_ARG_WITH(ogg_libs, [AS_HELP_STRING(--with-ogg-libs=dir,
359 [look for ogg libs also in dir])])
360 AC_ARG_WITH(vorbis_headers, [AS_HELP_STRING(--with-vorbis-headers=dir,
361 [look for vorbis headers also in dir])])
362 AC_ARG_WITH(vorbis_libs, [AS_HELP_STRING(--with-vorbis-libs=dir,
363 [look for vorbis libs also in dir])])
364 AC_ARG_WITH(speex_headers, [AS_HELP_STRING(--with-speex-headers=dir,
365 [look for speex headers also in dir])])
366 AC_ARG_WITH(speex_libs, [AS_HELP_STRING(--with-speex-libs=dir,
367 [look for speex libs also in dir])])
368 AC_ARG_WITH(opus_headers, [AS_HELP_STRING(--with-opus-headers=dir,
369 [look for opus headers also in dir])])
370 AC_ARG_WITH(opus_libs, [AS_HELP_STRING(--with-opus-libs=dir,
371 [look for opus libs also in dir])])
372
373 if test -n "$with_ogg_headers"; then
374 ogg_cppflags="-I$with_ogg_headers"
375 CPPFLAGS="$CPPFLAGS $ogg_cppflags"
376 fi
377 if test -n "$with_ogg_libs"; then
378 ogg_libs="-L$with_ogg_libs"
379 LDFLAGS="$LDFLAGS $ogg_libs"
380 fi
381 AC_CHECK_HEADERS([ogg/ogg.h], [], [ have_ogg="no"; ])
382 AC_CHECK_LIB([ogg], [ogg_stream_init], [], [ have_ogg="no" ])
383
384 have_vorbis="yes"
385 have_speex="yes"
386 have_opus="yes"
387 if test "$have_ogg" = "yes"; then
388 # vorbis
389 if test -n "$with_vorbis_headers"; then
390 vorbis_cppflags="-I$with_vorbis_headers"
391 CPPFLAGS="$CPPFLAGS $vorbis_cppflags"
392 fi
393 if test -n "$with_vorbis_libs"; then
394 vorbis_libs="-L$with_vorbis_libs"
395 LDFLAGS="$LDFLAGS $vorbis_libs"
396 fi
397 AC_CHECK_HEADERS([vorbis/codec.h], [], [ have_vorbis="no" ])
398 AC_CHECK_LIB([vorbis], [vorbis_info_init], [], [ have_vorbis="no" ])
399
400 # speex
401 if test -n "$with_speex_headers"; then
402 speex_cppflags="-I$with_speex_headers"
403 CPPFLAGS="$CPPFLAGS $speex_cppflags"
404 fi
405 if test -n "$with_speex_libs"; then
406 speex_libs="-L$with_speex_libs"
407 LDFLAGS="$LDFLAGS $speex_libs"
408 fi
409 AC_CHECK_LIB([speex], [speex_decoder_init], [], [ have_speex="no" ])
410 AC_CHECK_HEADERS([speex/speex.h], [], [ have_speex="no" ])
411
412 # opus
413 if test -n "$with_opus_headers"; then
414 opus_cppflags="-I$with_opus_headers"
415 CPPFLAGS="$CPPFLAGS $opus_cppflags"
416 fi
417 if test -n "$with_opus_libs"; then
418 opus_libs="-L$with_opus_libs"
419 LDFLAGS="$LDFLAGS $opus_libs"
420 fi
421 AC_CHECK_LIB([opus], [opus_multistream_decode], [], [ have_opus="no" ])
422 AC_CHECK_HEADERS([opus/opus.h], [], [ have_opus="no" ])
423 else
424 AC_MSG_WARN([vorbis/speex/opus depend on libogg, which was not detected])
425 have_vorbis="no"
426 have_speex="no"
427 have_opus="no"
428 fi
429
430 msg="support in para_server/para_filter/para_afh"
431 if test "$have_vorbis" = "yes" || \
432 test "$have_speex" = "yes" || \
433 test "$have_opus" = "yes"; then
434 AC_SUBST(ogg_cppflags)
435 ogg_ldflags="$ogg_libs -logg"
436 if test "$OSTYPE" = "Darwin"; then
437 ogg_ldflags="-Wl,-bind_at_load $ogg_ldflags"
438 fi
439 AC_SUBST(ogg_ldflags)
440 fi
441 if test "$have_vorbis" = "yes"; then
442 AC_DEFINE(HAVE_OGGVORBIS, 1, define to 1 to turn on ogg/vorbis support)
443 vorbis_ldflags="$vorbis_libs -lvorbis -lvorbisfile"
444 AC_SUBST(vorbis_ldflags)
445 fi
446 if test "$have_speex" = "yes"; then
447 AC_DEFINE(HAVE_SPEEX, 1, define to 1 to turn on ogg/speex support)
448 AC_SUBST(speex_cppflags)
449 speex_ldflags="$speex_libs -lspeex"
450 AC_SUBST(speex_ldflags)
451 else
452 AC_MSG_WARN([no ogg/speex $msg])
453 fi
454 if test "$have_opus" = "yes"; then
455 AC_DEFINE(HAVE_OPUS, 1, define to 1 to turn on ogg/opus support)
456 AC_SUBST(opus_cppflags)
457 opus_ldflags="$opus_libs -lopus"
458 AC_SUBST(opus_ldflags)
459 audio_format_handlers="$audio_format_handlers opus"
460 else
461 AC_MSG_WARN([no ogg/opus $msg])
462 fi
463 CPPFLAGS="$OLD_CPPFLAGS"
464 LDFLAGS="$OLD_LDFLAGS"
465 LIBS="$OLD_LIBS"
466 ########################################################################### faad
467 have_faad=yes
468 OLD_CPPFLAGS="$CPPFLAGS"
469 OLD_LDFLAGS="$LDFLAGS"
470 OLD_LIBS="$LIBS"
471 AC_ARG_WITH(faad_headers, [AS_HELP_STRING(--with-faad-headers=dir,
472 [look for neaacdec.h also in dir])])
473 if test -n "$with_faad_headers"; then
474 faad_cppflags="-I$with_faad_headers"
475 CPPFLAGS="$CPPFLAGS $faad_cppflags"
476 fi
477 AC_ARG_WITH(faad_libs, [AS_HELP_STRING(--with-faad-libs=dir,
478 [look for libfaad also in dir])])
479 if test -n "$with_faad_libs"; then
480 faad_libs="-L$with_faad_libs"
481 LDFLAGS="$LDFLAGS $faad_libs"
482 fi
483 AC_CHECK_HEADER(neaacdec.h, [], have_faad=no)
484 AC_CHECK_LIB([faad], [NeAACDecOpen], [], have_faad=no)
485 if test "$have_faad" = "yes"; then
486 AC_DEFINE(HAVE_FAAD, 1, define to 1 if you want to build the aacdec filter)
487 AC_SUBST(faad_cppflags)
488 faad_ldflags="$faad_libs -lfaad"
489 AC_SUBST(faad_ldflags)
490 fi
491 CPPFLAGS="$OLD_CPPFLAGS"
492 LDFLAGS="$OLD_LDFLAGS"
493 LIBS="$OLD_LIBS"
494 ########################################################################### mad
495 have_mad="yes"
496 OLD_CPPFLAGS="$CPPFLAGS"
497 OLD_LDFLAGS="$LDFLAGS"
498 OLD_LIBS="$LIBS"
499
500 AC_ARG_WITH(mad_headers, [AS_HELP_STRING(--with-mad-headers=dir,
501 [look for mad.h also in dir])])
502 if test -n "$with_mad_headers"; then
503 mad_cppflags="-I$with_mad_headers"
504 CPPFLAGS="$CPPFLAGS $mad_cppflags"
505 fi
506 AC_ARG_WITH(mad_libs, [AS_HELP_STRING(--with-mad-libs=dir,
507 [look for libmad also in dir])])
508 if test -n "$with_mad_libs"; then
509 mad_libs="-L$with_mad_libs"
510 LDFLAGS="$LDFLAGS $mad_libs"
511 fi
512 AC_CHECK_HEADERS([mad.h], [], [
513 have_mad="no"
514 ])
515 AC_CHECK_LIB([mad], [mad_stream_init], [], [
516 have_mad="no"
517 ])
518 if test "$have_mad" = "yes"; then
519 AC_DEFINE(HAVE_MAD, 1, define to 1 if you want to build the mp3dec filter)
520 AC_SUBST(mad_cppflags)
521 mad_ldflags="$mad_libs -lmad"
522 AC_SUBST(mad_ldflags)
523 else
524 AC_MSG_WARN([no mp3dec support in para_audiod/para_filter])
525 fi
526 CPPFLAGS="$OLD_CPPFLAGS"
527 LDFLAGS="$OLD_LDFLAGS"
528 LIBS="$OLD_LIBS"
529 ###################################################################### libid3tag
530 OLD_CPPFLAGS="$CPPFLAGS"
531 OLD_LDFLAGS="$LDFLAGS"
532 OLD_LIBS="$LIBS"
533
534 have_libid3tag="yes"
535 AC_ARG_WITH(id3tag_headers, [AS_HELP_STRING(--with-id3tag-headers=dir,
536 [look for id3tag header files also in dir])])
537 if test -n "$with_id3tag_headers"; then
538 id3tag_cppflags="-I$with_id3tag_headers"
539 CPPFLAGS="$CPPFLAGS $id3tag_cppflags"
540 fi
541 AC_ARG_WITH(id3tag_libs, [AS_HELP_STRING(--with-id3tag-libs=dir,
542 [look for id3tag libs also in dir])])
543 if test -n "$with_id3tag_libs"; then
544 id3tag_libs="-L$with_id3tag_libs"
545 LDFLAGS="$LDFLAGS $id3tag_libs"
546 fi
547
548 AC_MSG_CHECKING(for libid3tag)
549 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
550 #include <id3tag.h>
551 ]], [[
552 struct id3_tag t = {.flags = 0};
553 ]])],[],[have_libid3tag=no])
554 AC_MSG_RESULT($have_libid3tag)
555
556 if test ${have_libid3tag} = yes; then
557 AC_DEFINE(HAVE_LIBID3TAG, 1, define to 1 you have libid3tag)
558 AC_SUBST(id3tag_cppflags)
559 AC_SUBST(id3tag_ldflags, "$id3tag_libs -lid3tag -lz")
560 fi
561 CPPFLAGS="$OLD_CPPFLAGS"
562 LDFLAGS="$OLD_LDFLAGS"
563 LIBS="$OLD_LIBS"
564 ########################################################################### flac
565 OLD_CPPFLAGS="$CPPFLAGS"
566 OLD_LDFLAGS="$LDFLAGS"
567 OLD_LIBS="$LIBS"
568
569 have_flac="yes"
570 AC_ARG_WITH(flac_headers, [AS_HELP_STRING(--with-flac-headers=dir,
571 [look for flac headers also in dir])])
572 if test -n "$with_flac_headers"; then
573 flac_cppflags="-I$with_flac_headers"
574 CPPFLAGS="$CPPFLAGS $flac_cppflags"
575 fi
576 AC_ARG_WITH(flac_libs, [AS_HELP_STRING(--with-flac-libs=dir,
577 [look for flac libs also in dir])])
578 if test -n "$with_flac_libs"; then
579 flac_libs="-L$with_flac_libs"
580 LDFLAGS="$LDFLAGS $flac_libs"
581 fi
582 AC_CHECK_HEADER(FLAC/stream_decoder.h, [], have_flac=no)
583 AC_CHECK_LIB([FLAC], [FLAC__stream_decoder_init_file], [], have_flac=no, -logg -lm)
584 if test "$have_flac" = "yes"; then
585 AC_DEFINE(HAVE_FLAC, 1, define to 1 if you want to build the flacdec filter)
586 AC_SUBST(flac_cppflags)
587 flac_ldflags="$flac_libs -lFLAC"
588 AC_SUBST(flac_ldflags)
589 else
590 AC_MSG_WARN([no flac support in para_audiod/para_filter/para_afh/para_server])
591 fi
592 CPPFLAGS="$OLD_CPPFLAGS"
593 LDFLAGS="$OLD_LDFLAGS"
594 LIBS="$OLD_LIBS"
595 ########################################################################### oss
596 OLD_CPPFLAGS="$CPPFLAGS"
597 OLD_LDFLAGS="$LDFLAGS"
598 OLD_LIBS="$LIBS"
599
600 have_oss="yes"
601 msg="=> will not build oss writer"
602
603 AC_CHECK_HEADER(sys/soundcard.h, [
604 AC_CHECK_LIB(ossaudio, _oss_ioctl, [
605 oss_ldflags="-lossaudio"
606 AC_SUBST(oss_ldflags)
607 ]
608 )
609 ],
610 [
611 have_oss="no"
612 AC_MSG_WARN([no sys/soundcard.h $msg])
613 ]
614 )
615 CPPFLAGS="$OLD_CPPFLAGS"
616 LDFLAGS="$OLD_LDFLAGS"
617 LIBS="$OLD_LIBS"
618
619 ########################################################################### alsa
620 OLD_CPPFLAGS="$CPPFLAGS"
621 OLD_LDFLAGS="$LDFLAGS"
622 OLD_LIBS="$LIBS"
623
624 msg="=> no alsa support for para_audiod/para_write"
625 if test "$OSTYPE" != "Linux"; then
626 have_alsa="no"
627 else
628 have_alsa="yes"
629 fi
630 if test "$have_alsa" = "yes"; then
631 AC_CHECK_HEADERS([alsa/asoundlib.h], [], [
632 have_alsa="no"
633 AC_MSG_WARN([no alsa/asoundlib $msg])
634 ])
635 fi
636
637 if test "$have_alsa" = "yes"; then
638 AC_CHECK_LIB([asound], [snd_pcm_open], [], [
639 have_alsa="no"
640 AC_MSG_WARN([no libasound $msg])
641 ])
642 fi
643
644 if test "$have_alsa" = "yes"; then
645 alsa_ldflags="-lasound"
646 AC_SUBST(alsa_ldflags)
647 fi
648
649 CPPFLAGS="$OLD_CPPFLAGS"
650 LDFLAGS="$OLD_LDFLAGS"
651 LIBS="$OLD_LIBS"
652 ########################################################################### libao
653 OLD_CPPFLAGS="$CPPFLAGS"
654 OLD_LDFLAGS="$LDFLAGS"
655 OLD_LIBS="$LIBS"
656
657 have_ao="yes"
658 AC_ARG_WITH(ao_headers, [AS_HELP_STRING(--with-ao-headers=dir,
659 [look for ao/ao.h also in dir])])
660 if test -n "$with_ao_headers"; then
661 ao_cppflags="-I$with_ao_headers"
662 CPPFLAGS="$CPPFLAGS $ao_cppflags"
663 fi
664 AC_ARG_WITH(ao_libs, [AS_HELP_STRING(--with-ao-libs=dir,
665 [look for libao also in dir])])
666 if test -n "$with_ao_libs"; then
667 ao_libs="-L$with_ao_libs"
668 LDFLAGS="$LDFLAGS $ao_libs"
669 fi
670 msg="no libao support for para_audiod/para_write"
671 AC_CHECK_HEADERS([ao/ao.h], [
672 ], [
673 have_ao="no"
674 AC_MSG_WARN([ao.h not found, $msg])
675 ])
676 if test "$have_ao" = "yes"; then
677 AC_CHECK_LIB([ao], [ao_initialize], [], [
678 have_ao="no"
679 AC_MSG_WARN([ao lib not found or not working, $msg])
680 ])
681 fi
682 if test "$have_ao" = "yes"; then
683 AC_CHECK_HEADERS([pthread.h], [
684 ], [
685 have_ao="no"
686 AC_MSG_WARN([pthread.h not found, $msg])
687 ])
688 fi
689 if test "$have_ao" = "yes"; then
690 AC_CHECK_LIB([pthread], [pthread_create], [], [
691 have_ao="no"
692 AC_MSG_WARN([pthread lib not found or not working, $msg])
693 ])
694 fi
695 if test "$have_ao" = "yes"; then
696 AC_SUBST(ao_cppflags)
697 ao_ldflags="$ao_libs -lao -lpthread"
698 AC_SUBST(ao_ldflags)
699 fi
700
701 CPPFLAGS="$OLD_CPPFLAGS"
702 LDFLAGS="$OLD_LDFLAGS"
703 LIBS="$OLD_LIBS"
704 ############################################################# readline
705 OLD_CPPFLAGS="$CPPFLAGS"
706 OLD_LDFLAGS="$LDFLAGS"
707 OLD_LIBS="$LIBS"
708
709 have_readline="yes"
710 AC_ARG_WITH(readline_headers, [AS_HELP_STRING(--with-readline-headers=dir,
711 [look for libreadline header files also in dir])])
712 if test -n "$with_readline_headers"; then
713 readline_cppflags="-I$with_readline_headers"
714 CPPFLAGS="$CPPFLAGS $readline_cppflags"
715 fi
716
717 AC_ARG_WITH(readline_libs, [AS_HELP_STRING(--with-readline-libs=dir,
718 [look for readline library also in dir])])
719 if test -n "$with_readline_libs"; then
720 readline_libs="-L$with_readline_libs"
721 LDFLAGS="$LDFLAGS $readline_libs"
722 fi
723 msg="no interactive cli support"
724 AC_CHECK_HEADERS([readline/readline.h], [
725 ], [
726 have_readline="no"
727 AC_MSG_WARN([readline/readline.h not found, $msg])
728 ])
729
730 if test "$have_curses" != "yes"; then
731 have_readline="no"
732 AC_MSG_WARN([interactive cli support depends on curses,])
733 AC_MSG_WARN([but no curses lib was detected, $msg])
734 fi
735
736 if test "$have_readline" = "yes"; then
737 readline_ldflags="$readline_libs -lreadline"
738 AC_SEARCH_LIBS([rl_free_keymap], [readline], [], [have_readline="no"])
739 if test "$have_readline" = "no"; then # try with -lcurses
740 # clear cache
741 AC_MSG_NOTICE([trying again with -lcurses])
742 unset ac_cv_search_rl_free_keymap 2> /dev/null
743 AC_SEARCH_LIBS([rl_free_keymap], [readline], [
744 have_readline=yes
745 readline_ldflags="$readline_ldflags -lcurses"
746 ], [], [-lcurses])
747 fi
748 if test "$have_readline" = "no"; then # try with -ltermcap
749 # clear cache
750 AC_MSG_NOTICE([trying again with -ltermcap])
751 unset ac_cv_search_rl_free_keymap 2> /dev/null
752 AC_SEARCH_LIBS([rl_free_keymap], [readline], [
753 have_readline=yes
754 readline_ldflags="$readline_ldflags -ltermcap"
755 ], [], [-ltermcap])
756 fi
757 fi
758
759 if test "$have_readline" = "yes"; then
760 :
761 AC_SUBST(readline_cppflags)
762 AC_SUBST(readline_ldflags)
763 AC_DEFINE(HAVE_READLINE, 1, define to 1 to turn on readline support)
764 else
765 AC_MSG_WARN([libreadline not found or unusable])
766 fi
767 CPPFLAGS="$OLD_CPPFLAGS"
768 LDFLAGS="$OLD_LDFLAGS"
769 LIBS="$OLD_LIBS"
770 ############################################################# libsamplerate
771 OLD_CPPFLAGS="$CPPFLAGS"
772 OLD_LDFLAGS="$LDFLAGS"
773 OLD_LIBS="$LIBS"
774
775 have_samplerate="yes"
776 AC_ARG_WITH(samplerate_headers, [AS_HELP_STRING(--with-samplerate-headers=dir,
777 [look for samplerate headers also in dir])])
778 if test -n "$with_samplerate_headers"; then
779 samplerate_cppflags="-I$with_samplerate_headers"
780 CPPFLAGS="$CPPFLAGS $samplerate_cppflags"
781 fi
782 AC_ARG_WITH(samplerate_libs, [AS_HELP_STRING(--with-samplerate-libs=dir,
783 [look for samplerate libs also in dir])])
784 if test -n "$with_samplerate_libs"; then
785 samplerate_libs="-L$with_samplerate_libs"
786 LDFLAGS="$LDFLAGS $samplerate_libs"
787 fi
788
789 AC_CHECK_HEADER(samplerate.h, [], have_samplerate=no)
790 AC_CHECK_LIB([samplerate], [src_process], [], have_samplerate=no, [])
791
792 if test "$have_samplerate" = "yes"; then
793 AC_SUBST(samplerate_cppflags)
794 samplerate_ldflags="$samplerate_libs -lsamplerate"
795 AC_SUBST(samplerate_ldflags)
796 else
797 AC_MSG_WARN([no resample support in para_audiod/para_filter])
798 fi
799 CPPFLAGS="$OLD_CPPFLAGS"
800 LDFLAGS="$OLD_LDFLAGS"
801 LIBS="$OLD_LIBS"
802 ######################################################################### server
803 if test \( "$have_openssl" = "yes" -o "$have_gcrypt" = "yes" \) \
804 -a "$have_osl" = "yes" ; then
805
806 build_server="yes"
807 executables="$executables server"
808 server_cmdline_objs="server"
809 server_errlist_objs="
810 server
811 afh_common
812 mp3_afh
813 vss
814 command
815 net
816 string
817 signal
818 time
819 daemon
820 http_send
821 close_on_fork
822 mm
823 crypt_common
824 ipc
825 dccp_send
826 fd
827 user_list
828 chunk_queue
829 afs
830 aft
831 mood
832 score
833 attribute
834 blob
835 playlist
836 sched
837 acl
838 send_common
839 udp_send
840 color
841 fec
842 wma_afh
843 wma_common
844 sideband
845 version
846 ggo
847 "
848 if test "$have_openssl" = "yes"; then
849 server_errlist_objs="$server_errlist_objs crypt"
850 fi
851 if test "$have_gcrypt" = "yes"; then
852 server_errlist_objs="$server_errlist_objs gcrypt"
853 fi
854 if test "$have_vorbis" = "yes" || \
855 test "$have_speex" = "yes" || \
856 test "$have_opus" = "yes"; then
857 server_errlist_objs="$server_errlist_objs ogg_afh_common"
858 fi
859 if test "$have_vorbis" = "yes"; then
860 server_errlist_objs="$server_errlist_objs ogg_afh"
861 fi
862 if test "$have_speex" = "yes"; then
863 server_errlist_objs="$server_errlist_objs spx_afh spx_common"
864 fi
865 if test "$have_opus" = "yes"; then
866 server_errlist_objs="$server_errlist_objs opus_afh opus_common"
867 fi
868 if test "$have_faad" = "yes"; then
869 server_errlist_objs="$server_errlist_objs aac_afh aac_common"
870 fi
871 if test "$have_flac" = "yes"; then
872 server_errlist_objs="$server_errlist_objs flac_afh"
873 fi
874 server_objs="add_cmdline($server_cmdline_objs) $server_errlist_objs"
875 AC_SUBST(server_objs, add_dot_o($server_objs))
876 AC_DEFINE_UNQUOTED(INIT_SERVER_ERRLISTS,
877 objlist_to_errlist($server_errlist_objs), errors used by para_server)
878 else
879 build_server="no"
880 fi
881 ############################################################# client
882 if test "$have_openssl" = "yes" -o "$have_gcrypt" = "yes"; then
883 build_client="yes"
884 executables="$executables client"
885 client_cmdline_objs="client"
886 client_errlist_objs="
887 client
888 net
889 string
890 fd
891 sched
892 stdin
893 stdout
894 time
895 sideband
896 client_common
897 buffer_tree
898 crypt_common
899 version
900 ggo
901 "
902 if test "$have_openssl" = "yes"; then
903 client_errlist_objs="$client_errlist_objs crypt"
904 fi
905 if test "$have_gcrypt" = "yes"; then
906 client_errlist_objs="$client_errlist_objs gcrypt"
907 fi
908 if test "$have_readline" = "yes"; then
909 client_errlist_objs="$client_errlist_objs interactive"
910 fi
911 client_objs="add_cmdline($client_cmdline_objs) $client_errlist_objs"
912 AC_SUBST(client_objs, add_dot_o($client_objs))
913 AC_DEFINE_UNQUOTED(INIT_CLIENT_ERRLISTS,
914 objlist_to_errlist($client_errlist_objs), errors used by para_client)
915 else
916 build_client="no"
917 fi
918 ############################################################# audiod
919 if test "$have_openssl" = "yes" -o "$have_gcrypt" = "yes"; then
920 build_audiod="yes"
921 executables="$executables audiod"
922 audiod_audio_formats="wma"
923 audiod_cmdline_objs="$audiod_cmdline_objs
924 audiod
925 compress_filter
926 http_recv
927 dccp_recv
928 file_write
929 client
930 amp_filter
931 udp_recv
932 prebuffer_filter
933 "
934 audiod_errlist_objs="$audiod_errlist_objs
935 audiod
936 signal
937 string
938 daemon
939 stat
940 net
941 crypt_common
942 sideband
943 time
944 grab_client
945 filter_common
946 wav_filter
947 compress_filter
948 amp_filter
949 http_recv
950 dccp_recv
951 recv_common
952 fd
953 sched
954 write_common
955 file_write
956 audiod_command
957 fecdec_filter
958 client_common
959 ggo
960 udp_recv
961 color
962 fec
963 prebuffer_filter
964 version
965 bitstream
966 imdct
967 wma_common
968 wmadec_filter
969 buffer_tree
970 "
971 if test "$have_openssl" = "yes"; then
972 audiod_errlist_objs="$audiod_errlist_objs crypt"
973 fi
974 if test "$have_gcrypt" = "yes"; then
975 audiod_errlist_objs="$audiod_errlist_objs gcrypt"
976 fi
977 if test "$have_core_audio" = "yes"; then
978 audiod_errlist_objs="$audiod_errlist_objs osx_write ipc"
979 audiod_cmdline_objs="$audiod_cmdline_objs osx_write.cmdline"
980 fi
981 if test "$have_vorbis" = "yes"; then
982 audiod_errlist_objs="$audiod_errlist_objs oggdec_filter"
983 audiod_audio_formats="$audiod_audio_formats ogg"
984 fi
985 if test "$have_speex" = "yes"; then
986 audiod_errlist_objs="$audiod_errlist_objs spxdec_filter spx_common"
987 audiod_audio_formats="$audiod_audio_formats spx"
988 fi
989 if test "$have_opus" = "yes"; then
990 audiod_errlist_objs="$audiod_errlist_objs opusdec_filter opus_common"
991 audiod_audio_formats="$audiod_audio_formats opus"
992 fi
993 if test "$have_faad" = "yes"; then
994 audiod_errlist_objs="$audiod_errlist_objs aacdec_filter aac_common"
995 audiod_audio_formats="$audiod_audio_formats aac"
996 fi
997 if test "$have_mad" = "yes"; then
998 audiod_audio_formats="$audiod_audio_formats mp3"
999 audiod_cmdline_objs="$audiod_cmdline_objs mp3dec_filter"
1000 audiod_errlist_objs="$audiod_errlist_objs mp3dec_filter"
1001 fi
1002 if test "$have_flac" = "yes"; then
1003 audiod_errlist_objs="$audiod_errlist_objs flacdec_filter"
1004 audiod_audio_formats="$audiod_audio_formats flac"
1005 fi
1006 if test "$have_oss" = "yes"; then
1007 audiod_errlist_objs="$audiod_errlist_objs oss_write"
1008 audiod_cmdline_objs="$audiod_cmdline_objs oss_write"
1009 fi
1010 if test "$have_alsa" = "yes"; then
1011 audiod_errlist_objs="$audiod_errlist_objs alsa_write"
1012 audiod_cmdline_objs="$audiod_cmdline_objs alsa_write"
1013 fi
1014 if test "$have_ao" = "yes"; then
1015 audiod_errlist_objs="$audiod_errlist_objs ao_write"
1016 audiod_cmdline_objs="$audiod_cmdline_objs ao_write"
1017 fi
1018 if test "$have_samplerate" = "yes"; then
1019 audiod_errlist_objs="$audiod_errlist_objs resample_filter check_wav"
1020 audiod_cmdline_objs="$audiod_cmdline_objs resample_filter"
1021 fi
1022 audiod_objs="add_cmdline($audiod_cmdline_objs) $audiod_errlist_objs"
1023 AC_SUBST(audiod_objs, add_dot_o($audiod_objs))
1024 AC_DEFINE_UNQUOTED(INIT_AUDIOD_ERRLISTS, objlist_to_errlist($audiod_errlist_objs),
1025 errors used by para_audiod)
1026
1027 enum="$(for i in $audiod_audio_formats; do printf "AUDIO_FORMAT_${i}, " | tr '[a-z]' '[A-Z]'; done)"
1028 AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMATS_ENUM, $enum NUM_AUDIO_FORMATS,
1029 enum of audio formats supported by audiod)
1030 names="$(for i in $audiod_audio_formats; do printf \"$i\",' ' ; done)"
1031 AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMAT_ARRAY, $names, array of audio formats supported by audiod)
1032 else
1033 build_audiod="no"
1034 fi
1035 ########################################################################### fade
1036 if test "$have_oss" = "yes" -o "$have_alsa" = "yes"; then
1037 build_fade="yes"
1038 executables="$executables fade"
1039 fade_cmdline_objs="fade"
1040 fade_errlist_objs="fade exec string fd version ggo"
1041 if test "$have_oss" = "yes"; then
1042 fade_errlist_objs="$fade_errlist_objs oss_mix"
1043 mixers="${mixers}oss "
1044 default_mixer="OSS_MIX"
1045 fi
1046 if test "$have_alsa" = "yes"; then
1047 fade_errlist_objs="$fade_errlist_objs alsa_mix"
1048 mixers="${mixers}alsa "
1049 default_mixer="ALSA_MIX"
1050 fi
1051 fade_objs="add_cmdline($fade_cmdline_objs) $fade_errlist_objs"
1052 AC_SUBST(fade_objs, add_dot_o($fade_objs))
1053 AC_DEFINE_UNQUOTED(INIT_FADE_ERRLISTS,
1054 objlist_to_errlist($fade_errlist_objs),
1055 errors used by para_fade)
1056 enum="$(
1057 for i in $mixers; do
1058 printf "${i}_MIX, " | tr '[a-z]' '[A-Z]'
1059 done
1060 )"
1061 AC_DEFINE_UNQUOTED(MIXER_ENUM, $enum NUM_SUPPORTED_MIXERS,
1062 enum of supported mixers)
1063 AC_DEFINE_UNQUOTED(DEFAULT_MIXER, $default_mixer,
1064 use this mixer if none was specified)
1065 names="$(for i in $mixers; do printf \"$i\",' ' ; done)"
1066 AC_DEFINE_UNQUOTED(MIXER_NAMES, $names, supported mixer names)
1067 inits="$(
1068 for i in $mixers; do
1069 printf 'extern void '$i'_mix_init(struct mixer *); '
1070 done
1071 )"
1072 AC_DEFINE_UNQUOTED(DECLARE_MIXER_INITS, $inits,
1073 init functions of the supported mixers)
1074 array="$(for i in $mixers; do printf '{.init = '$i'_mix_init},'; done)"
1075 AC_DEFINE_UNQUOTED(MIXER_ARRAY, $array, array of supported mixers)
1076 else
1077 build_fade="no"
1078 AC_MSG_WARN([no mixer support])
1079 fi
1080 ########################################################################### gui
1081 if test "$have_curses" = "yes"; then
1082 build_gui="yes"
1083 executables="$executables gui"
1084 gui_cmdline_objs="gui"
1085 gui_errlist_objs="
1086 exec
1087 signal
1088 string
1089 stat
1090 ringbuffer
1091 fd
1092 gui
1093 gui_theme
1094 time
1095 version
1096 ggo
1097 "
1098 gui_objs="add_cmdline($gui_cmdline_objs) $gui_errlist_objs"
1099 AC_SUBST(gui_objs, add_dot_o($gui_objs))
1100 AC_DEFINE_UNQUOTED(INIT_GUI_ERRLISTS,
1101 objlist_to_errlist($gui_errlist_objs), errors used by para_gui)
1102 else
1103 build_gui="no"
1104 AC_MSG_WARN([no curses lib, cannot build para_gui])
1105 fi
1106 ######################################################################## filter
1107 filters="
1108 compress
1109 wav
1110 amp
1111 fecdec
1112 wmadec
1113 prebuffer
1114 "
1115 filter_errlist_objs="
1116 filter_common
1117 wav_filter
1118 compress_filter
1119 filter
1120 string
1121 stdin
1122 stdout
1123 sched
1124 fd
1125 amp_filter
1126 ggo
1127 fecdec_filter
1128 fec
1129 version
1130 prebuffer_filter
1131 time
1132 bitstream
1133 imdct
1134 wma_common
1135 wmadec_filter
1136 buffer_tree
1137 net
1138 "
1139 filter_cmdline_objs="
1140 filter
1141 compress_filter
1142 amp_filter
1143 prebuffer_filter
1144 "
1145
1146 if test "$have_vorbis" = "yes"; then
1147 filters="$filters oggdec"
1148 filter_errlist_objs="$filter_errlist_objs oggdec_filter"
1149 fi
1150 if test "$have_speex" = "yes"; then
1151 filters="$filters spxdec"
1152 filter_errlist_objs="$filter_errlist_objs spxdec_filter spx_common"
1153 fi
1154 if test "$have_opus" = "yes"; then
1155 filters="$filters opusdec"
1156 filter_errlist_objs="$filter_errlist_objs opusdec_filter opus_common"
1157 fi
1158 if test "$have_faad" = "yes"; then
1159 filter_errlist_objs="$filter_errlist_objs aacdec_filter aac_common"
1160 filters="$filters aacdec"
1161 fi
1162 if test "$have_mad" = "yes"; then
1163 filter_cmdline_objs="$filter_cmdline_objs mp3dec_filter"
1164 filter_errlist_objs="$filter_errlist_objs mp3dec_filter"
1165 filters="$filters mp3dec"
1166 fi
1167 if test "$have_flac" = "yes"; then
1168 filter_errlist_objs="$filter_errlist_objs flacdec_filter"
1169 filters="$filters flacdec"
1170 fi
1171 if test "$have_samplerate" = "yes"; then
1172 filter_errlist_objs="$filter_errlist_objs resample_filter check_wav"
1173 filter_cmdline_objs="$filter_cmdline_objs resample_filter"
1174 filters="$filters resample"
1175 fi
1176 filter_objs="add_cmdline($filter_cmdline_objs) $filter_errlist_objs"
1177
1178 AC_SUBST(filter_objs, add_dot_o($filter_objs))
1179 AC_DEFINE_UNQUOTED(INIT_FILTER_ERRLISTS,
1180 objlist_to_errlist($filter_errlist_objs), errors used by para_filter)
1181
1182 enum="$(for i in $filters; do printf "${i}_FILTER, " | tr '[a-z]' '[A-Z]'; done)"
1183 AC_DEFINE_UNQUOTED(FILTER_ENUM, $enum NUM_SUPPORTED_FILTERS,
1184 enum of supported filters)
1185 inits="$(for i in $filters; do printf 'extern void '$i'_filter_init(struct filter *f); '; done)"
1186 AC_DEFINE_UNQUOTED(DECLARE_FILTER_INITS, $inits, init functions of the supported filters)
1187 array="$(for i in $filters; do printf '{.name = "'$i'", .init = '$i'_filter_init},'; done)"
1188 AC_DEFINE_UNQUOTED(FILTER_ARRAY, $array, array of supported filters)
1189 ########################################################################## recv
1190 recv_cmdline_objs="
1191 recv
1192 http_recv
1193 dccp_recv
1194 udp_recv
1195 afh_recv
1196 "
1197
1198 recv_errlist_objs="
1199 http_recv
1200 recv_common
1201 recv
1202 time
1203 string
1204 net
1205 dccp_recv
1206 fd
1207 sched
1208 stdout
1209 ggo
1210 udp_recv
1211 buffer_tree
1212 afh_recv
1213 afh_common
1214 wma_afh
1215 wma_common
1216 mp3_afh
1217 version
1218 "
1219 if test "$have_vorbis" = "yes" || \
1220 test "$have_speex" = "yes" || \
1221 test "$have_opus" = "yes"; then
1222 recv_errlist_objs="$recv_errlist_objs ogg_afh_common"
1223 fi
1224 if test "$have_vorbis" = "yes"; then
1225 recv_errlist_objs="$recv_errlist_objs ogg_afh"
1226 fi
1227 if test "$have_speex" = "yes"; then
1228 recv_errlist_objs="$recv_errlist_objs spx_afh spx_common"
1229 fi
1230 if test "$have_opus" = "yes"; then
1231 recv_errlist_objs="$recv_errlist_objs opus_afh opus_common"
1232 fi
1233 if test "$have_faad" = "yes"; then
1234 recv_errlist_objs="$recv_errlist_objs aac_afh aac_common"
1235 fi
1236 if test "$have_flac" = "yes"; then
1237 recv_errlist_objs="$recv_errlist_objs flac_afh"
1238 fi
1239 recv_objs="add_cmdline($recv_cmdline_objs) $recv_errlist_objs"
1240 AC_SUBST(recv_objs, add_dot_o($recv_objs))
1241 AC_DEFINE_UNQUOTED(INIT_RECV_ERRLISTS, objlist_to_errlist($recv_errlist_objs),
1242 errors used by para_recv)
1243 ########################################################################### afh
1244 audio_format_handlers="mp3 wma"
1245 afh_cmdline_objs="afh"
1246 afh_errlist_objs="
1247 afh
1248 string
1249 fd
1250 mp3_afh
1251 afh_common
1252 time
1253 wma_afh
1254 wma_common
1255 version
1256 ggo
1257 "
1258 if test "$have_vorbis" = "yes" || \
1259 test "$have_speex" = "yes" || \
1260 test "$have_opus" = "yes"; then
1261 afh_errlist_objs="$afh_errlist_objs ogg_afh_common"
1262 fi
1263 if test "$have_vorbis" = "yes"; then
1264 afh_errlist_objs="$afh_errlist_objs ogg_afh"
1265 audio_format_handlers="$audio_format_handlers ogg"
1266 fi
1267 if test "$have_speex" = "yes"; then
1268 afh_errlist_objs="$afh_errlist_objs spx_afh spx_common"
1269 audio_format_handlers="$audio_format_handlers spx"
1270 fi
1271 if test "$have_opus" = "yes"; then
1272 afh_errlist_objs="$afh_errlist_objs opus_afh opus_common"
1273 fi
1274 if test "$have_faad" = "yes"; then
1275 afh_errlist_objs="$afh_errlist_objs aac_common aac_afh"
1276 audio_format_handlers="$audio_format_handlers aac"
1277 fi
1278 if test "$have_flac" = "yes"; then
1279 afh_errlist_objs="$afh_errlist_objs flac_afh"
1280 audio_format_handlers="$audio_format_handlers flac"
1281 fi
1282
1283 afh_objs="add_cmdline($afh_cmdline_objs) $afh_errlist_objs"
1284
1285 AC_SUBST(afh_objs, add_dot_o($afh_objs))
1286 AC_DEFINE_UNQUOTED(INIT_AFH_ERRLISTS,
1287 objlist_to_errlist($afh_errlist_objs), errors used by para_afh)
1288 ########################################################################## play
1289 play_errlist_objs="
1290 play
1291 fd
1292 sched
1293 ggo
1294 buffer_tree
1295 time
1296 string
1297 net
1298 afh_recv
1299 afh_common
1300 wma_afh
1301 wma_common
1302 mp3_afh
1303 recv_common
1304 udp_recv
1305 http_recv
1306 dccp_recv
1307 filter_common
1308 fec
1309 bitstream
1310 imdct
1311 wav_filter
1312 compress_filter
1313 amp_filter
1314 prebuffer_filter
1315 fecdec_filter
1316 wmadec_filter
1317 write_common
1318 file_write
1319 version
1320 "
1321 play_cmdline_objs="
1322 http_recv
1323 dccp_recv
1324 udp_recv
1325 afh_recv
1326 compress_filter
1327 amp_filter
1328 prebuffer_filter
1329 file_write
1330 play
1331 "
1332 if test "$have_core_audio" = "yes"; then
1333 play_errlist_objs="$play_errlist_objs osx_write ipc"
1334 play_cmdline_objs="$play_cmdline_objs osx_write.cmdline"
1335 fi
1336 if test "$have_vorbis" = "yes" || \
1337 test "$have_speex" = "yes" || \
1338 test "$have_opus" = "yes"; then
1339 play_errlist_objs="$play_errlist_objs ogg_afh_common"
1340 fi
1341 if test "$have_vorbis" = "yes"; then
1342 play_errlist_objs="$play_errlist_objs oggdec_filter ogg_afh"
1343 fi
1344 if test "$have_speex" = "yes"; then
1345 play_errlist_objs="$play_errlist_objs spxdec_filter spx_afh spx_common"
1346 fi
1347 if test "$have_opus" = "yes"; then
1348 play_errlist_objs="$play_errlist_objs opusdec_filter opus_afh opus_common"
1349 fi
1350 if test "$have_faad" = "yes"; then
1351 play_errlist_objs="$play_errlist_objs aacdec_filter aac_afh aac_common"
1352 fi
1353 if test "$have_mad" = "yes"; then
1354 play_cmdline_objs="$play_cmdline_objs mp3dec_filter"
1355 play_errlist_objs="$play_errlist_objs mp3dec_filter"
1356 fi
1357 if test "$have_flac" = "yes"; then
1358 play_errlist_objs="$play_errlist_objs flacdec_filter flac_afh"
1359 fi
1360 if test "$have_oss" = "yes"; then
1361 play_errlist_objs="$play_errlist_objs oss_write"
1362 play_cmdline_objs="$play_cmdline_objs oss_write"
1363 fi
1364 if test "$have_alsa" = "yes"; then
1365 play_errlist_objs="$play_errlist_objs alsa_write"
1366 play_cmdline_objs="$play_cmdline_objs alsa_write"
1367 fi
1368 if test "$have_ao" = "yes"; then
1369 play_errlist_objs="$play_errlist_objs ao_write"
1370 play_cmdline_objs="$play_cmdline_objs ao_write"
1371 fi
1372 if test "$have_readline" = "yes"; then
1373 play_errlist_objs="$play_errlist_objs interactive"
1374 fi
1375 if test "$have_samplerate" = "yes"; then
1376 play_errlist_objs="$play_errlist_objs resample_filter check_wav"
1377 play_cmdline_objs="$play_cmdline_objs resample_filter"
1378 fi
1379
1380 play_objs="add_cmdline($play_cmdline_objs) $play_errlist_objs"
1381 AC_SUBST(play_objs, add_dot_o($play_objs))
1382 AC_DEFINE_UNQUOTED(INIT_PLAY_ERRLISTS,
1383 objlist_to_errlist($play_errlist_objs), errors used by para_play)
1384 ######################################################################### write
1385 write_cmdline_objs="
1386 write
1387 file_write
1388 "
1389 write_errlist_objs="
1390 write
1391 write_common
1392 file_write
1393 time
1394 fd
1395 string
1396 sched
1397 stdin
1398 buffer_tree
1399 ggo
1400 check_wav
1401 version
1402 "
1403 writers="file"
1404 default_writer="FILE_WRITE"
1405
1406 if test "$have_core_audio" = "yes"; then
1407 write_errlist_objs="$write_errlist_objs osx_write ipc"
1408 write_cmdline_objs="$write_cmdline_objs osx_write.cmdline"
1409 writers="$writers osx"
1410 default_writer="OSX_WRITE"
1411 fi
1412 if test "$have_ao" = "yes"; then
1413 write_errlist_objs="$write_errlist_objs ao_write"
1414 write_cmdline_objs="$write_cmdline_objs ao_write"
1415 writers="$writers ao"
1416 default_writer="AO_WRITE"
1417 fi
1418 if test "$have_oss" = "yes"; then
1419 write_errlist_objs="$write_errlist_objs oss_write"
1420 write_cmdline_objs="$write_cmdline_objs oss_write"
1421 writers="$writers oss"
1422 default_writer="OSS_WRITE"
1423 fi
1424 if test "$have_alsa" = "yes"; then
1425 write_errlist_objs="$write_errlist_objs alsa_write"
1426 write_cmdline_objs="$write_cmdline_objs alsa_write"
1427 writers="$writers alsa"
1428 default_writer="ALSA_WRITE"
1429 fi
1430 write_objs="add_cmdline($write_cmdline_objs) $write_errlist_objs"
1431 AC_SUBST(write_objs, add_dot_o($write_objs))
1432 AC_DEFINE_UNQUOTED(INIT_WRITE_ERRLISTS,
1433 objlist_to_errlist($write_errlist_objs), errors used by para_write)
1434 enum="$(for i in $writers; do printf "${i}_WRITE, " | tr '[a-z]' '[A-Z]'; done)"
1435 AC_DEFINE_UNQUOTED(WRITER_ENUM, $enum NUM_SUPPORTED_WRITERS,
1436 enum of supported writers)
1437 AC_DEFINE_UNQUOTED(DEFAULT_WRITER, $default_writer, use this writer if none was specified)
1438 names="$(for i in $writers; do printf \"$i\",' ' ; done)"
1439 AC_DEFINE_UNQUOTED(WRITER_NAMES, $names, supported writer names)
1440 inits="$(for i in $writers; do printf 'extern void '$i'_write_init(struct writer *); '; done)"
1441 AC_DEFINE_UNQUOTED(DECLARE_WRITER_INITS, $inits, init functions of the supported writers)
1442 array="$(for i in $writers; do printf '{.init = '$i'_write_init},'; done)"
1443 AC_DEFINE_UNQUOTED(WRITER_ARRAY, $array, array of supported writers)
1444 ######################################################################## audioc
1445 audioc_cmdline_objs="audioc"
1446 audioc_errlist_objs="
1447 audioc
1448 string
1449 net
1450 fd
1451 version
1452 ggo
1453 "
1454 if test "$have_readline" = "yes"; then
1455 audioc_errlist_objs="$audioc_errlist_objs
1456 buffer_tree
1457 interactive
1458 sched
1459 time
1460 "
1461 fi
1462 audioc_objs="add_cmdline($audioc_cmdline_objs) $audioc_errlist_objs"
1463 AC_SUBST(audioc_objs, add_dot_o($audioc_objs))
1464 AC_DEFINE_UNQUOTED(INIT_AUDIOC_ERRLISTS,
1465 objlist_to_errlist($audioc_errlist_objs), errors used by para_audioc)
1466 ############################################################# error2.h
1467 # these are always built
1468 all_errlist_objs="
1469 $recv_errlist_objs
1470 $filter_errlist_objs
1471 $audioc_errlist_objs
1472 $write_errlist_objs
1473 $afh_errlist_objs
1474 $play_errlist_objs
1475 "
1476
1477 # optional executables
1478 if test "$build_server" = "yes"; then
1479 all_errlist_objs="$all_errlist_objs $server_errlist_objs"
1480 fi
1481 if test "$build_gui" = "yes"; then
1482 all_errlist_objs="$all_errlist_objs $gui_errlist_objs"
1483 fi
1484 if test "$build_fade" = "yes"; then
1485 all_errlist_objs="$all_errlist_objs $fade_errlist_objs"
1486 fi
1487 if test "$build_client" = "yes"; then
1488 all_errlist_objs="$all_errlist_objs $client_errlist_objs"
1489 fi
1490 if test "$build_audiod" = "yes"; then
1491 all_errlist_objs="$all_errlist_objs $audiod_errlist_objs"
1492 fi
1493
1494 all_errlist_objs="$(echo $all_errlist_objs | tr ' ' '\n' | sort | uniq)"
1495
1496 object_executable_matrix=
1497 for i in $executables; do
1498 eval objs=\$${i}_errlist_objs
1499 object_executable_matrix="$object_executable_matrix $i: $objs"
1500 done
1501 # use echo to replace newlines by space
1502 AC_SUBST(object_executable_matrix, $(echo $object_executable_matrix))
1503
1504 for obj in $all_errlist_objs; do
1505 SS="$SS SS_$(echo $obj | tr 'a-z' 'A-Z'),"
1506 done
1507 AC_DEFINE_UNQUOTED(DEFINE_ERRLIST_OBJECT_ENUM,
1508 [enum {$SS NUM_SS}],
1509 [list of all objects that use the paraslash error facility]
1510 )
1511 ################################################################## status items
1512
1513 status_items="basename status num_played mtime bitrate frequency file_size
1514 status_flags format score techinfo afs_mode
1515 attributes_txt decoder_flags audiod_status play_time attributes_bitmap
1516 offset seconds_total stream_start current_time audiod_uptime image_id
1517 lyrics_id duration directory lyrics_name image_name path hash channels
1518 last_played num_chunks chunk_time amplification artist title year album
1519 comment"
1520
1521 result=
1522 for i in $status_items; do
1523 result="$result SI_$(echo $i | tr 'a-z' 'A-Z'), "
1524 done
1525 AC_DEFINE_UNQUOTED(STATUS_ITEM_ENUM, [$result],
1526 [enum of all status items])
1527
1528 result=
1529 for i in $status_items; do
1530 result="$result \"$i\", "
1531 done
1532 AC_DEFINE_UNQUOTED(STATUS_ITEM_ARRAY, [$result],
1533 [char * array of all status items])
1534
1535 AC_DEFINE_UNQUOTED(AUDIO_FORMAT_HANDLERS, "$audio_format_handlers",
1536 [formats supported by para_server and para_afh])
1537
1538 AC_SUBST(executables)
1539
1540 AC_OUTPUT
1541 AC_MSG_NOTICE([
1542 paraslash configuration:
1543 ~~~~~~~~~~~~~~~~~~~~~~~~
1544 unix socket credentials: $have_ucred
1545 readline (interactive CLIs): $have_readline
1546 audio formats handlers: $audio_format_handlers
1547 id3 version2 support: $have_libid3tag
1548 filters: $(echo $filters)
1549 writers: $writers
1550
1551 para_fade: $build_fade
1552 para_server: $build_server
1553 para_gui: $build_gui
1554 para_fade: $build_fade
1555 para_client: $build_client
1556 para_audiod: $build_audiod
1557 ])