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 time"
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 gui_ldflags="$curses_libs"
487 AC_CHECK_LIB([ncursesw], [initscr],
488 [gui_ldflags="$curses_libs -lncursesw"], [
489 AC_CHECK_LIB([curses], [initscr],
490 [gui_ldflags="$curses_libs -lcurses"],
495 if test "$have_curses" = "yes"; then
496 AC_SUBST(curses_cppflags)
498 executables="$executables gui"
500 AC_MSG_WARN([no curses lib, cannot build para_gui])
502 CPPFLAGS="$OLD_CPPFLAGS"
503 LDFLAGS="$OLD_LDFLAGS"
506 ########################################################################### ip_mreqn
507 AC_MSG_CHECKING(for struct ip_mreqn (UDPv4 multicast))
508 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
514 ]])],[have_ip_mreqn=yes],[have_ip_mreqn=no])
515 AC_MSG_RESULT($have_ip_mreqn)
516 if test ${have_ip_mreqn} = yes; then
517 AC_DEFINE(HAVE_IP_MREQN, 1, define to 1 you have struct ip_mreqn)
519 ########################################################################### osx
521 AC_MSG_CHECKING(for CoreAudio (MacOs))
522 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
523 #include <CoreAudio/CoreAudio.h>
526 ]])],[have_core_audio=yes],[have_core_audio=no])
527 AC_MSG_RESULT($have_core_audio)
528 if test ${have_core_audio} = yes; then
529 f1="-framework CoreAudio"
530 f2="-framework AudioToolbox"
531 f3="-framework AudioUnit"
532 f4="-framework CoreServices"
535 all_errlist_objs="$all_errlist_objs osx_write"
536 # ipc is linked into para_server server and into the osx writer. If osl
537 # was not found, para_server will not be built and ipc has not yet been
538 # added to the list of all objects, so we must add it here.
539 if test "$have_osl" = "no"; then
540 all_errlist_objs="$all_errlist_objs ipc"
542 audiod_errlist_objs="$audiod_errlist_objs osx_write ipc"
543 audiod_cmdline_objs="$audiod_cmdline_objs osx_write.cmdline"
544 audiod_ldflags="$audiod_ldflags $f"
546 play_errlist_objs="$play_errlist_objs osx_write ipc"
547 play_cmdline_objs="$play_cmdline_objs osx_write.cmdline"
548 play_ldflags="$play_ldflags $f"
550 write_errlist_objs="$write_errlist_objs osx_write ipc"
551 write_cmdline_objs="$write_cmdline_objs osx_write.cmdline"
552 write_ldflags="$write_ldflags $f"
553 writers="$writers osx"
554 default_writer="OSX_WRITE"
555 AC_DEFINE(HAVE_CORE_AUDIO, 1, define to 1 on Mac Os X)
557 ########################################################### ogg/vorbis/speex
559 OLD_CPPFLAGS="$CPPFLAGS"
560 OLD_LD_FLAGS="$LDFLAGS"
562 AC_ARG_WITH(ogg_headers, [AS_HELP_STRING(--with-ogg-headers=dir,
563 [look for ogg headers also in dir])])
564 AC_ARG_WITH(ogg_libs, [AS_HELP_STRING(--with-ogg-libs=dir,
565 [look for ogg libs also in dir])])
566 AC_ARG_WITH(vorbis_headers, [AS_HELP_STRING(--with-vorbis-headers=dir,
567 [look for vorbis headers also in dir])])
568 AC_ARG_WITH(vorbis_libs, [AS_HELP_STRING(--with-vorbis-libs=dir,
569 [look for vorbis libs also in dir])])
570 AC_ARG_WITH(speex_headers, [AS_HELP_STRING(--with-speex-headers=dir,
571 [look for speex headers also in dir])])
572 AC_ARG_WITH(speex_libs, [AS_HELP_STRING(--with-speex-libs=dir,
573 [look for speex libs also in dir])])
575 if test -n "$with_ogg_headers"; then
576 ogg_cppflags="-I$with_ogg_headers"
577 CPPFLAGS="$CPPFLAGS $ogg_cppflags"
579 if test -n "$with_ogg_libs"; then
580 ogg_libs="-L$with_ogg_libs"
581 LDFLAGS="$LDFLAGS $ogg_libs"
583 AC_CHECK_HEADERS([ogg/ogg.h], [], [ have_ogg="no"; ])
584 AC_CHECK_LIB([ogg], [ogg_stream_init], [], [ have_ogg="no" ])
588 if test "$have_ogg" = "yes"; then
590 if test -n "$with_vorbis_headers"; then
591 vorbis_cppflags="-I$with_vorbis_headers"
592 CPPFLAGS="$CPPFLAGS $vorbis_cppflags"
594 if test -n "$with_vorbis_libs"; then
595 vorbis_libs="-L$with_vorbis_libs"
596 LDFLAGS="$LDFLAGS $vorbis_libs"
598 AC_CHECK_HEADERS([vorbis/codec.h], [], [ have_vorbis="no" ])
599 AC_CHECK_LIB([vorbis], [vorbis_info_init], [], [ have_vorbis="no" ])
602 if test -n "$with_speex_headers"; then
603 speex_cppflags="-I$with_speex_headers"
604 CPPFLAGS="$CPPFLAGS $speex_cppflags"
606 if test -n "$with_speex_libs"; then
607 speex_libs="-L$with_speex_libs"
608 LDFLAGS="$LDFLAGS $speex_libs"
610 AC_CHECK_LIB([speex], [speex_decoder_init], [], [ have_speex="no" ])
611 AC_CHECK_HEADERS([speex/speex.h], [], [ have_speex="no" ])
613 AC_MSG_WARN([vorbis/speex depend on libogg, which was not detected])
618 msg="support in para_server/para_filter/para_afh"
619 if test "$have_vorbis" = "yes" || test "$have_speex" = "yes"; then
620 AC_SUBST(ogg_cppflags)
621 ogg_libs="$ogg_libs -logg"
622 if test "$OSTYPE" = "Darwin"; then
623 ogg_libs="-Wl,-bind_at_load $ogg_libs"
625 server_ldflags="$server_ldflags $ogg_libs"
626 filter_ldflags="$filter_ldflags $ogg_libs"
627 audiod_ldflags="$audiod_ldflags $ogg_libs"
628 play_ldflags="$play_ldflags $ogg_libs"
629 afh_ldflags="$afh_ldflags $ogg_libs"
630 recv_ldflags="$recv_ldflags $ogg_libs"
631 all_errlist_objs="$all_errlist_objs ogg_afh_common"
632 afh_errlist_objs="$afh_errlist_objs ogg_afh_common"
633 recv_errlist_objs="$recv_errlist_objs ogg_afh_common"
634 server_errlist_objs="$server_errlist_objs ogg_afh_common"
635 play_errlist_objs="$play_errlist_objs ogg_afh_common"
637 if test "$have_vorbis" = "yes"; then
638 all_errlist_objs="$all_errlist_objs oggdec_filter ogg_afh"
639 AC_DEFINE(HAVE_OGGVORBIS, 1, define to 1 to turn on ogg/vorbis support)
640 filters="$filters oggdec"
641 vorbis_libs="-lvorbis -lvorbisfile"
642 server_ldflags="$server_ldflags $vorbis_libs"
643 filter_ldflags="$filter_ldflags $vorbis_libs"
644 audiod_ldflags="$audiod_ldflags $vorbis_libs"
645 play_ldflags="$play_ldflags $vorbis_libs"
646 afh_ldflags="$afh_ldflags $vorbis_libs"
647 recv_ldflags="$recv_ldflags $vorbis_libs"
649 server_errlist_objs="$server_errlist_objs ogg_afh"
650 filter_errlist_objs="$filter_errlist_objs oggdec_filter"
651 audiod_errlist_objs="$audiod_errlist_objs oggdec_filter"
652 play_errlist_objs="$play_errlist_objs oggdec_filter ogg_afh"
653 afh_errlist_objs="$afh_errlist_objs ogg_afh"
654 recv_errlist_objs="$recv_errlist_objs ogg_afh"
656 audiod_audio_formats="$audiod_audio_formats ogg"
657 audio_format_handlers="$audio_format_handlers ogg"
659 AC_MSG_WARN([no ogg/vorbis $msg])
661 if test "$have_speex" = "yes"; then
662 all_errlist_objs="$all_errlist_objs spxdec_filter spx_afh spx_common"
663 AC_DEFINE(HAVE_SPEEX, 1, define to 1 to turn on ogg/speex support)
664 filters="$filters spxdec"
666 server_ldflags="$server_ldflags $speex_libs"
667 filter_ldflags="$filter_ldflags $speex_libs"
668 audiod_ldflags="$audiod_ldflags $speex_libs"
669 play_ldflags="$play_ldflags $speex_libs"
670 afh_ldflags="$afh_ldflags $speex_libs"
671 recv_ldflags="$recv_ldflags $speex_libs"
673 server_errlist_objs="$server_errlist_objs spx_afh spx_common"
674 filter_errlist_objs="$filter_errlist_objs spxdec_filter spx_common"
675 audiod_errlist_objs="$audiod_errlist_objs spxdec_filter spx_common"
676 play_errlist_objs="$play_errlist_objs spxdec_filter spx_afh spx_common"
677 afh_errlist_objs="$afh_errlist_objs spx_afh spx_common"
678 recv_errlist_objs="$recv_errlist_objs spx_afh spx_common"
680 audiod_audio_formats="$audiod_audio_formats spx"
681 audio_format_handlers="$audio_format_handlers spx"
683 AC_MSG_WARN([no ogg/speex $msg])
685 CPPFLAGS="$OLD_CPPFLAGS"
686 LDFLAGS="$OLD_LDFLAGS"
688 ########################################################################### faad
690 OLD_CPPFLAGS="$CPPFLAGS"
691 OLD_LD_FLAGS="$LDFLAGS"
693 AC_ARG_WITH(faad_headers, [AS_HELP_STRING(--with-faad-headers=dir,
694 [look for neaacdec.h also in dir])])
695 if test -n "$with_faad_headers"; then
696 faad_cppflags="-I$with_faad_headers"
697 CPPFLAGS="$CPPFLAGS $faad_cppflags"
699 AC_ARG_WITH(faad_libs, [AS_HELP_STRING(--with-faad-libs=dir,
700 [look for libfaad also in dir])])
701 if test -n "$with_faad_libs"; then
702 faad_libs="-L$with_faad_libs"
703 LDFLAGS="$LDFLAGS $faad_libs"
705 AC_CHECK_HEADER(neaacdec.h, [], have_faad=no)
706 AC_CHECK_LIB([faad], [NeAACDecOpen], [], have_faad=no)
707 if test "$have_faad" = "yes"; then
708 AC_DEFINE(HAVE_FAAD, 1, define to 1 if you want to build the aacdec filter)
709 all_errlist_objs="$all_errlist_objs aac_common aacdec_filter aac_afh"
710 filter_errlist_objs="$filter_errlist_objs aacdec_filter aac_common"
711 afh_errlist_objs="$afh_errlist_objs aac_common aac_afh"
712 audiod_errlist_objs="$audiod_errlist_objs aacdec_filter aac_common"
713 play_errlist_objs="$play_errlist_objs aacdec_filter aac_afh aac_common"
714 server_errlist_objs="$server_errlist_objs aac_afh aac_common"
715 recv_errlist_objs="$recv_errlist_objs aac_afh aac_common"
717 server_ldflags="$server_ldflags $faad_libs -lfaad"
718 filter_ldflags="$filter_ldflags $faad_libs -lfaad"
719 audiod_ldflags="$audiod_ldflags $faad_libs -lfaad"
720 play_ldflags="$play_ldflags $faad_libs -lfaad"
721 afh_ldflags="$afh_ldflags $faad_libs -lfaad"
722 recv_ldflags="$afh_ldflags $faad_libs -lfaad"
724 audiod_audio_formats="$audiod_audio_formats aac"
725 audio_format_handlers="$audio_format_handlers aac"
726 filters="$filters aacdec"
727 AC_SUBST(faad_cppflags)
729 AC_MSG_WARN([no aac support in para_audiod/para_filter])
731 CPPFLAGS="$OLD_CPPFLAGS"
732 LDFLAGS="$OLD_LDFLAGS"
734 ########################################################################### mad
736 OLD_CPPFLAGS="$CPPFLAGS"
737 OLD_LD_FLAGS="$LDFLAGS"
740 AC_ARG_WITH(mad_headers, [AS_HELP_STRING(--with-mad-headers=dir,
741 [look for mad.h also in dir])])
742 if test -n "$with_mad_headers"; then
743 mad_cppflags="-I$with_mad_headers"
744 CPPFLAGS="$CPPFLAGS $mad_cppflags"
746 AC_ARG_WITH(mad_libs, [AS_HELP_STRING(--with-mad-libs=dir,
747 [look for libmad also in dir])])
748 if test -n "$with_mad_libs"; then
749 mad_libs="-L$with_mad_libs"
750 LDFLAGS="$LDFLAGS $mad_libs"
752 AC_CHECK_HEADERS([mad.h], [], [
755 AC_CHECK_LIB([mad], [mad_stream_init], [], [
758 if test "$have_mad" = "yes"; then
759 AC_DEFINE(HAVE_MAD, 1, define to 1 if you want to build the mp3dec filter)
760 filter_cmdline_objs="$filter_cmdline_objs add_cmdline(mp3dec_filter)"
761 audiod_cmdline_objs="$audiod_cmdline_objs add_cmdline(mp3dec_filter)"
762 play_cmdline_objs="$play_cmdline_objs add_cmdline(mp3dec_filter)"
763 all_errlist_objs="$all_errlist_objs mp3dec_filter"
764 filter_errlist_objs="$filter_errlist_objs mp3dec_filter"
765 audiod_errlist_objs="$audiod_errlist_objs mp3dec_filter"
766 play_errlist_objs="$play_errlist_objs mp3dec_filter"
767 filter_ldflags="$filter_ldflags $mad_libs -lmad"
768 audiod_ldflags="$audiod_ldflags $mad_libs -lmad"
769 play_ldflags="$play_ldflags $mad_libs -lmad"
770 audiod_audio_formats="$audiod_audio_formats mp3"
771 filters="$filters mp3dec"
772 AC_SUBST(mad_cppflags)
774 AC_MSG_WARN([no mp3dec support in para_audiod/para_filter])
776 CPPFLAGS="$OLD_CPPFLAGS"
777 LDFLAGS="$OLD_LDFLAGS"
779 ###################################################################### libid3tag
780 OLD_CPPFLAGS="$CPPFLAGS"
781 OLD_LD_FLAGS="$LDFLAGS"
785 AC_ARG_WITH(id3tag_headers, [AS_HELP_STRING(--with-id3tag-headers=dir,
786 [look for id3tag header files also in dir])])
787 if test -n "$with_id3tag_headers"; then
788 id3tag_cppflags="-I$with_id3tag_headers"
789 CPPFLAGS="$CPPFLAGS $id3tag_cppflags"
791 AC_ARG_WITH(id3tag_libs, [AS_HELP_STRING(--with-id3tag-libs=dir,
792 [look for id3tag libs also in dir])])
793 if test -n "$with_id3tag_libs"; then
794 id3tag_libs="-L$with_id3tag_libs"
795 LDFLAGS="$LDFLAGS $id3tag_libs"
798 AC_MSG_CHECKING(for libid3tag)
799 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
802 struct id3_tag t = {.flags = 0};
803 ]])],[],[have_libid3tag=no])
804 AC_MSG_RESULT($have_libid3tag)
806 if test ${have_libid3tag} = yes; then
807 AC_DEFINE(HAVE_LIBID3TAG, 1, define to 1 you have libid3tag)
808 server_ldflags="$server_ldflags $id3tag_libs -lid3tag -lz"
809 afh_ldflags="$afh_ldflags $id3tag_libs -lid3tag -lz"
810 play_ldflags="$play_ldflags -lz"
811 recv_ldflags="$recv_ldflags $id3tag_libs -lid3tag"
812 play_ldflags="$play_ldflags $id3tag_libs -lid3tag"
813 AC_SUBST(id3tag_cppflags)
815 AC_MSG_WARN([no support for id3v2 tags])
817 CPPFLAGS="$OLD_CPPFLAGS"
818 LDFLAGS="$OLD_LDFLAGS"
820 ########################################################################### flac
821 OLD_CPPFLAGS="$CPPFLAGS"
822 OLD_LD_FLAGS="$LDFLAGS"
826 AC_ARG_WITH(flac_headers, [AS_HELP_STRING(--with-flac-headers=dir,
827 [look for flac headers also in dir])])
828 if test -n "$with_flac_headers"; then
829 flac_cppflags="-I$with_flac_headers"
830 CPPFLAGS="$CPPFLAGS $flac_cppflags"
832 AC_ARG_WITH(flac_libs, [AS_HELP_STRING(--with-flac-libs=dir,
833 [look for flac libs also in dir])])
834 if test -n "$with_flac_libs"; then
835 flac_libs="-L$with_flac_libs"
836 LDFLAGS="$LDFLAGS $flac_libs"
838 AC_CHECK_HEADER(FLAC/stream_decoder.h, [], have_flac=no)
839 AC_CHECK_LIB([FLAC], [FLAC__stream_decoder_init_file], [], have_flac=no, -logg -lm)
840 if test "$have_flac" = "yes"; then
841 AC_DEFINE(HAVE_FLAC, 1, define to 1 if you want to build the flacdec filter)
842 all_errlist_objs="$all_errlist_objs flacdec_filter flac_afh"
843 filter_errlist_objs="$filter_errlist_objs flacdec_filter"
844 audiod_errlist_objs="$audiod_errlist_objs flacdec_filter"
845 play_errlist_objs="$play_errlist_objs flacdec_filter flac_afh"
846 afh_errlist_objs="$afh_errlist_objs flac_afh"
847 server_errlist_objs="$server_errlist_objs flac_afh"
848 recv_errlist_objs="$recv_errlist_objs flac_afh"
849 filter_ldflags="$filter_ldflags $flac_libs -lFLAC"
850 audiod_ldflags="$audiod_ldflags $flac_libs -lFLAC"
851 play_ldflags="$play_ldflags $flac_libs -lFLAC"
852 server_ldflags="$server_ldflags $flac_libs -lFLAC"
853 afh_ldflags="$afh_ldflags $flac_libs -lFLAC"
854 recv_ldflags="$afh_ldflags $flac_libs -lFLAC"
855 filters="$filters flacdec"
856 audio_format_handlers="$audio_format_handlers flac"
857 audiod_audio_formats="$audiod_audio_formats flac"
858 AC_SUBST(flac_cppflags)
860 AC_MSG_WARN([no flac support in para_audiod/para_filter/para_afh/para_server])
862 CPPFLAGS="$OLD_CPPFLAGS"
863 LDFLAGS="$OLD_LDFLAGS"
865 ########################################################################### oss
866 OLD_CPPFLAGS="$CPPFLAGS"
867 OLD_LD_FLAGS="$LDFLAGS"
871 msg="=> will not build oss writer"
873 AC_CHECK_HEADER(sys/soundcard.h, [
874 audiod_errlist_objs="$audiod_errlist_objs oss_write"
875 play_errlist_objs="$play_errlist_objs oss_write"
876 audiod_cmdline_objs="$audiod_cmdline_objs add_cmdline(oss_write)"
877 play_cmdline_objs="$play_cmdline_objs add_cmdline(oss_write)"
879 write_errlist_objs="$write_errlist_objs oss_write"
880 write_cmdline_objs="$write_cmdline_objs add_cmdline(oss_write)"
881 fade_errlist_objs="$fade_errlist_objs oss_mix"
882 all_errlist_objs="$all_errlist_objs oss_write oss_mix"
884 writers="$writers oss"
885 default_writer="OSS_WRITE"
886 mixers="${mixers}oss "
887 default_mixer="OSS_MIX"
889 AC_CHECK_LIB(ossaudio, _oss_ioctl, [
890 audiod_ldflags="$audiod_ldflags -lossaudio"
891 play_ldflags="$play_ldflags -lossaudio"
892 write_ldflags="$write_ldflags -lossaudio"
893 fade_ldflags="$fade_ldflags -lossaudio"
899 AC_MSG_WARN([no sys/soundcard.h $msg])
902 CPPFLAGS="$OLD_CPPFLAGS"
903 LDFLAGS="$OLD_LDFLAGS"
906 ########################################################################### alsa
907 OLD_CPPFLAGS="$CPPFLAGS"
908 OLD_LD_FLAGS="$LDFLAGS"
911 msg="=> no alsa support for para_audiod/para_write"
912 if test "$OSTYPE" != "Linux"; then
917 if test "$have_alsa" = "yes"; then
918 AC_CHECK_HEADERS([alsa/asoundlib.h], [], [
920 AC_MSG_WARN([no alsa/asoundlib $msg])
924 if test "$have_alsa" = "yes"; then
925 AC_CHECK_LIB([asound], [snd_pcm_open], [], [
927 AC_MSG_WARN([no libasound $msg])
931 if test "$have_alsa" = "yes"; then
932 audiod_errlist_objs="$audiod_errlist_objs alsa_write"
933 audiod_cmdline_objs="$audiod_cmdline_objs add_cmdline(alsa_write)"
934 audiod_ldflags="$audiod_ldflags -lasound"
935 play_errlist_objs="$play_errlist_objs alsa_write"
936 play_cmdline_objs="$play_cmdline_objs add_cmdline(alsa_write)"
937 play_ldflags="$play_ldflags -lasound"
939 write_errlist_objs="$write_errlist_objs alsa_write"
940 write_cmdline_objs="$write_cmdline_objs add_cmdline(alsa_write)"
941 write_ldflags="$write_ldflags -lasound"
942 fade_errlist_objs="$fade_errlist_objs alsa_mix"
943 fade_ldflags="$fade_ldflags -lasound"
944 all_errlist_objs="$all_errlist_objs alsa_write alsa_mix"
946 writers="$writers alsa"
947 default_writer="ALSA_WRITE"
948 mixers="${mixers}alsa "
949 default_mixer="ALSA_MIX"
952 CPPFLAGS="$OLD_CPPFLAGS"
953 LDFLAGS="$OLD_LDFLAGS"
955 ########################################################################### fade
956 if test -n "$mixers"; then
957 extras="$extras fade"
958 executables="$executables fade"
959 all_errlist_objs="$all_errlist_objs fade"
960 fade_errlist_objs="$fade_errlist_objs fade exec string fd"
961 fade_cmdline_objs="add_cmdline(fade)"
962 fade_objs="$fade_cmdline_objs $fade_errlist_objs"
963 AC_SUBST(fade_objs, add_dot_o($fade_objs))
964 AC_SUBST(fade_ldflags, $fade_ldflags)
965 AC_DEFINE_UNQUOTED(INIT_FADE_ERRLISTS,
966 objlist_to_errlist($fade_errlist_objs),
967 errors used by para_fade)
970 printf "${i}_MIX, " | tr '[a-z]' '[A-Z]'
973 AC_DEFINE_UNQUOTED(MIXER_ENUM, $enum NUM_SUPPORTED_MIXERS,
974 enum of supported mixers)
975 AC_DEFINE_UNQUOTED(DEFAULT_MIXER, $default_mixer,
976 use this mixer if none was specified)
977 names="$(for i in $mixers; do printf \"$i\",' ' ; done)"
978 AC_DEFINE_UNQUOTED(MIXER_NAMES, $names, supported mixer names)
981 printf 'extern void '$i'_mix_init(struct mixer *); '
984 AC_DEFINE_UNQUOTED(DECLARE_MIXER_INITS, $inits,
985 init functions of the supported mixers)
986 array="$(for i in $mixers; do printf '{.init = '$i'_mix_init},'; done)"
987 AC_DEFINE_UNQUOTED(MIXER_ARRAY, $array, array of supported mixers)
988 mixer_summary="supported mixers:: $mixers, default: $default_mixer"
990 AC_MSG_WARN([no mixer support])
991 mixer_summary="para_fade: no"
993 ########################################################################### libao
994 OLD_CPPFLAGS="$CPPFLAGS"
995 OLD_LD_FLAGS="$LDFLAGS"
999 AC_ARG_WITH(ao_headers, [AS_HELP_STRING(--with-ao-headers=dir,
1000 [look for ao/ao.h also in dir])])
1001 if test -n "$with_ao_headers"; then
1002 ao_cppflags="-I$with_ao_headers"
1003 CPPFLAGS="$CPPFLAGS $ao_cppflags"
1005 AC_ARG_WITH(ao_libs, [AS_HELP_STRING(--with-ao-libs=dir,
1006 [look for libao also in dir])])
1007 if test -n "$with_ao_libs"; then
1008 ao_libs="-L$with_ao_libs"
1009 LDFLAGS="$LDFLAGS $ao_libs"
1011 msg="no libao support for para_audiod/para_write"
1012 AC_CHECK_HEADERS([ao/ao.h], [
1015 AC_MSG_WARN([ao.h not found, $msg])
1017 if test "$have_ao" = "yes"; then
1018 AC_CHECK_LIB([ao], [ao_initialize], [], [
1020 AC_MSG_WARN([ao lib not found or not working, $msg])
1023 if test "$have_ao" = "yes"; then
1024 AC_CHECK_HEADERS([pthread.h], [
1027 AC_MSG_WARN([pthread.h not found, $msg])
1030 if test "$have_ao" = "yes"; then
1031 AC_CHECK_LIB([pthread], [pthread_create], [], [
1033 AC_MSG_WARN([pthread lib not found or not working, $msg])
1036 if test "$have_ao" = "yes"; then
1037 all_errlist_objs="$all_errlist_objs ao_write"
1038 audiod_errlist_objs="$audiod_errlist_objs ao_write"
1039 audiod_cmdline_objs="$audiod_cmdline_objs add_cmdline(ao_write)"
1040 audiod_ldflags="$audiod_ldflags -lao -lpthread"
1042 play_errlist_objs="$play_errlist_objs ao_write"
1043 play_cmdline_objs="$play_cmdline_objs add_cmdline(ao_write)"
1044 play_ldflags="$play_ldflags -lao -lpthread"
1046 write_errlist_objs="$write_errlist_objs ao_write"
1047 write_cmdline_objs="$write_cmdline_objs add_cmdline(ao_write)"
1048 write_ldflags="$write_ldflags $ao_libs -lao -lpthread"
1049 writers="$writers ao"
1050 AC_SUBST(ao_cppflags)
1053 CPPFLAGS="$OLD_CPPFLAGS"
1054 LDFLAGS="$OLD_LDFLAGS"
1056 ############################################################# readline
1057 OLD_CPPFLAGS="$CPPFLAGS"
1058 OLD_LD_FLAGS="$LDFLAGS"
1062 AC_ARG_WITH(readline_headers, [AS_HELP_STRING(--with-readline-headers=dir,
1063 [look for libreadline header files also in dir])])
1064 if test -n "$with_readline_headers"; then
1065 readline_cppflags="-I$with_readline_headers"
1066 CPPFLAGS="$CPPFLAGS $readline_cppflags"
1069 AC_ARG_WITH(readline_libs, [AS_HELP_STRING(--with-readline-libs=dir,
1070 [look for readline library also in dir])])
1071 if test -n "$with_readline_libs"; then
1072 readline_libs="-L$with_readline_libs"
1073 LDFLAGS="$LDFLAGS $readline_libs"
1075 msg="no interactive cli support"
1076 AC_CHECK_HEADERS([readline/readline.h], [
1079 AC_MSG_WARN([readline/readline.h not found, $msg])
1082 if test "$have_curses" != "yes"; then
1084 AC_MSG_WARN([interactive cli support depends on curses,])
1085 AC_MSG_WARN([but no curses lib was detected, $msg])
1088 if test "$have_readline" = "yes"; then
1089 readline_libs="$readline_libs -lreadline"
1090 AC_SEARCH_LIBS([rl_free_keymap], [readline], [], [have_readline="no"])
1091 if test "$have_readline" = "no"; then # try with -lcurses
1093 AC_MSG_NOTICE([trying again with -lcurses])
1094 unset ac_cv_search_rl_free_keymap 2> /dev/null
1095 AC_SEARCH_LIBS([rl_free_keymap], [readline], [
1097 readline_libs="$readline_libs -lcurses"
1100 if test "$have_readline" = "no"; then # try with -ltermcap
1102 AC_MSG_NOTICE([trying again with -ltermcap])
1103 unset ac_cv_search_rl_free_keymap 2> /dev/null
1104 AC_SEARCH_LIBS([rl_free_keymap], [readline], [
1106 readline_libs="$readline_libs -ltermcap"
1111 if test "$have_readline" = "yes"; then
1112 all_errlist_objs="$all_errlist_objs interactive"
1113 client_errlist_objs="$client_errlist_objs interactive"
1114 client_ldflags="$client_ldflags $readline_libs"
1115 audioc_errlist_objs="$audioc_errlist_objs buffer_tree interactive sched time"
1116 audioc_ldflags="$audioc_ldflags $readline_libs"
1117 play_errlist_objs="$play_errlist_objs interactive"
1118 play_ldflags="$play_ldflags $readline_libs"
1119 AC_SUBST(readline_cppflags)
1120 AC_DEFINE(HAVE_READLINE, 1, define to 1 to turn on readline support)
1122 AC_MSG_WARN([libreadline not found or unusable])
1124 CPPFLAGS="$OLD_CPPFLAGS"
1125 LDFLAGS="$OLD_LDFLAGS"
1127 ############################################################# libsamplerate
1128 OLD_CPPFLAGS="$CPPFLAGS"
1129 OLD_LD_FLAGS="$LDFLAGS"
1132 have_samplerate="yes"
1133 AC_ARG_WITH(samplerate_headers, [AS_HELP_STRING(--with-samplerate-headers=dir,
1134 [look for samplerate headers also in dir])])
1135 if test -n "$with_samplerate_headers"; then
1136 samplerate_cppflags="-I$with_samplerate_headers"
1137 CPPFLAGS="$CPPFLAGS $samplerate_cppflags"
1139 AC_ARG_WITH(samplerate_libs, [AS_HELP_STRING(--with-samplerate-libs=dir,
1140 [look for samplerate libs also in dir])])
1141 if test -n "$with_samplerate_libs"; then
1142 samplerate_libs="-L$with_samplerate_libs"
1143 LDFLAGS="$LDFLAGS $samplerate_libs"
1146 AC_CHECK_HEADER(samplerate.h, [], have_samplerate=no)
1147 AC_CHECK_LIB([samplerate], [src_process], [], have_samplerate=no, [])
1149 if test "$have_samplerate" = "yes"; then
1150 all_errlist_objs="$all_errlist_objs resample_filter"
1151 filter_errlist_objs="$filter_errlist_objs resample_filter check_wav"
1152 filter_cmdline_objs="$filter_cmdline_objs add_cmdline(resample_filter)"
1153 audiod_errlist_objs="$audiod_errlist_objs resample_filter check_wav"
1154 audiod_cmdline_objs="$audiod_cmdline_objs add_cmdline(resample_filter)"
1155 play_errlist_objs="$play_errlist_objs resample_filter check_wav"
1156 play_cmdline_objs="$play_cmdline_objs add_cmdline(resample_filter)"
1157 filter_ldflags="$filter_ldflags $samplerate_libs -lsamplerate"
1158 audiod_ldflags="$audiod_ldflags $samplerate_libs -lsamplerate"
1159 play_ldflags="$play_ldflags $samplerate_libs -lsamplerate"
1160 filters="$filters resample"
1161 AC_SUBST(samplerate_cppflags)
1163 AC_MSG_WARN([no resample support in para_audiod/para_filter])
1165 CPPFLAGS="$OLD_CPPFLAGS"
1166 LDFLAGS="$OLD_LDFLAGS"
1168 ############################################################# error2.h
1169 AC_MSG_NOTICE(creating error2.h)
1170 for i in $executables; do
1172 eval echo \$${i}_errlist_objs
1173 done | ./error2.pl > error2.h
1174 for obj in $all_errlist_objs; do
1175 SS="$SS SS_$(echo $obj | tr 'a-z' 'A-Z'),"
1177 AC_DEFINE_UNQUOTED(DEFINE_ERRLIST_OBJECT_ENUM,
1178 [enum {$SS NUM_SS}],
1179 [list of all objects that use the paraslash error facility]
1182 ################################################################## status items
1184 status_items="basename status num_played mtime bitrate frequency file_size
1185 status_flags format score techinfo afs_mode
1186 attributes_txt decoder_flags audiod_status play_time attributes_bitmap
1187 offset seconds_total stream_start current_time audiod_uptime image_id
1188 lyrics_id duration directory lyrics_name image_name path hash channels
1189 last_played num_chunks chunk_time amplification artist title year album
1193 for i in $status_items; do
1194 result="$result SI_$(echo $i | tr 'a-z' 'A-Z'), "
1196 AC_DEFINE_UNQUOTED(STATUS_ITEM_ENUM, [$result],
1197 [enum of all status items])
1200 for i in $status_items; do
1201 result="$result \"$i\", "
1203 AC_DEFINE_UNQUOTED(STATUS_ITEM_ARRAY, [$result],
1204 [char * array of all status items])
1206 AC_DEFINE_UNQUOTED(AUDIO_FORMAT_HANDLERS, "$audio_format_handlers",
1207 [formats supported by para_server and para_afh])
1209 AC_SUBST(executables, add_para($executables))
1211 recv_objs="$recv_cmdline_objs $recv_errlist_objs"
1212 filter_objs="$filter_cmdline_objs $filter_errlist_objs"
1213 audiod_objs="$audiod_cmdline_objs $audiod_errlist_objs"
1214 server_objs="$server_cmdline_objs $server_errlist_objs"
1215 write_objs="$write_cmdline_objs $write_errlist_objs"
1216 client_objs="$client_cmdline_objs $client_errlist_objs"
1217 audioc_objs="$audioc_cmdline_objs $audioc_errlist_objs"
1218 afh_objs="$afh_cmdline_objs $afh_errlist_objs"
1219 play_objs="$play_cmdline_objs $play_errlist_objs"
1222 AC_SUBST(recv_objs, add_dot_o($recv_objs))
1223 AC_SUBST(recv_ldflags, $recv_ldflags)
1224 AC_DEFINE_UNQUOTED(INIT_RECV_ERRLISTS, objlist_to_errlist($recv_errlist_objs),
1225 errors used by para_recv)
1227 AC_SUBST(filter_objs, add_dot_o($filter_objs))
1228 AC_SUBST(filter_ldflags, $filter_ldflags)
1229 AC_DEFINE_UNQUOTED(INIT_FILTER_ERRLISTS,
1230 objlist_to_errlist($filter_errlist_objs), errors used by para_filter)
1232 AC_SUBST(audiod_objs, add_dot_o($audiod_objs))
1233 AC_SUBST(audiod_ldflags, $audiod_ldflags)
1234 AC_DEFINE_UNQUOTED(INIT_AUDIOD_ERRLISTS, objlist_to_errlist($audiod_errlist_objs),
1235 errors used by para_audiod)
1237 AC_SUBST(server_objs, add_dot_o($server_objs))
1238 AC_SUBST(server_ldflags, $server_ldflags)
1239 AC_DEFINE_UNQUOTED(INIT_SERVER_ERRLISTS,
1240 objlist_to_errlist($server_errlist_objs), errors used by para_server)
1242 AC_SUBST(afh_objs, add_dot_o($afh_objs))
1243 AC_SUBST(afh_ldflags, $afh_ldflags)
1244 AC_DEFINE_UNQUOTED(INIT_AFH_ERRLISTS,
1245 objlist_to_errlist($afh_errlist_objs), errors used by para_afh)
1247 AC_SUBST(write_objs, add_dot_o($write_objs))
1248 AC_SUBST(write_ldflags, $write_ldflags)
1249 AC_DEFINE_UNQUOTED(INIT_WRITE_ERRLISTS,
1250 objlist_to_errlist($write_errlist_objs), errors used by para_write)
1252 AC_SUBST(client_objs, add_dot_o($client_objs))
1253 AC_SUBST(client_ldflags, $client_ldflags)
1254 AC_DEFINE_UNQUOTED(INIT_CLIENT_ERRLISTS,
1255 objlist_to_errlist($client_errlist_objs), errors used by para_client)
1257 AC_SUBST(audioc_objs, add_dot_o($audioc_objs))
1258 AC_SUBST(audioc_ldflags, $audioc_ldflags)
1259 AC_DEFINE_UNQUOTED(INIT_AUDIOC_ERRLISTS,
1260 objlist_to_errlist($audioc_errlist_objs), errors used by para_audioc)
1262 AC_SUBST(gui_objs, add_dot_o($gui_objs))
1263 AC_SUBST(gui_ldflags, $gui_ldflags)
1264 AC_DEFINE_UNQUOTED(INIT_GUI_ERRLISTS,
1265 objlist_to_errlist($gui_errlist_objs), errors used by para_gui)
1267 AC_SUBST(play_objs, add_dot_o($play_objs))
1268 AC_SUBST(play_ldflags, $play_ldflags)
1269 AC_DEFINE_UNQUOTED(INIT_PLAY_ERRLISTS,
1270 objlist_to_errlist($play_errlist_objs), errors used by para_play)
1272 enum="$(for i in $filters; do printf "${i}_FILTER, " | tr '[a-z]' '[A-Z]'; done)"
1273 AC_DEFINE_UNQUOTED(FILTER_ENUM, $enum NUM_SUPPORTED_FILTERS,
1274 enum of supported filters)
1275 inits="$(for i in $filters; do printf 'extern void '$i'_filter_init(struct filter *f); '; done)"
1276 AC_DEFINE_UNQUOTED(DECLARE_FILTER_INITS, $inits, init functions of the supported filters)
1277 array="$(for i in $filters; do printf '{.name = "'$i'", .init = '$i'_filter_init},'; done)"
1278 AC_DEFINE_UNQUOTED(FILTER_ARRAY, $array, array of supported filters)
1280 enum="$(for i in $writers; do printf "${i}_WRITE, " | tr '[a-z]' '[A-Z]'; done)"
1281 AC_DEFINE_UNQUOTED(WRITER_ENUM, $enum NUM_SUPPORTED_WRITERS,
1282 enum of supported writers)
1283 AC_DEFINE_UNQUOTED(DEFAULT_WRITER, $default_writer, use this writer if none was specified)
1284 names="$(for i in $writers; do printf \"$i\",' ' ; done)"
1285 AC_DEFINE_UNQUOTED(WRITER_NAMES, $names, supported writer names)
1286 inits="$(for i in $writers; do printf 'extern void '$i'_write_init(struct writer *); '; done)"
1287 AC_DEFINE_UNQUOTED(DECLARE_WRITER_INITS, $inits, init functions of the supported writers)
1288 array="$(for i in $writers; do printf '{.init = '$i'_write_init},'; done)"
1289 AC_DEFINE_UNQUOTED(WRITER_ARRAY, $array, array of supported writers)
1291 enum="$(for i in $audiod_audio_formats; do printf "AUDIO_FORMAT_${i}, " | tr '[a-z]' '[A-Z]'; done)"
1292 AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMATS_ENUM, $enum NUM_AUDIO_FORMATS,
1293 enum of audio formats supported by audiod)
1294 names="$(for i in $audiod_audio_formats; do printf \"$i\",' ' ; done)"
1295 AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMAT_ARRAY, $names, array of audio formats supported by audiod)
1299 paraslash configuration:
1300 ~~~~~~~~~~~~~~~~~~~~~~~~
1301 unix socket credentials: $have_ucred
1302 readline (interactive CLIs): $have_readline
1303 audio formats handlers: $audio_format_handlers
1304 id3 version2 support: $have_libid3tag
1307 optional executables: $extras