2 # Process this file with autoconf to produce a configure script.
7 AC_INIT(paraslash, [git], maan@systemlinux.org)
8 AC_CONFIG_HEADER([config.h])
10 AC_PATH_PROG(UNAMEPATH, uname, no)
11 if test "$UNAMEPATH" = "no"; then
12 AC_MSG_ERROR(unable to determine system type)
14 AC_MSG_CHECKING(os type)
15 OSTYPE="`$UNAMEPATH -s`"
16 AC_MSG_RESULT("$OSTYPE")
18 if test "$OSTYPE" = "SunOS"; then
19 # needed on SunOS for socket magic
20 arch_cppflags="-D_XOPEN_SOURCE=500 -D__EXTENSIONS__"
21 AC_SUBST(arch_cppflags)
26 AC_PATH_PROG([gengetopt], [gengetopt])
27 test -z "$gengetopt" && AC_MSG_ERROR(
28 [gengetopt is required to build this package])
30 AC_PATH_PROG([help2man], [help2man])
31 test -z "$help2man" && AC_MSG_ERROR(
32 [help2man is required to build this package])
43 AC_CHECK_HEADERS([arpa/inet.h ctype.h fcntl.h limits.h netdb.h netinet/in.h \
44 stdlib.h string.h sys/socket.h sys/time.h sys/timeb.h sys/un.h \
45 sys/ipc.h unistd.h utime.h stddef.h],
46 [], [AC_MSG_ERROR([$ac_header not found])])
48 # Checks for typedefs, structures, and compiler characteristics.
68 # Checks for library functions.
70 AC_PROG_GCC_TRADITIONAL
76 AC_FUNC_SELECT_ARGTYPES
84 AC_CHECK_FUNCS([atexit dup2 memchr memmove memset \
85 regcomp select strchr strdup strerror strstr strtol uname \
86 fchdir gettimeofday localtime_r munmap strcasecmp strcspn \
87 strncasecmp strrchr strspn alarm mkdir inet_ntoa socket], [],
88 [AC_MSG_ERROR([function not found, cannot live without it])])
90 AC_DEFUN([add_cmdline],[$(for i in $@; do printf "${i}.cmdline "; done)])
93 all_errlist_objs="mp3_afh afh_common net string signal time daemon
94 stat afh fade amp_filter fd ringbuffer sched audiod
95 grab_client filter_common wav_filter compress_filter http_recv
96 dccp_recv recv_common write_common file_write audiod_command
97 client_common recv stdout filter stdin audioc write client
98 exec send_common ggo udp_recv color fec fecdec_filter
99 prebuffer_filter bitstream imdct
100 wma_afh wma_common wmadec_filter buffer_tree crypt_common
101 gui gui_theme sideband"
103 executables="recv filter audioc write client afh audiod"
105 recv_cmdline_objs="add_cmdline(recv http_recv dccp_recv udp_recv)"
107 recv_errlist_objs="http_recv recv_common recv time string net dccp_recv
108 fd sched stdout ggo udp_recv buffer_tree"
111 filter_cmdline_objs="add_cmdline(filter compress_filter amp_filter prebuffer_filter)"
112 filter_errlist_objs="filter_common wav_filter compress_filter filter string
113 stdin stdout sched fd amp_filter ggo fecdec_filter fec
114 prebuffer_filter time bitstream imdct wma_common wmadec_filter buffer_tree"
116 filters=" compress wav amp fecdec wmadec prebuffer"
118 audioc_cmdline_objs="add_cmdline(audioc)"
119 audioc_errlist_objs="audioc string net fd"
122 audiod_cmdline_objs="add_cmdline(audiod compress_filter http_recv dccp_recv file_write client amp_filter udp_recv prebuffer_filter)"
123 audiod_errlist_objs="audiod signal string daemon stat net crypt_common sideband
124 time grab_client filter_common wav_filter compress_filter amp_filter http_recv dccp_recv
125 recv_common fd sched write_common file_write audiod_command fecdec_filter
126 client_common ggo udp_recv color fec prebuffer_filter
127 bitstream imdct wma_common wmadec_filter buffer_tree"
129 audiod_audio_formats="wma"
131 afh_cmdline_objs="add_cmdline(afh)"
132 afh_errlist_objs="afh string fd mp3_afh afh_common time wma_afh wma_common"
135 write_cmdline_objs="add_cmdline(write file_write)"
136 write_errlist_objs="write write_common file_write time fd string sched stdin
140 default_writer="FILE_WRITE"
142 client_cmdline_objs="add_cmdline(client)"
143 client_errlist_objs="client net string fd sched stdin stdout time sideband
144 client_common buffer_tree crypt_common"
147 gui_cmdline_objs="add_cmdline(gui)"
148 gui_errlist_objs="exec signal string stat ringbuffer fd gui gui_theme"
149 gui_objs="$gui_cmdline_objs $gui_errlist_objs"
151 fade_cmdline_objs="add_cmdline(fade)"
152 fade_errlist_objs="fade exec string fd"
155 ########################################################################### snprintf
156 # ===========================================================================
157 # http://www.nongnu.org/autoconf-archive/ax_func_snprintf.html
158 # ===========================================================================
166 # Checks for a fully C99 compliant snprintf, in particular checks whether
167 # it does bounds checking and returns the correct string length; does the
168 # same check for vsnprintf. If no working snprintf or vsnprintf is found,
169 # it prints an error message and aborts.
173 # Copyright (c) 2008 Ruediger Kuhlmann <info@ruediger-kuhlmann.de>
175 # Copying and distribution of this file, with or without modification, are
176 # permitted in any medium without royalty provided the copyright notice
177 # and this notice are preserved.
179 AU_ALIAS([AC_FUNC_SNPRINTF], [AX_FUNC_SNPRINTF])
180 AC_DEFUN([AX_FUNC_SNPRINTF],
181 [AC_CHECK_FUNCS(snprintf vsnprintf)
182 AC_MSG_CHECKING(for working snprintf)
183 AC_CACHE_VAL(ac_cv_have_working_snprintf,
189 char bufs[5] = { 'x', 'x', 'x', '\0', '\0' };
190 char bufd[5] = { 'x', 'x', 'x', '\0', '\0' };
192 i = snprintf (bufs, 2, "%s", "111");
193 if (strcmp (bufs, "1")) exit (1);
194 if (i != 3) exit (1);
195 i = snprintf (bufd, 2, "%d", 111);
196 if (strcmp (bufd, "1")) exit (1);
197 if (i != 3) exit (1);
199 }], ac_cv_have_working_snprintf=yes, ac_cv_have_working_snprintf=no, ac_cv_have_working_snprintf=cross)])
200 AC_MSG_RESULT([$ac_cv_have_working_snprintf])
201 AC_MSG_CHECKING(for working vsnprintf)
202 AC_CACHE_VAL(ac_cv_have_working_vsnprintf,
207 int my_vsnprintf (char *buf, const char *tmpl, ...)
211 va_start (args, tmpl);
212 i = vsnprintf (buf, 2, tmpl, args);
219 char bufs[5] = { 'x', 'x', 'x', '\0', '\0' };
220 char bufd[5] = { 'x', 'x', 'x', '\0', '\0' };
222 i = my_vsnprintf (bufs, "%s", "111");
223 if (strcmp (bufs, "1")) exit (1);
224 if (i != 3) exit (1);
225 i = my_vsnprintf (bufd, "%d", 111);
226 if (strcmp (bufd, "1")) exit (1);
227 if (i != 3) exit (1);
229 }], ac_cv_have_working_vsnprintf=yes, ac_cv_have_working_vsnprintf=no, ac_cv_have_working_vsnprintf=cross)])
230 AC_MSG_RESULT([$ac_cv_have_working_vsnprintf])
231 if test x$ac_cv_have_working_snprintf$ac_cv_have_working_vsnprintf != "xyesyes"; then
232 AC_MSG_ERROR([fatal: buggy snprintf() detected])
235 ########################################################################### osl
237 OLD_CPPFLAGS="$CPPFLAGS"
238 OLD_LD_FLAGS="$LDFLAGS"
240 AC_ARG_WITH(osl_headers, [AC_HELP_STRING(--with-osl-headers=dir,
241 [look for osl.h also in dir])])
242 if test -n "$with_osl_headers"; then
243 osl_cppflags="-I$with_osl_headers"
244 CPPFLAGS="$CPPFLAGS $osl_cppflags"
246 AC_ARG_WITH(osl_libs, [AC_HELP_STRING(--with-osl-libs=dir,
247 [look for libosl also in dir])])
248 if test -n "$with_osl_libs"; then
249 osl_libs="-L$with_osl_libs"
250 LDFLAGS="$LDFLAGS $osl_libs"
253 AC_CHECK_HEADER(osl.h, [], have_osl=no)
254 AC_CHECK_LIB([osl], [osl_open_table], [], have_osl=no)
255 if test "$have_osl" = "no"; then
256 AC_MSG_WARN([libosl not found, can not build para_server.
258 http://systemlinux.org/~maan/osl
260 git clone git://git.tuebingen.mpg.de/osl
263 extras="$extras server"
264 executables="$executables server"
265 server_cmdline_objs="add_cmdline(server)"
266 server_errlist_objs="server afh_common mp3_afh vss command net
267 string signal time daemon http_send close_on_fork mm
268 crypt_common ipc dccp_send fd user_list chunk_queue
269 afs aft mood score attribute blob playlist sched acl
270 send_common udp_send color fec wma_afh wma_common sideband"
271 all_errlist_objs="$all_errlist_objs server vss command
272 http_send close_on_fork mm ipc dccp_send user_list
273 chunk_queue afs aft mood score attribute blob playlist
277 server_audio_formats="mp3 wma"
278 AC_SUBST(osl_cppflags)
279 server_ldflags="$server_ldflags $osl_libs -losl"
281 CPPFLAGS="$OLD_CPPFLAGS"
282 LDFLAGS="$OLD_LDFLAGS"
284 ########################################################################### crypto
285 AC_ARG_ENABLE(cryptolib, [AS_HELP_STRING(--enable-cryptolib=lib, [
286 Force using crypto library "lib". This package requires either
287 openssl or libgcrypt being installed. Possible values for "lib"
288 are thus "openssl" and "gcrypt". If this option is not given,
289 openssl is tried first. If openssl was not found, gcrypt is
292 case "$enable_cryptolib" in
293 "openssl") check_openssl="yes"; check_gcrypt="no";;
294 "gcrypt") check_openssl="no"; check_gcrypt="yes";;
295 "") check_openssl="yes"; check_gcrypt="yes";;
296 *) AC_MSG_ERROR([invalid value "$enable_cryptolib" for --enable-cryptolib]);;
298 ###################################################################### openssl
299 if test "$check_openssl" = "yes"; then
300 OLD_CPPFLAGS="$CPPFLAGS"
301 OLD_LD_FLAGS="$LDFLAGS"
304 AC_ARG_WITH(openssl_headers, [AC_HELP_STRING(--with-openssl-headers=dir,
305 [look for openssl headers also in dir])])
306 if test -n "$with_openssl_headers"; then
307 openssl_cppflags="-I$with_openssl_headers"
308 CPPFLAGS="$CPPFLAGS $openssl_cppflags"
310 AC_ARG_WITH(openssl_libs, [AC_HELP_STRING(--with-openssl-libs=dir,
311 [look for openssl libraries also in dir])])
312 if test -n "$with_openssl_libs"; then
313 openssl_libs="-L$with_openssl_libs"
314 LDFLAGS="$LDFLAGS $openssl_libs"
316 AC_CHECK_HEADER(openssl/ssl.h, [], [have_openssl="no"])
317 AC_CHECK_LIB([crypto], [RAND_bytes], [], [have_openssl="no"])
318 if test "$have_openssl" = "no" -a -z "$with_openssl_headers$with_openssl_libs"; then
319 # try harder: openssl is sometimes installed in /usr/local/ssl
320 openssl_cppflags="-I/usr/local/ssl/include"
321 CPPFLAGS="$CPPFLAGS $openssl_cppflags"
322 openssl_libs="-L/usr/local/ssl/lib"
323 LDFLAGS="$LDFLAGS $openssl_libs"
325 unset ac_cv_header_openssl_ssl_h 2> /dev/null
326 unset ac_cv_lib_crypto_RAND_bytes 2> /dev/null
327 AC_CHECK_HEADER(openssl/ssl.h, [have_openssl="yes"], [])
328 if test "$have_openssl" = "yes"; then
329 AC_CHECK_LIB([crypto], [RAND_bytes], [], [have_openssl="no"])
332 if test "$have_openssl" = "yes"; then
333 AC_DEFINE(HAVE_OPENSSL, 1, [define to 1 to turn on openssl support])
334 AC_SUBST(openssl_cppflags)
335 openssl_libs="$openssl_libs -lssl -lcrypto"
336 server_ldflags="$server_ldflags $openssl_libs"
337 client_ldflags="$client_ldflags $openssl_libs"
338 audiod_ldflags="$audiod_ldflags $openssl_libs"
340 all_errlist_objs="$all_errlist_objs crypt"
341 server_errlist_objs="$server_errlist_objs crypt"
342 client_errlist_objs="$client_errlist_objs crypt"
343 audiod_errlist_objs="$audiod_errlist_objs crypt"
347 AC_MSG_WARN([openssl libraries not found])
349 CPPFLAGS="$OLD_CPPFLAGS"
350 LDFLAGS="$OLD_LDFLAGS"
355 ########################################################################### gcrypt
356 if test "$check_gcrypt" = "yes"; then
357 OLD_CPPFLAGS="$CPPFLAGS"
358 OLD_LD_FLAGS="$LDFLAGS"
361 AC_ARG_WITH(gcrypt_headers, [AC_HELP_STRING(--with-gcrypt-headers=dir,
362 [look for gcrypt headers also in dir])])
363 if test -n "$with_gcrypt_headers"; then
364 gcrypt_cppflags="-I$with_gcrypt_headers"
365 CPPFLAGS="$CPPFLAGS $gcrypt_cppflags"
367 AC_ARG_WITH(gcrypt_libs, [AC_HELP_STRING(--with-gcrypt-libs=dir,
368 [look for libgcrypt also in dir])])
369 if test -n "$with_gcrypt_libs"; then
370 gcrypt_libs="-L$with_gcrypt_libs"
371 LDFLAGS="$LDFLAGS $gcrypt_libs"
373 AC_CHECK_HEADER(gcrypt.h, [], [have_gcrypt="no"])
374 AC_CHECK_LIB([gcrypt], [gcry_randomize], [], [have_gcrypt="no"])
375 if test "$have_gcrypt" = "yes"; then
376 AC_DEFINE(HAVE_GCRYPT, 1, [define to 1 to turn on gcrypt support])
377 AC_SUBST(gcrypt_cppflags)
378 gcrypt_libs="$gcrypt_libs -lgcrypt"
379 server_ldflags="$server_ldflags $gcrypt_libs"
380 client_ldflags="$client_ldflags $gcrypt_libs"
381 audiod_ldflags="$audiod_ldflags $gcrypt_libs"
383 all_errlist_objs="$all_errlist_objs gcrypt"
384 server_errlist_objs="$server_errlist_objs gcrypt"
385 client_errlist_objs="$client_errlist_objs gcrypt"
386 audiod_errlist_objs="$audiod_errlist_objs gcrypt"
388 AC_MSG_WARN([gcrypt library not found])
390 CPPFLAGS="$OLD_CPPFLAGS"
391 LDFLAGS="$OLD_LDFLAGS"
396 ###########################################################################
397 if test "$have_openssl" = "no" -a "$have_gcrypt" = "no"; then
398 AC_MSG_ERROR([neither openssl nor gcrypt usable])
400 ########################################################################### libsocket
401 AC_CHECK_LIB([c], [socket],
403 [socket_lib="-lsocket"]
405 server_ldflags="$server_ldflags $socket_lib"
406 client_ldflags="$client_ldflags $socket_lib"
407 audioc_ldflags="$audioc_ldflags $socket_lib"
408 audiod_ldflags="$audiod_ldflags $socket_lib"
409 recv_ldflags="$recv_ldflags $socket_lib"
410 AC_SEARCH_LIBS([connect],[socket],[],[
411 AC_MSG_ERROR([Fatal: Did not find connect().])
413 ########################################################################### libnsl
414 AC_CHECK_LIB([c], [gethostbyname],
418 server_ldflags="$server_ldflags $nsl_lib"
419 client_ldflags="$client_ldflags $nsl_lib"
420 audioc_ldflags="$audioc_ldflags $nsl_lib"
421 recv_ldflags="$recv_ldflags $nsl_lib"
422 AC_SEARCH_LIBS([inet_ntoa],[nsl],[],[
423 AC_MSG_ERROR([Fatal: Did not find inet_ntoa().])
425 ########################################################################### ucred
426 AC_MSG_CHECKING(for struct ucred)
429 #include <sys/types.h>
430 #include <sys/socket.h>
432 struct ucred sucred; sucred.pid=0;
433 ],[have_ucred=yes],[have_ucred=no])
434 AC_MSG_RESULT($have_ucred)
435 if test ${have_ucred} = yes; then
436 AC_DEFINE(HAVE_UCRED, 1, define to 1 you have struct ucred)
439 ########################################################################### curses
441 OLD_CPPFLAGS="$CPPFLAGS"
442 OLD_LD_FLAGS="$LDFLAGS"
444 AC_ARG_WITH(curses_headers, [AC_HELP_STRING(--with-curses-headers=dir,
445 [look for curses.h also in dir])])
446 if test -n "$with_curses_headers"; then
447 curses_cppflags="-I$with_curses_headers"
448 CPPFLAGS="$CPPFLAGS $curses_cppflags"
450 AC_ARG_WITH(curses_libs, [AC_HELP_STRING(--with-curses-libs=dir,
451 [look for libcurses also in dir])])
452 if test -n "$with_curses_libs"; then
453 curses_libs="-L$with_curses_libs"
454 LDFLAGS="$LDFLAGS $curses_libs"
456 AC_CHECK_HEADER(curses.h, [], [
459 AC_CHECK_LIB([curses], [initscr], [], [
462 if test "$have_curses" = "yes"; then
463 AC_SUBST(curses_cppflags)
464 AC_DEFINE(HAVE_NCURSES, 1, [define to 1 to turn on curses support])
466 executables="$executables gui"
468 AC_MSG_WARN([cannot build para_gui])
470 CPPFLAGS="$OLD_CPPFLAGS"
471 LDFLAGS="$OLD_LDFLAGS"
474 ########################################################################### ip_mreqn
475 AC_MSG_CHECKING(for struct ip_mreqn (UDPv4 multicast))
482 ],[have_ip_mreqn=yes],[have_ip_mreqn=no])
483 AC_MSG_RESULT($have_ip_mreqn)
484 if test ${have_ip_mreqn} = yes; then
485 AC_DEFINE(HAVE_IP_MREQN, 1, define to 1 you have struct ip_mreqn)
487 ########################################################################### osx
489 AC_MSG_CHECKING(for CoreAudio (MacOs))
491 #include <CoreAudio/CoreAudio.h>
494 ],[have_core_audio=yes],[have_core_audio=no])
495 AC_MSG_RESULT($have_core_audio)
496 if test ${have_core_audio} = yes; then
497 f1="-framework CoreAudio"
498 f2="-framework AudioToolbox"
499 f3="-framework AudioUnit"
500 f4="-framework CoreServices"
503 all_errlist_objs="$all_errlist_objs osx_write"
504 # ipc is linked into para_server server and into the osx writer. If osl
505 # was not found, para_server will not be built and ipc has not yet been
506 # added to the list of all objects, so we must add it here.
507 if test "$have_osl" = "no"; then
508 all_errlist_objs="$all_errlist_objs ipc"
510 audiod_errlist_objs="$audiod_errlist_objs osx_write ipc"
511 audiod_cmdline_objs="$audiod_cmdline_objs osx_write.cmdline"
512 audiod_ldflags="$audiod_ldflags $f"
514 write_errlist_objs="$write_errlist_objs osx_write ipc"
515 write_cmdline_objs="$write_cmdline_objs osx_write.cmdline"
516 write_ldflags="$write_ldflags $f"
517 writers="$writers osx"
518 default_writer="OSX_WRITE"
519 AC_DEFINE(HAVE_CORE_AUDIO, 1, define to 1 on Mac Os X)
521 ########################################################### ogg/vorbis/speex
523 OLD_CPPFLAGS="$CPPFLAGS"
524 OLD_LD_FLAGS="$LDFLAGS"
526 AC_ARG_WITH(ogg_headers, [AC_HELP_STRING(--with-ogg-headers=dir,
527 [look for ogg headers also in dir])])
528 AC_ARG_WITH(ogg_libs, [AC_HELP_STRING(--with-ogg-libs=dir,
529 [look for ogg libs also in dir])])
530 AC_ARG_WITH(vorbis_headers, [AC_HELP_STRING(--with-vorbis-headers=dir,
531 [look for vorbis headers also in dir])])
532 AC_ARG_WITH(vorbis_libs, [AC_HELP_STRING(--with-vorbis-libs=dir,
533 [look for vorbis libs also in dir])])
534 AC_ARG_WITH(speex_headers, [AC_HELP_STRING(--with-speex-headers=dir,
535 [look for speex headers also in dir])])
536 AC_ARG_WITH(speex_libs, [AC_HELP_STRING(--with-speex-libs=dir,
537 [look for speex libs also in dir])])
539 if test -n "$with_ogg_headers"; then
540 ogg_cppflags="-I$with_ogg_headers"
541 CPPFLAGS="$CPPFLAGS $ogg_cppflags"
543 if test -n "$with_ogg_libs"; then
544 ogg_libs="-L$with_ogg_libs"
545 LDFLAGS="$LDFLAGS $ogg_libs"
547 AC_CHECK_HEADERS([ogg/ogg.h], [], [ have_ogg="no"; ])
548 AC_CHECK_LIB([ogg], [ogg_stream_init], [], [ have_ogg="no" ])
552 if test "$have_ogg" = "yes"; then
554 if test -n "$with_vorbis_headers"; then
555 vorbis_cppflags="-I$with_vorbis_headers"
556 CPPFLAGS="$CPPFLAGS $vorbis_cppflags"
558 if test -n "$with_vorbis_libs"; then
559 vorbis_libs="-L$with_vorbis_libs"
560 LDFLAGS="$LDFLAGS $vorbis_libs"
562 AC_CHECK_HEADERS([vorbis/codec.h], [], [ have_vorbis="no" ])
563 AC_CHECK_LIB([vorbis], [vorbis_info_init], [], [ have_vorbis="no" ])
566 if test -n "$with_speex_headers"; then
567 speex_cppflags="-I$with_speex_headers"
568 CPPFLAGS="$CPPFLAGS $speex_cppflags"
570 if test -n "$with_speex_libs"; then
571 speex_libs="-L$with_speex_libs"
572 LDFLAGS="$LDFLAGS $speex_libs"
574 AC_CHECK_LIB([speex], [speex_decoder_init], [], [ have_speex="no" ])
575 AC_CHECK_HEADERS([speex/speex.h], [], [ have_speex="no" ])
577 AC_MSG_WARN([vorbis/speex depend on libogg, which was not detected])
582 msg="support in para_server/para_filter/para_afh"
583 if test "$have_vorbis" = "yes" || test "$have_speex" = "yes"; then
584 AC_SUBST(ogg_cppflags)
585 ogg_libs="$ogg_libs -logg"
586 if test "$OSTYPE" = "Darwin"; then
587 ogg_libs="-Wl,-bind_at_load $ogg_libs"
589 server_ldflags="$server_ldflags $ogg_libs"
590 filter_ldflags="$filter_ldflags $ogg_libs"
591 audiod_ldflags="$audiod_ldflags $ogg_libs"
592 afh_ldflags="$afh_ldflags $ogg_libs"
593 all_errlist_objs="$all_errlist_objs ogg_afh_common"
594 afh_errlist_objs="$afh_errlist_objs ogg_afh_common"
595 server_errlist_objs="$server_errlist_objs ogg_afh_common"
597 if test "$have_vorbis" = "yes"; then
598 all_errlist_objs="$all_errlist_objs oggdec_filter ogg_afh"
599 AC_DEFINE(HAVE_OGGVORBIS, 1, define to 1 to turn on ogg/vorbis support)
600 filters="$filters oggdec"
601 vorbis_libs="-lvorbis -lvorbisfile"
602 server_ldflags="$server_ldflags $vorbis_libs"
603 filter_ldflags="$filter_ldflags $vorbis_libs"
604 audiod_ldflags="$audiod_ldflags $vorbis_libs"
605 afh_ldflags="$afh_ldflags $vorbis_libs"
607 server_errlist_objs="$server_errlist_objs ogg_afh"
608 filter_errlist_objs="$filter_errlist_objs oggdec_filter"
609 audiod_errlist_objs="$audiod_errlist_objs oggdec_filter"
610 afh_errlist_objs="$afh_errlist_objs ogg_afh"
612 audiod_audio_formats="$audiod_audio_formats ogg"
613 server_audio_formats="$server_audio_formats ogg"
615 AC_MSG_WARN([no ogg/vorbis $msg])
617 if test "$have_speex" = "yes"; then
618 all_errlist_objs="$all_errlist_objs spxdec_filter spx_afh spx_common"
619 AC_DEFINE(HAVE_SPEEX, 1, define to 1 to turn on ogg/speex support)
620 filters="$filters spxdec"
622 server_ldflags="$server_ldflags $speex_libs"
623 filter_ldflags="$filter_ldflags $speex_libs"
624 audiod_ldflags="$audiod_ldflags $speex_libs"
625 afh_ldflags="$afh_ldflags $speex_libs"
627 server_errlist_objs="$server_errlist_objs spx_afh spx_common"
628 filter_errlist_objs="$filter_errlist_objs spxdec_filter spx_common"
629 audiod_errlist_objs="$audiod_errlist_objs spxdec_filter spx_common"
630 afh_errlist_objs="$afh_errlist_objs spx_afh spx_common"
632 audiod_audio_formats="$audiod_audio_formats spx"
633 server_audio_formats="$server_audio_formats spx"
635 AC_MSG_WARN([no ogg/speex $msg])
637 CPPFLAGS="$OLD_CPPFLAGS"
638 LDFLAGS="$OLD_LDFLAGS"
640 ########################################################################### faad
642 OLD_CPPFLAGS="$CPPFLAGS"
643 OLD_LD_FLAGS="$LDFLAGS"
645 AC_ARG_WITH(faad_headers, [AC_HELP_STRING(--with-faad-headers=dir,
646 [look for neaacdec.h also in dir])])
647 if test -n "$with_faad_headers"; then
648 faad_cppflags="-I$with_faad_headers"
649 CPPFLAGS="$CPPFLAGS $faad_cppflags"
651 AC_ARG_WITH(faad_libs, [AC_HELP_STRING(--with-faad-libs=dir,
652 [look for libfaad also in dir])])
653 if test -n "$with_faad_libs"; then
654 faad_libs="-L$with_faad_libs"
655 LDFLAGS="$LDFLAGS $faad_libs"
657 AC_CHECK_HEADER(neaacdec.h, [], have_faad=no)
658 AC_CHECK_LIB([faad], [NeAACDecOpen], [], have_faad=no)
659 if test "$have_faad" = "yes"; then
660 AC_DEFINE(HAVE_FAAD, 1, define to 1 if you want to build the aacdec filter)
661 all_errlist_objs="$all_errlist_objs aac_common aacdec_filter aac_afh"
662 filter_errlist_objs="$filter_errlist_objs aacdec_filter aac_common"
663 afh_errlist_objs="$afh_errlist_objs aac_common aac_afh"
664 audiod_errlist_objs="$audiod_errlist_objs aacdec_filter aac_common"
665 server_errlist_objs="$server_errlist_objs aac_afh aac_common"
666 server_ldflags="$server_ldflags $faad_libs -lfaad"
667 filter_ldflags="$filter_ldflags $faad_libs -lfaad"
668 audiod_ldflags="$audiod_ldflags $faad_libs -lfaad"
669 afh_ldflags="$afh_ldflags $faad_libs -lfaad"
670 audiod_audio_formats="$audiod_audio_formats aac"
671 server_audio_formats="$server_audio_formats aac"
672 filters="$filters aacdec"
673 AC_SUBST(faad_cppflags)
675 AC_MSG_WARN([no aac support in para_audiod/para_filter])
677 CPPFLAGS="$OLD_CPPFLAGS"
678 LDFLAGS="$OLD_LDFLAGS"
680 ########################################################################### mad
682 OLD_CPPFLAGS="$CPPFLAGS"
683 OLD_LD_FLAGS="$LDFLAGS"
686 AC_ARG_WITH(mad_headers, [AC_HELP_STRING(--with-mad-headers=dir,
687 [look for mad.h also in dir])])
688 if test -n "$with_mad_headers"; then
689 mad_cppflags="-I$with_mad_headers"
690 CPPFLAGS="$CPPFLAGS $mad_cppflags"
692 AC_ARG_WITH(mad_libs, [AC_HELP_STRING(--with-mad-libs=dir,
693 [look for libmad also in dir])])
694 if test -n "$with_mad_libs"; then
695 mad_libs="-L$with_mad_libs"
696 LDFLAGS="$LDFLAGS $mad_libs"
698 AC_CHECK_HEADERS([mad.h], [], [
701 AC_CHECK_LIB([mad], [mad_stream_init], [], [
704 if test "$have_mad" = "yes"; then
705 AC_DEFINE(HAVE_MAD, 1, define to 1 if you want to build the mp3dec filter)
706 filter_cmdline_objs="$filter_cmdline_objs add_cmdline(mp3dec_filter)"
707 audiod_cmdline_objs="$audiod_cmdline_objs add_cmdline(mp3dec_filter)"
708 all_errlist_objs="$all_errlist_objs mp3dec_filter"
709 filter_errlist_objs="$filter_errlist_objs mp3dec_filter"
710 audiod_errlist_objs="$audiod_errlist_objs mp3dec_filter"
711 filter_ldflags="$filter_ldflags $mad_libs -lmad"
712 audiod_ldflags="$audiod_ldflags $mad_libs -lmad"
713 audiod_audio_formats="$audiod_audio_formats mp3"
714 filters="$filters mp3dec"
715 AC_SUBST(mad_cppflags)
717 AC_MSG_WARN([no mp3dec support in para_audiod/para_filter])
719 CPPFLAGS="$OLD_CPPFLAGS"
720 LDFLAGS="$OLD_LDFLAGS"
722 ###################################################################### libid3tag
723 OLD_CPPFLAGS="$CPPFLAGS"
724 OLD_LD_FLAGS="$LDFLAGS"
728 AC_ARG_WITH(id3tag_headers, [AC_HELP_STRING(--with-id3tag-headers=dir,
729 [look for id3tag header files also in dir])])
730 if test -n "$with_id3tag_headers"; then
731 id3tag_cppflags="-I$with_id3tag_headers"
732 CPPFLAGS="$CPPFLAGS $id3tag_cppflags"
734 AC_ARG_WITH(id3tag_libs, [AC_HELP_STRING(--with-id3tag-libs=dir,
735 [look for id3tag libs also in dir])])
736 if test -n "$with_id3tag_libs"; then
737 id3tag_libs="-L$with_id3tag_libs"
738 LDFLAGS="$LDFLAGS $id3tag_libs"
741 AC_MSG_CHECKING(for libid3tag)
745 struct id3_tag t = {.flags = 0};
746 ],[], [have_libid3tag=no])
747 AC_MSG_RESULT($have_libid3tag)
749 if test ${have_libid3tag} = yes; then
750 AC_DEFINE(HAVE_LIBID3TAG, 1, define to 1 you have libid3tag)
751 server_ldflags="$server_ldflags $id3tag_libs -lid3tag -lz"
752 afh_ldflags="$afh_ldflags $id3tag_libs -lid3tag -lz"
753 AC_SUBST(id3tag_cppflags)
755 AC_MSG_WARN([no support for id3v2 tags])
757 CPPFLAGS="$OLD_CPPFLAGS"
758 LDFLAGS="$OLD_LDFLAGS"
760 ########################################################################### flac
761 OLD_CPPFLAGS="$CPPFLAGS"
762 OLD_LD_FLAGS="$LDFLAGS"
766 AC_ARG_WITH(flac_headers, [AC_HELP_STRING(--with-flac-headers=dir,
767 [look for flac headers also in dir])])
768 if test -n "$with_flac_headers"; then
769 flac_cppflags="-I$with_flac_headers"
770 CPPFLAGS="$CPPFLAGS $flac_cppflags"
772 AC_ARG_WITH(flac_libs, [AC_HELP_STRING(--with-flac-libs=dir,
773 [look for flac libs also in dir])])
774 if test -n "$with_flac_libs"; then
775 flac_libs="-L$with_flac_libs"
776 LDFLAGS="$LDFLAGS $flac_libs"
778 AC_CHECK_HEADER(FLAC/stream_decoder.h, [], have_flac=no)
779 AC_CHECK_LIB([FLAC], [FLAC__stream_decoder_init_file], [], have_flac=no, -logg -lm)
780 if test "$have_flac" = "yes"; then
781 AC_DEFINE(HAVE_FLAC, 1, define to 1 if you want to build the flacdec filter)
782 all_errlist_objs="$all_errlist_objs flacdec_filter flac_afh"
783 filter_errlist_objs="$filter_errlist_objs flacdec_filter"
784 audiod_errlist_objs="$audiod_errlist_objs flacdec_filter"
785 afh_errlist_objs="$afh_errlist_objs flac_afh"
786 server_errlist_objs="$server_errlist_objs flac_afh"
787 filter_ldflags="$filter_ldflags $flac_libs -lFLAC"
788 audiod_ldflags="$audiod_ldflags $flac_libs -lFLAC"
789 server_ldflags="$server_ldflags $flac_libs -lFLAC"
790 afh_ldflags="$afh_ldflags $flac_libs -lFLAC"
791 filters="$filters flacdec"
792 server_audio_formats="$server_audio_formats flac"
793 audiod_audio_formats="$audiod_audio_formats flac"
794 AC_SUBST(flac_cppflags)
796 AC_MSG_WARN([no flac support in para_audiod/para_filter])
798 CPPFLAGS="$OLD_CPPFLAGS"
799 LDFLAGS="$OLD_LDFLAGS"
801 ########################################################################### oss
802 OLD_CPPFLAGS="$CPPFLAGS"
803 OLD_LD_FLAGS="$LDFLAGS"
807 msg="=> will not build para_fade/oss writer"
809 AC_CHECK_HEADER(sys/soundcard.h, [
810 extras="$extras fade"
811 executables="$executables fade"
812 all_errlist_objs="$all_errlist_objs oss_write"
813 audiod_errlist_objs="$audiod_errlist_objs oss_write"
814 audiod_cmdline_objs="$audiod_cmdline_objs add_cmdline(oss_write)"
816 write_errlist_objs="$write_errlist_objs oss_write"
817 write_cmdline_objs="$write_cmdline_objs add_cmdline(oss_write)"
818 writers="$writers oss"
819 default_writer="OSS_WRITE"
820 AC_CHECK_LIB(ossaudio, _oss_ioctl, [
821 audiod_ldflags="$audiod_ldflags -lossaudio"
822 write_ldflags="$write_ldflags -lossaudio"
823 fade_ldflags="$fade_ldflags -lossaudio"
829 AC_MSG_WARN([no sys/soundcard.h $msg])
832 CPPFLAGS="$OLD_CPPFLAGS"
833 LDFLAGS="$OLD_LDFLAGS"
836 ########################################################################### alsa
837 OLD_CPPFLAGS="$CPPFLAGS"
838 OLD_LD_FLAGS="$LDFLAGS"
841 msg="=> no alsa support for para_audiod/para_write"
842 if test "$OSTYPE" != "Linux"; then
847 if test "$have_alsa" = "yes"; then
848 AC_CHECK_HEADERS([alsa/asoundlib.h], [], [
850 AC_MSG_WARN([no alsa/asoundlib $msg])
854 if test "$have_alsa" = "yes"; then
855 AC_CHECK_LIB([asound], [snd_pcm_open], [], [
857 AC_MSG_WARN([no libasound $msg])
861 if test "$have_alsa" = "yes"; then
862 all_errlist_objs="$all_errlist_objs alsa_write"
863 audiod_errlist_objs="$audiod_errlist_objs alsa_write"
864 audiod_cmdline_objs="$audiod_cmdline_objs add_cmdline(alsa_write)"
865 audiod_ldflags="$audiod_ldflags -lasound"
867 write_errlist_objs="$write_errlist_objs alsa_write"
868 write_cmdline_objs="$write_cmdline_objs add_cmdline(alsa_write)"
869 write_ldflags="$write_ldflags -lasound"
870 writers="$writers alsa"
871 default_writer="ALSA_WRITE"
874 CPPFLAGS="$OLD_CPPFLAGS"
875 LDFLAGS="$OLD_LDFLAGS"
877 ########################################################################### libao
878 OLD_CPPFLAGS="$CPPFLAGS"
879 OLD_LD_FLAGS="$LDFLAGS"
883 AC_ARG_WITH(ao_headers, [AC_HELP_STRING(--with-ao-headers=dir,
884 [look for ao/ao.h also in dir])])
885 if test -n "$with_ao_headers"; then
886 ao_cppflags="-I$with_ao_headers"
887 CPPFLAGS="$CPPFLAGS $ao_cppflags"
889 AC_ARG_WITH(ao_libs, [AC_HELP_STRING(--with-ao-libs=dir,
890 [look for libao also in dir])])
891 if test -n "$with_ao_libs"; then
892 ao_libs="-L$with_ao_libs"
893 LDFLAGS="$LDFLAGS $ao_libs"
895 msg="no libao support for para_audiod/para_write"
896 AC_CHECK_HEADERS([ao/ao.h], [
899 AC_MSG_WARN([ao.h not found, $msg])
901 if test "$have_ao" = "yes"; then
902 AC_CHECK_LIB([ao], [ao_initialize], [], [
904 AC_MSG_WARN([ao lib not found or not working, $msg])
907 if test "$have_ao" = "yes"; then
908 AC_CHECK_HEADERS([pthread.h], [
911 AC_MSG_WARN([pthread.h not found, $msg])
914 if test "$have_ao" = "yes"; then
915 AC_CHECK_LIB([pthread], [pthread_create], [], [
917 AC_MSG_WARN([pthread lib not found or not working, $msg])
920 if test "$have_ao" = "yes"; then
921 all_errlist_objs="$all_errlist_objs ao_write"
922 audiod_errlist_objs="$audiod_errlist_objs ao_write"
923 audiod_cmdline_objs="$audiod_cmdline_objs add_cmdline(ao_write)"
924 audiod_ldflags="$audiod_ldflags -lao -lpthread"
926 write_errlist_objs="$write_errlist_objs ao_write"
927 write_cmdline_objs="$write_cmdline_objs add_cmdline(ao_write)"
928 write_ldflags="$write_ldflags $ao_libs -lao -lpthread"
929 writers="$writers ao"
930 AC_SUBST(ao_cppflags)
933 CPPFLAGS="$OLD_CPPFLAGS"
934 LDFLAGS="$OLD_LDFLAGS"
936 ############################################################# readline
937 OLD_CPPFLAGS="$CPPFLAGS"
938 OLD_LD_FLAGS="$LDFLAGS"
942 AC_ARG_WITH(readline_headers, [AC_HELP_STRING(--with-readline-headers=dir,
943 [look for libreadline header files also in dir])])
944 if test -n "$with_readline_headers"; then
945 readline_cppflags="-I$with_readline_headers"
946 CPPFLAGS="$CPPFLAGS $readline_cppflags"
949 AC_ARG_WITH(readline_libs, [AC_HELP_STRING(--with-readline-libs=dir,
950 [look for readline library also in dir])])
951 if test -n "$with_readline_libs"; then
952 readline_libs="-L$with_readline_libs"
953 LDFLAGS="$LDFLAGS $readline_libs"
955 msg="no interactive cli support"
956 AC_CHECK_HEADERS([readline/readline.h], [
959 AC_MSG_WARN([readline/readline.h not found, $msg])
961 if test "$have_readline" = "yes"; then
962 readline_libs="$readline_libs -lreadline"
963 AC_SEARCH_LIBS([rl_replace_line], [readline], [], [have_readline="no"])
964 if test "$have_readline" = "no"; then # try with -lcurses
966 AC_MSG_NOTICE([trying again with -lcurses])
967 unset ac_cv_search_rl_replace_line 2> /dev/null
968 AC_SEARCH_LIBS([rl_replace_line], [readline], [
970 readline_libs="$readline_libs -lcurses"
973 if test "$have_readline" = "no"; then # try with -ltermcap
975 AC_MSG_NOTICE([trying again with -ltermcap])
976 unset ac_cv_search_rl_replace_line 2> /dev/null
977 AC_SEARCH_LIBS([rl_replace_line], [readline], [
979 readline_libs="$readline_libs -ltermcap"
984 if test "$have_readline" = "yes"; then
985 all_errlist_objs="$all_errlist_objs interactive"
986 client_errlist_objs="$client_errlist_objs interactive"
987 client_ldflags="$client_ldflags $readline_libs"
988 audioc_errlist_objs="$audioc_errlist_objs buffer_tree interactive sched time"
989 audioc_ldflags="$audioc_ldflags $readline_libs"
990 AC_SUBST(readline_cppflags)
991 AC_DEFINE(HAVE_READLINE, 1, define to 1 to turn on readline support)
993 AC_MSG_WARN([libreadline not found or unusable])
995 CPPFLAGS="$OLD_CPPFLAGS"
996 LDFLAGS="$OLD_LDFLAGS"
998 #############################################################
1001 AC_SUBST(install_sh, [$INSTALL])
1002 AC_CONFIG_FILES([Makefile])
1005 AC_DEFUN([add_dot_o],[$(for i in $@; do printf "$i.o "; done)])
1006 AC_DEFUN([add_para],[$(for i in $@; do printf "para_$i "; done)])
1007 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) }])
1008 ############################################################# error2.h
1009 AC_MSG_NOTICE(creating error2.h)
1010 for i in $executables; do
1012 eval echo \$${i}_errlist_objs
1013 done | ./error2.pl > error2.h
1014 for obj in $all_errlist_objs; do
1015 SS="$SS SS_$(echo $obj | tr 'a-z' 'A-Z'),"
1017 AC_DEFINE_UNQUOTED(DEFINE_ERRLIST_OBJECT_ENUM,
1018 [enum {$SS NUM_SS}],
1019 [list of all objects that use the paraslash error facility]
1022 ################################################################## status items
1024 status_items="basename status num_played mtime bitrate frequency file_size
1025 status_flags format score techinfo afs_mode
1026 attributes_txt decoder_flags audiod_status play_time attributes_bitmap
1027 offset seconds_total stream_start current_time audiod_uptime image_id
1028 lyrics_id duration directory lyrics_name image_name path hash channels
1029 last_played num_chunks chunk_time amplification artist title year album
1033 for i in $status_items; do
1034 result="$result SI_$(echo $i | tr 'a-z' 'A-Z'), "
1036 AC_DEFINE_UNQUOTED(STATUS_ITEM_ENUM, [$result],
1037 [enum of all status items])
1040 for i in $status_items; do
1041 result="$result \"$i\", "
1043 AC_DEFINE_UNQUOTED(STATUS_ITEM_ARRAY, [$result],
1044 [char * array of all status items])
1046 AC_DEFINE_UNQUOTED(SERVER_AUDIO_FORMATS, "$server_audio_formats",
1047 [formats supported by para_server and para_afh])
1049 AC_SUBST(executables, add_para($executables))
1051 recv_objs="$recv_cmdline_objs $recv_errlist_objs"
1052 filter_objs="$filter_cmdline_objs $filter_errlist_objs"
1053 audiod_objs="$audiod_cmdline_objs $audiod_errlist_objs"
1054 server_objs="$server_cmdline_objs $server_errlist_objs"
1055 write_objs="$write_cmdline_objs $write_errlist_objs"
1056 client_objs="$client_cmdline_objs $client_errlist_objs"
1057 audioc_objs="$audioc_cmdline_objs $audioc_errlist_objs"
1058 afh_objs="$afh_cmdline_objs $afh_errlist_objs"
1059 fade_objs="$fade_cmdline_objs $fade_errlist_objs"
1061 AC_SUBST(recv_objs, add_dot_o($recv_objs))
1062 AC_SUBST(recv_ldflags, $recv_ldflags)
1063 AC_DEFINE_UNQUOTED(INIT_RECV_ERRLISTS, objlist_to_errlist($recv_errlist_objs),
1064 errors used by para_recv)
1066 AC_SUBST(filter_objs, add_dot_o($filter_objs))
1067 AC_SUBST(filter_ldflags, $filter_ldflags)
1068 AC_DEFINE_UNQUOTED(INIT_FILTER_ERRLISTS,
1069 objlist_to_errlist($filter_errlist_objs), errors used by para_filter)
1071 AC_SUBST(audiod_objs, add_dot_o($audiod_objs))
1072 AC_SUBST(audiod_ldflags, $audiod_ldflags)
1073 AC_DEFINE_UNQUOTED(INIT_AUDIOD_ERRLISTS, objlist_to_errlist($audiod_errlist_objs),
1074 errors used by para_audiod)
1076 AC_SUBST(server_objs, add_dot_o($server_objs))
1077 AC_SUBST(server_ldflags, $server_ldflags)
1078 AC_DEFINE_UNQUOTED(INIT_SERVER_ERRLISTS,
1079 objlist_to_errlist($server_errlist_objs), errors used by para_server)
1081 AC_SUBST(afh_objs, add_dot_o($afh_objs))
1082 AC_SUBST(afh_ldflags, $afh_ldflags)
1083 AC_DEFINE_UNQUOTED(INIT_AFH_ERRLISTS,
1084 objlist_to_errlist($afh_errlist_objs), errors used by para_afh)
1086 AC_SUBST(write_objs, add_dot_o($write_objs))
1087 AC_SUBST(write_ldflags, $write_ldflags)
1088 AC_DEFINE_UNQUOTED(INIT_WRITE_ERRLISTS,
1089 objlist_to_errlist($write_errlist_objs), errors used by para_write)
1091 AC_SUBST(client_objs, add_dot_o($client_objs))
1092 AC_SUBST(client_ldflags, $client_ldflags)
1093 AC_DEFINE_UNQUOTED(INIT_CLIENT_ERRLISTS,
1094 objlist_to_errlist($client_errlist_objs), errors used by para_client)
1096 AC_SUBST(audioc_objs, add_dot_o($audioc_objs))
1097 AC_SUBST(audioc_ldflags, $audioc_ldflags)
1098 AC_DEFINE_UNQUOTED(INIT_AUDIOC_ERRLISTS,
1099 objlist_to_errlist($audioc_errlist_objs), errors used by para_audioc)
1101 AC_SUBST(gui_objs, add_dot_o($gui_objs))
1102 AC_DEFINE_UNQUOTED(INIT_GUI_ERRLISTS,
1103 objlist_to_errlist($gui_errlist_objs), errors used by para_gui)
1105 AC_SUBST(fade_objs, add_dot_o($fade_objs))
1106 AC_SUBST(fade_ldflags, $fade_ldflags)
1107 AC_DEFINE_UNQUOTED(INIT_FADE_ERRLISTS,
1108 objlist_to_errlist($fade_errlist_objs), errors used by para_fade)
1111 enum="$(for i in $filters; do printf "${i}_FILTER, " | tr '[a-z]' '[A-Z]'; done)"
1112 AC_DEFINE_UNQUOTED(FILTER_ENUM, $enum NUM_SUPPORTED_FILTERS,
1113 enum of supported filters)
1114 inits="$(for i in $filters; do printf 'extern void '$i'_filter_init(struct filter *f); '; done)"
1115 AC_DEFINE_UNQUOTED(DECLARE_FILTER_INITS, $inits, init functions of the supported filters)
1116 array="$(for i in $filters; do printf '{.name = "'$i'", .init = '$i'_filter_init},'; done)"
1117 AC_DEFINE_UNQUOTED(FILTER_ARRAY, $array, array of supported filters)
1119 enum="$(for i in $writers; do printf "${i}_WRITE, " | tr '[a-z]' '[A-Z]'; done)"
1120 AC_DEFINE_UNQUOTED(WRITER_ENUM, $enum NUM_SUPPORTED_WRITERS,
1121 enum of supported writers)
1122 AC_DEFINE_UNQUOTED(DEFAULT_WRITER, $default_writer, use this writer if none was specified)
1123 names="$(for i in $writers; do printf \"$i\",' ' ; done)"
1124 AC_DEFINE_UNQUOTED(WRITER_NAMES, $names, supported writer names)
1125 inits="$(for i in $writers; do printf 'extern void '$i'_write_init(struct writer *); '; done)"
1126 AC_DEFINE_UNQUOTED(DECLARE_WRITER_INITS, $inits, init functions of the supported writers)
1127 array="$(for i in $writers; do printf '{.init = '$i'_write_init},'; done)"
1128 AC_DEFINE_UNQUOTED(WRITER_ARRAY, $array, array of supported writers)
1130 enum="$(for i in $audiod_audio_formats; do printf "AUDIO_FORMAT_${i}, " | tr '[a-z]' '[A-Z]'; done)"
1131 AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMATS_ENUM, $enum NUM_AUDIO_FORMATS,
1132 enum of audio formats supported by audiod)
1133 names="$(for i in $audiod_audio_formats; do printf \"$i\",' ' ; done)"
1134 AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMAT_ARRAY, $names, array of audio formats supported by audiod)
1138 paraslash configuration:
1139 ~~~~~~~~~~~~~~~~~~~~~~~~
1140 unix socket credentials: $have_ucred
1141 readline (interactive CLIs): $have_readline
1142 audio formats supported by para_server/para_afh: $server_audio_formats
1143 id3 version2 support: $have_libid3tag
1144 filters supported by para_audiod/para_filter: $filters
1145 writers supported by para_audiod/para_write: $writers
1146 optional executables: $extras