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