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])
61 executables="recv filter audioc write afh play"
62 ########################################################################### osl
64 LIB_ARG_WITH([osl], [-losl])
66 AC_CHECK_HEADER(osl.h, [], [HAVE_OSL=no])
67 AC_CHECK_LIB([osl], [osl_open_table], [], [HAVE_OSL=no])
70 ######################################################################## lopsub
72 AC_PATH_PROG([LOPSUBGEN], [lopsubgen])
73 test -z "$LOPSUBGEN" && HAVE_LOPSUB=no
75 LIB_ARG_WITH([lopsub], [-llopsub])
76 AC_CHECK_HEADER(lopsub.h, [], [HAVE_LOPSUB=no])
77 AC_CHECK_LIB([lopsub], [lls_merge], [], [HAVE_LOPSUB=no])
78 if test $HAVE_LOPSUB = no; then AC_MSG_ERROR([
79 The lopsub library is required to build this software, but
80 the above checks indicate it is not installed on your system.
81 Run the following command to download a copy.
82 git clone git://git.tuebingen.mpg.de/lopsub.git
83 Install the library, then run this configure script again.
86 LIB_SUBST_FLAGS([lopsub])
88 ######################################################################## openssl
91 LIB_ARG_WITH([openssl], [-lssl -lcrypto])
92 AC_CHECK_HEADER(openssl/ssl.h, [], [HAVE_OPENSSL=no])
93 AC_CHECK_LIB([crypto], [RAND_bytes], [], [HAVE_OPENSSL=no])
94 LIB_SUBST_FLAGS(openssl)
95 if test $HAVE_OPENSSL = yes; then
96 AC_CHECK_LIB([crypto], [RSA_set0_key],
97 AC_DEFINE([HAVE_RSA_SET0_KEY], [1], [openssl-1.1]))
100 ######################################################################### gcrypt
103 LIB_ARG_WITH([gcrypt], [-lgcrypt])
104 AC_CHECK_HEADER(gcrypt.h, [], [HAVE_GCRYPT=no])
105 AC_CHECK_LIB([gcrypt], [gcry_randomize], [], [HAVE_GCRYPT=no])
106 LIB_SUBST_FLAGS(gcrypt)
108 ######################################################################### crypto
109 AC_ARG_ENABLE(cryptolib, [AS_HELP_STRING(--enable-cryptolib=lib, [
110 Force using crypto library "lib". This package requires either
111 openssl or libgcrypt being installed. Possible values for "lib"
112 are thus "openssl" and "gcrypt". If this option is not given,
113 openssl is tried first. If openssl was not found, gcrypt is
116 CRYPTOLIB="$enable_cryptolib"
117 case "$enable_cryptolib" in
119 test $HAVE_OPENSSL = no && AC_MSG_ERROR(openssl not found)
120 crypto_ldflags="$openssl_ldflags"
123 test $HAVE_GCRYPT = no && AC_MSG_ERROR(gcrypt not found)
124 crypto_ldflags="$gcrypt_ldflags"
128 if test $HAVE_GCRYPT = yes; then
130 crypto_ldflags="$gcrypt_ldflags"
132 if test $HAVE_OPENSSL = yes; then
134 crypto_ldflags="$openssl_ldflags"
138 AC_MSG_ERROR([invalid value "$enable_cryptolib" for --enable-cryptolib])
141 AC_SUBST(crypto_ldflags)
142 ########################################################################## iconv
145 AC_SEARCH_LIBS([libiconv_open], [iconv],
146 [iconv_ldflags="$LIBS"],
149 AC_SUBST(iconv_ldflags)
150 AC_MSG_CHECKING([whether iconv needs const char ** cast])
155 size_t iconv(iconv_t cd, const char **inbuf,
156 size_t *inbytesleft, char **outbuf,
157 size_t *outbytesleft);
160 [cast='(const char **)'; msg=yes],
163 AC_DEFINE_UNQUOTED(ICONV_CAST, $cast, [cast for second arg to iconv()])
166 ########################################################################### ucred
167 AC_MSG_CHECKING(for struct ucred)
168 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
169 #include <sys/types.h>
170 #include <sys/socket.h>
172 struct ucred sucred; sucred.pid=0;
173 ]])],[have_ucred=yes],[have_ucred=no])
174 AC_MSG_RESULT($have_ucred)
175 if test ${have_ucred} = yes; then
176 AC_DEFINE(HAVE_UCRED, 1, define to 1 you have struct ucred)
178 ########################################################################### curses
180 LIB_ARG_WITH([curses], [])
182 AC_CHECK_HEADER(curses.h, [], [HAVE_CURSES=no])
183 AC_SEARCH_LIBS([initscr], [ncursesw curses], [], [HAVE_CURSES=no])
184 curses_ldflags="$curses_ldflags $LIBS"
185 LIB_SUBST_FLAGS(curses)
187 ########################################################################### ip_mreqn
188 AC_MSG_CHECKING(for struct ip_mreqn (UDPv4 multicast))
189 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
195 ]])],[have_ip_mreqn=yes],[have_ip_mreqn=no])
196 AC_MSG_RESULT($have_ip_mreqn)
197 if test ${have_ip_mreqn} = yes; then
198 AC_DEFINE(HAVE_IP_MREQN, 1, define to 1 you have struct ip_mreqn)
200 ########################################################################### ogg
202 LIB_ARG_WITH([ogg], [-logg])
204 AC_CHECK_HEADERS([ogg/ogg.h], [], [HAVE_OGG=no])
205 AC_CHECK_LIB([ogg], [ogg_stream_init], [], [HAVE_OGG=no])
206 AC_CHECK_LIB([ogg], [ogg_stream_flush_fill], [
207 AC_DEFINE(HAVE_OGG_STREAM_FLUSH_FILL, 1, [libogg >= 1.3.0])])
210 ######################################################################### vorbis
212 LIB_ARG_WITH([vorbis], [-lvorbis -lvorbisfile])
214 AC_CHECK_HEADERS([vorbis/codec.h], [], [HAVE_VORBIS=no])
215 AC_CHECK_LIB([vorbis], [vorbis_info_init], [], [HAVE_VORBIS=no])
216 LIB_SUBST_FLAGS(vorbis)
218 ######################################################################### speex
220 LIB_ARG_WITH([speex], [-lspeex])
222 AC_CHECK_HEADERS([speex/speex.h], [], [HAVE_SPEEX=no])
223 AC_CHECK_LIB([speex], [speex_decoder_init], [], [HAVE_SPEEX=no])
224 LIB_SUBST_FLAGS(speex)
226 ######################################################################### opus
228 LIB_ARG_WITH([opus], [-lopus])
230 AC_CHECK_HEADERS([opus/opus.h], [], [HAVE_OPUS=no])
231 AC_CHECK_LIB([opus], [opus_multistream_decode], [], [HAVE_OPUS=no])
232 LIB_SUBST_FLAGS(opus)
234 ########################################################################### flac
236 LIB_ARG_WITH([flac], [-lFLAC -lm])
238 AC_CHECK_HEADER(FLAC/stream_decoder.h, [], HAVE_FLAC=no)
239 AC_CHECK_LIB([FLAC], [FLAC__stream_decoder_init_file], [], HAVE_FLAC=no)
240 LIB_SUBST_FLAGS(flac)
243 # some helper functions for codecs which use the ogg container format
244 AC_DEFUN([NEED_OGG_OBJECTS], [{
245 test "$HAVE_OGG" = 'yes' -a \( \
246 "$HAVE_VORBIS" = 'yes' \
247 -o "$HAVE_SPEEX" = 'yes' \
248 -o "$HAVE_OPUS" = 'yes' \
249 -o "$HAVE_FLAC" = 'yes' \
252 AC_DEFUN([NEED_VORBIS_OBJECTS], [{
253 test "$HAVE_OGG" = 'yes' -a "$HAVE_VORBIS" = 'yes'
255 AC_DEFUN([NEED_SPEEX_OBJECTS], [{
256 test "$HAVE_OGG" = 'yes' -a "$HAVE_SPEEX" = 'yes'
258 AC_DEFUN([NEED_OPUS_OBJECTS], [{
259 test "$HAVE_OGG" = 'yes' -a "$HAVE_OPUS" = 'yes'
261 AC_DEFUN([NEED_FLAC_OBJECTS], [{
262 test "$HAVE_OGG" = 'yes' -a "$HAVE_FLAC" = 'yes'
264 ########################################################################### faad
266 LIB_ARG_WITH([faad], [-lfaad -lmp4ff])
268 AC_CHECK_HEADER(neaacdec.h, [], HAVE_FAAD=no)
269 AC_CHECK_HEADER(mp4ff.h, [], HAVE_FAAD=no)
270 AC_CHECK_LIB([faad], [NeAACDecOpen], [], HAVE_FAAD=no)
271 AC_CHECK_LIB([mp4ff], [mp4ff_meta_get_artist], [], HAVE_FAAD=no)
272 LIB_SUBST_FLAGS(faad)
274 ########################################################################### mad
276 LIB_ARG_WITH([mad], [-lmad])
278 AC_CHECK_HEADER(mad.h, [], HAVE_MAD=no)
279 AC_CHECK_LIB([mad], [mad_stream_init], [], HAVE_MAD=no)
282 ###################################################################### libid3tag
284 LIB_ARG_WITH([id3tag], [-lid3tag -lz])
286 AC_CHECK_HEADER(id3tag.h, [], HAVE_ID3TAG=no)
287 AC_CHECK_LIB([id3tag], [id3_file_fdopen], [], HAVE_ID3TAG=no)
288 LIB_SUBST_FLAGS(id3tag)
290 ########################################################################### oss
292 LIB_ARG_WITH([oss], [])
293 AC_CHECK_HEADER(sys/soundcard.h, [HAVE_OSS=yes], [HAVE_OSS=no])
294 AC_CHECK_LIB(ossaudio, _oss_ioctl, [oss_ldflags="$oss_ldflags -lossaudio"], [])
297 ########################################################################### alsa
299 LIB_ARG_WITH([alsa], [-lasound])
301 AC_CHECK_HEADER(alsa/asoundlib.h, [], HAVE_ALSA=no)
302 AC_CHECK_LIB([asound], [snd_pcm_open], [], HAVE_ALSA=no)
303 LIB_SUBST_FLAGS(alsa)
305 ######################################################################### pthread
307 LIB_ARG_WITH([pthread], [-lpthread])
309 AC_CHECK_HEADER(pthread.h, [], HAVE_PTHREAD=no)
310 AC_CHECK_LIB([pthread], [pthread_create], [], HAVE_PTHREAD=no)
311 LIB_SUBST_FLAGS(pthread)
313 ########################################################################### libao
315 LIB_ARG_WITH([ao], [-lao])
317 AC_CHECK_HEADER(ao/ao.h, [], HAVE_AO=no)
318 AC_CHECK_LIB([ao], [ao_initialize], [], HAVE_AO=no)
321 AC_DEFUN([NEED_AO_OBJECTS], [{ test $HAVE_AO = yes -a $HAVE_PTHREAD = yes; }])
322 ######################################################################## readline
324 AC_SEARCH_LIBS([tgetent], [tinfo curses terminfo termcap])
325 LIB_ARG_WITH([readline], [-lreadline $LIBS])
327 AC_CHECK_HEADER([readline/readline.h], [], [HAVE_READLINE=no])
328 AC_CHECK_LIB([readline], [rl_free_keymap], [], HAVE_READLINE=no)
331 [AC_DEFINE(RL_FREE_KEYMAP_DECLARED, 1, readline >= 6.3)],
335 #include <readline/readline.h>
338 LIB_SUBST_FLAGS(readline)
340 ############################################################# libsamplerate
342 LIB_ARG_WITH([samplerate], [-lsamplerate])
344 AC_CHECK_HEADER(samplerate.h, [], HAVE_SAMPLERATE=no)
345 AC_CHECK_LIB([samplerate], [src_process], [], HAVE_SAMPLERATE=no)
346 LIB_SUBST_FLAGS(samplerate)
348 ######################################################################### server
349 if test -n "$CRYPTOLIB" && test $HAVE_OSL = yes; then
351 executables="$executables server"
352 server_errlist_objs="
391 if test "$CRYPTOLIB" = openssl; then
392 server_errlist_objs="$server_errlist_objs crypt"
394 server_errlist_objs="$server_errlist_objs gcrypt"
396 NEED_OGG_OBJECTS() && server_errlist_objs="$server_errlist_objs ogg_afh_common"
397 NEED_VORBIS_OBJECTS() && server_errlist_objs="$server_errlist_objs ogg_afh"
398 NEED_SPEEX_OBJECTS() && server_errlist_objs="$server_errlist_objs spx_afh spx_common"
399 NEED_OPUS_OBJECTS() && server_errlist_objs="$server_errlist_objs opus_afh opus_common"
400 NEED_FLAC_OBJECTS && server_errlist_objs="$server_errlist_objs flac_afh"
401 if test $HAVE_FAAD = yes; then
402 server_errlist_objs="$server_errlist_objs aac_afh"
404 server_objs="$server_errlist_objs"
405 AC_SUBST(server_objs, add_dot_o($server_objs))
409 ############################################################# client
410 if test -n "$CRYPTOLIB"; then
412 executables="$executables client"
413 client_errlist_objs="
429 if test "$CRYPTOLIB" = openssl; then
430 client_errlist_objs="$client_errlist_objs crypt"
432 client_errlist_objs="$client_errlist_objs gcrypt"
434 if test $HAVE_READLINE = yes; then
435 client_errlist_objs="$client_errlist_objs interactive"
437 client_objs="$client_errlist_objs"
438 AC_SUBST(client_objs, add_dot_o($client_errlist_objs))
442 ############################################################# audiod
443 if test -n "$CRYPTOLIB"; then
445 executables="$executables audiod"
446 audiod_audio_formats="wma"
447 audiod_errlist_objs="$audiod_errlist_objs
485 if test "$CRYPTOLIB" = openssl; then
486 audiod_errlist_objs="$audiod_errlist_objs crypt"
488 audiod_errlist_objs="$audiod_errlist_objs gcrypt"
490 NEED_VORBIS_OBJECTS && {
491 audiod_errlist_objs="$audiod_errlist_objs oggdec_filter"
492 audiod_audio_formats="$audiod_audio_formats ogg"
494 NEED_SPEEX_OBJECTS && {
495 audiod_errlist_objs="$audiod_errlist_objs spxdec_filter spx_common"
496 audiod_audio_formats="$audiod_audio_formats spx"
498 NEED_OPUS_OBJECTS && {
499 audiod_errlist_objs="$audiod_errlist_objs opusdec_filter opus_common"
500 audiod_audio_formats="$audiod_audio_formats opus"
502 NEED_FLAC_OBJECTS && {
503 audiod_errlist_objs="$audiod_errlist_objs flacdec_filter"
504 audiod_audio_formats="$audiod_audio_formats flac"
506 if test $HAVE_FAAD = yes; then
507 audiod_errlist_objs="$audiod_errlist_objs aacdec_filter"
508 audiod_audio_formats="$audiod_audio_formats aac"
510 if test $HAVE_MAD = yes; then
511 audiod_audio_formats="$audiod_audio_formats mp3"
512 audiod_errlist_objs="$audiod_errlist_objs mp3dec_filter"
514 if test $HAVE_OSS = yes; then
515 audiod_errlist_objs="$audiod_errlist_objs oss_write"
517 if test $HAVE_ALSA = yes; then
518 audiod_errlist_objs="$audiod_errlist_objs alsa_write"
521 audiod_errlist_objs="$audiod_errlist_objs ao_write"
523 if test $HAVE_SAMPLERATE = yes; then
524 audiod_errlist_objs="$audiod_errlist_objs resample_filter check_wav"
526 audiod_objs="$audiod_errlist_objs"
527 AC_SUBST(audiod_objs, add_dot_o($audiod_objs))
529 enum="$(for i in $audiod_audio_formats; do printf "AUDIO_FORMAT_${i}, " | tr '[a-z]' '[A-Z]'; done)"
530 AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMATS_ENUM, $enum NUM_AUDIO_FORMATS,
531 enum of audio formats supported by audiod)
532 names="$(for i in $audiod_audio_formats; do printf \"$i\",' ' ; done)"
533 AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMAT_ARRAY, $names, array of audio formats supported by audiod)
537 ########################################################################### mixer
538 if test $HAVE_OSS = yes -o $HAVE_ALSA = yes; then
540 executables="$executables mixer"
541 mixer_errlist_objs="mixer exec string fd version"
542 if test $HAVE_OSS = yes; then
543 mixer_errlist_objs="$mixer_errlist_objs oss_mix"
545 if test $HAVE_ALSA = yes; then
546 mixer_errlist_objs="$mixer_errlist_objs alsa_mix"
548 mixer_objs="$mixer_errlist_objs"
549 AC_SUBST(mixer_objs, add_dot_o($mixer_objs))
552 AC_MSG_WARN([no mixer support])
554 ########################################################################### gui
555 if test $HAVE_CURSES = yes; then
557 executables="$executables gui"
571 gui_objs="$gui_errlist_objs"
572 AC_SUBST(gui_objs, add_dot_o($gui_objs))
575 AC_MSG_WARN([no curses lib, cannot build para_gui])
577 ######################################################################## filter
578 filter_errlist_objs="
602 NEED_VORBIS_OBJECTS && filter_errlist_objs="$filter_errlist_objs oggdec_filter"
603 NEED_SPEEX_OBJECTS && filter_errlist_objs="$filter_errlist_objs spxdec_filter spx_common"
604 NEED_OPUS_OBJECTS && filter_errlist_objs="$filter_errlist_objs opusdec_filter opus_common"
605 NEED_FLAC_OBJECTS && filter_errlist_objs="$filter_errlist_objs flacdec_filter"
606 if test $HAVE_FAAD = yes; then
607 filter_errlist_objs="$filter_errlist_objs aacdec_filter"
609 if test $HAVE_MAD = yes; then
610 filter_errlist_objs="$filter_errlist_objs mp3dec_filter"
612 if test $HAVE_SAMPLERATE = yes; then
613 filter_errlist_objs="$filter_errlist_objs resample_filter check_wav"
615 filter_objs="$filter_errlist_objs"
617 AC_SUBST(filter_objs, add_dot_o($filter_objs))
618 ########################################################################## recv
639 NEED_OGG_OBJECTS && recv_errlist_objs="$recv_errlist_objs ogg_afh_common"
640 NEED_VORBIS_OBJECTS && recv_errlist_objs="$recv_errlist_objs ogg_afh"
641 NEED_SPEEX_OBJECTS && recv_errlist_objs="$recv_errlist_objs spx_afh spx_common"
642 NEED_OPUS_OBJECTS && recv_errlist_objs="$recv_errlist_objs opus_afh opus_common"
643 NEED_FLAC_OBJECTS && recv_errlist_objs="$recv_errlist_objs flac_afh"
645 if test $HAVE_FAAD = yes; then
646 recv_errlist_objs="$recv_errlist_objs aac_afh"
648 recv_objs="$recv_errlist_objs"
649 AC_SUBST(recv_objs, add_dot_o($recv_objs))
650 ########################################################################### afh
651 audio_format_handlers="mp3 wma"
663 NEED_OGG_OBJECTS && afh_errlist_objs="$afh_errlist_objs ogg_afh_common"
664 NEED_VORBIS_OBJECTS && {
665 afh_errlist_objs="$afh_errlist_objs ogg_afh"
666 audio_format_handlers="$audio_format_handlers ogg"
668 NEED_SPEEX_OBJECTS && {
669 afh_errlist_objs="$afh_errlist_objs spx_afh spx_common"
670 audio_format_handlers="$audio_format_handlers spx"
672 NEED_OPUS_OBJECTS && {
673 afh_errlist_objs="$afh_errlist_objs opus_afh opus_common"
674 audio_format_handlers="$audio_format_handlers opus"
676 NEED_FLAC_OBJECTS && {
677 afh_errlist_objs="$afh_errlist_objs flac_afh"
678 audio_format_handlers="$audio_format_handlers flac"
680 if test $HAVE_FAAD = yes; then
681 afh_errlist_objs="$afh_errlist_objs aac_afh"
682 audio_format_handlers="$audio_format_handlers aac"
685 afh_objs="$afh_errlist_objs"
687 AC_SUBST(afh_objs, add_dot_o($afh_objs))
688 ########################################################################## play
721 NEED_OGG_OBJECTS && play_errlist_objs="$play_errlist_objs ogg_afh_common"
722 NEED_VORBIS_OBJECTS && {
723 play_errlist_objs="$play_errlist_objs oggdec_filter ogg_afh"
725 NEED_SPEEX_OBJECTS && {
726 play_errlist_objs="$play_errlist_objs spxdec_filter spx_afh spx_common"
729 play_errlist_objs="$play_errlist_objs
734 NEED_FLAC_OBJECTS && {
735 play_errlist_objs="$play_errlist_objs flacdec_filter flac_afh"
737 if test $HAVE_FAAD = yes; then
738 play_errlist_objs="$play_errlist_objs aac_afh aacdec_filter"
740 if test $HAVE_MAD = yes; then
741 play_errlist_objs="$play_errlist_objs mp3dec_filter"
743 if test $HAVE_OSS = yes; then
744 play_errlist_objs="$play_errlist_objs oss_write"
746 if test $HAVE_ALSA = yes; then
747 play_errlist_objs="$play_errlist_objs alsa_write"
750 play_errlist_objs="$play_errlist_objs ao_write"
752 if test $HAVE_READLINE = yes; then
753 play_errlist_objs="$play_errlist_objs interactive"
755 if test $HAVE_SAMPLERATE = yes; then
756 play_errlist_objs="$play_errlist_objs resample_filter check_wav"
759 play_objs="$play_errlist_objs"
760 AC_SUBST(play_objs, add_dot_o($play_objs))
761 ######################################################################### write
777 write_errlist_objs="$write_errlist_objs ao_write"
779 if test $HAVE_OSS = yes; then
780 write_errlist_objs="$write_errlist_objs oss_write"
782 if test $HAVE_ALSA = yes; then
783 write_errlist_objs="$write_errlist_objs alsa_write"
785 write_objs="$write_errlist_objs"
786 AC_SUBST(write_objs, add_dot_o($write_objs))
787 ######################################################################## audioc
788 audioc_errlist_objs="
795 if test $HAVE_READLINE = yes; then
796 audioc_errlist_objs="$audioc_errlist_objs
803 audioc_objs="$audioc_errlist_objs"
804 AC_SUBST(audioc_objs, add_dot_o($audioc_objs))
805 ################################################################## status items
807 status_items="basename status num_played mtime bitrate frequency file_size
808 status_flags format score techinfo afs_mode
809 attributes_txt decoder_flags audiod_status play_time attributes_bitmap
810 offset seconds_total stream_start current_time audiod_uptime image_id
811 lyrics_id duration directory lyrics_name image_name path hash channels
812 last_played num_chunks chunk_time amplification artist title year album
813 comment max_chunk_size"
816 for i in $status_items; do
817 result="$result SI_$(echo $i | tr 'a-z' 'A-Z'), "
819 AC_DEFINE_UNQUOTED(STATUS_ITEM_ENUM, [$result],
820 [enum of all status items])
823 for i in $status_items; do
824 result="$result \"$i\", "
826 AC_DEFINE_UNQUOTED(STATUS_ITEM_ARRAY, [$result],
827 [char * array of all status items])
829 AC_DEFINE_UNQUOTED(AUDIO_FORMAT_HANDLERS, "$audio_format_handlers",
830 [formats supported by para_server and para_afh])
832 AC_SUBST(executables)
836 paraslash configuration:
837 ~~~~~~~~~~~~~~~~~~~~~~~~
838 crypto lib: ${CRYPTOLIB:-[none]}
839 unix socket credentials: $have_ucred
840 readline (interactive CLIs): $HAVE_READLINE
841 id3 version 2 support: $HAVE_ID3TAG
843 audio format handlers: $audio_format_handlers
845 para_server: $build_server
847 para_mixer: $build_mixer
848 para_client: $build_client
849 para_audiod: $build_audiod