3 AC_INIT([paraslash], [m4_esyscmd_s(./GIT-VERSION-GEN)],
4 [maan@tuebingen.mpg.de], [], [http://people.tuebingen.mpg.de/maan/paraslash/])
5 AC_CONFIG_HEADERS([config.h])
7 AC_CONFIG_FILES([Makefile])
8 AC_DEFUN([add_dot_o],[$(for i in $@; do printf "$i.o "; done)])
9 AC_DEFUN([add_cmdline],[$(for i in $@; do printf "${i}.cmdline "; done)])
10 AC_DEFUN([LIB_ARG_WITH], [
11 AC_ARG_WITH($1-headers, [AS_HELP_STRING(--with-$1-headers=dir,
12 [look for $1 headers in dir])])
13 AC_ARG_WITH($1-libs, [AS_HELP_STRING(--with-$1-libs=dir,
14 [look for $1 libraries in dir])])
15 if test -n "$with_$1_headers"; then
16 $1_cppflags="-I$with_$1_headers"
17 CPPFLAGS="$CPPFLAGS $$1_cppflags"
19 if test -n "$with_$1_libs"; then
20 $1_ldflags="-L$with_$1_libs $2"
24 LDFLAGS="$LDFLAGS $$1_ldflags"
27 AC_DEFUN([STASH_FLAGS], [
28 OLD_CPPFLAGS="$CPPFLAGS"
29 OLD_LDFLAGS="$LDFLAGS"
33 AC_DEFUN([UNSTASH_FLAGS], [
34 CPPFLAGS="$OLD_CPPFLAGS"
35 LDFLAGS="$OLD_LDFLAGS"
38 AC_DEFUN([LIB_SUBST_FLAGS], [
39 if test "$HAVE_[]m4_toupper([$1])" = 'yes'; then
40 AC_DEFINE(HAVE_[]m4_toupper([$1]), 1,
41 define to 1 to turn on $1 support)
46 AC_SUBST(HAVE_[]m4_toupper([$1]))
51 AC_USE_SYSTEM_EXTENSIONS
54 AC_PATH_PROG([M4], [m4])
55 test -z "$M4" && AC_MSG_ERROR(
56 [The m4 macro processor is required to build this package])
58 AC_PATH_PROG([lopsubgen], [lopsubgen])
59 test -z "$lopsubgen" && AC_MSG_ERROR(
60 [lopsubgen is required to build this package])
65 executables="recv filter audioc write afh play"
66 ########################################################################### osl
68 LIB_ARG_WITH([osl], [-losl])
70 AC_CHECK_HEADER(osl.h, [], [HAVE_OSL=no])
71 AC_CHECK_LIB([osl], [osl_open_table], [], [HAVE_OSL=no])
74 ######################################################################## lopsub
76 LIB_ARG_WITH([lopsub], [-llopsub])
78 AC_CHECK_HEADER(lopsub.h, [], [HAVE_LOPSUB=no])
79 AC_CHECK_LIB([lopsub], [lls_merge], [], [HAVE_LOPSUB=no])
80 if test $HAVE_LOPSUB = no; then AC_MSG_ERROR([
81 The lopsub library is required to build this software, but
82 the above checks indicate it is not installed on your system.
83 Run the following command to download a copy.
84 git clone git://git.tuebingen.mpg.de/lopsub.git
85 Install the library, then run this configure script again.
88 LIB_SUBST_FLAGS([lopsub])
90 ######################################################################## openssl
93 LIB_ARG_WITH([openssl], [-lssl -lcrypto])
94 AC_CHECK_HEADER(openssl/ssl.h, [], [HAVE_OPENSSL=no])
95 AC_CHECK_LIB([crypto], [RAND_bytes], [], [HAVE_OPENSSL=no])
96 LIB_SUBST_FLAGS(openssl)
97 if test $HAVE_OPENSSL = yes; then
98 AC_CHECK_LIB([crypto], [RSA_set0_key],
99 AC_DEFINE([HAVE_RSA_SET0_KEY], [1], [openssl-1.1]))
102 ######################################################################### gcrypt
105 LIB_ARG_WITH([gcrypt], [-lgcrypt])
106 AC_CHECK_HEADER(gcrypt.h, [], [HAVE_GCRYPT=no])
107 AC_CHECK_LIB([gcrypt], [gcry_randomize], [], [HAVE_GCRYPT=no])
108 LIB_SUBST_FLAGS(gcrypt)
110 ######################################################################### crypto
111 AC_ARG_ENABLE(cryptolib, [AS_HELP_STRING(--enable-cryptolib=lib, [
112 Force using crypto library "lib". This package requires either
113 openssl or libgcrypt being installed. Possible values for "lib"
114 are thus "openssl" and "gcrypt". If this option is not given,
115 openssl is tried first. If openssl was not found, gcrypt is
118 CRYPTOLIB="$enable_cryptolib"
119 case "$enable_cryptolib" in
121 test $HAVE_OPENSSL = no && AC_MSG_ERROR(openssl not found)
122 crypto_ldflags="$openssl_ldflags"
125 test $HAVE_GCRYPT = no && AC_MSG_ERROR(gcrypt not found)
126 crypto_ldflags="$gcrypt_ldflags"
130 if test $HAVE_GCRYPT = yes; then
132 crypto_ldflags="$gcrypt_ldflags"
134 if test $HAVE_OPENSSL = yes; then
136 crypto_ldflags="$openssl_ldflags"
140 AC_MSG_ERROR([invalid value "$enable_cryptolib" for --enable-cryptolib])
143 AC_SUBST(crypto_ldflags)
144 ########################################################################## iconv
147 AC_SEARCH_LIBS([libiconv_open], [iconv],
148 [iconv_ldflags="$LIBS"],
151 AC_SUBST(iconv_ldflags)
152 AC_MSG_CHECKING([whether iconv needs const char ** cast])
157 size_t iconv(iconv_t cd, const char **inbuf,
158 size_t *inbytesleft, char **outbuf,
159 size_t *outbytesleft);
162 [cast='(const char **)'; msg=yes],
165 AC_DEFINE_UNQUOTED(ICONV_CAST, $cast, [cast for second arg to iconv()])
168 ########################################################################### ucred
169 AC_MSG_CHECKING(for struct ucred)
170 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
171 #include <sys/types.h>
172 #include <sys/socket.h>
174 struct ucred sucred; sucred.pid=0;
175 ]])],[have_ucred=yes],[have_ucred=no])
176 AC_MSG_RESULT($have_ucred)
177 if test ${have_ucred} = yes; then
178 AC_DEFINE(HAVE_UCRED, 1, define to 1 you have struct ucred)
180 ########################################################################### curses
182 LIB_ARG_WITH([curses], [])
184 AC_CHECK_HEADER(curses.h, [], [HAVE_CURSES=no])
185 AC_SEARCH_LIBS([initscr], [ncursesw curses], [], [HAVE_CURSES=no])
186 curses_ldflags="$curses_ldflags $LIBS"
187 LIB_SUBST_FLAGS(curses)
189 ########################################################################### ip_mreqn
190 AC_MSG_CHECKING(for struct ip_mreqn (UDPv4 multicast))
191 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
197 ]])],[have_ip_mreqn=yes],[have_ip_mreqn=no])
198 AC_MSG_RESULT($have_ip_mreqn)
199 if test ${have_ip_mreqn} = yes; then
200 AC_DEFINE(HAVE_IP_MREQN, 1, define to 1 you have struct ip_mreqn)
202 ########################################################################### ogg
204 LIB_ARG_WITH([ogg], [-logg])
206 AC_CHECK_HEADERS([ogg/ogg.h], [], [HAVE_OGG=no])
207 AC_CHECK_LIB([ogg], [ogg_stream_init], [], [HAVE_OGG=no])
208 AC_CHECK_LIB([ogg], [ogg_stream_flush_fill], [
209 AC_DEFINE(HAVE_OGG_STREAM_FLUSH_FILL, 1, [libogg >= 1.3.0])])
212 ######################################################################### vorbis
214 LIB_ARG_WITH([vorbis], [-lvorbis -lvorbisfile])
216 AC_CHECK_HEADERS([vorbis/codec.h], [], [HAVE_VORBIS=no])
217 AC_CHECK_LIB([vorbis], [vorbis_info_init], [], [HAVE_VORBIS=no])
218 LIB_SUBST_FLAGS(vorbis)
220 ######################################################################### speex
222 LIB_ARG_WITH([speex], [-lspeex])
224 AC_CHECK_HEADERS([speex/speex.h], [], [HAVE_SPEEX=no])
225 AC_CHECK_LIB([speex], [speex_decoder_init], [], [HAVE_SPEEX=no])
226 LIB_SUBST_FLAGS(speex)
228 ######################################################################### opus
230 LIB_ARG_WITH([opus], [-lopus])
232 AC_CHECK_HEADERS([opus/opus.h], [], [HAVE_OPUS=no])
233 AC_CHECK_LIB([opus], [opus_multistream_decode], [], [HAVE_OPUS=no])
234 LIB_SUBST_FLAGS(opus)
236 ########################################################################### flac
238 LIB_ARG_WITH([flac], [-lFLAC -lm])
240 AC_CHECK_HEADER(FLAC/stream_decoder.h, [], HAVE_FLAC=no)
241 AC_CHECK_LIB([FLAC], [FLAC__stream_decoder_init_file], [], HAVE_FLAC=no)
242 LIB_SUBST_FLAGS(flac)
245 # some helper functions for codecs which use the ogg container format
246 AC_DEFUN([NEED_OGG_OBJECTS], [{
247 test "$HAVE_OGG" = 'yes' -a \( \
248 "$HAVE_VORBIS" = 'yes' \
249 -o "$HAVE_SPEEX" = 'yes' \
250 -o "$HAVE_OPUS" = 'yes' \
251 -o "$HAVE_FLAC" = 'yes' \
254 AC_DEFUN([NEED_VORBIS_OBJECTS], [{
255 test "$HAVE_OGG" = 'yes' -a "$HAVE_VORBIS" = 'yes'
257 AC_DEFUN([NEED_SPEEX_OBJECTS], [{
258 test "$HAVE_OGG" = 'yes' -a "$HAVE_SPEEX" = 'yes'
260 AC_DEFUN([NEED_OPUS_OBJECTS], [{
261 test "$HAVE_OGG" = 'yes' -a "$HAVE_OPUS" = 'yes'
263 AC_DEFUN([NEED_FLAC_OBJECTS], [{
264 test "$HAVE_OGG" = 'yes' -a "$HAVE_FLAC" = 'yes'
266 ########################################################################### faad
268 LIB_ARG_WITH([faad], [-lfaad -lmp4ff])
270 AC_CHECK_HEADER(neaacdec.h, [], HAVE_FAAD=no)
271 AC_CHECK_HEADER(mp4ff.h, [], HAVE_FAAD=no)
272 AC_CHECK_LIB([faad], [NeAACDecOpen], [], HAVE_FAAD=no)
273 AC_CHECK_LIB([mp4ff], [mp4ff_meta_get_artist], [], HAVE_FAAD=no)
274 LIB_SUBST_FLAGS(faad)
276 ########################################################################### mad
278 LIB_ARG_WITH([mad], [-lmad])
280 AC_CHECK_HEADER(mad.h, [], HAVE_MAD=no)
281 AC_CHECK_LIB([mad], [mad_stream_init], [], HAVE_MAD=no)
284 ###################################################################### libid3tag
286 LIB_ARG_WITH([id3tag], [-lid3tag -lz])
288 AC_CHECK_HEADER(id3tag.h, [], HAVE_ID3TAG=no)
289 AC_CHECK_LIB([id3tag], [id3_file_fdopen], [], HAVE_ID3TAG=no)
290 LIB_SUBST_FLAGS(id3tag)
292 ########################################################################### oss
294 LIB_ARG_WITH([oss], [])
295 AC_CHECK_HEADER(sys/soundcard.h, [HAVE_OSS=yes], [HAVE_OSS=no])
296 AC_CHECK_LIB(ossaudio, _oss_ioctl, [oss_ldflags="$oss_ldflags -lossaudio"], [])
299 ########################################################################### alsa
301 LIB_ARG_WITH([alsa], [-lasound])
303 AC_CHECK_HEADER(alsa/asoundlib.h, [], HAVE_ALSA=no)
304 AC_CHECK_LIB([asound], [snd_pcm_open], [], HAVE_ALSA=no)
305 LIB_SUBST_FLAGS(alsa)
307 ######################################################################### pthread
309 LIB_ARG_WITH([pthread], [-lpthread])
311 AC_CHECK_HEADER(pthread.h, [], HAVE_PTHREAD=no)
312 AC_CHECK_LIB([pthread], [pthread_create], [], HAVE_PTHREAD=no)
313 LIB_SUBST_FLAGS(pthread)
315 ########################################################################### libao
317 LIB_ARG_WITH([ao], [-lao])
319 AC_CHECK_HEADER(ao/ao.h, [], HAVE_AO=no)
320 AC_CHECK_LIB([ao], [ao_initialize], [], HAVE_AO=no)
323 AC_DEFUN([NEED_AO_OBJECTS], [{ test $HAVE_AO = yes -a $HAVE_PTHREAD = yes; }])
324 ######################################################################## readline
326 AC_SEARCH_LIBS([tgetent], [tinfo curses terminfo termcap])
327 LIB_ARG_WITH([readline], [-lreadline $LIBS])
329 AC_CHECK_HEADER([readline/readline.h], [], [HAVE_READLINE=no])
330 AC_CHECK_LIB([readline], [rl_free_keymap], [], HAVE_READLINE=no)
333 [AC_DEFINE(RL_FREE_KEYMAP_DECLARED, 1, readline >= 6.3)],
337 #include <readline/readline.h>
340 LIB_SUBST_FLAGS(readline)
342 ############################################################# libsamplerate
344 LIB_ARG_WITH([samplerate], [-lsamplerate])
346 AC_CHECK_HEADER(samplerate.h, [], HAVE_SAMPLERATE=no)
347 AC_CHECK_LIB([samplerate], [src_process], [], HAVE_SAMPLERATE=no)
348 LIB_SUBST_FLAGS(samplerate)
350 ######################################################################### server
351 if test -n "$CRYPTOLIB" && test $HAVE_OSL = yes; then
353 executables="$executables server"
354 server_errlist_objs="
393 if test "$CRYPTOLIB" = openssl; then
394 server_errlist_objs="$server_errlist_objs crypt"
396 server_errlist_objs="$server_errlist_objs gcrypt"
398 NEED_OGG_OBJECTS() && server_errlist_objs="$server_errlist_objs ogg_afh_common"
399 NEED_VORBIS_OBJECTS() && server_errlist_objs="$server_errlist_objs ogg_afh"
400 NEED_SPEEX_OBJECTS() && server_errlist_objs="$server_errlist_objs spx_afh spx_common"
401 NEED_OPUS_OBJECTS() && server_errlist_objs="$server_errlist_objs opus_afh opus_common"
402 NEED_FLAC_OBJECTS && server_errlist_objs="$server_errlist_objs flac_afh"
403 if test $HAVE_FAAD = yes; then
404 server_errlist_objs="$server_errlist_objs aac_afh"
406 server_objs="$server_errlist_objs"
407 AC_SUBST(server_objs, add_dot_o($server_objs))
411 ############################################################# client
412 if test -n "$CRYPTOLIB"; then
414 executables="$executables client"
415 client_errlist_objs="
431 if test "$CRYPTOLIB" = openssl; then
432 client_errlist_objs="$client_errlist_objs crypt"
434 client_errlist_objs="$client_errlist_objs gcrypt"
436 if test $HAVE_READLINE = yes; then
437 client_errlist_objs="$client_errlist_objs interactive"
439 client_objs="$client_errlist_objs"
440 AC_SUBST(client_objs, add_dot_o($client_errlist_objs))
444 ############################################################# audiod
445 if test -n "$CRYPTOLIB"; then
447 executables="$executables audiod"
448 audiod_audio_formats="wma"
449 audiod_errlist_objs="$audiod_errlist_objs
487 if test "$CRYPTOLIB" = openssl; then
488 audiod_errlist_objs="$audiod_errlist_objs crypt"
490 audiod_errlist_objs="$audiod_errlist_objs gcrypt"
492 NEED_VORBIS_OBJECTS && {
493 audiod_errlist_objs="$audiod_errlist_objs oggdec_filter"
494 audiod_audio_formats="$audiod_audio_formats ogg"
496 NEED_SPEEX_OBJECTS && {
497 audiod_errlist_objs="$audiod_errlist_objs spxdec_filter spx_common"
498 audiod_audio_formats="$audiod_audio_formats spx"
500 NEED_OPUS_OBJECTS && {
501 audiod_errlist_objs="$audiod_errlist_objs opusdec_filter opus_common"
502 audiod_audio_formats="$audiod_audio_formats opus"
504 NEED_FLAC_OBJECTS && {
505 audiod_errlist_objs="$audiod_errlist_objs flacdec_filter"
506 audiod_audio_formats="$audiod_audio_formats flac"
508 if test $HAVE_FAAD = yes; then
509 audiod_errlist_objs="$audiod_errlist_objs aacdec_filter"
510 audiod_audio_formats="$audiod_audio_formats aac"
512 if test $HAVE_MAD = yes; then
513 audiod_audio_formats="$audiod_audio_formats mp3"
514 audiod_errlist_objs="$audiod_errlist_objs mp3dec_filter"
516 if test $HAVE_OSS = yes; then
517 audiod_errlist_objs="$audiod_errlist_objs oss_write"
519 if test $HAVE_ALSA = yes; then
520 audiod_errlist_objs="$audiod_errlist_objs alsa_write"
523 audiod_errlist_objs="$audiod_errlist_objs ao_write"
525 if test $HAVE_SAMPLERATE = yes; then
526 audiod_errlist_objs="$audiod_errlist_objs resample_filter check_wav"
528 audiod_objs="$audiod_errlist_objs"
529 AC_SUBST(audiod_objs, add_dot_o($audiod_objs))
531 enum="$(for i in $audiod_audio_formats; do printf "AUDIO_FORMAT_${i}, " | tr '[a-z]' '[A-Z]'; done)"
532 AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMATS_ENUM, $enum NUM_AUDIO_FORMATS,
533 enum of audio formats supported by audiod)
534 names="$(for i in $audiod_audio_formats; do printf \"$i\",' ' ; done)"
535 AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMAT_ARRAY, $names, array of audio formats supported by audiod)
539 ########################################################################### mixer
540 if test $HAVE_OSS = yes -o $HAVE_ALSA = yes; then
542 executables="$executables mixer"
543 mixer_errlist_objs="mixer exec string fd version"
544 if test $HAVE_OSS = yes; then
545 mixer_errlist_objs="$mixer_errlist_objs oss_mix"
547 if test $HAVE_ALSA = yes; then
548 mixer_errlist_objs="$mixer_errlist_objs alsa_mix"
550 mixer_objs="$mixer_errlist_objs"
551 AC_SUBST(mixer_objs, add_dot_o($mixer_objs))
554 AC_MSG_WARN([no mixer support])
556 ########################################################################### gui
557 if test $HAVE_CURSES = yes; then
559 executables="$executables gui"
573 gui_objs="$gui_errlist_objs"
574 AC_SUBST(gui_objs, add_dot_o($gui_objs))
577 AC_MSG_WARN([no curses lib, cannot build para_gui])
579 ######################################################################## filter
580 filter_errlist_objs="
604 NEED_VORBIS_OBJECTS && filter_errlist_objs="$filter_errlist_objs oggdec_filter"
605 NEED_SPEEX_OBJECTS && filter_errlist_objs="$filter_errlist_objs spxdec_filter spx_common"
606 NEED_OPUS_OBJECTS && filter_errlist_objs="$filter_errlist_objs opusdec_filter opus_common"
607 NEED_FLAC_OBJECTS && filter_errlist_objs="$filter_errlist_objs flacdec_filter"
608 if test $HAVE_FAAD = yes; then
609 filter_errlist_objs="$filter_errlist_objs aacdec_filter"
611 if test $HAVE_MAD = yes; then
612 filter_errlist_objs="$filter_errlist_objs mp3dec_filter"
614 if test $HAVE_SAMPLERATE = yes; then
615 filter_errlist_objs="$filter_errlist_objs resample_filter check_wav"
617 filter_objs="$filter_errlist_objs"
619 AC_SUBST(filter_objs, add_dot_o($filter_objs))
620 ########################################################################## recv
641 NEED_OGG_OBJECTS && recv_errlist_objs="$recv_errlist_objs ogg_afh_common"
642 NEED_VORBIS_OBJECTS && recv_errlist_objs="$recv_errlist_objs ogg_afh"
643 NEED_SPEEX_OBJECTS && recv_errlist_objs="$recv_errlist_objs spx_afh spx_common"
644 NEED_OPUS_OBJECTS && recv_errlist_objs="$recv_errlist_objs opus_afh opus_common"
645 NEED_FLAC_OBJECTS && recv_errlist_objs="$recv_errlist_objs flac_afh"
647 if test $HAVE_FAAD = yes; then
648 recv_errlist_objs="$recv_errlist_objs aac_afh"
650 recv_objs="$recv_errlist_objs"
651 AC_SUBST(recv_objs, add_dot_o($recv_objs))
652 ########################################################################### afh
653 audio_format_handlers="mp3 wma"
665 NEED_OGG_OBJECTS && afh_errlist_objs="$afh_errlist_objs ogg_afh_common"
666 NEED_VORBIS_OBJECTS && {
667 afh_errlist_objs="$afh_errlist_objs ogg_afh"
668 audio_format_handlers="$audio_format_handlers ogg"
670 NEED_SPEEX_OBJECTS && {
671 afh_errlist_objs="$afh_errlist_objs spx_afh spx_common"
672 audio_format_handlers="$audio_format_handlers spx"
674 NEED_OPUS_OBJECTS && {
675 afh_errlist_objs="$afh_errlist_objs opus_afh opus_common"
676 audio_format_handlers="$audio_format_handlers opus"
678 NEED_FLAC_OBJECTS && {
679 afh_errlist_objs="$afh_errlist_objs flac_afh"
680 audio_format_handlers="$audio_format_handlers flac"
682 if test $HAVE_FAAD = yes; then
683 afh_errlist_objs="$afh_errlist_objs aac_afh"
684 audio_format_handlers="$audio_format_handlers aac"
687 afh_objs="$afh_errlist_objs"
689 AC_SUBST(afh_objs, add_dot_o($afh_objs))
690 ########################################################################## play
723 NEED_OGG_OBJECTS && play_errlist_objs="$play_errlist_objs ogg_afh_common"
724 NEED_VORBIS_OBJECTS && {
725 play_errlist_objs="$play_errlist_objs oggdec_filter ogg_afh"
727 NEED_SPEEX_OBJECTS && {
728 play_errlist_objs="$play_errlist_objs spxdec_filter spx_afh spx_common"
731 play_errlist_objs="$play_errlist_objs
736 NEED_FLAC_OBJECTS && {
737 play_errlist_objs="$play_errlist_objs flacdec_filter flac_afh"
739 if test $HAVE_FAAD = yes; then
740 play_errlist_objs="$play_errlist_objs aac_afh aacdec_filter"
742 if test $HAVE_MAD = yes; then
743 play_errlist_objs="$play_errlist_objs mp3dec_filter"
745 if test $HAVE_OSS = yes; then
746 play_errlist_objs="$play_errlist_objs oss_write"
748 if test $HAVE_ALSA = yes; then
749 play_errlist_objs="$play_errlist_objs alsa_write"
752 play_errlist_objs="$play_errlist_objs ao_write"
754 if test $HAVE_READLINE = yes; then
755 play_errlist_objs="$play_errlist_objs interactive"
757 if test $HAVE_SAMPLERATE = yes; then
758 play_errlist_objs="$play_errlist_objs resample_filter check_wav"
761 play_objs="$play_errlist_objs"
762 AC_SUBST(play_objs, add_dot_o($play_objs))
763 ######################################################################### write
779 write_errlist_objs="$write_errlist_objs ao_write"
781 if test $HAVE_OSS = yes; then
782 write_errlist_objs="$write_errlist_objs oss_write"
784 if test $HAVE_ALSA = yes; then
785 write_errlist_objs="$write_errlist_objs alsa_write"
787 write_objs="$write_errlist_objs"
788 AC_SUBST(write_objs, add_dot_o($write_objs))
789 ######################################################################## audioc
790 audioc_errlist_objs="
797 if test $HAVE_READLINE = yes; then
798 audioc_errlist_objs="$audioc_errlist_objs
805 audioc_objs="$audioc_errlist_objs"
806 AC_SUBST(audioc_objs, add_dot_o($audioc_objs))
807 ################################################################## status items
809 status_items="basename status num_played mtime bitrate frequency file_size
810 status_flags format score techinfo afs_mode
811 attributes_txt decoder_flags audiod_status play_time attributes_bitmap
812 offset seconds_total stream_start current_time audiod_uptime image_id
813 lyrics_id duration directory lyrics_name image_name path hash channels
814 last_played num_chunks chunk_time amplification artist title year album
815 comment max_chunk_size"
818 for i in $status_items; do
819 result="$result SI_$(echo $i | tr 'a-z' 'A-Z'), "
821 AC_DEFINE_UNQUOTED(STATUS_ITEM_ENUM, [$result],
822 [enum of all status items])
825 for i in $status_items; do
826 result="$result \"$i\", "
828 AC_DEFINE_UNQUOTED(STATUS_ITEM_ARRAY, [$result],
829 [char * array of all status items])
831 AC_DEFINE_UNQUOTED(AUDIO_FORMAT_HANDLERS, "$audio_format_handlers",
832 [formats supported by para_server and para_afh])
834 AC_SUBST(executables)
838 paraslash configuration:
839 ~~~~~~~~~~~~~~~~~~~~~~~~
840 crypto lib: ${CRYPTOLIB:-[none]}
841 unix socket credentials: $have_ucred
842 readline (interactive CLIs): $HAVE_READLINE
843 id3 version 2 support: $HAVE_ID3TAG
845 audio format handlers: $audio_format_handlers
847 para_server: $build_server
849 para_mixer: $build_mixer
850 para_client: $build_client
851 para_audiod: $build_audiod