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 ########################################################################### osl
252 OLD_CPPFLAGS="$CPPFLAGS"
253 OLD_LD_FLAGS="$LDFLAGS"
255 AC_ARG_WITH(osl_headers, [AS_HELP_STRING(--with-osl-headers=dir,
256 [look for osl.h also in dir])])
257 if test -n "$with_osl_headers"; then
258 osl_cppflags="-I$with_osl_headers"
259 CPPFLAGS="$CPPFLAGS $osl_cppflags"
261 AC_ARG_WITH(osl_libs, [AS_HELP_STRING(--with-osl-libs=dir,
262 [look for libosl also in dir])])
263 if test -n "$with_osl_libs"; then
264 osl_libs="-L$with_osl_libs"
265 LDFLAGS="$LDFLAGS $osl_libs"
268 AC_CHECK_HEADER(osl.h, [], have_osl=no)
269 AC_CHECK_LIB([osl], [osl_open_table], [], have_osl=no)
270 if test "$have_osl" = "no"; then
271 AC_MSG_WARN([libosl not found, can not build para_server.
273 http://systemlinux.org/~maan/osl
275 git clone git://git.tuebingen.mpg.de/osl
278 extras="$extras server"
279 executables="$executables server"
280 server_cmdline_objs="add_cmdline(server)"
281 server_errlist_objs="server afh_common mp3_afh vss command net
282 string signal time daemon http_send close_on_fork mm
283 crypt_common ipc dccp_send fd user_list chunk_queue
284 afs aft mood score attribute blob playlist sched acl
285 send_common udp_send color fec wma_afh wma_common sideband"
286 all_errlist_objs="$all_errlist_objs server vss command
287 http_send close_on_fork mm ipc dccp_send user_list
288 chunk_queue afs aft mood score attribute blob playlist
292 server_audio_formats="mp3 wma"
293 AC_SUBST(osl_cppflags)
294 server_ldflags="$server_ldflags $osl_libs -losl"
296 CPPFLAGS="$OLD_CPPFLAGS"
297 LDFLAGS="$OLD_LDFLAGS"
299 ########################################################################### crypto
300 AC_ARG_ENABLE(cryptolib, [AS_HELP_STRING(--enable-cryptolib=lib, [
301 Force using crypto library "lib". This package requires either
302 openssl or libgcrypt being installed. Possible values for "lib"
303 are thus "openssl" and "gcrypt". If this option is not given,
304 openssl is tried first. If openssl was not found, gcrypt is
307 case "$enable_cryptolib" in
308 "openssl") check_openssl="yes"; check_gcrypt="no";;
309 "gcrypt") check_openssl="no"; check_gcrypt="yes";;
310 "") check_openssl="yes"; check_gcrypt="yes";;
311 *) AC_MSG_ERROR([invalid value "$enable_cryptolib" for --enable-cryptolib]);;
313 ###################################################################### openssl
314 if test "$check_openssl" = "yes"; then
315 OLD_CPPFLAGS="$CPPFLAGS"
316 OLD_LD_FLAGS="$LDFLAGS"
319 AC_ARG_WITH(openssl_headers, [AS_HELP_STRING(--with-openssl-headers=dir,
320 [look for openssl headers also in dir])])
321 if test -n "$with_openssl_headers"; then
322 openssl_cppflags="-I$with_openssl_headers"
323 CPPFLAGS="$CPPFLAGS $openssl_cppflags"
325 AC_ARG_WITH(openssl_libs, [AS_HELP_STRING(--with-openssl-libs=dir,
326 [look for openssl libraries also in dir])])
327 if test -n "$with_openssl_libs"; then
328 openssl_libs="-L$with_openssl_libs"
329 LDFLAGS="$LDFLAGS $openssl_libs"
331 AC_CHECK_HEADER(openssl/ssl.h, [], [have_openssl="no"])
332 AC_CHECK_LIB([crypto], [RAND_bytes], [], [have_openssl="no"])
333 if test "$have_openssl" = "no" -a -z "$with_openssl_headers$with_openssl_libs"; then
334 # try harder: openssl is sometimes installed in /usr/local/ssl
335 openssl_cppflags="-I/usr/local/ssl/include"
336 CPPFLAGS="$CPPFLAGS $openssl_cppflags"
337 openssl_libs="-L/usr/local/ssl/lib"
338 LDFLAGS="$LDFLAGS $openssl_libs"
340 unset ac_cv_header_openssl_ssl_h 2> /dev/null
341 unset ac_cv_lib_crypto_RAND_bytes 2> /dev/null
342 AC_CHECK_HEADER(openssl/ssl.h, [have_openssl="yes"], [])
343 if test "$have_openssl" = "yes"; then
344 AC_CHECK_LIB([crypto], [RAND_bytes], [], [have_openssl="no"])
347 if test "$have_openssl" = "yes"; then
348 AC_DEFINE(HAVE_OPENSSL, 1, [define to 1 to turn on openssl support])
349 AC_SUBST(openssl_cppflags)
350 openssl_libs="$openssl_libs -lssl -lcrypto"
351 server_ldflags="$server_ldflags $openssl_libs"
352 client_ldflags="$client_ldflags $openssl_libs"
353 audiod_ldflags="$audiod_ldflags $openssl_libs"
355 all_errlist_objs="$all_errlist_objs crypt"
356 server_errlist_objs="$server_errlist_objs crypt"
357 client_errlist_objs="$client_errlist_objs crypt"
358 audiod_errlist_objs="$audiod_errlist_objs crypt"
362 AC_MSG_WARN([openssl libraries not found])
364 CPPFLAGS="$OLD_CPPFLAGS"
365 LDFLAGS="$OLD_LDFLAGS"
370 ########################################################################### gcrypt
371 if test "$check_gcrypt" = "yes"; then
372 OLD_CPPFLAGS="$CPPFLAGS"
373 OLD_LD_FLAGS="$LDFLAGS"
376 AC_ARG_WITH(gcrypt_headers, [AS_HELP_STRING(--with-gcrypt-headers=dir,
377 [look for gcrypt headers also in dir])])
378 if test -n "$with_gcrypt_headers"; then
379 gcrypt_cppflags="-I$with_gcrypt_headers"
380 CPPFLAGS="$CPPFLAGS $gcrypt_cppflags"
382 AC_ARG_WITH(gcrypt_libs, [AS_HELP_STRING(--with-gcrypt-libs=dir,
383 [look for libgcrypt also in dir])])
384 if test -n "$with_gcrypt_libs"; then
385 gcrypt_libs="-L$with_gcrypt_libs"
386 LDFLAGS="$LDFLAGS $gcrypt_libs"
388 AC_CHECK_HEADER(gcrypt.h, [], [have_gcrypt="no"])
389 AC_CHECK_LIB([gcrypt], [gcry_randomize], [], [have_gcrypt="no"])
390 if test "$have_gcrypt" = "yes"; then
391 AC_DEFINE(HAVE_GCRYPT, 1, [define to 1 to turn on gcrypt support])
392 AC_SUBST(gcrypt_cppflags)
393 gcrypt_libs="$gcrypt_libs -lgcrypt"
394 server_ldflags="$server_ldflags $gcrypt_libs"
395 client_ldflags="$client_ldflags $gcrypt_libs"
396 audiod_ldflags="$audiod_ldflags $gcrypt_libs"
398 all_errlist_objs="$all_errlist_objs gcrypt"
399 server_errlist_objs="$server_errlist_objs gcrypt"
400 client_errlist_objs="$client_errlist_objs gcrypt"
401 audiod_errlist_objs="$audiod_errlist_objs gcrypt"
403 AC_MSG_WARN([gcrypt library not found])
405 CPPFLAGS="$OLD_CPPFLAGS"
406 LDFLAGS="$OLD_LDFLAGS"
411 ###########################################################################
412 if test "$have_openssl" = "no" -a "$have_gcrypt" = "no"; then
413 AC_MSG_ERROR([neither openssl nor gcrypt usable])
415 ########################################################################### libsocket
416 AC_CHECK_LIB([c], [socket],
418 [socket_lib="-lsocket"]
420 server_ldflags="$server_ldflags $socket_lib"
421 client_ldflags="$client_ldflags $socket_lib"
422 audioc_ldflags="$audioc_ldflags $socket_lib"
423 audiod_ldflags="$audiod_ldflags $socket_lib"
424 recv_ldflags="$recv_ldflags $socket_lib"
425 AC_SEARCH_LIBS([connect],[socket],[],[
426 AC_MSG_ERROR([Fatal: Did not find connect().])
428 ########################################################################### libnsl
429 AC_CHECK_LIB([c], [gethostbyname],
433 server_ldflags="$server_ldflags $nsl_lib"
434 client_ldflags="$client_ldflags $nsl_lib"
435 audioc_ldflags="$audioc_ldflags $nsl_lib"
436 recv_ldflags="$recv_ldflags $nsl_lib"
437 AC_SEARCH_LIBS([inet_ntoa],[nsl],[],[
438 AC_MSG_ERROR([Fatal: Did not find inet_ntoa().])
440 ########################################################################### ucred
441 AC_MSG_CHECKING(for struct ucred)
442 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
444 #include <sys/types.h>
445 #include <sys/socket.h>
447 struct ucred sucred; sucred.pid=0;
448 ]])],[have_ucred=yes],[have_ucred=no])
449 AC_MSG_RESULT($have_ucred)
450 if test ${have_ucred} = yes; then
451 AC_DEFINE(HAVE_UCRED, 1, define to 1 you have struct ucred)
454 ########################################################################### curses
456 OLD_CPPFLAGS="$CPPFLAGS"
457 OLD_LD_FLAGS="$LDFLAGS"
459 AC_ARG_WITH(curses_headers, [AS_HELP_STRING(--with-curses-headers=dir,
460 [look for curses.h also in dir])])
461 if test -n "$with_curses_headers"; then
462 curses_cppflags="-I$with_curses_headers"
463 CPPFLAGS="$CPPFLAGS $curses_cppflags"
465 AC_ARG_WITH(curses_libs, [AS_HELP_STRING(--with-curses-libs=dir,
466 [look for libcurses also in dir])])
467 if test -n "$with_curses_libs"; then
468 curses_libs="-L$with_curses_libs"
469 LDFLAGS="$LDFLAGS $curses_libs"
471 AC_CHECK_HEADER(curses.h, [], [
474 AC_CHECK_LIB([curses], [initscr], [], [
477 if test "$have_curses" = "yes"; then
478 gui_ldflags="$curses_libs -lcurses"
479 AC_SUBST(curses_cppflags)
480 AC_DEFINE(HAVE_NCURSES, 1, [define to 1 to turn on curses support])
482 executables="$executables gui"
484 AC_MSG_WARN([no curses lib, cannot build para_gui])
486 CPPFLAGS="$OLD_CPPFLAGS"
487 LDFLAGS="$OLD_LDFLAGS"
490 ########################################################################### ip_mreqn
491 AC_MSG_CHECKING(for struct ip_mreqn (UDPv4 multicast))
492 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
498 ]])],[have_ip_mreqn=yes],[have_ip_mreqn=no])
499 AC_MSG_RESULT($have_ip_mreqn)
500 if test ${have_ip_mreqn} = yes; then
501 AC_DEFINE(HAVE_IP_MREQN, 1, define to 1 you have struct ip_mreqn)
503 ########################################################################### osx
505 AC_MSG_CHECKING(for CoreAudio (MacOs))
506 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
507 #include <CoreAudio/CoreAudio.h>
510 ]])],[have_core_audio=yes],[have_core_audio=no])
511 AC_MSG_RESULT($have_core_audio)
512 if test ${have_core_audio} = yes; then
513 f1="-framework CoreAudio"
514 f2="-framework AudioToolbox"
515 f3="-framework AudioUnit"
516 f4="-framework CoreServices"
519 all_errlist_objs="$all_errlist_objs osx_write"
520 # ipc is linked into para_server server and into the osx writer. If osl
521 # was not found, para_server will not be built and ipc has not yet been
522 # added to the list of all objects, so we must add it here.
523 if test "$have_osl" = "no"; then
524 all_errlist_objs="$all_errlist_objs ipc"
526 audiod_errlist_objs="$audiod_errlist_objs osx_write ipc"
527 audiod_cmdline_objs="$audiod_cmdline_objs osx_write.cmdline"
528 audiod_ldflags="$audiod_ldflags $f"
530 play_errlist_objs="$play_errlist_objs osx_write ipc"
531 play_cmdline_objs="$play_cmdline_objs osx_write.cmdline"
532 play_ldflags="$play_ldflags $f"
534 write_errlist_objs="$write_errlist_objs osx_write ipc"
535 write_cmdline_objs="$write_cmdline_objs osx_write.cmdline"
536 write_ldflags="$write_ldflags $f"
537 writers="$writers osx"
538 default_writer="OSX_WRITE"
539 AC_DEFINE(HAVE_CORE_AUDIO, 1, define to 1 on Mac Os X)
541 ########################################################### ogg/vorbis/speex
543 OLD_CPPFLAGS="$CPPFLAGS"
544 OLD_LD_FLAGS="$LDFLAGS"
546 AC_ARG_WITH(ogg_headers, [AS_HELP_STRING(--with-ogg-headers=dir,
547 [look for ogg headers also in dir])])
548 AC_ARG_WITH(ogg_libs, [AS_HELP_STRING(--with-ogg-libs=dir,
549 [look for ogg libs also in dir])])
550 AC_ARG_WITH(vorbis_headers, [AS_HELP_STRING(--with-vorbis-headers=dir,
551 [look for vorbis headers also in dir])])
552 AC_ARG_WITH(vorbis_libs, [AS_HELP_STRING(--with-vorbis-libs=dir,
553 [look for vorbis libs also in dir])])
554 AC_ARG_WITH(speex_headers, [AS_HELP_STRING(--with-speex-headers=dir,
555 [look for speex headers also in dir])])
556 AC_ARG_WITH(speex_libs, [AS_HELP_STRING(--with-speex-libs=dir,
557 [look for speex libs also in dir])])
559 if test -n "$with_ogg_headers"; then
560 ogg_cppflags="-I$with_ogg_headers"
561 CPPFLAGS="$CPPFLAGS $ogg_cppflags"
563 if test -n "$with_ogg_libs"; then
564 ogg_libs="-L$with_ogg_libs"
565 LDFLAGS="$LDFLAGS $ogg_libs"
567 AC_CHECK_HEADERS([ogg/ogg.h], [], [ have_ogg="no"; ])
568 AC_CHECK_LIB([ogg], [ogg_stream_init], [], [ have_ogg="no" ])
572 if test "$have_ogg" = "yes"; then
574 if test -n "$with_vorbis_headers"; then
575 vorbis_cppflags="-I$with_vorbis_headers"
576 CPPFLAGS="$CPPFLAGS $vorbis_cppflags"
578 if test -n "$with_vorbis_libs"; then
579 vorbis_libs="-L$with_vorbis_libs"
580 LDFLAGS="$LDFLAGS $vorbis_libs"
582 AC_CHECK_HEADERS([vorbis/codec.h], [], [ have_vorbis="no" ])
583 AC_CHECK_LIB([vorbis], [vorbis_info_init], [], [ have_vorbis="no" ])
586 if test -n "$with_speex_headers"; then
587 speex_cppflags="-I$with_speex_headers"
588 CPPFLAGS="$CPPFLAGS $speex_cppflags"
590 if test -n "$with_speex_libs"; then
591 speex_libs="-L$with_speex_libs"
592 LDFLAGS="$LDFLAGS $speex_libs"
594 AC_CHECK_LIB([speex], [speex_decoder_init], [], [ have_speex="no" ])
595 AC_CHECK_HEADERS([speex/speex.h], [], [ have_speex="no" ])
597 AC_MSG_WARN([vorbis/speex depend on libogg, which was not detected])
602 msg="support in para_server/para_filter/para_afh"
603 if test "$have_vorbis" = "yes" || test "$have_speex" = "yes"; then
604 AC_SUBST(ogg_cppflags)
605 ogg_libs="$ogg_libs -logg"
606 if test "$OSTYPE" = "Darwin"; then
607 ogg_libs="-Wl,-bind_at_load $ogg_libs"
609 server_ldflags="$server_ldflags $ogg_libs"
610 filter_ldflags="$filter_ldflags $ogg_libs"
611 audiod_ldflags="$audiod_ldflags $ogg_libs"
612 play_ldflags="$play_ldflags $ogg_libs"
613 afh_ldflags="$afh_ldflags $ogg_libs"
614 recv_ldflags="$recv_ldflags $ogg_libs"
615 all_errlist_objs="$all_errlist_objs ogg_afh_common"
616 afh_errlist_objs="$afh_errlist_objs ogg_afh_common"
617 recv_errlist_objs="$recv_errlist_objs ogg_afh_common"
618 server_errlist_objs="$server_errlist_objs ogg_afh_common"
619 play_errlist_objs="$play_errlist_objs ogg_afh_common"
621 if test "$have_vorbis" = "yes"; then
622 all_errlist_objs="$all_errlist_objs oggdec_filter ogg_afh"
623 AC_DEFINE(HAVE_OGGVORBIS, 1, define to 1 to turn on ogg/vorbis support)
624 filters="$filters oggdec"
625 vorbis_libs="-lvorbis -lvorbisfile"
626 server_ldflags="$server_ldflags $vorbis_libs"
627 filter_ldflags="$filter_ldflags $vorbis_libs"
628 audiod_ldflags="$audiod_ldflags $vorbis_libs"
629 play_ldflags="$play_ldflags $vorbis_libs"
630 afh_ldflags="$afh_ldflags $vorbis_libs"
631 recv_ldflags="$recv_ldflags $vorbis_libs"
633 server_errlist_objs="$server_errlist_objs ogg_afh"
634 filter_errlist_objs="$filter_errlist_objs oggdec_filter"
635 audiod_errlist_objs="$audiod_errlist_objs oggdec_filter"
636 play_errlist_objs="$play_errlist_objs oggdec_filter ogg_afh"
637 afh_errlist_objs="$afh_errlist_objs ogg_afh"
638 recv_errlist_objs="$recv_errlist_objs ogg_afh"
640 audiod_audio_formats="$audiod_audio_formats ogg"
641 server_audio_formats="$server_audio_formats ogg"
643 AC_MSG_WARN([no ogg/vorbis $msg])
645 if test "$have_speex" = "yes"; then
646 all_errlist_objs="$all_errlist_objs spxdec_filter spx_afh spx_common"
647 AC_DEFINE(HAVE_SPEEX, 1, define to 1 to turn on ogg/speex support)
648 filters="$filters spxdec"
650 server_ldflags="$server_ldflags $speex_libs"
651 filter_ldflags="$filter_ldflags $speex_libs"
652 audiod_ldflags="$audiod_ldflags $speex_libs"
653 play_ldflags="$play_ldflags $speex_libs"
654 afh_ldflags="$afh_ldflags $speex_libs"
655 recv_ldflags="$recv_ldflags $speex_libs"
657 server_errlist_objs="$server_errlist_objs spx_afh spx_common"
658 filter_errlist_objs="$filter_errlist_objs spxdec_filter spx_common"
659 audiod_errlist_objs="$audiod_errlist_objs spxdec_filter spx_common"
660 play_errlist_objs="$play_errlist_objs spxdec_filter spx_afh spx_common"
661 afh_errlist_objs="$afh_errlist_objs spx_afh spx_common"
662 recv_errlist_objs="$recv_errlist_objs spx_afh spx_common"
664 audiod_audio_formats="$audiod_audio_formats spx"
665 server_audio_formats="$server_audio_formats spx"
667 AC_MSG_WARN([no ogg/speex $msg])
669 CPPFLAGS="$OLD_CPPFLAGS"
670 LDFLAGS="$OLD_LDFLAGS"
672 ########################################################################### faad
674 OLD_CPPFLAGS="$CPPFLAGS"
675 OLD_LD_FLAGS="$LDFLAGS"
677 AC_ARG_WITH(faad_headers, [AS_HELP_STRING(--with-faad-headers=dir,
678 [look for neaacdec.h also in dir])])
679 if test -n "$with_faad_headers"; then
680 faad_cppflags="-I$with_faad_headers"
681 CPPFLAGS="$CPPFLAGS $faad_cppflags"
683 AC_ARG_WITH(faad_libs, [AS_HELP_STRING(--with-faad-libs=dir,
684 [look for libfaad also in dir])])
685 if test -n "$with_faad_libs"; then
686 faad_libs="-L$with_faad_libs"
687 LDFLAGS="$LDFLAGS $faad_libs"
689 AC_CHECK_HEADER(neaacdec.h, [], have_faad=no)
690 AC_CHECK_LIB([faad], [NeAACDecOpen], [], have_faad=no)
691 if test "$have_faad" = "yes"; then
692 AC_DEFINE(HAVE_FAAD, 1, define to 1 if you want to build the aacdec filter)
693 all_errlist_objs="$all_errlist_objs aac_common aacdec_filter aac_afh"
694 filter_errlist_objs="$filter_errlist_objs aacdec_filter aac_common"
695 afh_errlist_objs="$afh_errlist_objs aac_common aac_afh"
696 audiod_errlist_objs="$audiod_errlist_objs aacdec_filter aac_common"
697 play_errlist_objs="$play_errlist_objs aacdec_filter aac_afh aac_common"
698 server_errlist_objs="$server_errlist_objs aac_afh aac_common"
699 recv_errlist_objs="$recv_errlist_objs aac_afh aac_common"
701 server_ldflags="$server_ldflags $faad_libs -lfaad"
702 filter_ldflags="$filter_ldflags $faad_libs -lfaad"
703 audiod_ldflags="$audiod_ldflags $faad_libs -lfaad"
704 play_ldflags="$play_ldflags $faad_libs -lfaad"
705 afh_ldflags="$afh_ldflags $faad_libs -lfaad"
706 recv_ldflags="$afh_ldflags $faad_libs -lfaad"
708 audiod_audio_formats="$audiod_audio_formats aac"
709 server_audio_formats="$server_audio_formats aac"
710 filters="$filters aacdec"
711 AC_SUBST(faad_cppflags)
713 AC_MSG_WARN([no aac support in para_audiod/para_filter])
715 CPPFLAGS="$OLD_CPPFLAGS"
716 LDFLAGS="$OLD_LDFLAGS"
718 ########################################################################### mad
720 OLD_CPPFLAGS="$CPPFLAGS"
721 OLD_LD_FLAGS="$LDFLAGS"
724 AC_ARG_WITH(mad_headers, [AS_HELP_STRING(--with-mad-headers=dir,
725 [look for mad.h also in dir])])
726 if test -n "$with_mad_headers"; then
727 mad_cppflags="-I$with_mad_headers"
728 CPPFLAGS="$CPPFLAGS $mad_cppflags"
730 AC_ARG_WITH(mad_libs, [AS_HELP_STRING(--with-mad-libs=dir,
731 [look for libmad also in dir])])
732 if test -n "$with_mad_libs"; then
733 mad_libs="-L$with_mad_libs"
734 LDFLAGS="$LDFLAGS $mad_libs"
736 AC_CHECK_HEADERS([mad.h], [], [
739 AC_CHECK_LIB([mad], [mad_stream_init], [], [
742 if test "$have_mad" = "yes"; then
743 AC_DEFINE(HAVE_MAD, 1, define to 1 if you want to build the mp3dec filter)
744 filter_cmdline_objs="$filter_cmdline_objs add_cmdline(mp3dec_filter)"
745 audiod_cmdline_objs="$audiod_cmdline_objs add_cmdline(mp3dec_filter)"
746 play_cmdline_objs="$play_cmdline_objs add_cmdline(mp3dec_filter)"
747 all_errlist_objs="$all_errlist_objs mp3dec_filter"
748 filter_errlist_objs="$filter_errlist_objs mp3dec_filter"
749 audiod_errlist_objs="$audiod_errlist_objs mp3dec_filter"
750 play_errlist_objs="$play_errlist_objs mp3dec_filter"
751 filter_ldflags="$filter_ldflags $mad_libs -lmad"
752 audiod_ldflags="$audiod_ldflags $mad_libs -lmad"
753 play_ldflags="$play_ldflags $mad_libs -lmad"
754 audiod_audio_formats="$audiod_audio_formats mp3"
755 filters="$filters mp3dec"
756 AC_SUBST(mad_cppflags)
758 AC_MSG_WARN([no mp3dec support in para_audiod/para_filter])
760 CPPFLAGS="$OLD_CPPFLAGS"
761 LDFLAGS="$OLD_LDFLAGS"
763 ###################################################################### libid3tag
764 OLD_CPPFLAGS="$CPPFLAGS"
765 OLD_LD_FLAGS="$LDFLAGS"
769 AC_ARG_WITH(id3tag_headers, [AS_HELP_STRING(--with-id3tag-headers=dir,
770 [look for id3tag header files also in dir])])
771 if test -n "$with_id3tag_headers"; then
772 id3tag_cppflags="-I$with_id3tag_headers"
773 CPPFLAGS="$CPPFLAGS $id3tag_cppflags"
775 AC_ARG_WITH(id3tag_libs, [AS_HELP_STRING(--with-id3tag-libs=dir,
776 [look for id3tag libs also in dir])])
777 if test -n "$with_id3tag_libs"; then
778 id3tag_libs="-L$with_id3tag_libs"
779 LDFLAGS="$LDFLAGS $id3tag_libs"
782 AC_MSG_CHECKING(for libid3tag)
783 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
786 struct id3_tag t = {.flags = 0};
787 ]])],[],[have_libid3tag=no])
788 AC_MSG_RESULT($have_libid3tag)
790 if test ${have_libid3tag} = yes; then
791 AC_DEFINE(HAVE_LIBID3TAG, 1, define to 1 you have libid3tag)
792 server_ldflags="$server_ldflags $id3tag_libs -lid3tag -lz"
793 afh_ldflags="$afh_ldflags $id3tag_libs -lid3tag -lz"
794 play_ldflags="$play_ldflags -lz"
795 recv_ldflags="$recv_ldflags $id3tag_libs -lid3tag"
796 play_ldflags="$play_ldflags $id3tag_libs -lid3tag"
797 AC_SUBST(id3tag_cppflags)
799 AC_MSG_WARN([no support for id3v2 tags])
801 CPPFLAGS="$OLD_CPPFLAGS"
802 LDFLAGS="$OLD_LDFLAGS"
804 ########################################################################### flac
805 OLD_CPPFLAGS="$CPPFLAGS"
806 OLD_LD_FLAGS="$LDFLAGS"
810 AC_ARG_WITH(flac_headers, [AS_HELP_STRING(--with-flac-headers=dir,
811 [look for flac headers also in dir])])
812 if test -n "$with_flac_headers"; then
813 flac_cppflags="-I$with_flac_headers"
814 CPPFLAGS="$CPPFLAGS $flac_cppflags"
816 AC_ARG_WITH(flac_libs, [AS_HELP_STRING(--with-flac-libs=dir,
817 [look for flac libs also in dir])])
818 if test -n "$with_flac_libs"; then
819 flac_libs="-L$with_flac_libs"
820 LDFLAGS="$LDFLAGS $flac_libs"
822 AC_CHECK_HEADER(FLAC/stream_decoder.h, [], have_flac=no)
823 AC_CHECK_LIB([FLAC], [FLAC__stream_decoder_init_file], [], have_flac=no, -logg -lm)
824 if test "$have_flac" = "yes"; then
825 AC_DEFINE(HAVE_FLAC, 1, define to 1 if you want to build the flacdec filter)
826 all_errlist_objs="$all_errlist_objs flacdec_filter flac_afh"
827 filter_errlist_objs="$filter_errlist_objs flacdec_filter"
828 audiod_errlist_objs="$audiod_errlist_objs flacdec_filter"
829 play_errlist_objs="$play_errlist_objs flacdec_filter flac_afh"
830 afh_errlist_objs="$afh_errlist_objs flac_afh"
831 server_errlist_objs="$server_errlist_objs flac_afh"
832 recv_errlist_objs="$recv_errlist_objs flac_afh"
833 filter_ldflags="$filter_ldflags $flac_libs -lFLAC"
834 audiod_ldflags="$audiod_ldflags $flac_libs -lFLAC"
835 play_ldflags="$play_ldflags $flac_libs -lFLAC"
836 server_ldflags="$server_ldflags $flac_libs -lFLAC"
837 afh_ldflags="$afh_ldflags $flac_libs -lFLAC"
838 recv_ldflags="$afh_ldflags $flac_libs -lFLAC"
839 filters="$filters flacdec"
840 server_audio_formats="$server_audio_formats flac"
841 audiod_audio_formats="$audiod_audio_formats flac"
842 AC_SUBST(flac_cppflags)
844 AC_MSG_WARN([no flac support in para_audiod/para_filter/para_afh/para_server])
846 CPPFLAGS="$OLD_CPPFLAGS"
847 LDFLAGS="$OLD_LDFLAGS"
849 ########################################################################### oss
850 OLD_CPPFLAGS="$CPPFLAGS"
851 OLD_LD_FLAGS="$LDFLAGS"
855 msg="=> will not build oss writer"
857 AC_CHECK_HEADER(sys/soundcard.h, [
858 audiod_errlist_objs="$audiod_errlist_objs oss_write"
859 play_errlist_objs="$play_errlist_objs oss_write"
860 audiod_cmdline_objs="$audiod_cmdline_objs add_cmdline(oss_write)"
861 play_cmdline_objs="$play_cmdline_objs add_cmdline(oss_write)"
863 write_errlist_objs="$write_errlist_objs oss_write"
864 write_cmdline_objs="$write_cmdline_objs add_cmdline(oss_write)"
865 fade_errlist_objs="$fade_errlist_objs oss_mix"
866 all_errlist_objs="$all_errlist_objs oss_write oss_mix"
868 writers="$writers oss"
869 default_writer="OSS_WRITE"
870 mixers="${mixers}oss "
871 default_mixer="OSS_MIX"
873 AC_CHECK_LIB(ossaudio, _oss_ioctl, [
874 audiod_ldflags="$audiod_ldflags -lossaudio"
875 play_ldflags="$play_ldflags -lossaudio"
876 write_ldflags="$write_ldflags -lossaudio"
877 fade_ldflags="$fade_ldflags -lossaudio"
883 AC_MSG_WARN([no sys/soundcard.h $msg])
886 CPPFLAGS="$OLD_CPPFLAGS"
887 LDFLAGS="$OLD_LDFLAGS"
890 ########################################################################### alsa
891 OLD_CPPFLAGS="$CPPFLAGS"
892 OLD_LD_FLAGS="$LDFLAGS"
895 msg="=> no alsa support for para_audiod/para_write"
896 if test "$OSTYPE" != "Linux"; then
901 if test "$have_alsa" = "yes"; then
902 AC_CHECK_HEADERS([alsa/asoundlib.h], [], [
904 AC_MSG_WARN([no alsa/asoundlib $msg])
908 if test "$have_alsa" = "yes"; then
909 AC_CHECK_LIB([asound], [snd_pcm_open], [], [
911 AC_MSG_WARN([no libasound $msg])
915 if test "$have_alsa" = "yes"; then
916 audiod_errlist_objs="$audiod_errlist_objs alsa_write"
917 audiod_cmdline_objs="$audiod_cmdline_objs add_cmdline(alsa_write)"
918 audiod_ldflags="$audiod_ldflags -lasound"
919 play_errlist_objs="$play_errlist_objs alsa_write"
920 play_cmdline_objs="$play_cmdline_objs add_cmdline(alsa_write)"
921 play_ldflags="$play_ldflags -lasound"
923 write_errlist_objs="$write_errlist_objs alsa_write"
924 write_cmdline_objs="$write_cmdline_objs add_cmdline(alsa_write)"
925 write_ldflags="$write_ldflags -lasound"
926 fade_errlist_objs="$fade_errlist_objs alsa_mix"
927 fade_ldflags="$fade_ldflags -lasound"
928 all_errlist_objs="$all_errlist_objs alsa_write alsa_mix"
930 writers="$writers alsa"
931 default_writer="ALSA_WRITE"
932 mixers="${mixers}alsa "
933 default_mixer="ALSA_MIX"
936 CPPFLAGS="$OLD_CPPFLAGS"
937 LDFLAGS="$OLD_LDFLAGS"
939 ########################################################################### fade
940 if test -n "$mixers"; then
941 extras="$extras fade"
942 executables="$executables fade"
943 all_errlist_objs="$all_errlist_objs fade"
944 fade_errlist_objs="$fade_errlist_objs fade exec string fd"
945 fade_cmdline_objs="add_cmdline(fade)"
946 fade_objs="$fade_cmdline_objs $fade_errlist_objs"
947 AC_SUBST(fade_objs, add_dot_o($fade_objs))
948 AC_SUBST(fade_ldflags, $fade_ldflags)
949 AC_DEFINE_UNQUOTED(INIT_FADE_ERRLISTS,
950 objlist_to_errlist($fade_errlist_objs),
951 errors used by para_fade)
954 printf "${i}_MIX, " | tr '[a-z]' '[A-Z]'
957 AC_DEFINE_UNQUOTED(MIXER_ENUM, $enum NUM_SUPPORTED_MIXERS,
958 enum of supported mixers)
959 AC_DEFINE_UNQUOTED(DEFAULT_MIXER, $default_mixer,
960 use this mixer if none was specified)
961 names="$(for i in $mixers; do printf \"$i\",' ' ; done)"
962 AC_DEFINE_UNQUOTED(MIXER_NAMES, $names, supported mixer names)
965 printf 'extern void '$i'_mix_init(struct mixer *); '
968 AC_DEFINE_UNQUOTED(DECLARE_MIXER_INITS, $inits,
969 init functions of the supported mixers)
970 array="$(for i in $mixers; do printf '{.init = '$i'_mix_init},'; done)"
971 AC_DEFINE_UNQUOTED(MIXER_ARRAY, $array, array of supported mixers)
972 mixer_summary="supported mixers:: $mixers, default: $default_mixer"
974 AC_MSG_WARN([no mixer support])
975 mixer_summary="para_fade: no"
977 ########################################################################### libao
978 OLD_CPPFLAGS="$CPPFLAGS"
979 OLD_LD_FLAGS="$LDFLAGS"
983 AC_ARG_WITH(ao_headers, [AS_HELP_STRING(--with-ao-headers=dir,
984 [look for ao/ao.h also in dir])])
985 if test -n "$with_ao_headers"; then
986 ao_cppflags="-I$with_ao_headers"
987 CPPFLAGS="$CPPFLAGS $ao_cppflags"
989 AC_ARG_WITH(ao_libs, [AS_HELP_STRING(--with-ao-libs=dir,
990 [look for libao also in dir])])
991 if test -n "$with_ao_libs"; then
992 ao_libs="-L$with_ao_libs"
993 LDFLAGS="$LDFLAGS $ao_libs"
995 msg="no libao support for para_audiod/para_write"
996 AC_CHECK_HEADERS([ao/ao.h], [
999 AC_MSG_WARN([ao.h not found, $msg])
1001 if test "$have_ao" = "yes"; then
1002 AC_CHECK_LIB([ao], [ao_initialize], [], [
1004 AC_MSG_WARN([ao lib not found or not working, $msg])
1007 if test "$have_ao" = "yes"; then
1008 AC_CHECK_HEADERS([pthread.h], [
1011 AC_MSG_WARN([pthread.h not found, $msg])
1014 if test "$have_ao" = "yes"; then
1015 AC_CHECK_LIB([pthread], [pthread_create], [], [
1017 AC_MSG_WARN([pthread lib not found or not working, $msg])
1020 if test "$have_ao" = "yes"; then
1021 all_errlist_objs="$all_errlist_objs ao_write"
1022 audiod_errlist_objs="$audiod_errlist_objs ao_write"
1023 audiod_cmdline_objs="$audiod_cmdline_objs add_cmdline(ao_write)"
1024 audiod_ldflags="$audiod_ldflags -lao -lpthread"
1026 play_errlist_objs="$play_errlist_objs ao_write"
1027 play_cmdline_objs="$play_cmdline_objs add_cmdline(ao_write)"
1028 play_ldflags="$play_ldflags -lao -lpthread"
1030 write_errlist_objs="$write_errlist_objs ao_write"
1031 write_cmdline_objs="$write_cmdline_objs add_cmdline(ao_write)"
1032 write_ldflags="$write_ldflags $ao_libs -lao -lpthread"
1033 writers="$writers ao"
1034 AC_SUBST(ao_cppflags)
1037 CPPFLAGS="$OLD_CPPFLAGS"
1038 LDFLAGS="$OLD_LDFLAGS"
1040 ############################################################# readline
1041 OLD_CPPFLAGS="$CPPFLAGS"
1042 OLD_LD_FLAGS="$LDFLAGS"
1046 AC_ARG_WITH(readline_headers, [AS_HELP_STRING(--with-readline-headers=dir,
1047 [look for libreadline header files also in dir])])
1048 if test -n "$with_readline_headers"; then
1049 readline_cppflags="-I$with_readline_headers"
1050 CPPFLAGS="$CPPFLAGS $readline_cppflags"
1053 AC_ARG_WITH(readline_libs, [AS_HELP_STRING(--with-readline-libs=dir,
1054 [look for readline library also in dir])])
1055 if test -n "$with_readline_libs"; then
1056 readline_libs="-L$with_readline_libs"
1057 LDFLAGS="$LDFLAGS $readline_libs"
1059 msg="no interactive cli support"
1060 AC_CHECK_HEADERS([readline/readline.h], [
1063 AC_MSG_WARN([readline/readline.h not found, $msg])
1066 if test "$have_curses" != "yes"; then
1068 AC_MSG_WARN([interactive cli support depends on curses,])
1069 AC_MSG_WARN([but no curses lib was detected, $msg])
1072 if test "$have_readline" = "yes"; then
1073 readline_libs="$readline_libs -lreadline"
1074 AC_SEARCH_LIBS([rl_free_keymap], [readline], [], [have_readline="no"])
1075 if test "$have_readline" = "no"; then # try with -lcurses
1077 AC_MSG_NOTICE([trying again with -lcurses])
1078 unset ac_cv_search_rl_free_keymap 2> /dev/null
1079 AC_SEARCH_LIBS([rl_free_keymap], [readline], [
1081 readline_libs="$readline_libs -lcurses"
1084 if test "$have_readline" = "no"; then # try with -ltermcap
1086 AC_MSG_NOTICE([trying again with -ltermcap])
1087 unset ac_cv_search_rl_free_keymap 2> /dev/null
1088 AC_SEARCH_LIBS([rl_free_keymap], [readline], [
1090 readline_libs="$readline_libs -ltermcap"
1095 if test "$have_readline" = "yes"; then
1096 all_errlist_objs="$all_errlist_objs interactive"
1097 client_errlist_objs="$client_errlist_objs interactive"
1098 client_ldflags="$client_ldflags $readline_libs"
1099 audioc_errlist_objs="$audioc_errlist_objs buffer_tree interactive sched time"
1100 audioc_ldflags="$audioc_ldflags $readline_libs"
1101 play_errlist_objs="$play_errlist_objs interactive"
1102 play_ldflags="$play_ldflags $readline_libs"
1103 AC_SUBST(readline_cppflags)
1104 AC_DEFINE(HAVE_READLINE, 1, define to 1 to turn on readline support)
1106 AC_MSG_WARN([libreadline not found or unusable])
1108 CPPFLAGS="$OLD_CPPFLAGS"
1109 LDFLAGS="$OLD_LDFLAGS"
1111 ############################################################# libsamplerate
1112 OLD_CPPFLAGS="$CPPFLAGS"
1113 OLD_LD_FLAGS="$LDFLAGS"
1116 have_samplerate="yes"
1117 AC_ARG_WITH(samplerate_headers, [AS_HELP_STRING(--with-samplerate-headers=dir,
1118 [look for samplerate headers also in dir])])
1119 if test -n "$with_samplerate_headers"; then
1120 samplerate_cppflags="-I$with_samplerate_headers"
1121 CPPFLAGS="$CPPFLAGS $samplerate_cppflags"
1123 AC_ARG_WITH(samplerate_libs, [AS_HELP_STRING(--with-samplerate-libs=dir,
1124 [look for samplerate libs also in dir])])
1125 if test -n "$with_samplerate_libs"; then
1126 samplerate_libs="-L$with_samplerate_libs"
1127 LDFLAGS="$LDFLAGS $samplerate_libs"
1130 AC_CHECK_HEADER(samplerate.h, [], have_samplerate=no)
1131 AC_CHECK_LIB([samplerate], [src_process], [], have_samplerate=no, [])
1133 if test "$have_samplerate" = "yes"; then
1134 all_errlist_objs="$all_errlist_objs resample_filter"
1135 filter_errlist_objs="$filter_errlist_objs resample_filter check_wav"
1136 filter_cmdline_objs="$filter_cmdline_objs add_cmdline(resample_filter)"
1137 audiod_errlist_objs="$audiod_errlist_objs resample_filter check_wav"
1138 audiod_cmdline_objs="$audiod_cmdline_objs add_cmdline(resample_filter)"
1139 play_errlist_objs="$play_errlist_objs resample_filter check_wav"
1140 play_cmdline_objs="$play_cmdline_objs add_cmdline(resample_filter)"
1141 filter_ldflags="$filter_ldflags $samplerate_libs -lsamplerate"
1142 audiod_ldflags="$audiod_ldflags $samplerate_libs -lsamplerate"
1143 play_ldflags="$play_ldflags $samplerate_libs -lsamplerate"
1144 filters="$filters resample"
1145 AC_SUBST(samplerate_cppflags)
1147 AC_MSG_WARN([no resample support in para_audiod/para_filter])
1149 CPPFLAGS="$OLD_CPPFLAGS"
1150 LDFLAGS="$OLD_LDFLAGS"
1152 ############################################################# error2.h
1153 AC_MSG_NOTICE(creating error2.h)
1154 for i in $executables; do
1156 eval echo \$${i}_errlist_objs
1157 done | ./error2.pl > error2.h
1158 for obj in $all_errlist_objs; do
1159 SS="$SS SS_$(echo $obj | tr 'a-z' 'A-Z'),"
1161 AC_DEFINE_UNQUOTED(DEFINE_ERRLIST_OBJECT_ENUM,
1162 [enum {$SS NUM_SS}],
1163 [list of all objects that use the paraslash error facility]
1166 ################################################################## status items
1168 status_items="basename status num_played mtime bitrate frequency file_size
1169 status_flags format score techinfo afs_mode
1170 attributes_txt decoder_flags audiod_status play_time attributes_bitmap
1171 offset seconds_total stream_start current_time audiod_uptime image_id
1172 lyrics_id duration directory lyrics_name image_name path hash channels
1173 last_played num_chunks chunk_time amplification artist title year album
1177 for i in $status_items; do
1178 result="$result SI_$(echo $i | tr 'a-z' 'A-Z'), "
1180 AC_DEFINE_UNQUOTED(STATUS_ITEM_ENUM, [$result],
1181 [enum of all status items])
1184 for i in $status_items; do
1185 result="$result \"$i\", "
1187 AC_DEFINE_UNQUOTED(STATUS_ITEM_ARRAY, [$result],
1188 [char * array of all status items])
1190 AC_DEFINE_UNQUOTED(SERVER_AUDIO_FORMATS, "$server_audio_formats",
1191 [formats supported by para_server and para_afh])
1193 AC_SUBST(executables, add_para($executables))
1195 recv_objs="$recv_cmdline_objs $recv_errlist_objs"
1196 filter_objs="$filter_cmdline_objs $filter_errlist_objs"
1197 audiod_objs="$audiod_cmdline_objs $audiod_errlist_objs"
1198 server_objs="$server_cmdline_objs $server_errlist_objs"
1199 write_objs="$write_cmdline_objs $write_errlist_objs"
1200 client_objs="$client_cmdline_objs $client_errlist_objs"
1201 audioc_objs="$audioc_cmdline_objs $audioc_errlist_objs"
1202 afh_objs="$afh_cmdline_objs $afh_errlist_objs"
1203 play_objs="$play_cmdline_objs $play_errlist_objs"
1206 AC_SUBST(recv_objs, add_dot_o($recv_objs))
1207 AC_SUBST(recv_ldflags, $recv_ldflags)
1208 AC_DEFINE_UNQUOTED(INIT_RECV_ERRLISTS, objlist_to_errlist($recv_errlist_objs),
1209 errors used by para_recv)
1211 AC_SUBST(filter_objs, add_dot_o($filter_objs))
1212 AC_SUBST(filter_ldflags, $filter_ldflags)
1213 AC_DEFINE_UNQUOTED(INIT_FILTER_ERRLISTS,
1214 objlist_to_errlist($filter_errlist_objs), errors used by para_filter)
1216 AC_SUBST(audiod_objs, add_dot_o($audiod_objs))
1217 AC_SUBST(audiod_ldflags, $audiod_ldflags)
1218 AC_DEFINE_UNQUOTED(INIT_AUDIOD_ERRLISTS, objlist_to_errlist($audiod_errlist_objs),
1219 errors used by para_audiod)
1221 AC_SUBST(server_objs, add_dot_o($server_objs))
1222 AC_SUBST(server_ldflags, $server_ldflags)
1223 AC_DEFINE_UNQUOTED(INIT_SERVER_ERRLISTS,
1224 objlist_to_errlist($server_errlist_objs), errors used by para_server)
1226 AC_SUBST(afh_objs, add_dot_o($afh_objs))
1227 AC_SUBST(afh_ldflags, $afh_ldflags)
1228 AC_DEFINE_UNQUOTED(INIT_AFH_ERRLISTS,
1229 objlist_to_errlist($afh_errlist_objs), errors used by para_afh)
1231 AC_SUBST(write_objs, add_dot_o($write_objs))
1232 AC_SUBST(write_ldflags, $write_ldflags)
1233 AC_DEFINE_UNQUOTED(INIT_WRITE_ERRLISTS,
1234 objlist_to_errlist($write_errlist_objs), errors used by para_write)
1236 AC_SUBST(client_objs, add_dot_o($client_objs))
1237 AC_SUBST(client_ldflags, $client_ldflags)
1238 AC_DEFINE_UNQUOTED(INIT_CLIENT_ERRLISTS,
1239 objlist_to_errlist($client_errlist_objs), errors used by para_client)
1241 AC_SUBST(audioc_objs, add_dot_o($audioc_objs))
1242 AC_SUBST(audioc_ldflags, $audioc_ldflags)
1243 AC_DEFINE_UNQUOTED(INIT_AUDIOC_ERRLISTS,
1244 objlist_to_errlist($audioc_errlist_objs), errors used by para_audioc)
1246 AC_SUBST(gui_objs, add_dot_o($gui_objs))
1247 AC_SUBST(gui_ldflags, $gui_ldflags)
1248 AC_DEFINE_UNQUOTED(INIT_GUI_ERRLISTS,
1249 objlist_to_errlist($gui_errlist_objs), errors used by para_gui)
1251 AC_SUBST(play_objs, add_dot_o($play_objs))
1252 AC_SUBST(play_ldflags, $play_ldflags)
1253 AC_DEFINE_UNQUOTED(INIT_PLAY_ERRLISTS,
1254 objlist_to_errlist($play_errlist_objs), errors used by para_play)
1256 AC_MSG_NOTICE(play objs: $play_objs)
1258 enum="$(for i in $filters; do printf "${i}_FILTER, " | tr '[a-z]' '[A-Z]'; done)"
1259 AC_DEFINE_UNQUOTED(FILTER_ENUM, $enum NUM_SUPPORTED_FILTERS,
1260 enum of supported filters)
1261 inits="$(for i in $filters; do printf 'extern void '$i'_filter_init(struct filter *f); '; done)"
1262 AC_DEFINE_UNQUOTED(DECLARE_FILTER_INITS, $inits, init functions of the supported filters)
1263 array="$(for i in $filters; do printf '{.name = "'$i'", .init = '$i'_filter_init},'; done)"
1264 AC_DEFINE_UNQUOTED(FILTER_ARRAY, $array, array of supported filters)
1266 enum="$(for i in $writers; do printf "${i}_WRITE, " | tr '[a-z]' '[A-Z]'; done)"
1267 AC_DEFINE_UNQUOTED(WRITER_ENUM, $enum NUM_SUPPORTED_WRITERS,
1268 enum of supported writers)
1269 AC_DEFINE_UNQUOTED(DEFAULT_WRITER, $default_writer, use this writer if none was specified)
1270 names="$(for i in $writers; do printf \"$i\",' ' ; done)"
1271 AC_DEFINE_UNQUOTED(WRITER_NAMES, $names, supported writer names)
1272 inits="$(for i in $writers; do printf 'extern void '$i'_write_init(struct writer *); '; done)"
1273 AC_DEFINE_UNQUOTED(DECLARE_WRITER_INITS, $inits, init functions of the supported writers)
1274 array="$(for i in $writers; do printf '{.init = '$i'_write_init},'; done)"
1275 AC_DEFINE_UNQUOTED(WRITER_ARRAY, $array, array of supported writers)
1277 enum="$(for i in $audiod_audio_formats; do printf "AUDIO_FORMAT_${i}, " | tr '[a-z]' '[A-Z]'; done)"
1278 AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMATS_ENUM, $enum NUM_AUDIO_FORMATS,
1279 enum of audio formats supported by audiod)
1280 names="$(for i in $audiod_audio_formats; do printf \"$i\",' ' ; done)"
1281 AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMAT_ARRAY, $names, array of audio formats supported by audiod)
1285 paraslash configuration:
1286 ~~~~~~~~~~~~~~~~~~~~~~~~
1287 unix socket credentials: $have_ucred
1288 readline (interactive CLIs): $have_readline
1289 audio formats supported by para_server/para_afh: $server_audio_formats
1290 id3 version2 support: $have_libid3tag
1291 filters supported by para_audiod/para_filter: $filters
1292 writers supported by para_audiod/para_write: $writers
1293 optional executables: $extras