configure: Fix warning message.
[paraslash.git] / configure.ac
1 # -*- Autoconf -*-
2 # Process this file with autoconf to produce a configure script.
3
4 AC_PREREQ(2.60)
5
6
7 AC_INIT(paraslash, [git], maan@systemlinux.org)
8 AC_CONFIG_HEADER([config.h])
9
10 AC_PATH_PROG(UNAMEPATH, uname, no)
11 if test "$UNAMEPATH" = "no"; then
12 AC_MSG_ERROR(unable to determine system type)
13 fi
14 AC_MSG_CHECKING(os type)
15 OSTYPE="`$UNAMEPATH -s`"
16 AC_MSG_RESULT("$OSTYPE")
17
18 if test "$OSTYPE" = "SunOS"; then
19 # needed on SunOS for socket magic
20 arch_cppflags="-D_XOPEN_SOURCE=500 -D__EXTENSIONS__"
21 AC_SUBST(arch_cppflags)
22 fi
23
24 AC_C_BIGENDIAN()
25
26 AC_PATH_PROG([gengetopt], [gengetopt])
27 test -z "$gengetopt" && AC_MSG_ERROR(
28 [gengetopt is required to build this package])
29
30 AC_PATH_PROG([help2man], [help2man])
31 test -z "$help2man" && AC_MSG_ERROR(
32 [help2man is required to build this package])
33
34 AC_PROG_CC
35 AC_PROG_CPP
36 AC_PROG_INSTALL
37 AC_REPLACE_FNMATCH
38
39 AC_HEADER_DIRENT
40 AC_HEADER_STDC
41 AC_HEADER_SYS_WAIT
42 AC_HEADER_STDBOOL
43 AC_CHECK_HEADERS([arpa/inet.h ctype.h fcntl.h limits.h netdb.h netinet/in.h \
44 stdlib.h string.h sys/socket.h sys/time.h sys/timeb.h sys/un.h \
45 sys/ipc.h unistd.h utime.h stddef.h],
46 [], [AC_MSG_ERROR([$ac_header not found])])
47
48 # Checks for typedefs, structures, and compiler characteristics.
49 AC_C_CONST
50 AC_C_INLINE
51 AC_TYPE_OFF_T
52 AC_TYPE_PID_T
53 AC_TYPE_SIZE_T
54 AC_HEADER_TIME
55 AC_STRUCT_TM
56 AC_TYPE_INT8_T
57 AC_TYPE_INT16_T
58 AC_TYPE_INT32_T
59 AC_TYPE_INT64_T
60 AC_TYPE_MODE_T
61 AC_TYPE_SSIZE_T
62 AC_TYPE_UID_T
63 AC_TYPE_UINT8_T
64 AC_TYPE_UINT16_T
65 AC_TYPE_UINT32_T
66 AC_TYPE_UINT64_T
67
68 # Checks for library functions.
69 AC_FUNC_FORK
70 AC_PROG_GCC_TRADITIONAL
71 AC_FUNC_MALLOC
72 AC_FUNC_MEMCMP
73 AC_FUNC_MKTIME
74 AC_FUNC_MMAP
75 AC_FUNC_REALLOC
76 AC_FUNC_SELECT_ARGTYPES
77 AC_TYPE_SIGNAL
78 AC_FUNC_STAT
79 AC_FUNC_STRFTIME
80 AC_FUNC_VPRINTF
81 AC_FUNC_CLOSEDIR_VOID
82 AC_FUNC_LSTAT
83
84 AC_CHECK_FUNCS([atexit dup2 memchr memmove memset \
85 regcomp select strchr strdup strerror strstr strtol uname \
86 fchdir gettimeofday localtime_r munmap strcasecmp strcspn \
87 strncasecmp strrchr strspn alarm mkdir inet_ntoa socket], [],
88 [AC_MSG_ERROR([function not found, cannot live without it])])
89
90 cmdline_dir="cmdline"
91 AC_SUBST(cmdline_dir)
92 AC_DEFUN([add_cmdline],[$(for i in $@; do printf "${i}.cmdline "; done)])
93
94
95 all_errlist_objs="mp3_afh afh_common net string signal time daemon
96 stat afh fade amp_filter fd ringbuffer sched audiod
97 grab_client filter_common wav_filter compress_filter http_recv
98 dccp_recv recv_common write_common file_write audiod_command
99 client_common recv stdout filter stdin audioc write client
100 exec send_common ggo udp_recv color fec fecdec_filter
101 prebuffer_filter audiod_command_list bitstream imdct
102 wma_afh wma_common wmadec_filter buffer_tree crypt_common
103 gui gui_theme"
104
105 executables="recv filter audioc write client afh audiod"
106
107 recv_cmdline_objs="add_cmdline(recv http_recv dccp_recv udp_recv)"
108
109 recv_errlist_objs="http_recv recv_common recv time string net dccp_recv
110 fd sched stdout ggo udp_recv buffer_tree"
111 recv_ldflags=""
112
113 filter_cmdline_objs="add_cmdline(filter compress_filter amp_filter prebuffer_filter)"
114 filter_errlist_objs="filter_common wav_filter compress_filter filter string
115 stdin stdout sched fd amp_filter ggo fecdec_filter fec
116 prebuffer_filter time bitstream imdct wma_common wmadec_filter buffer_tree"
117 filter_ldflags="-lm"
118 filters=" compress wav amp fecdec wmadec prebuffer"
119
120 audioc_cmdline_objs="add_cmdline(audioc)"
121 audioc_errlist_objs="audioc string net fd"
122 audioc_ldflags=""
123
124 audiod_cmdline_objs="add_cmdline(audiod compress_filter http_recv dccp_recv file_write client amp_filter udp_recv prebuffer_filter)"
125 audiod_errlist_objs="audiod signal string daemon stat net crypt_common
126 time grab_client filter_common wav_filter compress_filter amp_filter http_recv dccp_recv
127 recv_common fd sched write_common file_write audiod_command fecdec_filter
128 client_common ggo udp_recv color fec prebuffer_filter audiod_command_list
129 bitstream imdct wma_common wmadec_filter buffer_tree"
130 audiod_ldflags="-lm"
131 audiod_audio_formats="wma"
132
133 afh_cmdline_objs="add_cmdline(afh)"
134 afh_errlist_objs="afh string fd mp3_afh afh_common time wma_afh wma_common"
135 afh_ldflags=""
136
137 write_cmdline_objs="add_cmdline(write file_write)"
138 write_errlist_objs="write write_common file_write time fd string sched stdin
139 buffer_tree ggo"
140 write_ldflags=""
141 writers=" file"
142 default_writer="FILE_WRITE"
143
144 client_cmdline_objs="add_cmdline(client)"
145 client_errlist_objs="client net string fd sched stdin stdout time
146 client_common buffer_tree crypt_common"
147 client_ldflags=""
148
149 gui_cmdline_objs="add_cmdline(gui)"
150 gui_errlist_objs="exec signal string stat ringbuffer fd gui gui_theme"
151 gui_objs="$gui_cmdline_objs $gui_errlist_objs"
152
153 fade_cmdline_objs="add_cmdline(fade)"
154 fade_errlist_objs="fade exec string fd"
155
156
157 ########################################################################### snprintf
158 # ===========================================================================
159 # http://www.nongnu.org/autoconf-archive/ax_func_snprintf.html
160 # ===========================================================================
161 #
162 # SYNOPSIS
163 #
164 # AX_FUNC_SNPRINTF
165 #
166 # DESCRIPTION
167 #
168 # Checks for a fully C99 compliant snprintf, in particular checks whether
169 # it does bounds checking and returns the correct string length; does the
170 # same check for vsnprintf. If no working snprintf or vsnprintf is found,
171 # it prints an error message and aborts.
172 #
173 # LICENSE
174 #
175 # Copyright (c) 2008 Ruediger Kuhlmann <info@ruediger-kuhlmann.de>
176 #
177 # Copying and distribution of this file, with or without modification, are
178 # permitted in any medium without royalty provided the copyright notice
179 # and this notice are preserved.
180
181 AU_ALIAS([AC_FUNC_SNPRINTF], [AX_FUNC_SNPRINTF])
182 AC_DEFUN([AX_FUNC_SNPRINTF],
183 [AC_CHECK_FUNCS(snprintf vsnprintf)
184 AC_MSG_CHECKING(for working snprintf)
185 AC_CACHE_VAL(ac_cv_have_working_snprintf,
186 [AC_TRY_RUN(
187 [#include <stdio.h>
188
189 int main(void)
190 {
191 char bufs[5] = { 'x', 'x', 'x', '\0', '\0' };
192 char bufd[5] = { 'x', 'x', 'x', '\0', '\0' };
193 int i;
194 i = snprintf (bufs, 2, "%s", "111");
195 if (strcmp (bufs, "1")) exit (1);
196 if (i != 3) exit (1);
197 i = snprintf (bufd, 2, "%d", 111);
198 if (strcmp (bufd, "1")) exit (1);
199 if (i != 3) exit (1);
200 exit(0);
201 }], ac_cv_have_working_snprintf=yes, ac_cv_have_working_snprintf=no, ac_cv_have_working_snprintf=cross)])
202 AC_MSG_RESULT([$ac_cv_have_working_snprintf])
203 AC_MSG_CHECKING(for working vsnprintf)
204 AC_CACHE_VAL(ac_cv_have_working_vsnprintf,
205 [AC_TRY_RUN(
206 [#include <stdio.h>
207 #include <stdarg.h>
208
209 int my_vsnprintf (char *buf, const char *tmpl, ...)
210 {
211 int i;
212 va_list args;
213 va_start (args, tmpl);
214 i = vsnprintf (buf, 2, tmpl, args);
215 va_end (args);
216 return i;
217 }
218
219 int main(void)
220 {
221 char bufs[5] = { 'x', 'x', 'x', '\0', '\0' };
222 char bufd[5] = { 'x', 'x', 'x', '\0', '\0' };
223 int i;
224 i = my_vsnprintf (bufs, "%s", "111");
225 if (strcmp (bufs, "1")) exit (1);
226 if (i != 3) exit (1);
227 i = my_vsnprintf (bufd, "%d", 111);
228 if (strcmp (bufd, "1")) exit (1);
229 if (i != 3) exit (1);
230 exit(0);
231 }], ac_cv_have_working_vsnprintf=yes, ac_cv_have_working_vsnprintf=no, ac_cv_have_working_vsnprintf=cross)])
232 AC_MSG_RESULT([$ac_cv_have_working_vsnprintf])
233 if test x$ac_cv_have_working_snprintf$ac_cv_have_working_vsnprintf != "xyesyes"; then
234 AC_MSG_ERROR([fatal: buggy snprintf() detected])
235 fi])
236 AX_FUNC_SNPRINTF()
237 ########################################################################### osl
238 have_osl=yes
239 OLD_CPPFLAGS="$CPPFLAGS"
240 OLD_LD_FLAGS="$LDFLAGS"
241 OLD_LIBS="$LIBS"
242 AC_ARG_WITH(osl_headers, [AC_HELP_STRING(--with-osl-headers=dir,
243 [look for osl.h also in dir])])
244 if test -n "$with_osl_headers"; then
245 osl_cppflags="-I$with_osl_headers"
246 CPPFLAGS="$CPPFLAGS $osl_cppflags"
247 fi
248 AC_ARG_WITH(osl_libs, [AC_HELP_STRING(--with-osl-libs=dir,
249 [look for libosl also in dir])])
250 if test -n "$with_osl_libs"; then
251 osl_libs="-L$with_osl_libs"
252 LDFLAGS="$LDFLAGS $osl_libs"
253 fi
254
255 AC_CHECK_HEADER(osl.h, [], have_osl=no)
256 AC_CHECK_LIB([osl], [osl_open_table], [], have_osl=no)
257 if test "$have_osl" = "no"; then
258 AC_MSG_WARN([libosl not found, can not build para_server.
259 Download libosl at
260 http://systemlinux.org/~maan/osl
261 or execute
262 git clone git://git.tuebingen.mpg.de/osl
263 ])
264 else
265 extras="$extras server"
266 executables="$executables server"
267 server_cmdline_objs="add_cmdline(server)"
268 server_errlist_objs="server afh_common mp3_afh vss command net
269 string signal time daemon http_send close_on_fork mm
270 crypt_common ipc dccp_send fd user_list chunk_queue
271 afs aft mood score attribute blob playlist sched acl
272 send_common udp_send color fec server_command_list
273 afs_command_list wma_afh wma_common"
274
275 all_errlist_objs="$all_errlist_objs server vss command
276 http_send close_on_fork mm ipc dccp_send user_list
277 chunk_queue afs aft mood score attribute blob playlist
278 acl udp_send server_command_list afs_command_list"
279
280 server_ldflags=""
281 server_audio_formats="mp3 wma"
282 AC_SUBST(osl_cppflags)
283 server_ldflags="$server_ldflags $osl_libs -losl"
284 fi
285 CPPFLAGS="$OLD_CPPFLAGS"
286 LDFLAGS="$OLD_LDFLAGS"
287 LIBS="$OLD_LIBS"
288 ########################################################################### crypto
289 AC_ARG_ENABLE(cryptolib, [AS_HELP_STRING(--enable-cryptolib=lib, [
290 Force using crypto library "lib". This package requires either
291 openssl or libgcrypt being installed. Possible values for "lib"
292 are thus "openssl" and "gcrypt". If this option is not given,
293 openssl is tried first. If openssl was not found, gcrypt is
294 tried next.])])
295
296 case "$enable_cryptolib" in
297 "openssl") check_openssl="yes"; check_gcrypt="no";;
298 "gcrypt") check_openssl="no"; check_gcrypt="yes";;
299 "") check_openssl="yes"; check_gcrypt="yes";;
300 *) AC_MSG_ERROR([invalid value "$enable_cryptolib" for --enable-cryptolib]);;
301 esac
302 ###################################################################### openssl
303 if test "$check_openssl" = "yes"; then
304 OLD_CPPFLAGS="$CPPFLAGS"
305 OLD_LD_FLAGS="$LDFLAGS"
306 OLD_LIBS="$LIBS"
307 have_openssl="yes"
308 AC_ARG_WITH(openssl_headers, [AC_HELP_STRING(--with-openssl-headers=dir,
309 [look for openssl headers also in dir])])
310 if test -n "$with_openssl_headers"; then
311 openssl_cppflags="-I$with_openssl_headers"
312 CPPFLAGS="$CPPFLAGS $openssl_cppflags"
313 fi
314 AC_ARG_WITH(openssl_libs, [AC_HELP_STRING(--with-openssl-libs=dir,
315 [look for openssl libraries also in dir])])
316 if test -n "$with_openssl_libs"; then
317 openssl_libs="-L$with_openssl_libs"
318 LDFLAGS="$LDFLAGS $openssl_libs"
319 fi
320 AC_CHECK_HEADER(openssl/ssl.h, [], [have_openssl="no"])
321 AC_CHECK_LIB([crypto], [RAND_bytes], [], [have_openssl="no"])
322 if test "$have_openssl" = "no" -a -z "$with_openssl_headers$with_openssl_libs"; then
323 # try harder: openssl is sometimes installed in /usr/local/ssl
324 openssl_cppflags="-I/usr/local/ssl/include"
325 CPPFLAGS="$CPPFLAGS $openssl_cppflags"
326 openssl_libs="-L/usr/local/ssl/lib"
327 LDFLAGS="$LDFLAGS $openssl_libs"
328 # clear cache
329 unset ac_cv_header_openssl_ssl_h 2> /dev/null
330 unset ac_cv_lib_crypto_RAND_bytes 2> /dev/null
331 AC_CHECK_HEADER(openssl/ssl.h, [have_openssl="yes"], [])
332 if test "$have_openssl" = "yes"; then
333 AC_CHECK_LIB([crypto], [RAND_bytes], [], [have_openssl="no"])
334 fi
335 fi
336 if test "$have_openssl" = "yes"; then
337 AC_DEFINE(HAVE_OPENSSL, 1, [define to 1 to turn on openssl support])
338 AC_SUBST(openssl_cppflags)
339 openssl_libs="$openssl_libs -lssl -lcrypto"
340 server_ldflags="$server_ldflags $openssl_libs"
341 client_ldflags="$client_ldflags $openssl_libs"
342 audiod_ldflags="$audiod_ldflags $openssl_libs"
343
344 all_errlist_objs="$all_errlist_objs crypt"
345 server_errlist_objs="$server_errlist_objs crypt"
346 client_errlist_objs="$client_errlist_objs crypt"
347 audiod_errlist_objs="$audiod_errlist_objs crypt"
348
349 check_gcrypt="no"
350 else
351 AC_MSG_WARN([openssl libraries not found])
352 fi
353 CPPFLAGS="$OLD_CPPFLAGS"
354 LDFLAGS="$OLD_LDFLAGS"
355 LIBS="$OLD_LIBS"
356 else
357 have_openssl="no"
358 fi
359 ########################################################################### gcrypt
360 if test "$check_gcrypt" = "yes"; then
361 OLD_CPPFLAGS="$CPPFLAGS"
362 OLD_LD_FLAGS="$LDFLAGS"
363 OLD_LIBS="$LIBS"
364 have_gcrypt="yes"
365 AC_ARG_WITH(gcrypt_headers, [AC_HELP_STRING(--with-gcrypt-headers=dir,
366 [look for gcrypt headers also in dir])])
367 if test -n "$with_gcrypt_headers"; then
368 gcrypt_cppflags="-I$with_gcrypt_headers"
369 CPPFLAGS="$CPPFLAGS $gcrypt_cppflags"
370 fi
371 AC_ARG_WITH(gcrypt_libs, [AC_HELP_STRING(--with-gcrypt-libs=dir,
372 [look for libgcrypt also in dir])])
373 if test -n "$with_gcrypt_libs"; then
374 gcrypt_libs="-L$with_gcrypt_libs"
375 LDFLAGS="$LDFLAGS $gcrypt_libs"
376 fi
377 AC_CHECK_HEADER(gcrypt.h, [], [have_gcrypt="no"])
378 AC_CHECK_LIB([gcrypt], [gcry_randomize], [], [have_gcrypt="no"])
379 if test "$have_gcrypt" = "yes"; then
380 AC_DEFINE(HAVE_GCRYPT, 1, [define to 1 to turn on gcrypt support])
381 AC_SUBST(gcrypt_cppflags)
382 gcrypt_libs="$gcrypt_libs -lgcrypt"
383 server_ldflags="$server_ldflags $gcrypt_libs"
384 client_ldflags="$client_ldflags $gcrypt_libs"
385 audiod_ldflags="$audiod_ldflags $gcrypt_libs"
386
387 all_errlist_objs="$all_errlist_objs gcrypt"
388 server_errlist_objs="$server_errlist_objs gcrypt"
389 client_errlist_objs="$client_errlist_objs gcrypt"
390 audiod_errlist_objs="$audiod_errlist_objs gcrypt"
391 else
392 AC_MSG_WARN([gcrypt library not found])
393 fi
394 CPPFLAGS="$OLD_CPPFLAGS"
395 LDFLAGS="$OLD_LDFLAGS"
396 LIBS="$OLD_LIBS"
397 else
398 have_gcrypt="no"
399 fi
400 ###########################################################################
401 if test "$have_openssl" = "no" -a "$have_gcrypt" = "no"; then
402 AC_MSG_ERROR([neither openssl nor gcrypt usable])
403 fi
404 ########################################################################### libsocket
405 AC_CHECK_LIB([c], [socket],
406 [socket_lib=],
407 [socket_lib="-lsocket"]
408 )
409 server_ldflags="$server_ldflags $socket_lib"
410 client_ldflags="$client_ldflags $socket_lib"
411 audioc_ldflags="$audioc_ldflags $socket_lib"
412 audiod_ldflags="$audiod_ldflags $socket_lib"
413 recv_ldflags="$recv_ldflags $socket_lib"
414 AC_SEARCH_LIBS([connect],[socket],[],[
415 AC_MSG_ERROR([Fatal: Did not find connect().])
416 ],[])
417 ########################################################################### libnsl
418 AC_CHECK_LIB([c], [gethostbyname],
419 [nsl_lib=],
420 [nsl_lib="-lnsl"]
421 )
422 server_ldflags="$server_ldflags $nsl_lib"
423 client_ldflags="$client_ldflags $nsl_lib"
424 audioc_ldflags="$audioc_ldflags $nsl_lib"
425 recv_ldflags="$recv_ldflags $nsl_lib"
426 AC_SEARCH_LIBS([inet_ntoa],[nsl],[],[
427 AC_MSG_ERROR([Fatal: Did not find inet_ntoa().])
428 ],[])
429 ########################################################################### ucred
430 AC_MSG_CHECKING(for struct ucred)
431 AC_TRY_LINK([
432 #define _GNU_SOURCE
433 #include <sys/types.h>
434 #include <sys/socket.h>
435 ],[
436 struct ucred sucred; sucred.pid=0;
437 ],[have_ucred=yes],[have_ucred=no])
438 AC_MSG_RESULT($have_ucred)
439 if test ${have_ucred} = yes; then
440 AC_DEFINE(HAVE_UCRED, 1, define to 1 you have struct ucred)
441 fi
442
443 ########################################################################### curses
444 have_curses="yes"
445 OLD_CPPFLAGS="$CPPFLAGS"
446 OLD_LD_FLAGS="$LDFLAGS"
447 OLD_LIBS="$LIBS"
448 AC_ARG_WITH(curses_headers, [AC_HELP_STRING(--with-curses-headers=dir,
449 [look for curses.h also in dir])])
450 if test -n "$with_curses_headers"; then
451 curses_cppflags="-I$with_curses_headers"
452 CPPFLAGS="$CPPFLAGS $curses_cppflags"
453 fi
454 AC_ARG_WITH(curses_libs, [AC_HELP_STRING(--with-curses-libs=dir,
455 [look for libcurses also in dir])])
456 if test -n "$with_curses_libs"; then
457 curses_libs="-L$with_curses_libs"
458 LDFLAGS="$LDFLAGS $curses_libs"
459 fi
460 AC_CHECK_HEADER(curses.h, [], [
461 have_curses="no"
462 ])
463 AC_CHECK_LIB([curses], [initscr], [], [
464 have_curses="no"
465 ])
466 if test "$have_curses" = "yes"; then
467 AC_SUBST(curses_cppflags)
468 AC_DEFINE(HAVE_NCURSES, 1, [define to 1 to turn on curses support])
469 extras="$extras gui"
470 executables="$executables gui"
471 else
472 AC_MSG_WARN([cannot build para_gui])
473 fi
474 CPPFLAGS="$OLD_CPPFLAGS"
475 LDFLAGS="$OLD_LDFLAGS"
476 LIBS="$OLD_LIBS"
477
478 ########################################################################### ip_mreqn
479 AC_MSG_CHECKING(for struct ip_mreqn (UDPv4 multicast))
480 AC_TRY_LINK([
481 #include <netdb.h>
482 #include <net/if.h>
483 ],[
484 struct ip_mreqn mn;
485 mn.imr_ifindex = 0;
486 ],[have_ip_mreqn=yes],[have_ip_mreqn=no])
487 AC_MSG_RESULT($have_ip_mreqn)
488 if test ${have_ip_mreqn} = yes; then
489 AC_DEFINE(HAVE_IP_MREQN, 1, define to 1 you have struct ip_mreqn)
490 fi
491 ########################################################################### osx
492
493 AC_MSG_CHECKING(for CoreAudio (MacOs))
494 AC_TRY_LINK([
495 #include <CoreAudio/CoreAudio.h>
496 ],[
497 AudioDeviceID id;
498 ],[have_core_audio=yes],[have_core_audio=no])
499 AC_MSG_RESULT($have_core_audio)
500 if test ${have_core_audio} = yes; then
501 f1="-framework CoreAudio"
502 f2="-framework AudioToolbox"
503 f3="-framework AudioUnit"
504 f4="-framework CoreServices"
505 f="$f1 $f2 $f3 $f4"
506
507 all_errlist_objs="$all_errlist_objs osx_write"
508 # ipc is linked into para_server server and into the osx writer. If osl
509 # was not found, para_server will not be built and ipc has not yet been
510 # added to the list of all objects, so we must add it here.
511 if test "$have_osl" = "no"; then
512 all_errlist_objs="$all_errlist_objs ipc"
513 fi
514 audiod_errlist_objs="$audiod_errlist_objs osx_write ipc"
515 audiod_cmdline_objs="$audiod_cmdline_objs osx_write.cmdline"
516 audiod_ldflags="$audiod_ldflags $f"
517
518 write_errlist_objs="$write_errlist_objs osx_write ipc"
519 write_cmdline_objs="$write_cmdline_objs osx_write.cmdline"
520 write_ldflags="$write_ldflags $f"
521 writers="$writers osx"
522 default_writer="OSX_WRITE"
523 AC_DEFINE(HAVE_CORE_AUDIO, 1, define to 1 on Mac Os X)
524 fi
525 ########################################################### ogg/vorbis/speex
526 have_ogg="yes"
527 OLD_CPPFLAGS="$CPPFLAGS"
528 OLD_LD_FLAGS="$LDFLAGS"
529 OLD_LIBS="$LIBS"
530 AC_ARG_WITH(ogg_headers, [AC_HELP_STRING(--with-ogg-headers=dir,
531 [look for ogg headers also in dir])])
532 AC_ARG_WITH(ogg_libs, [AC_HELP_STRING(--with-ogg-libs=dir,
533 [look for ogg libs also in dir])])
534 AC_ARG_WITH(vorbis_headers, [AC_HELP_STRING(--with-vorbis-headers=dir,
535 [look for vorbis headers also in dir])])
536 AC_ARG_WITH(vorbis_libs, [AC_HELP_STRING(--with-vorbis-libs=dir,
537 [look for vorbis libs also in dir])])
538 AC_ARG_WITH(speex_headers, [AC_HELP_STRING(--with-speex-headers=dir,
539 [look for speex headers also in dir])])
540 AC_ARG_WITH(speex_libs, [AC_HELP_STRING(--with-speex-libs=dir,
541 [look for speex libs also in dir])])
542
543 if test -n "$with_ogg_headers"; then
544 ogg_cppflags="-I$with_ogg_headers"
545 CPPFLAGS="$CPPFLAGS $ogg_cppflags"
546 fi
547 if test -n "$with_ogg_libs"; then
548 ogg_libs="-L$with_ogg_libs"
549 LDFLAGS="$LDFLAGS $ogg_libs"
550 fi
551 AC_CHECK_HEADERS([ogg/ogg.h], [], [ have_ogg="no"; ])
552 AC_CHECK_LIB([ogg], [ogg_stream_init], [], [ have_ogg="no" ])
553
554 have_vorbis="yes"
555 have_speex="yes"
556 if test "$have_ogg" = "yes"; then
557 # vorbis
558 if test -n "$with_vorbis_headers"; then
559 vorbis_cppflags="-I$with_vorbis_headers"
560 CPPFLAGS="$CPPFLAGS $vorbis_cppflags"
561 fi
562 if test -n "$with_vorbis_libs"; then
563 vorbis_libs="-L$with_vorbis_libs"
564 LDFLAGS="$LDFLAGS $vorbis_libs"
565 fi
566 AC_CHECK_HEADERS([vorbis/codec.h], [], [ have_vorbis="no" ])
567 AC_CHECK_LIB([vorbis], [vorbis_info_init], [], [ have_vorbis="no" ])
568
569 # speex
570 if test -n "$with_speex_headers"; then
571 speex_cppflags="-I$with_speex_headers"
572 CPPFLAGS="$CPPFLAGS $speex_cppflags"
573 fi
574 if test -n "$with_speex_libs"; then
575 speex_libs="-L$with_speex_libs"
576 LDFLAGS="$LDFLAGS $speex_libs"
577 fi
578 AC_CHECK_LIB([speex], [speex_decoder_init], [], [ have_speex="no" ])
579 AC_CHECK_HEADERS([speex/speex.h], [], [ have_speex="no" ])
580 else
581 AC_MSG_WARN([vorbis/speex depend on libogg, which was not detected])
582 have_vorbis="no"
583 have_speex="no"
584 fi
585
586 msg="support in para_server/para_filter/para_afh"
587 if test "$have_vorbis" = "yes" || test "$have_speex" = "yes"; then
588 AC_SUBST(ogg_cppflags)
589 ogg_libs="$ogg_libs -logg"
590 if test "$OSTYPE" = "Darwin"; then
591 ogg_libs="-Wl,-bind_at_load $ogg_libs"
592 fi
593 server_ldflags="$server_ldflags $ogg_libs"
594 filter_ldflags="$filter_ldflags $ogg_libs"
595 audiod_ldflags="$audiod_ldflags $ogg_libs"
596 afh_ldflags="$afh_ldflags $ogg_libs"
597 all_errlist_objs="$all_errlist_objs ogg_afh_common"
598 afh_errlist_objs="$afh_errlist_objs ogg_afh_common"
599 server_errlist_objs="$server_errlist_objs ogg_afh_common"
600 fi
601 if test "$have_vorbis" = "yes"; then
602 all_errlist_objs="$all_errlist_objs oggdec_filter ogg_afh"
603 AC_DEFINE(HAVE_OGGVORBIS, 1, define to 1 to turn on ogg/vorbis support)
604 filters="$filters oggdec"
605 vorbis_libs="-lvorbis -lvorbisfile"
606 server_ldflags="$server_ldflags $vorbis_libs"
607 filter_ldflags="$filter_ldflags $vorbis_libs"
608 audiod_ldflags="$audiod_ldflags $vorbis_libs"
609 afh_ldflags="$afh_ldflags $vorbis_libs"
610
611 server_errlist_objs="$server_errlist_objs ogg_afh"
612 filter_errlist_objs="$filter_errlist_objs oggdec_filter"
613 audiod_errlist_objs="$audiod_errlist_objs oggdec_filter"
614 afh_errlist_objs="$afh_errlist_objs ogg_afh"
615
616 audiod_audio_formats="$audiod_audio_formats ogg"
617 server_audio_formats="$server_audio_formats ogg"
618 else
619 AC_MSG_WARN([no ogg/vorbis $msg])
620 fi
621 if test "$have_speex" = "yes"; then
622 all_errlist_objs="$all_errlist_objs spxdec_filter spx_afh spx_common"
623 AC_DEFINE(HAVE_SPEEX, 1, define to 1 to turn on ogg/speex support)
624 filters="$filters spxdec"
625 speex_libs="-lspeex"
626 server_ldflags="$server_ldflags $speex_libs"
627 filter_ldflags="$filter_ldflags $speex_libs"
628 audiod_ldflags="$audiod_ldflags $speex_libs"
629 afh_ldflags="$afh_ldflags $speex_libs"
630
631 server_errlist_objs="$server_errlist_objs spx_afh spx_common"
632 filter_errlist_objs="$filter_errlist_objs spxdec_filter spx_common"
633 audiod_errlist_objs="$audiod_errlist_objs spxdec_filter spx_common"
634 afh_errlist_objs="$afh_errlist_objs spx_afh spx_common"
635
636 audiod_audio_formats="$audiod_audio_formats spx"
637 server_audio_formats="$server_audio_formats spx"
638 else
639 AC_MSG_WARN([no ogg/speex $msg])
640 fi
641 CPPFLAGS="$OLD_CPPFLAGS"
642 LDFLAGS="$OLD_LDFLAGS"
643 LIBS="$OLD_LIBS"
644 ########################################################################### faad
645 have_faad=yes
646 OLD_CPPFLAGS="$CPPFLAGS"
647 OLD_LD_FLAGS="$LDFLAGS"
648 OLD_LIBS="$LIBS"
649 AC_ARG_WITH(faad_headers, [AC_HELP_STRING(--with-faad-headers=dir,
650 [look for neaacdec.h also in dir])])
651 if test -n "$with_faad_headers"; then
652 faad_cppflags="-I$with_faad_headers"
653 CPPFLAGS="$CPPFLAGS $faad_cppflags"
654 fi
655 AC_ARG_WITH(faad_libs, [AC_HELP_STRING(--with-faad-libs=dir,
656 [look for libfaad also in dir])])
657 if test -n "$with_faad_libs"; then
658 faad_libs="-L$with_faad_libs"
659 LDFLAGS="$LDFLAGS $faad_libs"
660 fi
661 AC_CHECK_HEADER(neaacdec.h, [], have_faad=no)
662 AC_CHECK_LIB([faad], [NeAACDecOpen], [], have_faad=no)
663 if test "$have_faad" = "yes"; then
664 AC_DEFINE(HAVE_FAAD, 1, define to 1 if you want to build the aacdec filter)
665 all_errlist_objs="$all_errlist_objs aac_common aacdec_filter aac_afh"
666 filter_errlist_objs="$filter_errlist_objs aacdec_filter aac_common"
667 afh_errlist_objs="$afh_errlist_objs aac_common aac_afh"
668 audiod_errlist_objs="$audiod_errlist_objs aacdec_filter aac_common"
669 server_errlist_objs="$server_errlist_objs aac_afh aac_common"
670 server_ldflags="$server_ldflags $faad_libs -lfaad"
671 filter_ldflags="$filter_ldflags $faad_libs -lfaad"
672 audiod_ldflags="$audiod_ldflags $faad_libs -lfaad"
673 afh_ldflags="$afh_ldflags $faad_libs -lfaad"
674 audiod_audio_formats="$audiod_audio_formats aac"
675 server_audio_formats="$server_audio_formats aac"
676 filters="$filters aacdec"
677 AC_SUBST(faad_cppflags)
678 else
679 AC_MSG_WARN([no aac support in para_audiod/para_filter])
680 fi
681 CPPFLAGS="$OLD_CPPFLAGS"
682 LDFLAGS="$OLD_LDFLAGS"
683 LIBS="$OLD_LIBS"
684 ########################################################################### mad
685 have_mad="yes"
686 OLD_CPPFLAGS="$CPPFLAGS"
687 OLD_LD_FLAGS="$LDFLAGS"
688 OLD_LIBS="$LIBS"
689
690 AC_ARG_WITH(mad_headers, [AC_HELP_STRING(--with-mad-headers=dir,
691 [look for mad.h also in dir])])
692 if test -n "$with_mad_headers"; then
693 mad_cppflags="-I$with_mad_headers"
694 CPPFLAGS="$CPPFLAGS $mad_cppflags"
695 fi
696 AC_ARG_WITH(mad_libs, [AC_HELP_STRING(--with-mad-libs=dir,
697 [look for libmad also in dir])])
698 if test -n "$with_mad_libs"; then
699 mad_libs="-L$with_mad_libs"
700 LDFLAGS="$LDFLAGS $mad_libs"
701 fi
702 AC_CHECK_HEADERS([mad.h], [], [
703 have_mad="no"
704 ])
705 AC_CHECK_LIB([mad], [mad_stream_init], [], [
706 have_mad="no"
707 ])
708 if test "$have_mad" = "yes"; then
709 AC_DEFINE(HAVE_MAD, 1, define to 1 if you want to build the mp3dec filter)
710 filter_cmdline_objs="$filter_cmdline_objs add_cmdline(mp3dec_filter)"
711 audiod_cmdline_objs="$audiod_cmdline_objs add_cmdline(mp3dec_filter)"
712 all_errlist_objs="$all_errlist_objs mp3dec_filter"
713 filter_errlist_objs="$filter_errlist_objs mp3dec_filter"
714 audiod_errlist_objs="$audiod_errlist_objs mp3dec_filter"
715 filter_ldflags="$filter_ldflags $mad_libs -lmad"
716 audiod_ldflags="$audiod_ldflags $mad_libs -lmad"
717 audiod_audio_formats="$audiod_audio_formats mp3"
718 filters="$filters mp3dec"
719 AC_SUBST(mad_cppflags)
720 else
721 AC_MSG_WARN([no mp3dec support in para_audiod/para_filter])
722 fi
723 CPPFLAGS="$OLD_CPPFLAGS"
724 LDFLAGS="$OLD_LDFLAGS"
725 LIBS="$OLD_LIBS"
726 ###################################################################### libid3tag
727 AC_MSG_CHECKING(for libid3tag)
728 AC_TRY_LINK([
729 #include <id3tag.h>
730 ],[
731 struct id3_tag t = {.flags = 0};
732 ],[have_libid3tag=yes],[have_libid3tag=no])
733 AC_MSG_RESULT($have_libid3tag)
734 if test ${have_libid3tag} = yes; then
735 AC_DEFINE(HAVE_LIBID3TAG, 1, define to 1 you have libid3tag)
736 server_ldflags="$server_ldflags -lid3tag"
737 afh_ldflags="$afh_ldflags -lid3tag"
738 else
739 AC_MSG_WARN([no support for id3v2 tags])
740 fi
741 ########################################################################### flac
742 OLD_CPPFLAGS="$CPPFLAGS"
743 OLD_LD_FLAGS="$LDFLAGS"
744 OLD_LIBS="$LIBS"
745
746 have_flac="yes"
747 AC_ARG_WITH(flac_headers, [AC_HELP_STRING(--with-flac-headers=dir,
748 [look for flac headers also in dir])])
749 if test -n "$with_flac_headers"; then
750 flac_cppflags="-I$with_flac_headers"
751 CPPFLAGS="$CPPFLAGS $flac_cppflags"
752 fi
753 AC_ARG_WITH(flac_libs, [AC_HELP_STRING(--with-flac-libs=dir,
754 [look for flac libs also in dir])])
755 if test -n "$with_flac_libs"; then
756 flac_libs="-L$with_flac_libs"
757 LDFLAGS="$LDFLAGS $flac_libs"
758 fi
759 AC_CHECK_HEADER(FLAC/stream_decoder.h, [], have_flac=no)
760 AC_CHECK_LIB([FLAC], [FLAC__stream_decoder_init_file], [], have_flac=no, -logg -lm)
761 if test "$have_flac" = "yes"; then
762 AC_DEFINE(HAVE_FLAC, 1, define to 1 if you want to build the flacdec filter)
763 all_errlist_objs="$all_errlist_objs flacdec_filter flac_afh"
764 filter_errlist_objs="$filter_errlist_objs flacdec_filter"
765 audiod_errlist_objs="$audiod_errlist_objs flacdec_filter"
766 afh_errlist_objs="$afh_errlist_objs flac_afh"
767 server_errlist_objs="$server_errlist_objs flac_afh"
768 filter_ldflags="$filter_ldflags $flac_libs -lFLAC"
769 audiod_ldflags="$audiod_ldflags $flac_libs -lFLAC"
770 server_ldflags="$server_ldflags $flac_libs -lFLAC"
771 afh_ldflags="$afh_ldflags $flac_libs -lFLAC"
772 filters="$filters flacdec"
773 server_audio_formats="$server_audio_formats flac"
774 audiod_audio_formats="$audiod_audio_formats flac"
775 AC_SUBST(flac_cppflags)
776 else
777 AC_MSG_WARN([no flac support in para_audiod/para_filter])
778 fi
779 CPPFLAGS="$OLD_CPPFLAGS"
780 LDFLAGS="$OLD_LDFLAGS"
781 LIBS="$OLD_LIBS"
782 ########################################################################### oss
783 OLD_CPPFLAGS="$CPPFLAGS"
784 OLD_LD_FLAGS="$LDFLAGS"
785 OLD_LIBS="$LIBS"
786
787 have_oss="yes"
788 msg="=> will not build para_fade/oss writer"
789
790 AC_CHECK_HEADER(sys/soundcard.h, [
791 extras="$extras fade"
792 executables="$executables fade"
793 all_errlist_objs="$all_errlist_objs oss_write"
794 audiod_errlist_objs="$audiod_errlist_objs oss_write"
795 audiod_cmdline_objs="$audiod_cmdline_objs add_cmdline(oss_write)"
796
797 write_errlist_objs="$write_errlist_objs oss_write"
798 write_cmdline_objs="$write_cmdline_objs add_cmdline(oss_write)"
799 writers="$writers oss"
800 default_writer="OSS_WRITE"
801 AC_CHECK_LIB(ossaudio, _oss_ioctl, [
802 audiod_ldflags="$audiod_ldflags -lossaudio"
803 write_ldflags="$write_ldflags -lossaudio"
804 fade_ldflags="$write_ldflags -lossaudio"
805 ]
806 )
807 ],
808 [
809 have_oss="no"
810 AC_MSG_WARN([no sys/soundcard.h $msg])
811 ]
812 )
813 CPPFLAGS="$OLD_CPPFLAGS"
814 LDFLAGS="$OLD_LDFLAGS"
815 LIBS="$OLD_LIBS"
816
817 ########################################################################### alsa
818 OLD_CPPFLAGS="$CPPFLAGS"
819 OLD_LD_FLAGS="$LDFLAGS"
820 OLD_LIBS="$LIBS"
821
822 msg="=> no alsa support for para_audiod/para_write"
823 if test "$OSTYPE" != "Linux"; then
824 have_alsa="no"
825 else
826 have_alsa="yes"
827 fi
828 if test "$have_alsa" = "yes"; then
829 AC_CHECK_HEADERS([alsa/asoundlib.h], [], [
830 have_alsa="no"
831 AC_MSG_WARN([no alsa/asoundlib $msg])
832 ])
833 fi
834
835 if test "$have_alsa" = "yes"; then
836 AC_CHECK_LIB([asound], [snd_pcm_open], [], [
837 have_alsa="no"
838 AC_MSG_WARN([no libasound $msg])
839 ])
840 fi
841
842 if test "$have_alsa" = "yes"; then
843 all_errlist_objs="$all_errlist_objs alsa_write"
844 audiod_errlist_objs="$audiod_errlist_objs alsa_write"
845 audiod_cmdline_objs="$audiod_cmdline_objs add_cmdline(alsa_write)"
846 audiod_ldflags="$audiod_ldflags -lasound"
847
848 write_errlist_objs="$write_errlist_objs alsa_write"
849 write_cmdline_objs="$write_cmdline_objs add_cmdline(alsa_write)"
850 write_ldflags="$write_ldflags -lasound"
851 writers="$writers alsa"
852 default_writer="ALSA_WRITE"
853 fi
854
855 CPPFLAGS="$OLD_CPPFLAGS"
856 LDFLAGS="$OLD_LDFLAGS"
857 LIBS="$OLD_LIBS"
858 ########################################################################### libao
859 OLD_CPPFLAGS="$CPPFLAGS"
860 OLD_LD_FLAGS="$LDFLAGS"
861 OLD_LIBS="$LIBS"
862
863 have_ao="yes"
864 AC_ARG_WITH(ao_headers, [AC_HELP_STRING(--with-ao-headers=dir,
865 [look for ao/ao.h also in dir])])
866 if test -n "$with_ao_headers"; then
867 ao_cppflags="-I$with_ao_headers"
868 CPPFLAGS="$CPPFLAGS $ao_cppflags"
869 fi
870 AC_ARG_WITH(ao_libs, [AC_HELP_STRING(--with-ao-libs=dir,
871 [look for libao also in dir])])
872 if test -n "$with_ao_libs"; then
873 ao_libs="-L$with_ao_libs"
874 LDFLAGS="$LDFLAGS $ao_libs"
875 fi
876 msg="no libao support for para_audiod/para_write"
877 AC_CHECK_HEADERS([ao/ao.h], [
878 ], [
879 have_ao="no"
880 AC_MSG_WARN([ao.h not found, $msg])
881 ])
882 if test "$have_ao" = "yes"; then
883 AC_CHECK_LIB([ao], [ao_initialize], [], [
884 have_ao="no"
885 AC_MSG_WARN([ao lib not found or not working, $msg])
886 ])
887 fi
888 if test "$have_ao" = "yes"; then
889 AC_CHECK_HEADERS([pthread.h], [
890 ], [
891 have_ao="no"
892 AC_MSG_WARN([pthread.h not found, $msg])
893 ])
894 fi
895 if test "$have_ao" = "yes"; then
896 AC_CHECK_LIB([pthread], [pthread_create], [], [
897 have_ao="no"
898 AC_MSG_WARN([pthread lib not found or not working, $msg])
899 ])
900 fi
901 if test "$have_ao" = "yes"; then
902 all_errlist_objs="$all_errlist_objs ao_write"
903 audiod_errlist_objs="$audiod_errlist_objs ao_write"
904 audiod_cmdline_objs="$audiod_cmdline_objs add_cmdline(ao_write)"
905 audiod_ldflags="$audiod_ldflags -lao -lpthread"
906
907 write_errlist_objs="$write_errlist_objs ao_write"
908 write_cmdline_objs="$write_cmdline_objs add_cmdline(ao_write)"
909 write_ldflags="$write_ldflags $ao_libs -lao -lpthread"
910 writers="$writers ao"
911 AC_SUBST(ao_cppflags)
912 fi
913
914 CPPFLAGS="$OLD_CPPFLAGS"
915 LDFLAGS="$OLD_LDFLAGS"
916 LIBS="$OLD_LIBS"
917 ############################################################# readline
918 OLD_CPPFLAGS="$CPPFLAGS"
919 OLD_LD_FLAGS="$LDFLAGS"
920 OLD_LIBS="$LIBS"
921
922 have_readline="yes"
923 AC_ARG_WITH(readline_headers, [AC_HELP_STRING(--with-readline-headers=dir,
924 [look for libreadline header files also in dir])])
925 if test -n "$with_readline_headers"; then
926 readline_cppflags="-I$with_readline_headers"
927 CPPFLAGS="$CPPFLAGS $readline_cppflags"
928 fi
929
930 AC_ARG_WITH(readline_libs, [AC_HELP_STRING(--with-readline-libs=dir,
931 [look for readline library also in dir])])
932 if test -n "$with_readline_libs"; then
933 readline_libs="-L$with_readline_libs"
934 LDFLAGS="$LDFLAGS $readline_libs"
935 fi
936 msg="no interactive cli support"
937 AC_CHECK_HEADERS([readline/readline.h], [
938 ], [
939 have_readline="no"
940 AC_MSG_WARN([readline/readline.h not found, $msg])
941 ])
942 if test "$have_readline" = "yes"; then
943 readline_libs="$readline_libs -lreadline"
944 AC_SEARCH_LIBS([rl_replace_line], [readline], [], [have_readline="no"])
945 if test "$have_readline" = "no"; then # try with -lcurses
946 # clear cache
947 AC_MSG_NOTICE([trying again with -lcurses])
948 unset ac_cv_search_rl_replace_line 2> /dev/null
949 AC_SEARCH_LIBS([rl_replace_line], [readline], [
950 have_readline=yes
951 readline_libs="$readline_libs -lcurses"
952 ], [], [-lcurses])
953 fi
954 if test "$have_readline" = "no"; then # try with -ltermcap
955 # clear cache
956 AC_MSG_NOTICE([trying again with -ltermcap])
957 unset ac_cv_search_rl_replace_line 2> /dev/null
958 AC_SEARCH_LIBS([rl_replace_line], [readline], [
959 have_readline=yes
960 readline_libs="$readline_libs -ltermcap"
961 ], [], [-ltermcap])
962 fi
963 fi
964
965 if test "$have_readline" = "yes"; then
966 all_errlist_objs="$all_errlist_objs interactive"
967 client_errlist_objs="$client_errlist_objs interactive"
968 client_ldflags="$client_ldflags $readline_libs"
969 audioc_errlist_objs="$audioc_errlist_objs buffer_tree interactive sched time"
970 audioc_ldflags="$audioc_ldflags $readline_libs"
971 AC_SUBST(readline_cppflags)
972 AC_DEFINE(HAVE_READLINE, 1, define to 1 to turn on readline support)
973 else
974 AC_MSG_WARN([libreadline not found or unusable])
975 fi
976 CPPFLAGS="$OLD_CPPFLAGS"
977 LDFLAGS="$OLD_LDFLAGS"
978 LIBS="$OLD_LIBS"
979 #############################################################
980
981
982 AC_SUBST(install_sh, [$INSTALL])
983 AC_CONFIG_FILES([Makefile])
984
985
986 AC_DEFUN([add_dot_o],[$(for i in $@; do printf "$i.o "; done)])
987 AC_DEFUN([add_para],[$(for i in $@; do printf "para_$i "; done)])
988 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) }])
989 ############################################################# error2.h
990 AC_MSG_NOTICE(creating error2.h)
991 for i in $executables; do
992 echo "$i: "
993 eval echo \$${i}_errlist_objs
994 done | ./error2.pl > error2.h
995 for obj in $all_errlist_objs; do
996 SS="$SS SS_$(echo $obj | tr 'a-z' 'A-Z'),"
997 done
998 AC_DEFINE_UNQUOTED(DEFINE_ERRLIST_OBJECT_ENUM,
999 [enum {$SS NUM_SS}],
1000 [list of all objects that use the paraslash error facility]
1001 )
1002
1003 ################################################################## status items
1004
1005 status_items="basename status num_played mtime bitrate frequency file_size
1006 status_flags format score techinfo afs_mode
1007 attributes_txt decoder_flags audiod_status play_time attributes_bitmap
1008 offset seconds_total stream_start current_time audiod_uptime image_id
1009 lyrics_id duration directory lyrics_name image_name path hash channels
1010 last_played num_chunks chunk_time amplification artist title year album
1011 comment"
1012
1013 result=
1014 for i in $status_items; do
1015 result="$result SI_$(echo $i | tr 'a-z' 'A-Z'), "
1016 done
1017 AC_DEFINE_UNQUOTED(STATUS_ITEM_ENUM, [$result],
1018 [enum of all status items])
1019
1020 result=
1021 for i in $status_items; do
1022 result="$result \"$i\", "
1023 done
1024 AC_DEFINE_UNQUOTED(STATUS_ITEM_ARRAY, [$result],
1025 [char * array of all status items])
1026
1027 AC_DEFINE_UNQUOTED(SERVER_AUDIO_FORMATS, "$server_audio_formats",
1028 [formats supported by para_server and para_afh])
1029
1030 AC_SUBST(executables, add_para($executables))
1031
1032 recv_objs="$recv_cmdline_objs $recv_errlist_objs"
1033 filter_objs="$filter_cmdline_objs $filter_errlist_objs"
1034 audiod_objs="$audiod_cmdline_objs $audiod_errlist_objs"
1035 server_objs="$server_cmdline_objs $server_errlist_objs"
1036 write_objs="$write_cmdline_objs $write_errlist_objs"
1037 client_objs="$client_cmdline_objs $client_errlist_objs"
1038 audioc_objs="$audioc_cmdline_objs $audioc_errlist_objs"
1039 afh_objs="$afh_cmdline_objs $afh_errlist_objs"
1040 fade_objs="$fade_cmdline_objs $fade_errlist_objs"
1041
1042 AC_SUBST(recv_objs, add_dot_o($recv_objs))
1043 AC_SUBST(recv_ldflags, $recv_ldflags)
1044 AC_DEFINE_UNQUOTED(INIT_RECV_ERRLISTS, objlist_to_errlist($recv_errlist_objs),
1045 errors used by para_recv)
1046
1047 AC_SUBST(filter_objs, add_dot_o($filter_objs))
1048 AC_SUBST(filter_ldflags, $filter_ldflags)
1049 AC_DEFINE_UNQUOTED(INIT_FILTER_ERRLISTS,
1050 objlist_to_errlist($filter_errlist_objs), errors used by para_filter)
1051
1052 AC_SUBST(audiod_objs, add_dot_o($audiod_objs))
1053 AC_SUBST(audiod_ldflags, $audiod_ldflags)
1054 AC_DEFINE_UNQUOTED(INIT_AUDIOD_ERRLISTS, objlist_to_errlist($audiod_errlist_objs),
1055 errors used by para_audiod)
1056
1057 AC_SUBST(server_objs, add_dot_o($server_objs))
1058 AC_SUBST(server_ldflags, $server_ldflags)
1059 AC_DEFINE_UNQUOTED(INIT_SERVER_ERRLISTS,
1060 objlist_to_errlist($server_errlist_objs), errors used by para_server)
1061
1062 AC_SUBST(afh_objs, add_dot_o($afh_objs))
1063 AC_SUBST(afh_ldflags, $afh_ldflags)
1064 AC_DEFINE_UNQUOTED(INIT_AFH_ERRLISTS,
1065 objlist_to_errlist($afh_errlist_objs), errors used by para_afh)
1066
1067 AC_SUBST(write_objs, add_dot_o($write_objs))
1068 AC_SUBST(write_ldflags, $write_ldflags)
1069 AC_DEFINE_UNQUOTED(INIT_WRITE_ERRLISTS,
1070 objlist_to_errlist($write_errlist_objs), errors used by para_write)
1071
1072 AC_SUBST(client_objs, add_dot_o($client_objs))
1073 AC_SUBST(client_ldflags, $client_ldflags)
1074 AC_DEFINE_UNQUOTED(INIT_CLIENT_ERRLISTS,
1075 objlist_to_errlist($client_errlist_objs), errors used by para_client)
1076
1077 AC_SUBST(audioc_objs, add_dot_o($audioc_objs))
1078 AC_SUBST(audioc_ldflags, $audioc_ldflags)
1079 AC_DEFINE_UNQUOTED(INIT_AUDIOC_ERRLISTS,
1080 objlist_to_errlist($audioc_errlist_objs), errors used by para_audioc)
1081
1082 AC_SUBST(gui_objs, add_dot_o($gui_objs))
1083 AC_DEFINE_UNQUOTED(INIT_GUI_ERRLISTS,
1084 objlist_to_errlist($gui_errlist_objs), errors used by para_gui)
1085
1086 AC_SUBST(fade_objs, add_dot_o($fade_objs))
1087 AC_SUBST(fade_ldflags, $fade_ldflags)
1088 AC_DEFINE_UNQUOTED(INIT_FADE_ERRLISTS,
1089 objlist_to_errlist($fade_errlist_objs), errors used by para_fade)
1090
1091
1092 enum="$(for i in $filters; do printf "${i}_FILTER, " | tr '[a-z]' '[A-Z]'; done)"
1093 AC_DEFINE_UNQUOTED(FILTER_ENUM, $enum NUM_SUPPORTED_FILTERS,
1094 enum of supported filters)
1095 inits="$(for i in $filters; do printf 'extern void '$i'_filter_init(struct filter *f); '; done)"
1096 AC_DEFINE_UNQUOTED(DECLARE_FILTER_INITS, $inits, init functions of the supported filters)
1097 array="$(for i in $filters; do printf '{.name = "'$i'", .init = '$i'_filter_init},'; done)"
1098 AC_DEFINE_UNQUOTED(FILTER_ARRAY, $array, array of supported filters)
1099
1100 enum="$(for i in $writers; do printf "${i}_WRITE, " | tr '[a-z]' '[A-Z]'; done)"
1101 AC_DEFINE_UNQUOTED(WRITER_ENUM, $enum NUM_SUPPORTED_WRITERS,
1102 enum of supported writers)
1103 AC_DEFINE_UNQUOTED(DEFAULT_WRITER, $default_writer, use this writer if none was specified)
1104 names="$(for i in $writers; do printf \"$i\",' ' ; done)"
1105 AC_DEFINE_UNQUOTED(WRITER_NAMES, $names, supported writer names)
1106 inits="$(for i in $writers; do printf 'extern void '$i'_write_init(struct writer *); '; done)"
1107 AC_DEFINE_UNQUOTED(DECLARE_WRITER_INITS, $inits, init functions of the supported writers)
1108 array="$(for i in $writers; do printf '{.init = '$i'_write_init},'; done)"
1109 AC_DEFINE_UNQUOTED(WRITER_ARRAY, $array, array of supported writers)
1110
1111 enum="$(for i in $audiod_audio_formats; do printf "AUDIO_FORMAT_${i}, " | tr '[a-z]' '[A-Z]'; done)"
1112 AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMATS_ENUM, $enum NUM_AUDIO_FORMATS,
1113 enum of audio formats supported by audiod)
1114 names="$(for i in $audiod_audio_formats; do printf \"$i\",' ' ; done)"
1115 AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMAT_ARRAY, $names, array of audio formats supported by audiod)
1116
1117 AC_OUTPUT
1118 AC_MSG_NOTICE([
1119 paraslash configuration:
1120 ~~~~~~~~~~~~~~~~~~~~~~~~
1121 unix socket credentials: $have_ucred
1122 readline (interactive CLIs): $have_readline
1123 audio formats supported by para_server/para_afh: $server_audio_formats
1124 id3 version2 support: $have_libid3tag
1125 filters supported by para_audiod/para_filter: $filters
1126 writers supported by para_audiod/para_write: $writers
1127 optional executables: $extras
1128 ])