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_CONFIG_FILES([Makefile])
11 AC_DEFUN([add_dot_o],[$(for i in $@; do printf "$i.o "; done)])
12 AC_DEFUN([add_para],[$(for i in $@; do printf "para_$i "; done)])
13 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) }])
14 AC_PATH_PROG(UNAMEPATH, uname, no)
15 if test "$UNAMEPATH" = "no"; then
16 AC_MSG_ERROR(unable to determine system type)
18 AC_MSG_CHECKING(os type)
19 OSTYPE="`$UNAMEPATH -s`"
20 AC_MSG_RESULT("$OSTYPE")
22 if test "$OSTYPE" = "SunOS"; then
23 # needed on SunOS for socket magic
24 arch_cppflags="-D_XOPEN_SOURCE=500 -D__EXTENSIONS__"
25 AC_SUBST(arch_cppflags)
30 AC_PATH_PROG([gengetopt], [gengetopt])
31 test -z "$gengetopt" && AC_MSG_ERROR(
32 [gengetopt is required to build this package])
34 AC_PATH_PROG([help2man], [help2man])
35 test -z "$help2man" && AC_MSG_ERROR(
36 [help2man is required to build this package])
41 AC_SUBST(install_sh, [$INSTALL])
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])])
53 # Checks for typedefs, structures, and compiler characteristics.
73 # Checks for library functions.
75 AC_PROG_GCC_TRADITIONAL
81 AC_FUNC_SELECT_ARGTYPES
88 AC_CHECK_FUNCS([atexit dup2 memchr memmove memset \
89 regcomp select strchr strdup strerror strstr strtol uname \
90 fchdir gettimeofday localtime_r munmap strcasecmp strcspn \
91 strncasecmp strrchr strspn alarm mkdir inet_ntoa socket], [],
92 [AC_MSG_ERROR([function not found, cannot live without it])])
94 AC_DEFUN([add_cmdline],[$(for i in $@; do printf "${i}.cmdline "; done)])
97 all_errlist_objs="mp3_afh afh_common net string signal time daemon
98 stat afh amp_filter fd ringbuffer sched audiod
99 grab_client filter_common wav_filter compress_filter http_recv
100 dccp_recv recv_common write_common file_write audiod_command
101 client_common recv stdout filter stdin audioc write client
102 exec send_common ggo udp_recv color fec fecdec_filter
103 prebuffer_filter bitstream imdct check_wav
104 wma_afh wma_common wmadec_filter buffer_tree crypt_common
105 gui gui_theme sideband afh_recv play"
107 executables="recv filter audioc write client afh audiod play"
109 recv_cmdline_objs="add_cmdline(recv http_recv dccp_recv udp_recv afh_recv)"
112 http_recv recv_common recv time string net dccp_recv fd
113 sched stdout ggo udp_recv buffer_tree afh_recv afh_common
114 wma_afh wma_common mp3_afh
119 filter_cmdline_objs="add_cmdline(filter compress_filter amp_filter prebuffer_filter)"
120 filter_errlist_objs="filter_common wav_filter compress_filter filter string
121 stdin stdout sched fd amp_filter ggo fecdec_filter fec
122 prebuffer_filter time bitstream imdct wma_common wmadec_filter buffer_tree"
124 filters=" compress wav amp fecdec wmadec prebuffer"
126 audioc_cmdline_objs="add_cmdline(audioc)"
127 audioc_errlist_objs="audioc string net fd"
130 audiod_cmdline_objs="add_cmdline(audiod compress_filter http_recv dccp_recv file_write client amp_filter udp_recv prebuffer_filter)"
131 audiod_errlist_objs="audiod signal string daemon stat net crypt_common sideband
132 time grab_client filter_common wav_filter compress_filter amp_filter http_recv dccp_recv
133 recv_common fd sched write_common file_write audiod_command fecdec_filter
134 client_common ggo udp_recv color fec prebuffer_filter
135 bitstream imdct wma_common wmadec_filter buffer_tree"
137 audiod_audio_formats="wma"
139 afh_cmdline_objs="add_cmdline(afh)"
140 afh_errlist_objs="afh string fd mp3_afh afh_common time wma_afh wma_common"
143 write_cmdline_objs="add_cmdline(write file_write)"
144 write_errlist_objs="write write_common file_write time fd string sched stdin
145 buffer_tree ggo check_wav"
148 default_writer="FILE_WRITE"
150 client_cmdline_objs="add_cmdline(client)"
151 client_errlist_objs="client net string fd sched stdin stdout time sideband
152 client_common buffer_tree crypt_common"
155 gui_cmdline_objs="add_cmdline(gui)"
156 gui_errlist_objs="exec signal string stat ringbuffer fd gui gui_theme"
157 gui_objs="$gui_cmdline_objs $gui_errlist_objs"
158 play_errlist_objs="play fd sched ggo buffer_tree time string net
160 wma_afh wma_common mp3_afh
161 recv_common udp_recv http_recv dccp_recv
162 filter_common fec bitstream imdct
163 wav_filter compress_filter amp_filter prebuffer_filter fecdec_filter
165 write_common file_write
167 play_cmdline_objs="add_cmdline(http_recv dccp_recv udp_recv afh_recv compress_filter amp_filter prebuffer_filter file_write play)"
169 ########################################################################### snprintf
170 # ===========================================================================
171 # http://www.nongnu.org/autoconf-archive/ax_func_snprintf.html
172 # ===========================================================================
180 # Checks for a fully C99 compliant snprintf, in particular checks whether
181 # it does bounds checking and returns the correct string length; does the
182 # same check for vsnprintf. If no working snprintf or vsnprintf is found,
183 # it prints an error message and aborts.
187 # Copyright (c) 2008 Ruediger Kuhlmann <info@ruediger-kuhlmann.de>
189 # Copying and distribution of this file, with or without modification, are
190 # permitted in any medium without royalty provided the copyright notice
191 # and this notice are preserved.
193 AU_ALIAS([AC_FUNC_SNPRINTF], [AX_FUNC_SNPRINTF])
194 AC_DEFUN([AX_FUNC_SNPRINTF],
195 [AC_CHECK_FUNCS(snprintf vsnprintf)
196 AC_MSG_CHECKING(for working snprintf)
197 AC_CACHE_VAL(ac_cv_have_working_snprintf,
198 [AC_RUN_IFELSE([AC_LANG_SOURCE([[
203 char bufs[5] = { 'x', 'x', 'x', '\0', '\0' };
204 char bufd[5] = { 'x', 'x', 'x', '\0', '\0' };
206 i = snprintf (bufs, 2, "%s", "111");
207 if (strcmp (bufs, "1")) exit (1);
208 if (i != 3) exit (1);
209 i = snprintf (bufd, 2, "%d", 111);
210 if (strcmp (bufd, "1")) exit (1);
211 if (i != 3) exit (1);
213 }]])],[ac_cv_have_working_snprintf=yes],
214 [ac_cv_have_working_snprintf=no],[ac_cv_have_working_snprintf=cross])])
215 AC_MSG_RESULT([$ac_cv_have_working_snprintf])
216 AC_MSG_CHECKING(for working vsnprintf)
217 AC_CACHE_VAL(ac_cv_have_working_vsnprintf,
218 [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
221 int my_vsnprintf (char *buf, const char *tmpl, ...)
225 va_start (args, tmpl);
226 i = vsnprintf (buf, 2, tmpl, args);
233 char bufs[5] = { 'x', 'x', 'x', '\0', '\0' };
234 char bufd[5] = { 'x', 'x', 'x', '\0', '\0' };
236 i = my_vsnprintf (bufs, "%s", "111");
237 if (strcmp (bufs, "1")) exit (1);
238 if (i != 3) exit (1);
239 i = my_vsnprintf (bufd, "%d", 111);
240 if (strcmp (bufd, "1")) exit (1);
241 if (i != 3) exit (1);
243 }]])],[ac_cv_have_working_vsnprintf=yes],
244 [ac_cv_have_working_vsnprintf=no],[ac_cv_have_working_vsnprintf=cross])])
245 AC_MSG_RESULT([$ac_cv_have_working_vsnprintf])
246 if test x$ac_cv_have_working_snprintf$ac_cv_have_working_vsnprintf != "xyesyes"; then
247 AC_MSG_ERROR([fatal: buggy snprintf() detected])
250 ################################################################## clock_gettime
252 AC_CHECK_LIB([c], [clock_gettime], [clock_gettime_lib=c], [
253 AC_CHECK_LIB([rt], [clock_gettime], [clock_gettime_lib=rt], [], [])
255 if test -n "$clock_gettime_lib"; then
256 AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [
257 define to 1 if clock_gettime() is supported])
259 if test "$clock_gettime_lib" = "rt"; then
260 AC_SUBST(clock_gettime_ldflags, -lrt)
262 ########################################################################### osl
264 OLD_CPPFLAGS="$CPPFLAGS"
265 OLD_LD_FLAGS="$LDFLAGS"
267 AC_ARG_WITH(osl_headers, [AS_HELP_STRING(--with-osl-headers=dir,
268 [look for osl.h also in dir])])
269 if test -n "$with_osl_headers"; then
270 osl_cppflags="-I$with_osl_headers"
271 CPPFLAGS="$CPPFLAGS $osl_cppflags"
273 AC_ARG_WITH(osl_libs, [AS_HELP_STRING(--with-osl-libs=dir,
274 [look for libosl also in dir])])
275 if test -n "$with_osl_libs"; then
276 osl_libs="-L$with_osl_libs"
277 LDFLAGS="$LDFLAGS $osl_libs"
280 AC_CHECK_HEADER(osl.h, [], have_osl=no)
281 AC_CHECK_LIB([osl], [osl_open_table], [], have_osl=no)
282 if test "$have_osl" = "no"; then
283 AC_MSG_WARN([libosl not found, can not build para_server.
285 http://systemlinux.org/~maan/osl
287 git clone git://git.tuebingen.mpg.de/osl
290 extras="$extras server"
291 executables="$executables server"
292 server_cmdline_objs="add_cmdline(server)"
293 server_errlist_objs="server afh_common mp3_afh vss command net
294 string signal time daemon http_send close_on_fork mm
295 crypt_common ipc dccp_send fd user_list chunk_queue
296 afs aft mood score attribute blob playlist sched acl
297 send_common udp_send color fec wma_afh wma_common sideband"
298 all_errlist_objs="$all_errlist_objs server vss command
299 http_send close_on_fork mm ipc dccp_send user_list
300 chunk_queue afs aft mood score attribute blob playlist
304 audio_format_handlers="mp3 wma"
305 AC_SUBST(osl_cppflags)
306 server_ldflags="$server_ldflags $osl_libs -losl"
308 CPPFLAGS="$OLD_CPPFLAGS"
309 LDFLAGS="$OLD_LDFLAGS"
311 ########################################################################### crypto
312 AC_ARG_ENABLE(cryptolib, [AS_HELP_STRING(--enable-cryptolib=lib, [
313 Force using crypto library "lib". This package requires either
314 openssl or libgcrypt being installed. Possible values for "lib"
315 are thus "openssl" and "gcrypt". If this option is not given,
316 openssl is tried first. If openssl was not found, gcrypt is
319 case "$enable_cryptolib" in
320 "openssl") check_openssl="yes"; check_gcrypt="no";;
321 "gcrypt") check_openssl="no"; check_gcrypt="yes";;
322 "") check_openssl="yes"; check_gcrypt="yes";;
323 *) AC_MSG_ERROR([invalid value "$enable_cryptolib" for --enable-cryptolib]);;
325 ###################################################################### openssl
326 if test "$check_openssl" = "yes"; then
327 OLD_CPPFLAGS="$CPPFLAGS"
328 OLD_LD_FLAGS="$LDFLAGS"
331 AC_ARG_WITH(openssl_headers, [AS_HELP_STRING(--with-openssl-headers=dir,
332 [look for openssl headers also in dir])])
333 if test -n "$with_openssl_headers"; then
334 openssl_cppflags="-I$with_openssl_headers"
335 CPPFLAGS="$CPPFLAGS $openssl_cppflags"
337 AC_ARG_WITH(openssl_libs, [AS_HELP_STRING(--with-openssl-libs=dir,
338 [look for openssl libraries also in dir])])
339 if test -n "$with_openssl_libs"; then
340 openssl_libs="-L$with_openssl_libs"
341 LDFLAGS="$LDFLAGS $openssl_libs"
343 AC_CHECK_HEADER(openssl/ssl.h, [], [have_openssl="no"])
344 AC_CHECK_LIB([crypto], [RAND_bytes], [], [have_openssl="no"])
345 if test "$have_openssl" = "no" -a -z "$with_openssl_headers$with_openssl_libs"; then
346 # try harder: openssl is sometimes installed in /usr/local/ssl
347 openssl_cppflags="-I/usr/local/ssl/include"
348 CPPFLAGS="$CPPFLAGS $openssl_cppflags"
349 openssl_libs="-L/usr/local/ssl/lib"
350 LDFLAGS="$LDFLAGS $openssl_libs"
352 unset ac_cv_header_openssl_ssl_h 2> /dev/null
353 unset ac_cv_lib_crypto_RAND_bytes 2> /dev/null
354 AC_CHECK_HEADER(openssl/ssl.h, [have_openssl="yes"], [])
355 if test "$have_openssl" = "yes"; then
356 AC_CHECK_LIB([crypto], [RAND_bytes], [], [have_openssl="no"])
359 if test "$have_openssl" = "yes"; then
360 AC_DEFINE(HAVE_OPENSSL, 1, [define to 1 to turn on openssl support])
361 AC_SUBST(openssl_cppflags)
362 openssl_libs="$openssl_libs -lssl -lcrypto"
363 server_ldflags="$server_ldflags $openssl_libs"
364 client_ldflags="$client_ldflags $openssl_libs"
365 audiod_ldflags="$audiod_ldflags $openssl_libs"
367 all_errlist_objs="$all_errlist_objs crypt"
368 server_errlist_objs="$server_errlist_objs crypt"
369 client_errlist_objs="$client_errlist_objs crypt"
370 audiod_errlist_objs="$audiod_errlist_objs crypt"
374 AC_MSG_WARN([openssl libraries not found])
376 CPPFLAGS="$OLD_CPPFLAGS"
377 LDFLAGS="$OLD_LDFLAGS"
382 ########################################################################### gcrypt
383 if test "$check_gcrypt" = "yes"; then
384 OLD_CPPFLAGS="$CPPFLAGS"
385 OLD_LD_FLAGS="$LDFLAGS"
388 AC_ARG_WITH(gcrypt_headers, [AS_HELP_STRING(--with-gcrypt-headers=dir,
389 [look for gcrypt headers also in dir])])
390 if test -n "$with_gcrypt_headers"; then
391 gcrypt_cppflags="-I$with_gcrypt_headers"
392 CPPFLAGS="$CPPFLAGS $gcrypt_cppflags"
394 AC_ARG_WITH(gcrypt_libs, [AS_HELP_STRING(--with-gcrypt-libs=dir,
395 [look for libgcrypt also in dir])])
396 if test -n "$with_gcrypt_libs"; then
397 gcrypt_libs="-L$with_gcrypt_libs"
398 LDFLAGS="$LDFLAGS $gcrypt_libs"
400 AC_CHECK_HEADER(gcrypt.h, [], [have_gcrypt="no"])
401 AC_CHECK_LIB([gcrypt], [gcry_randomize], [], [have_gcrypt="no"])
402 if test "$have_gcrypt" = "yes"; then
403 AC_DEFINE(HAVE_GCRYPT, 1, [define to 1 to turn on gcrypt support])
404 AC_SUBST(gcrypt_cppflags)
405 gcrypt_libs="$gcrypt_libs -lgcrypt"
406 server_ldflags="$server_ldflags $gcrypt_libs"
407 client_ldflags="$client_ldflags $gcrypt_libs"
408 audiod_ldflags="$audiod_ldflags $gcrypt_libs"
410 all_errlist_objs="$all_errlist_objs gcrypt"
411 server_errlist_objs="$server_errlist_objs gcrypt"
412 client_errlist_objs="$client_errlist_objs gcrypt"
413 audiod_errlist_objs="$audiod_errlist_objs gcrypt"
415 AC_MSG_WARN([gcrypt library not found])
417 CPPFLAGS="$OLD_CPPFLAGS"
418 LDFLAGS="$OLD_LDFLAGS"
423 ###########################################################################
424 if test "$have_openssl" = "no" -a "$have_gcrypt" = "no"; then
425 AC_MSG_ERROR([neither openssl nor gcrypt usable])
427 ########################################################################### libsocket
428 AC_CHECK_LIB([c], [socket],
430 [socket_lib="-lsocket"]
432 server_ldflags="$server_ldflags $socket_lib"
433 client_ldflags="$client_ldflags $socket_lib"
434 audioc_ldflags="$audioc_ldflags $socket_lib"
435 audiod_ldflags="$audiod_ldflags $socket_lib"
436 recv_ldflags="$recv_ldflags $socket_lib"
437 AC_SEARCH_LIBS([connect],[socket],[],[
438 AC_MSG_ERROR([Fatal: Did not find connect().])
440 ########################################################################### libnsl
441 AC_CHECK_LIB([c], [gethostbyname],
445 server_ldflags="$server_ldflags $nsl_lib"
446 client_ldflags="$client_ldflags $nsl_lib"
447 audioc_ldflags="$audioc_ldflags $nsl_lib"
448 recv_ldflags="$recv_ldflags $nsl_lib"
449 AC_SEARCH_LIBS([inet_ntoa],[nsl],[],[
450 AC_MSG_ERROR([Fatal: Did not find inet_ntoa().])
452 ########################################################################### ucred
453 AC_MSG_CHECKING(for struct ucred)
454 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
456 #include <sys/types.h>
457 #include <sys/socket.h>
459 struct ucred sucred; sucred.pid=0;
460 ]])],[have_ucred=yes],[have_ucred=no])
461 AC_MSG_RESULT($have_ucred)
462 if test ${have_ucred} = yes; then
463 AC_DEFINE(HAVE_UCRED, 1, define to 1 you have struct ucred)
466 ########################################################################### curses
468 OLD_CPPFLAGS="$CPPFLAGS"
469 OLD_LD_FLAGS="$LDFLAGS"
471 AC_ARG_WITH(curses_headers, [AS_HELP_STRING(--with-curses-headers=dir,
472 [look for curses.h also in dir])])
473 if test -n "$with_curses_headers"; then
474 curses_cppflags="-I$with_curses_headers"
475 CPPFLAGS="$CPPFLAGS $curses_cppflags"
477 AC_ARG_WITH(curses_libs, [AS_HELP_STRING(--with-curses-libs=dir,
478 [look for libcurses also in dir])])
479 if test -n "$with_curses_libs"; then
480 curses_libs="-L$with_curses_libs"
481 LDFLAGS="$LDFLAGS $curses_libs"
483 AC_CHECK_HEADER(curses.h, [], [
486 AC_CHECK_LIB([curses], [initscr], [], [
489 if test "$have_curses" = "yes"; then
490 AC_SUBST(curses_cppflags)
491 AC_DEFINE(HAVE_NCURSES, 1, [define to 1 to turn on curses support])
493 executables="$executables gui"
495 AC_MSG_WARN([no curses lib, cannot build para_gui])
497 CPPFLAGS="$OLD_CPPFLAGS"
498 LDFLAGS="$OLD_LDFLAGS"
501 ########################################################################### ip_mreqn
502 AC_MSG_CHECKING(for struct ip_mreqn (UDPv4 multicast))
503 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
509 ]])],[have_ip_mreqn=yes],[have_ip_mreqn=no])
510 AC_MSG_RESULT($have_ip_mreqn)
511 if test ${have_ip_mreqn} = yes; then
512 AC_DEFINE(HAVE_IP_MREQN, 1, define to 1 you have struct ip_mreqn)
514 ########################################################################### osx
516 AC_MSG_CHECKING(for CoreAudio (MacOs))
517 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
518 #include <CoreAudio/CoreAudio.h>
521 ]])],[have_core_audio=yes],[have_core_audio=no])
522 AC_MSG_RESULT($have_core_audio)
523 if test ${have_core_audio} = yes; then
524 f1="-framework CoreAudio"
525 f2="-framework AudioToolbox"
526 f3="-framework AudioUnit"
527 f4="-framework CoreServices"
530 all_errlist_objs="$all_errlist_objs osx_write"
531 # ipc is linked into para_server server and into the osx writer. If osl
532 # was not found, para_server will not be built and ipc has not yet been
533 # added to the list of all objects, so we must add it here.
534 if test "$have_osl" = "no"; then
535 all_errlist_objs="$all_errlist_objs ipc"
537 audiod_errlist_objs="$audiod_errlist_objs osx_write ipc"
538 audiod_cmdline_objs="$audiod_cmdline_objs osx_write.cmdline"
539 audiod_ldflags="$audiod_ldflags $f"
541 play_errlist_objs="$play_errlist_objs osx_write ipc"
542 play_cmdline_objs="$play_cmdline_objs osx_write.cmdline"
543 play_ldflags="$play_ldflags $f"
545 write_errlist_objs="$write_errlist_objs osx_write ipc"
546 write_cmdline_objs="$write_cmdline_objs osx_write.cmdline"
547 write_ldflags="$write_ldflags $f"
548 writers="$writers osx"
549 default_writer="OSX_WRITE"
550 AC_DEFINE(HAVE_CORE_AUDIO, 1, define to 1 on Mac Os X)
552 ########################################################### ogg/vorbis/speex
554 OLD_CPPFLAGS="$CPPFLAGS"
555 OLD_LD_FLAGS="$LDFLAGS"
557 AC_ARG_WITH(ogg_headers, [AS_HELP_STRING(--with-ogg-headers=dir,
558 [look for ogg headers also in dir])])
559 AC_ARG_WITH(ogg_libs, [AS_HELP_STRING(--with-ogg-libs=dir,
560 [look for ogg libs also in dir])])
561 AC_ARG_WITH(vorbis_headers, [AS_HELP_STRING(--with-vorbis-headers=dir,
562 [look for vorbis headers also in dir])])
563 AC_ARG_WITH(vorbis_libs, [AS_HELP_STRING(--with-vorbis-libs=dir,
564 [look for vorbis libs also in dir])])
565 AC_ARG_WITH(speex_headers, [AS_HELP_STRING(--with-speex-headers=dir,
566 [look for speex headers also in dir])])
567 AC_ARG_WITH(speex_libs, [AS_HELP_STRING(--with-speex-libs=dir,
568 [look for speex libs also in dir])])
570 if test -n "$with_ogg_headers"; then
571 ogg_cppflags="-I$with_ogg_headers"
572 CPPFLAGS="$CPPFLAGS $ogg_cppflags"
574 if test -n "$with_ogg_libs"; then
575 ogg_libs="-L$with_ogg_libs"
576 LDFLAGS="$LDFLAGS $ogg_libs"
578 AC_CHECK_HEADERS([ogg/ogg.h], [], [ have_ogg="no"; ])
579 AC_CHECK_LIB([ogg], [ogg_stream_init], [], [ have_ogg="no" ])
583 if test "$have_ogg" = "yes"; then
585 if test -n "$with_vorbis_headers"; then
586 vorbis_cppflags="-I$with_vorbis_headers"
587 CPPFLAGS="$CPPFLAGS $vorbis_cppflags"
589 if test -n "$with_vorbis_libs"; then
590 vorbis_libs="-L$with_vorbis_libs"
591 LDFLAGS="$LDFLAGS $vorbis_libs"
593 AC_CHECK_HEADERS([vorbis/codec.h], [], [ have_vorbis="no" ])
594 AC_CHECK_LIB([vorbis], [vorbis_info_init], [], [ have_vorbis="no" ])
597 if test -n "$with_speex_headers"; then
598 speex_cppflags="-I$with_speex_headers"
599 CPPFLAGS="$CPPFLAGS $speex_cppflags"
601 if test -n "$with_speex_libs"; then
602 speex_libs="-L$with_speex_libs"
603 LDFLAGS="$LDFLAGS $speex_libs"
605 AC_CHECK_LIB([speex], [speex_decoder_init], [], [ have_speex="no" ])
606 AC_CHECK_HEADERS([speex/speex.h], [], [ have_speex="no" ])
608 AC_MSG_WARN([vorbis/speex depend on libogg, which was not detected])
613 msg="support in para_server/para_filter/para_afh"
614 if test "$have_vorbis" = "yes" || test "$have_speex" = "yes"; then
615 AC_SUBST(ogg_cppflags)
616 ogg_libs="$ogg_libs -logg"
617 if test "$OSTYPE" = "Darwin"; then
618 ogg_libs="-Wl,-bind_at_load $ogg_libs"
620 server_ldflags="$server_ldflags $ogg_libs"
621 filter_ldflags="$filter_ldflags $ogg_libs"
622 audiod_ldflags="$audiod_ldflags $ogg_libs"
623 play_ldflags="$play_ldflags $ogg_libs"
624 afh_ldflags="$afh_ldflags $ogg_libs"
625 recv_ldflags="$recv_ldflags $ogg_libs"
626 all_errlist_objs="$all_errlist_objs ogg_afh_common"
627 afh_errlist_objs="$afh_errlist_objs ogg_afh_common"
628 recv_errlist_objs="$recv_errlist_objs ogg_afh_common"
629 server_errlist_objs="$server_errlist_objs ogg_afh_common"
630 play_errlist_objs="$play_errlist_objs ogg_afh_common"
632 if test "$have_vorbis" = "yes"; then
633 all_errlist_objs="$all_errlist_objs oggdec_filter ogg_afh"
634 AC_DEFINE(HAVE_OGGVORBIS, 1, define to 1 to turn on ogg/vorbis support)
635 filters="$filters oggdec"
636 vorbis_libs="-lvorbis -lvorbisfile"
637 server_ldflags="$server_ldflags $vorbis_libs"
638 filter_ldflags="$filter_ldflags $vorbis_libs"
639 audiod_ldflags="$audiod_ldflags $vorbis_libs"
640 play_ldflags="$play_ldflags $vorbis_libs"
641 afh_ldflags="$afh_ldflags $vorbis_libs"
642 recv_ldflags="$recv_ldflags $vorbis_libs"
644 server_errlist_objs="$server_errlist_objs ogg_afh"
645 filter_errlist_objs="$filter_errlist_objs oggdec_filter"
646 audiod_errlist_objs="$audiod_errlist_objs oggdec_filter"
647 play_errlist_objs="$play_errlist_objs oggdec_filter ogg_afh"
648 afh_errlist_objs="$afh_errlist_objs ogg_afh"
649 recv_errlist_objs="$recv_errlist_objs ogg_afh"
651 audiod_audio_formats="$audiod_audio_formats ogg"
652 audio_format_handlers="$audio_format_handlers ogg"
654 AC_MSG_WARN([no ogg/vorbis $msg])
656 if test "$have_speex" = "yes"; then
657 all_errlist_objs="$all_errlist_objs spxdec_filter spx_afh spx_common"
658 AC_DEFINE(HAVE_SPEEX, 1, define to 1 to turn on ogg/speex support)
659 filters="$filters spxdec"
661 server_ldflags="$server_ldflags $speex_libs"
662 filter_ldflags="$filter_ldflags $speex_libs"
663 audiod_ldflags="$audiod_ldflags $speex_libs"
664 play_ldflags="$play_ldflags $speex_libs"
665 afh_ldflags="$afh_ldflags $speex_libs"
666 recv_ldflags="$recv_ldflags $speex_libs"
668 server_errlist_objs="$server_errlist_objs spx_afh spx_common"
669 filter_errlist_objs="$filter_errlist_objs spxdec_filter spx_common"
670 audiod_errlist_objs="$audiod_errlist_objs spxdec_filter spx_common"
671 play_errlist_objs="$play_errlist_objs spxdec_filter spx_afh spx_common"
672 afh_errlist_objs="$afh_errlist_objs spx_afh spx_common"
673 recv_errlist_objs="$recv_errlist_objs spx_afh spx_common"
675 audiod_audio_formats="$audiod_audio_formats spx"
676 audio_format_handlers="$audio_format_handlers spx"
678 AC_MSG_WARN([no ogg/speex $msg])
680 CPPFLAGS="$OLD_CPPFLAGS"
681 LDFLAGS="$OLD_LDFLAGS"
683 ########################################################################### faad
685 OLD_CPPFLAGS="$CPPFLAGS"
686 OLD_LD_FLAGS="$LDFLAGS"
688 AC_ARG_WITH(faad_headers, [AS_HELP_STRING(--with-faad-headers=dir,
689 [look for neaacdec.h also in dir])])
690 if test -n "$with_faad_headers"; then
691 faad_cppflags="-I$with_faad_headers"
692 CPPFLAGS="$CPPFLAGS $faad_cppflags"
694 AC_ARG_WITH(faad_libs, [AS_HELP_STRING(--with-faad-libs=dir,
695 [look for libfaad also in dir])])
696 if test -n "$with_faad_libs"; then
697 faad_libs="-L$with_faad_libs"
698 LDFLAGS="$LDFLAGS $faad_libs"
700 AC_CHECK_HEADER(neaacdec.h, [], have_faad=no)
701 AC_CHECK_LIB([faad], [NeAACDecOpen], [], have_faad=no)
702 if test "$have_faad" = "yes"; then
703 AC_DEFINE(HAVE_FAAD, 1, define to 1 if you want to build the aacdec filter)
704 all_errlist_objs="$all_errlist_objs aac_common aacdec_filter aac_afh"
705 filter_errlist_objs="$filter_errlist_objs aacdec_filter aac_common"
706 afh_errlist_objs="$afh_errlist_objs aac_common aac_afh"
707 audiod_errlist_objs="$audiod_errlist_objs aacdec_filter aac_common"
708 play_errlist_objs="$play_errlist_objs aacdec_filter aac_afh aac_common"
709 server_errlist_objs="$server_errlist_objs aac_afh aac_common"
710 recv_errlist_objs="$recv_errlist_objs aac_afh aac_common"
712 server_ldflags="$server_ldflags $faad_libs -lfaad"
713 filter_ldflags="$filter_ldflags $faad_libs -lfaad"
714 audiod_ldflags="$audiod_ldflags $faad_libs -lfaad"
715 play_ldflags="$play_ldflags $faad_libs -lfaad"
716 afh_ldflags="$afh_ldflags $faad_libs -lfaad"
717 recv_ldflags="$afh_ldflags $faad_libs -lfaad"
719 audiod_audio_formats="$audiod_audio_formats aac"
720 audio_format_handlers="$audio_format_handlers aac"
721 filters="$filters aacdec"
722 AC_SUBST(faad_cppflags)
724 AC_MSG_WARN([no aac support in para_audiod/para_filter])
726 CPPFLAGS="$OLD_CPPFLAGS"
727 LDFLAGS="$OLD_LDFLAGS"
729 ########################################################################### mad
731 OLD_CPPFLAGS="$CPPFLAGS"
732 OLD_LD_FLAGS="$LDFLAGS"
735 AC_ARG_WITH(mad_headers, [AS_HELP_STRING(--with-mad-headers=dir,
736 [look for mad.h also in dir])])
737 if test -n "$with_mad_headers"; then
738 mad_cppflags="-I$with_mad_headers"
739 CPPFLAGS="$CPPFLAGS $mad_cppflags"
741 AC_ARG_WITH(mad_libs, [AS_HELP_STRING(--with-mad-libs=dir,
742 [look for libmad also in dir])])
743 if test -n "$with_mad_libs"; then
744 mad_libs="-L$with_mad_libs"
745 LDFLAGS="$LDFLAGS $mad_libs"
747 AC_CHECK_HEADERS([mad.h], [], [
750 AC_CHECK_LIB([mad], [mad_stream_init], [], [
753 if test "$have_mad" = "yes"; then
754 AC_DEFINE(HAVE_MAD, 1, define to 1 if you want to build the mp3dec filter)
755 filter_cmdline_objs="$filter_cmdline_objs add_cmdline(mp3dec_filter)"
756 audiod_cmdline_objs="$audiod_cmdline_objs add_cmdline(mp3dec_filter)"
757 play_cmdline_objs="$play_cmdline_objs add_cmdline(mp3dec_filter)"
758 all_errlist_objs="$all_errlist_objs mp3dec_filter"
759 filter_errlist_objs="$filter_errlist_objs mp3dec_filter"
760 audiod_errlist_objs="$audiod_errlist_objs mp3dec_filter"
761 play_errlist_objs="$play_errlist_objs mp3dec_filter"
762 filter_ldflags="$filter_ldflags $mad_libs -lmad"
763 audiod_ldflags="$audiod_ldflags $mad_libs -lmad"
764 play_ldflags="$play_ldflags $mad_libs -lmad"
765 audiod_audio_formats="$audiod_audio_formats mp3"
766 filters="$filters mp3dec"
767 AC_SUBST(mad_cppflags)
769 AC_MSG_WARN([no mp3dec support in para_audiod/para_filter])
771 CPPFLAGS="$OLD_CPPFLAGS"
772 LDFLAGS="$OLD_LDFLAGS"
774 ###################################################################### libid3tag
775 OLD_CPPFLAGS="$CPPFLAGS"
776 OLD_LD_FLAGS="$LDFLAGS"
780 AC_ARG_WITH(id3tag_headers, [AS_HELP_STRING(--with-id3tag-headers=dir,
781 [look for id3tag header files also in dir])])
782 if test -n "$with_id3tag_headers"; then
783 id3tag_cppflags="-I$with_id3tag_headers"
784 CPPFLAGS="$CPPFLAGS $id3tag_cppflags"
786 AC_ARG_WITH(id3tag_libs, [AS_HELP_STRING(--with-id3tag-libs=dir,
787 [look for id3tag libs also in dir])])
788 if test -n "$with_id3tag_libs"; then
789 id3tag_libs="-L$with_id3tag_libs"
790 LDFLAGS="$LDFLAGS $id3tag_libs"
793 AC_MSG_CHECKING(for libid3tag)
794 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
797 struct id3_tag t = {.flags = 0};
798 ]])],[],[have_libid3tag=no])
799 AC_MSG_RESULT($have_libid3tag)
801 if test ${have_libid3tag} = yes; then
802 AC_DEFINE(HAVE_LIBID3TAG, 1, define to 1 you have libid3tag)
803 server_ldflags="$server_ldflags $id3tag_libs -lid3tag -lz"
804 afh_ldflags="$afh_ldflags $id3tag_libs -lid3tag -lz"
805 play_ldflags="$play_ldflags -lz"
806 recv_ldflags="$recv_ldflags $id3tag_libs -lid3tag"
807 play_ldflags="$play_ldflags $id3tag_libs -lid3tag"
808 AC_SUBST(id3tag_cppflags)
810 AC_MSG_WARN([no support for id3v2 tags])
812 CPPFLAGS="$OLD_CPPFLAGS"
813 LDFLAGS="$OLD_LDFLAGS"
815 ########################################################################### flac
816 OLD_CPPFLAGS="$CPPFLAGS"
817 OLD_LD_FLAGS="$LDFLAGS"
821 AC_ARG_WITH(flac_headers, [AS_HELP_STRING(--with-flac-headers=dir,
822 [look for flac headers also in dir])])
823 if test -n "$with_flac_headers"; then
824 flac_cppflags="-I$with_flac_headers"
825 CPPFLAGS="$CPPFLAGS $flac_cppflags"
827 AC_ARG_WITH(flac_libs, [AS_HELP_STRING(--with-flac-libs=dir,
828 [look for flac libs also in dir])])
829 if test -n "$with_flac_libs"; then
830 flac_libs="-L$with_flac_libs"
831 LDFLAGS="$LDFLAGS $flac_libs"
833 AC_CHECK_HEADER(FLAC/stream_decoder.h, [], have_flac=no)
834 AC_CHECK_LIB([FLAC], [FLAC__stream_decoder_init_file], [], have_flac=no, -logg -lm)
835 if test "$have_flac" = "yes"; then
836 AC_DEFINE(HAVE_FLAC, 1, define to 1 if you want to build the flacdec filter)
837 all_errlist_objs="$all_errlist_objs flacdec_filter flac_afh"
838 filter_errlist_objs="$filter_errlist_objs flacdec_filter"
839 audiod_errlist_objs="$audiod_errlist_objs flacdec_filter"
840 play_errlist_objs="$play_errlist_objs flacdec_filter flac_afh"
841 afh_errlist_objs="$afh_errlist_objs flac_afh"
842 server_errlist_objs="$server_errlist_objs flac_afh"
843 recv_errlist_objs="$recv_errlist_objs flac_afh"
844 filter_ldflags="$filter_ldflags $flac_libs -lFLAC"
845 audiod_ldflags="$audiod_ldflags $flac_libs -lFLAC"
846 play_ldflags="$play_ldflags $flac_libs -lFLAC"
847 server_ldflags="$server_ldflags $flac_libs -lFLAC"
848 afh_ldflags="$afh_ldflags $flac_libs -lFLAC"
849 recv_ldflags="$afh_ldflags $flac_libs -lFLAC"
850 filters="$filters flacdec"
851 audio_format_handlers="$audio_format_handlers flac"
852 audiod_audio_formats="$audiod_audio_formats flac"
853 AC_SUBST(flac_cppflags)
855 AC_MSG_WARN([no flac support in para_audiod/para_filter/para_afh/para_server])
857 CPPFLAGS="$OLD_CPPFLAGS"
858 LDFLAGS="$OLD_LDFLAGS"
860 ########################################################################### oss
861 OLD_CPPFLAGS="$CPPFLAGS"
862 OLD_LD_FLAGS="$LDFLAGS"
866 msg="=> will not build oss writer"
868 AC_CHECK_HEADER(sys/soundcard.h, [
869 audiod_errlist_objs="$audiod_errlist_objs oss_write"
870 play_errlist_objs="$play_errlist_objs oss_write"
871 audiod_cmdline_objs="$audiod_cmdline_objs add_cmdline(oss_write)"
872 play_cmdline_objs="$play_cmdline_objs add_cmdline(oss_write)"
874 write_errlist_objs="$write_errlist_objs oss_write"
875 write_cmdline_objs="$write_cmdline_objs add_cmdline(oss_write)"
876 fade_errlist_objs="$fade_errlist_objs oss_mix"
877 all_errlist_objs="$all_errlist_objs oss_write oss_mix"
879 writers="$writers oss"
880 default_writer="OSS_WRITE"
881 mixers="${mixers}oss "
882 default_mixer="OSS_MIX"
884 AC_CHECK_LIB(ossaudio, _oss_ioctl, [
885 audiod_ldflags="$audiod_ldflags -lossaudio"
886 play_ldflags="$play_ldflags -lossaudio"
887 write_ldflags="$write_ldflags -lossaudio"
888 fade_ldflags="$fade_ldflags -lossaudio"
894 AC_MSG_WARN([no sys/soundcard.h $msg])
897 CPPFLAGS="$OLD_CPPFLAGS"
898 LDFLAGS="$OLD_LDFLAGS"
901 ########################################################################### alsa
902 OLD_CPPFLAGS="$CPPFLAGS"
903 OLD_LD_FLAGS="$LDFLAGS"
906 msg="=> no alsa support for para_audiod/para_write"
907 if test "$OSTYPE" != "Linux"; then
912 if test "$have_alsa" = "yes"; then
913 AC_CHECK_HEADERS([alsa/asoundlib.h], [], [
915 AC_MSG_WARN([no alsa/asoundlib $msg])
919 if test "$have_alsa" = "yes"; then
920 AC_CHECK_LIB([asound], [snd_pcm_open], [], [
922 AC_MSG_WARN([no libasound $msg])
926 if test "$have_alsa" = "yes"; then
927 audiod_errlist_objs="$audiod_errlist_objs alsa_write"
928 audiod_cmdline_objs="$audiod_cmdline_objs add_cmdline(alsa_write)"
929 audiod_ldflags="$audiod_ldflags -lasound"
930 play_errlist_objs="$play_errlist_objs alsa_write"
931 play_cmdline_objs="$play_cmdline_objs add_cmdline(alsa_write)"
932 play_ldflags="$play_ldflags -lasound"
934 write_errlist_objs="$write_errlist_objs alsa_write"
935 write_cmdline_objs="$write_cmdline_objs add_cmdline(alsa_write)"
936 write_ldflags="$write_ldflags -lasound"
937 fade_errlist_objs="$fade_errlist_objs alsa_mix"
938 fade_ldflags="$fade_ldflags -lasound"
939 all_errlist_objs="$all_errlist_objs alsa_write alsa_mix"
941 writers="$writers alsa"
942 default_writer="ALSA_WRITE"
943 mixers="${mixers}alsa "
944 default_mixer="ALSA_MIX"
947 CPPFLAGS="$OLD_CPPFLAGS"
948 LDFLAGS="$OLD_LDFLAGS"
950 ########################################################################### fade
951 if test -n "$mixers"; then
952 extras="$extras fade"
953 executables="$executables fade"
954 all_errlist_objs="$all_errlist_objs fade"
955 fade_errlist_objs="$fade_errlist_objs fade exec string fd"
956 fade_cmdline_objs="add_cmdline(fade)"
957 fade_objs="$fade_cmdline_objs $fade_errlist_objs"
958 AC_SUBST(fade_objs, add_dot_o($fade_objs))
959 AC_SUBST(fade_ldflags, $fade_ldflags)
960 AC_DEFINE_UNQUOTED(INIT_FADE_ERRLISTS,
961 objlist_to_errlist($fade_errlist_objs),
962 errors used by para_fade)
965 printf "${i}_MIX, " | tr '[a-z]' '[A-Z]'
968 AC_DEFINE_UNQUOTED(MIXER_ENUM, $enum NUM_SUPPORTED_MIXERS,
969 enum of supported mixers)
970 AC_DEFINE_UNQUOTED(DEFAULT_MIXER, $default_mixer,
971 use this mixer if none was specified)
972 names="$(for i in $mixers; do printf \"$i\",' ' ; done)"
973 AC_DEFINE_UNQUOTED(MIXER_NAMES, $names, supported mixer names)
976 printf 'extern void '$i'_mix_init(struct mixer *); '
979 AC_DEFINE_UNQUOTED(DECLARE_MIXER_INITS, $inits,
980 init functions of the supported mixers)
981 array="$(for i in $mixers; do printf '{.init = '$i'_mix_init},'; done)"
982 AC_DEFINE_UNQUOTED(MIXER_ARRAY, $array, array of supported mixers)
983 mixer_summary="supported mixers:: $mixers, default: $default_mixer"
985 AC_MSG_WARN([no mixer support])
986 mixer_summary="para_fade: no"
988 ########################################################################### libao
989 OLD_CPPFLAGS="$CPPFLAGS"
990 OLD_LD_FLAGS="$LDFLAGS"
994 AC_ARG_WITH(ao_headers, [AS_HELP_STRING(--with-ao-headers=dir,
995 [look for ao/ao.h also in dir])])
996 if test -n "$with_ao_headers"; then
997 ao_cppflags="-I$with_ao_headers"
998 CPPFLAGS="$CPPFLAGS $ao_cppflags"
1000 AC_ARG_WITH(ao_libs, [AS_HELP_STRING(--with-ao-libs=dir,
1001 [look for libao also in dir])])
1002 if test -n "$with_ao_libs"; then
1003 ao_libs="-L$with_ao_libs"
1004 LDFLAGS="$LDFLAGS $ao_libs"
1006 msg="no libao support for para_audiod/para_write"
1007 AC_CHECK_HEADERS([ao/ao.h], [
1010 AC_MSG_WARN([ao.h not found, $msg])
1012 if test "$have_ao" = "yes"; then
1013 AC_CHECK_LIB([ao], [ao_initialize], [], [
1015 AC_MSG_WARN([ao lib not found or not working, $msg])
1018 if test "$have_ao" = "yes"; then
1019 AC_CHECK_HEADERS([pthread.h], [
1022 AC_MSG_WARN([pthread.h not found, $msg])
1025 if test "$have_ao" = "yes"; then
1026 AC_CHECK_LIB([pthread], [pthread_create], [], [
1028 AC_MSG_WARN([pthread lib not found or not working, $msg])
1031 if test "$have_ao" = "yes"; then
1032 all_errlist_objs="$all_errlist_objs ao_write"
1033 audiod_errlist_objs="$audiod_errlist_objs ao_write"
1034 audiod_cmdline_objs="$audiod_cmdline_objs add_cmdline(ao_write)"
1035 audiod_ldflags="$audiod_ldflags -lao -lpthread"
1037 play_errlist_objs="$play_errlist_objs ao_write"
1038 play_cmdline_objs="$play_cmdline_objs add_cmdline(ao_write)"
1039 play_ldflags="$play_ldflags -lao -lpthread"
1041 write_errlist_objs="$write_errlist_objs ao_write"
1042 write_cmdline_objs="$write_cmdline_objs add_cmdline(ao_write)"
1043 write_ldflags="$write_ldflags $ao_libs -lao -lpthread"
1044 writers="$writers ao"
1045 AC_SUBST(ao_cppflags)
1048 CPPFLAGS="$OLD_CPPFLAGS"
1049 LDFLAGS="$OLD_LDFLAGS"
1051 ############################################################# readline
1052 OLD_CPPFLAGS="$CPPFLAGS"
1053 OLD_LD_FLAGS="$LDFLAGS"
1057 AC_ARG_WITH(readline_headers, [AS_HELP_STRING(--with-readline-headers=dir,
1058 [look for libreadline header files also in dir])])
1059 if test -n "$with_readline_headers"; then
1060 readline_cppflags="-I$with_readline_headers"
1061 CPPFLAGS="$CPPFLAGS $readline_cppflags"
1064 AC_ARG_WITH(readline_libs, [AS_HELP_STRING(--with-readline-libs=dir,
1065 [look for readline library also in dir])])
1066 if test -n "$with_readline_libs"; then
1067 readline_libs="-L$with_readline_libs"
1068 LDFLAGS="$LDFLAGS $readline_libs"
1070 msg="no interactive cli support"
1071 AC_CHECK_HEADERS([readline/readline.h], [
1074 AC_MSG_WARN([readline/readline.h not found, $msg])
1077 if test "$have_curses" != "yes"; then
1079 AC_MSG_WARN([interactive cli support depends on curses,])
1080 AC_MSG_WARN([but no curses lib was detected, $msg])
1083 if test "$have_readline" = "yes"; then
1084 readline_libs="$readline_libs -lreadline"
1085 AC_SEARCH_LIBS([rl_free_keymap], [readline], [], [have_readline="no"])
1086 if test "$have_readline" = "no"; then # try with -lcurses
1088 AC_MSG_NOTICE([trying again with -lcurses])
1089 unset ac_cv_search_rl_free_keymap 2> /dev/null
1090 AC_SEARCH_LIBS([rl_free_keymap], [readline], [
1092 readline_libs="$readline_libs -lcurses"
1095 if test "$have_readline" = "no"; then # try with -ltermcap
1097 AC_MSG_NOTICE([trying again with -ltermcap])
1098 unset ac_cv_search_rl_free_keymap 2> /dev/null
1099 AC_SEARCH_LIBS([rl_free_keymap], [readline], [
1101 readline_libs="$readline_libs -ltermcap"
1106 if test "$have_readline" = "yes"; then
1107 all_errlist_objs="$all_errlist_objs interactive"
1108 client_errlist_objs="$client_errlist_objs interactive"
1109 client_ldflags="$client_ldflags $readline_libs"
1110 audioc_errlist_objs="$audioc_errlist_objs buffer_tree interactive sched time"
1111 audioc_ldflags="$audioc_ldflags $readline_libs"
1112 play_errlist_objs="$play_errlist_objs interactive"
1113 play_ldflags="$play_ldflags $readline_libs"
1114 AC_SUBST(readline_cppflags)
1115 AC_DEFINE(HAVE_READLINE, 1, define to 1 to turn on readline support)
1117 AC_MSG_WARN([libreadline not found or unusable])
1119 CPPFLAGS="$OLD_CPPFLAGS"
1120 LDFLAGS="$OLD_LDFLAGS"
1122 ############################################################# libsamplerate
1123 OLD_CPPFLAGS="$CPPFLAGS"
1124 OLD_LD_FLAGS="$LDFLAGS"
1127 have_samplerate="yes"
1128 AC_ARG_WITH(samplerate_headers, [AS_HELP_STRING(--with-samplerate-headers=dir,
1129 [look for samplerate headers also in dir])])
1130 if test -n "$with_samplerate_headers"; then
1131 samplerate_cppflags="-I$with_samplerate_headers"
1132 CPPFLAGS="$CPPFLAGS $samplerate_cppflags"
1134 AC_ARG_WITH(samplerate_libs, [AS_HELP_STRING(--with-samplerate-libs=dir,
1135 [look for samplerate libs also in dir])])
1136 if test -n "$with_samplerate_libs"; then
1137 samplerate_libs="-L$with_samplerate_libs"
1138 LDFLAGS="$LDFLAGS $samplerate_libs"
1141 AC_CHECK_HEADER(samplerate.h, [], have_samplerate=no)
1142 AC_CHECK_LIB([samplerate], [src_process], [], have_samplerate=no, [])
1144 if test "$have_samplerate" = "yes"; then
1145 all_errlist_objs="$all_errlist_objs resample_filter"
1146 filter_errlist_objs="$filter_errlist_objs resample_filter check_wav"
1147 filter_cmdline_objs="$filter_cmdline_objs add_cmdline(resample_filter)"
1148 audiod_errlist_objs="$audiod_errlist_objs resample_filter check_wav"
1149 audiod_cmdline_objs="$audiod_cmdline_objs add_cmdline(resample_filter)"
1150 play_errlist_objs="$play_errlist_objs resample_filter check_wav"
1151 play_cmdline_objs="$play_cmdline_objs add_cmdline(resample_filter)"
1152 filter_ldflags="$filter_ldflags $samplerate_libs -lsamplerate"
1153 audiod_ldflags="$audiod_ldflags $samplerate_libs -lsamplerate"
1154 play_ldflags="$play_ldflags $samplerate_libs -lsamplerate"
1155 filters="$filters resample"
1156 AC_SUBST(samplerate_cppflags)
1158 AC_MSG_WARN([no resample support in para_audiod/para_filter])
1160 CPPFLAGS="$OLD_CPPFLAGS"
1161 LDFLAGS="$OLD_LDFLAGS"
1163 ############################################################# error2.h
1164 AC_MSG_NOTICE(creating error2.h)
1165 for i in $executables; do
1167 eval echo \$${i}_errlist_objs
1168 done | ./error2.pl > error2.h
1169 for obj in $all_errlist_objs; do
1170 SS="$SS SS_$(echo $obj | tr 'a-z' 'A-Z'),"
1172 AC_DEFINE_UNQUOTED(DEFINE_ERRLIST_OBJECT_ENUM,
1173 [enum {$SS NUM_SS}],
1174 [list of all objects that use the paraslash error facility]
1177 ################################################################## status items
1179 status_items="basename status num_played mtime bitrate frequency file_size
1180 status_flags format score techinfo afs_mode
1181 attributes_txt decoder_flags audiod_status play_time attributes_bitmap
1182 offset seconds_total stream_start current_time audiod_uptime image_id
1183 lyrics_id duration directory lyrics_name image_name path hash channels
1184 last_played num_chunks chunk_time amplification artist title year album
1188 for i in $status_items; do
1189 result="$result SI_$(echo $i | tr 'a-z' 'A-Z'), "
1191 AC_DEFINE_UNQUOTED(STATUS_ITEM_ENUM, [$result],
1192 [enum of all status items])
1195 for i in $status_items; do
1196 result="$result \"$i\", "
1198 AC_DEFINE_UNQUOTED(STATUS_ITEM_ARRAY, [$result],
1199 [char * array of all status items])
1201 AC_DEFINE_UNQUOTED(AUDIO_FORMAT_HANDLERS, "$audio_format_handlers",
1202 [formats supported by para_server and para_afh])
1204 AC_SUBST(executables, add_para($executables))
1206 recv_objs="$recv_cmdline_objs $recv_errlist_objs"
1207 filter_objs="$filter_cmdline_objs $filter_errlist_objs"
1208 audiod_objs="$audiod_cmdline_objs $audiod_errlist_objs"
1209 server_objs="$server_cmdline_objs $server_errlist_objs"
1210 write_objs="$write_cmdline_objs $write_errlist_objs"
1211 client_objs="$client_cmdline_objs $client_errlist_objs"
1212 audioc_objs="$audioc_cmdline_objs $audioc_errlist_objs"
1213 afh_objs="$afh_cmdline_objs $afh_errlist_objs"
1214 play_objs="$play_cmdline_objs $play_errlist_objs"
1217 AC_SUBST(recv_objs, add_dot_o($recv_objs))
1218 AC_SUBST(recv_ldflags, $recv_ldflags)
1219 AC_DEFINE_UNQUOTED(INIT_RECV_ERRLISTS, objlist_to_errlist($recv_errlist_objs),
1220 errors used by para_recv)
1222 AC_SUBST(filter_objs, add_dot_o($filter_objs))
1223 AC_SUBST(filter_ldflags, $filter_ldflags)
1224 AC_DEFINE_UNQUOTED(INIT_FILTER_ERRLISTS,
1225 objlist_to_errlist($filter_errlist_objs), errors used by para_filter)
1227 AC_SUBST(audiod_objs, add_dot_o($audiod_objs))
1228 AC_SUBST(audiod_ldflags, $audiod_ldflags)
1229 AC_DEFINE_UNQUOTED(INIT_AUDIOD_ERRLISTS, objlist_to_errlist($audiod_errlist_objs),
1230 errors used by para_audiod)
1232 AC_SUBST(server_objs, add_dot_o($server_objs))
1233 AC_SUBST(server_ldflags, $server_ldflags)
1234 AC_DEFINE_UNQUOTED(INIT_SERVER_ERRLISTS,
1235 objlist_to_errlist($server_errlist_objs), errors used by para_server)
1237 AC_SUBST(afh_objs, add_dot_o($afh_objs))
1238 AC_SUBST(afh_ldflags, $afh_ldflags)
1239 AC_DEFINE_UNQUOTED(INIT_AFH_ERRLISTS,
1240 objlist_to_errlist($afh_errlist_objs), errors used by para_afh)
1242 AC_SUBST(write_objs, add_dot_o($write_objs))
1243 AC_SUBST(write_ldflags, $write_ldflags)
1244 AC_DEFINE_UNQUOTED(INIT_WRITE_ERRLISTS,
1245 objlist_to_errlist($write_errlist_objs), errors used by para_write)
1247 AC_SUBST(client_objs, add_dot_o($client_objs))
1248 AC_SUBST(client_ldflags, $client_ldflags)
1249 AC_DEFINE_UNQUOTED(INIT_CLIENT_ERRLISTS,
1250 objlist_to_errlist($client_errlist_objs), errors used by para_client)
1252 AC_SUBST(audioc_objs, add_dot_o($audioc_objs))
1253 AC_SUBST(audioc_ldflags, $audioc_ldflags)
1254 AC_DEFINE_UNQUOTED(INIT_AUDIOC_ERRLISTS,
1255 objlist_to_errlist($audioc_errlist_objs), errors used by para_audioc)
1257 AC_SUBST(gui_objs, add_dot_o($gui_objs))
1258 AC_DEFINE_UNQUOTED(INIT_GUI_ERRLISTS,
1259 objlist_to_errlist($gui_errlist_objs), errors used by para_gui)
1261 AC_SUBST(play_objs, add_dot_o($play_objs))
1262 AC_SUBST(play_ldflags, $play_ldflags)
1263 AC_DEFINE_UNQUOTED(INIT_PLAY_ERRLISTS,
1264 objlist_to_errlist($play_errlist_objs), errors used by para_play)
1266 AC_MSG_NOTICE(play objs: $play_objs)
1268 enum="$(for i in $filters; do printf "${i}_FILTER, " | tr '[a-z]' '[A-Z]'; done)"
1269 AC_DEFINE_UNQUOTED(FILTER_ENUM, $enum NUM_SUPPORTED_FILTERS,
1270 enum of supported filters)
1271 inits="$(for i in $filters; do printf 'extern void '$i'_filter_init(struct filter *f); '; done)"
1272 AC_DEFINE_UNQUOTED(DECLARE_FILTER_INITS, $inits, init functions of the supported filters)
1273 array="$(for i in $filters; do printf '{.name = "'$i'", .init = '$i'_filter_init},'; done)"
1274 AC_DEFINE_UNQUOTED(FILTER_ARRAY, $array, array of supported filters)
1276 enum="$(for i in $writers; do printf "${i}_WRITE, " | tr '[a-z]' '[A-Z]'; done)"
1277 AC_DEFINE_UNQUOTED(WRITER_ENUM, $enum NUM_SUPPORTED_WRITERS,
1278 enum of supported writers)
1279 AC_DEFINE_UNQUOTED(DEFAULT_WRITER, $default_writer, use this writer if none was specified)
1280 names="$(for i in $writers; do printf \"$i\",' ' ; done)"
1281 AC_DEFINE_UNQUOTED(WRITER_NAMES, $names, supported writer names)
1282 inits="$(for i in $writers; do printf 'extern void '$i'_write_init(struct writer *); '; done)"
1283 AC_DEFINE_UNQUOTED(DECLARE_WRITER_INITS, $inits, init functions of the supported writers)
1284 array="$(for i in $writers; do printf '{.init = '$i'_write_init},'; done)"
1285 AC_DEFINE_UNQUOTED(WRITER_ARRAY, $array, array of supported writers)
1287 enum="$(for i in $audiod_audio_formats; do printf "AUDIO_FORMAT_${i}, " | tr '[a-z]' '[A-Z]'; done)"
1288 AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMATS_ENUM, $enum NUM_AUDIO_FORMATS,
1289 enum of audio formats supported by audiod)
1290 names="$(for i in $audiod_audio_formats; do printf \"$i\",' ' ; done)"
1291 AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMAT_ARRAY, $names, array of audio formats supported by audiod)
1295 paraslash configuration:
1296 ~~~~~~~~~~~~~~~~~~~~~~~~
1297 unix socket credentials: $have_ucred
1298 readline (interactive CLIs): $have_readline
1299 audio formats handlers: $audio_format_handlers
1300 id3 version2 support: $have_libid3tag
1303 optional executables: $extras