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([LIB_ARG_WITH], [
10 AC_ARG_WITH($1-headers, [AS_HELP_STRING(--with-$1-headers=dir,
11 [look for $1 headers in dir])])
12 AC_ARG_WITH($1-libs, [AS_HELP_STRING(--with-$1-libs=dir,
13 [look for $1 libraries in dir])])
14 if test -n "$with_$1_headers"; then
15 $1_cppflags="-I$with_$1_headers"
16 CPPFLAGS="$CPPFLAGS $$1_cppflags"
18 if test -n "$with_$1_libs"; then
19 $1_ldflags="-L$with_$1_libs $2"
23 LDFLAGS="$LDFLAGS $$1_ldflags"
26 AC_DEFUN([STASH_FLAGS], [
27 OLD_CPPFLAGS="$CPPFLAGS"
28 OLD_LDFLAGS="$LDFLAGS"
32 AC_DEFUN([UNSTASH_FLAGS], [
33 CPPFLAGS="$OLD_CPPFLAGS"
34 LDFLAGS="$OLD_LDFLAGS"
37 AC_DEFUN([LIB_SUBST_FLAGS], [
38 if test "$HAVE_[]m4_toupper([$1])" = 'yes'; then
39 AC_DEFINE(HAVE_[]m4_toupper([$1]), 1,
40 define to 1 to turn on $1 support)
45 AC_SUBST(HAVE_[]m4_toupper([$1]))
50 AC_USE_SYSTEM_EXTENSIONS
53 AC_PATH_PROG([M4], [m4])
54 test -z "$M4" && AC_MSG_ERROR(
55 [The m4 macro processor is required to build this package])
57 AC_PATH_PROG([lopsubgen], [lopsubgen])
58 test -z "$lopsubgen" && AC_MSG_ERROR(
59 [lopsubgen is required to build this package])
64 executables="recv filter audioc write afh play"
65 ########################################################################### osl
67 LIB_ARG_WITH([osl], [-losl])
69 AC_CHECK_HEADER(osl.h, [], [HAVE_OSL=no])
70 AC_CHECK_LIB([osl], [osl_open_table], [], [HAVE_OSL=no])
73 ######################################################################## lopsub
75 LIB_ARG_WITH([lopsub], [-llopsub])
77 AC_CHECK_HEADER(lopsub.h, [], [HAVE_LOPSUB=no])
78 AC_CHECK_LIB([lopsub], [lls_merge], [], [HAVE_LOPSUB=no])
79 if test $HAVE_LOPSUB = no; then AC_MSG_ERROR([
80 The lopsub library is required to build this software, but
81 the above checks indicate it is not installed on your system.
82 Run the following command to download a copy.
83 git clone git://git.tuebingen.mpg.de/lopsub.git
84 Install the library, then run this configure script again.
87 LIB_SUBST_FLAGS([lopsub])
89 ######################################################################## openssl
92 LIB_ARG_WITH([openssl], [-lssl -lcrypto])
93 AC_CHECK_HEADER(openssl/ssl.h, [], [HAVE_OPENSSL=no])
94 AC_CHECK_LIB([crypto], [RAND_bytes], [], [HAVE_OPENSSL=no])
95 LIB_SUBST_FLAGS(openssl)
96 if test $HAVE_OPENSSL = yes; then
97 AC_CHECK_LIB([crypto], [RSA_set0_key],
98 AC_DEFINE([HAVE_RSA_SET0_KEY], [1], [openssl-1.1]))
101 ######################################################################### gcrypt
104 LIB_ARG_WITH([gcrypt], [-lgcrypt])
105 AC_CHECK_HEADER(gcrypt.h, [], [HAVE_GCRYPT=no])
106 AC_CHECK_LIB([gcrypt], [gcry_randomize], [], [HAVE_GCRYPT=no])
107 LIB_SUBST_FLAGS(gcrypt)
109 ######################################################################### crypto
110 AC_ARG_ENABLE(cryptolib, [AS_HELP_STRING(--enable-cryptolib=lib, [
111 Force using crypto library "lib". This package requires either
112 openssl or libgcrypt being installed. Possible values for "lib"
113 are thus "openssl" and "gcrypt". If this option is not given,
114 openssl is tried first. If openssl was not found, gcrypt is
117 CRYPTOLIB="$enable_cryptolib"
118 case "$enable_cryptolib" in
120 test $HAVE_OPENSSL = no && AC_MSG_ERROR(openssl not found)
121 crypto_ldflags="$openssl_ldflags"
124 test $HAVE_GCRYPT = no && AC_MSG_ERROR(gcrypt not found)
125 crypto_ldflags="$gcrypt_ldflags"
129 if test $HAVE_GCRYPT = yes; then
131 crypto_ldflags="$gcrypt_ldflags"
133 if test $HAVE_OPENSSL = yes; then
135 crypto_ldflags="$openssl_ldflags"
139 AC_MSG_ERROR([invalid value "$enable_cryptolib" for --enable-cryptolib])
142 AC_SUBST(crypto_ldflags)
143 ########################################################################## iconv
146 AC_SEARCH_LIBS([libiconv_open], [iconv],
147 [iconv_ldflags="$LIBS"],
150 AC_SUBST(iconv_ldflags)
151 AC_MSG_CHECKING([whether iconv needs const char ** cast])
156 size_t iconv(iconv_t cd, const char **inbuf,
157 size_t *inbytesleft, char **outbuf,
158 size_t *outbytesleft);
161 [cast='(const char **)'; msg=yes],
164 AC_DEFINE_UNQUOTED(ICONV_CAST, $cast, [cast for second arg to iconv()])
167 ########################################################################### ucred
168 AC_MSG_CHECKING(for struct ucred)
169 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
170 #include <sys/types.h>
171 #include <sys/socket.h>
173 struct ucred sucred; sucred.pid=0;
174 ]])],[have_ucred=yes],[have_ucred=no])
175 AC_MSG_RESULT($have_ucred)
176 if test ${have_ucred} = yes; then
177 AC_DEFINE(HAVE_UCRED, 1, define to 1 you have struct ucred)
179 ########################################################################### curses
181 LIB_ARG_WITH([curses], [])
183 AC_CHECK_HEADER(curses.h, [], [HAVE_CURSES=no])
184 AC_SEARCH_LIBS([initscr], [ncursesw curses], [], [HAVE_CURSES=no])
185 curses_ldflags="$curses_ldflags $LIBS"
186 LIB_SUBST_FLAGS(curses)
188 ########################################################################### ip_mreqn
189 AC_MSG_CHECKING(for struct ip_mreqn (UDPv4 multicast))
190 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
196 ]])],[have_ip_mreqn=yes],[have_ip_mreqn=no])
197 AC_MSG_RESULT($have_ip_mreqn)
198 if test ${have_ip_mreqn} = yes; then
199 AC_DEFINE(HAVE_IP_MREQN, 1, define to 1 if you have struct ip_mreqn)
201 ########################################################################### ogg
203 LIB_ARG_WITH([ogg], [-logg])
205 AC_CHECK_HEADERS([ogg/ogg.h], [], [HAVE_OGG=no])
206 AC_CHECK_LIB([ogg], [ogg_stream_init], [], [HAVE_OGG=no])
207 AC_CHECK_LIB([ogg], [ogg_stream_flush_fill], [
208 AC_DEFINE(HAVE_OGG_STREAM_FLUSH_FILL, 1, [libogg >= 1.3.0])])
211 ######################################################################### vorbis
213 LIB_ARG_WITH([vorbis], [-lvorbis -lvorbisfile])
215 AC_CHECK_HEADERS([vorbis/codec.h], [], [HAVE_VORBIS=no])
216 AC_CHECK_LIB([vorbis], [vorbis_info_init], [], [HAVE_VORBIS=no])
217 LIB_SUBST_FLAGS(vorbis)
219 ######################################################################### speex
221 LIB_ARG_WITH([speex], [-lspeex])
223 AC_CHECK_HEADERS([speex/speex.h], [], [HAVE_SPEEX=no])
224 AC_CHECK_LIB([speex], [speex_decoder_init], [], [HAVE_SPEEX=no])
225 LIB_SUBST_FLAGS(speex)
227 ######################################################################### opus
229 LIB_ARG_WITH([opus], [-lopus])
231 AC_CHECK_HEADERS([opus/opus.h], [], [HAVE_OPUS=no])
232 AC_CHECK_LIB([opus], [opus_multistream_decode], [], [HAVE_OPUS=no])
233 LIB_SUBST_FLAGS(opus)
235 ########################################################################### flac
237 LIB_ARG_WITH([flac], [-lFLAC -lm])
239 AC_CHECK_HEADER(FLAC/stream_decoder.h, [], HAVE_FLAC=no)
240 AC_CHECK_LIB([FLAC], [FLAC__stream_decoder_init_file], [], HAVE_FLAC=no)
241 LIB_SUBST_FLAGS(flac)
244 # some helper functions for codecs which use the ogg container format
245 AC_DEFUN([NEED_OGG_OBJECTS], [{
246 test "$HAVE_OGG" = 'yes' -a \( \
247 "$HAVE_VORBIS" = 'yes' \
248 -o "$HAVE_SPEEX" = 'yes' \
249 -o "$HAVE_OPUS" = 'yes' \
250 -o "$HAVE_FLAC" = 'yes' \
253 AC_DEFUN([NEED_VORBIS_OBJECTS], [{
254 test "$HAVE_OGG" = 'yes' -a "$HAVE_VORBIS" = 'yes'
256 AC_DEFUN([NEED_SPEEX_OBJECTS], [{
257 test "$HAVE_OGG" = 'yes' -a "$HAVE_SPEEX" = 'yes'
259 AC_DEFUN([NEED_OPUS_OBJECTS], [{
260 test "$HAVE_OGG" = 'yes' -a "$HAVE_OPUS" = 'yes'
262 AC_DEFUN([NEED_FLAC_OBJECTS], [{
263 test "$HAVE_OGG" = 'yes' -a "$HAVE_FLAC" = 'yes'
265 ########################################################################### faad
267 LIB_ARG_WITH([faad], [-lfaad -lmp4ff])
269 AC_CHECK_HEADER(neaacdec.h, [], HAVE_FAAD=no)
270 AC_CHECK_HEADER(mp4ff.h, [], HAVE_FAAD=no)
271 AC_CHECK_LIB([faad], [NeAACDecOpen], [], HAVE_FAAD=no)
272 AC_CHECK_LIB([mp4ff], [mp4ff_meta_get_artist], [], HAVE_FAAD=no)
273 LIB_SUBST_FLAGS(faad)
275 ########################################################################### mad
277 LIB_ARG_WITH([mad], [-lmad])
279 AC_CHECK_HEADER(mad.h, [], HAVE_MAD=no)
280 AC_CHECK_LIB([mad], [mad_stream_init], [], HAVE_MAD=no)
283 ###################################################################### libid3tag
285 LIB_ARG_WITH([id3tag], [-lid3tag -lz])
287 AC_CHECK_HEADER(id3tag.h, [], HAVE_ID3TAG=no)
288 AC_CHECK_LIB([id3tag], [id3_file_fdopen], [], HAVE_ID3TAG=no)
289 LIB_SUBST_FLAGS(id3tag)
291 ########################################################################### oss
293 LIB_ARG_WITH([oss], [])
294 AC_CHECK_HEADER(sys/soundcard.h, [HAVE_OSS=yes], [HAVE_OSS=no])
295 AC_CHECK_LIB(ossaudio, _oss_ioctl, [oss_ldflags="$oss_ldflags -lossaudio"], [])
298 ########################################################################### alsa
300 LIB_ARG_WITH([alsa], [-lasound])
302 AC_CHECK_HEADER(alsa/asoundlib.h, [], HAVE_ALSA=no)
303 AC_CHECK_LIB([asound], [snd_pcm_open], [], HAVE_ALSA=no)
304 LIB_SUBST_FLAGS(alsa)
306 ######################################################################### pthread
308 LIB_ARG_WITH([pthread], [-lpthread])
310 AC_CHECK_HEADER(pthread.h, [], HAVE_PTHREAD=no)
311 AC_CHECK_LIB([pthread], [pthread_create], [], HAVE_PTHREAD=no)
312 LIB_SUBST_FLAGS(pthread)
314 ########################################################################### libao
316 LIB_ARG_WITH([ao], [-lao])
318 AC_CHECK_HEADER(ao/ao.h, [], HAVE_AO=no)
319 AC_CHECK_LIB([ao], [ao_initialize], [], HAVE_AO=no)
322 AC_DEFUN([NEED_AO_OBJECTS], [{ test $HAVE_AO = yes -a $HAVE_PTHREAD = yes; }])
323 ######################################################################## readline
325 AC_SEARCH_LIBS([tgetent], [tinfo curses terminfo termcap])
326 LIB_ARG_WITH([readline], [-lreadline $LIBS])
328 AC_CHECK_HEADER([readline/readline.h], [], [HAVE_READLINE=no])
329 AC_CHECK_LIB([readline], [rl_free_keymap], [], HAVE_READLINE=no)
332 [AC_DEFINE(RL_FREE_KEYMAP_DECLARED, 1, readline >= 6.3)],
336 #include <readline/readline.h>
339 LIB_SUBST_FLAGS(readline)
341 ############################################################# libsamplerate
343 LIB_ARG_WITH([samplerate], [-lsamplerate])
345 AC_CHECK_HEADER(samplerate.h, [], HAVE_SAMPLERATE=no)
346 AC_CHECK_LIB([samplerate], [src_process], [], HAVE_SAMPLERATE=no)
347 LIB_SUBST_FLAGS(samplerate)
349 ######################################################################### server
350 if test -n "$CRYPTOLIB" && test $HAVE_OSL = yes; then
352 executables="$executables server"
353 server_errlist_objs="
392 if test "$CRYPTOLIB" = openssl; then
393 server_errlist_objs="$server_errlist_objs crypt"
395 server_errlist_objs="$server_errlist_objs gcrypt"
397 NEED_OGG_OBJECTS() && server_errlist_objs="$server_errlist_objs ogg_afh_common"
398 NEED_VORBIS_OBJECTS() && server_errlist_objs="$server_errlist_objs ogg_afh"
399 NEED_SPEEX_OBJECTS() && server_errlist_objs="$server_errlist_objs spx_afh spx_common"
400 NEED_OPUS_OBJECTS() && server_errlist_objs="$server_errlist_objs opus_afh opus_common"
401 NEED_FLAC_OBJECTS && server_errlist_objs="$server_errlist_objs flac_afh"
402 if test $HAVE_FAAD = yes; then
403 server_errlist_objs="$server_errlist_objs aac_afh"
405 server_objs="$server_errlist_objs"
406 AC_SUBST(server_objs, add_dot_o($server_objs))
410 ############################################################# client
411 if test -n "$CRYPTOLIB"; then
413 executables="$executables client"
414 client_errlist_objs="
430 if test "$CRYPTOLIB" = openssl; then
431 client_errlist_objs="$client_errlist_objs crypt"
433 client_errlist_objs="$client_errlist_objs gcrypt"
435 if test $HAVE_READLINE = yes; then
436 client_errlist_objs="$client_errlist_objs interactive"
438 client_objs="$client_errlist_objs"
439 AC_SUBST(client_objs, add_dot_o($client_errlist_objs))
443 ############################################################# audiod
444 if test -n "$CRYPTOLIB"; then
446 executables="$executables audiod"
447 audiod_audio_formats="wma"
448 audiod_errlist_objs="$audiod_errlist_objs
486 if test "$CRYPTOLIB" = openssl; then
487 audiod_errlist_objs="$audiod_errlist_objs crypt"
489 audiod_errlist_objs="$audiod_errlist_objs gcrypt"
491 NEED_VORBIS_OBJECTS && {
492 audiod_errlist_objs="$audiod_errlist_objs oggdec_filter"
493 audiod_audio_formats="$audiod_audio_formats ogg"
495 NEED_SPEEX_OBJECTS && {
496 audiod_errlist_objs="$audiod_errlist_objs spxdec_filter spx_common"
497 audiod_audio_formats="$audiod_audio_formats spx"
499 NEED_OPUS_OBJECTS && {
500 audiod_errlist_objs="$audiod_errlist_objs opusdec_filter opus_common"
501 audiod_audio_formats="$audiod_audio_formats opus"
503 NEED_FLAC_OBJECTS && {
504 audiod_errlist_objs="$audiod_errlist_objs flacdec_filter"
505 audiod_audio_formats="$audiod_audio_formats flac"
507 if test $HAVE_FAAD = yes; then
508 audiod_errlist_objs="$audiod_errlist_objs aacdec_filter"
509 audiod_audio_formats="$audiod_audio_formats aac"
511 if test $HAVE_MAD = yes; then
512 audiod_audio_formats="$audiod_audio_formats mp3"
513 audiod_errlist_objs="$audiod_errlist_objs mp3dec_filter"
515 if test $HAVE_OSS = yes; then
516 audiod_errlist_objs="$audiod_errlist_objs oss_write"
518 if test $HAVE_ALSA = yes; then
519 audiod_errlist_objs="$audiod_errlist_objs alsa_write"
522 audiod_errlist_objs="$audiod_errlist_objs ao_write"
524 if test $HAVE_SAMPLERATE = yes; then
525 audiod_errlist_objs="$audiod_errlist_objs resample_filter check_wav"
527 audiod_objs="$audiod_errlist_objs"
528 AC_SUBST(audiod_objs, add_dot_o($audiod_objs))
530 enum="$(for i in $audiod_audio_formats; do printf "AUDIO_FORMAT_${i}, " | tr '[a-z]' '[A-Z]'; done)"
531 AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMATS_ENUM, $enum NUM_AUDIO_FORMATS,
532 enum of audio formats supported by audiod)
533 names="$(for i in $audiod_audio_formats; do printf \"$i\",' ' ; done)"
534 AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMAT_ARRAY, $names, array of audio formats supported by audiod)
538 ########################################################################### mixer
539 if test $HAVE_OSS = yes -o $HAVE_ALSA = yes; then
541 executables="$executables mixer"
542 mixer_errlist_objs="mixer exec string fd version"
543 if test $HAVE_OSS = yes; then
544 mixer_errlist_objs="$mixer_errlist_objs oss_mix"
546 if test $HAVE_ALSA = yes; then
547 mixer_errlist_objs="$mixer_errlist_objs alsa_mix"
549 mixer_objs="$mixer_errlist_objs"
550 AC_SUBST(mixer_objs, add_dot_o($mixer_objs))
553 AC_MSG_WARN([no mixer support])
555 ########################################################################### gui
556 if test $HAVE_CURSES = yes; then
558 executables="$executables gui"
572 gui_objs="$gui_errlist_objs"
573 AC_SUBST(gui_objs, add_dot_o($gui_objs))
576 AC_MSG_WARN([no curses lib, cannot build para_gui])
578 ######################################################################## filter
579 filter_errlist_objs="
603 NEED_VORBIS_OBJECTS && filter_errlist_objs="$filter_errlist_objs oggdec_filter"
604 NEED_SPEEX_OBJECTS && filter_errlist_objs="$filter_errlist_objs spxdec_filter spx_common"
605 NEED_OPUS_OBJECTS && filter_errlist_objs="$filter_errlist_objs opusdec_filter opus_common"
606 NEED_FLAC_OBJECTS && filter_errlist_objs="$filter_errlist_objs flacdec_filter"
607 if test $HAVE_FAAD = yes; then
608 filter_errlist_objs="$filter_errlist_objs aacdec_filter"
610 if test $HAVE_MAD = yes; then
611 filter_errlist_objs="$filter_errlist_objs mp3dec_filter"
613 if test $HAVE_SAMPLERATE = yes; then
614 filter_errlist_objs="$filter_errlist_objs resample_filter check_wav"
616 filter_objs="$filter_errlist_objs"
618 AC_SUBST(filter_objs, add_dot_o($filter_objs))
619 ########################################################################## recv
640 NEED_OGG_OBJECTS && recv_errlist_objs="$recv_errlist_objs ogg_afh_common"
641 NEED_VORBIS_OBJECTS && recv_errlist_objs="$recv_errlist_objs ogg_afh"
642 NEED_SPEEX_OBJECTS && recv_errlist_objs="$recv_errlist_objs spx_afh spx_common"
643 NEED_OPUS_OBJECTS && recv_errlist_objs="$recv_errlist_objs opus_afh opus_common"
644 NEED_FLAC_OBJECTS && recv_errlist_objs="$recv_errlist_objs flac_afh"
646 if test $HAVE_FAAD = yes; then
647 recv_errlist_objs="$recv_errlist_objs aac_afh"
649 recv_objs="$recv_errlist_objs"
650 AC_SUBST(recv_objs, add_dot_o($recv_objs))
651 ########################################################################### afh
652 audio_format_handlers="mp3 wma"
664 NEED_OGG_OBJECTS && afh_errlist_objs="$afh_errlist_objs ogg_afh_common"
665 NEED_VORBIS_OBJECTS && {
666 afh_errlist_objs="$afh_errlist_objs ogg_afh"
667 audio_format_handlers="$audio_format_handlers ogg"
669 NEED_SPEEX_OBJECTS && {
670 afh_errlist_objs="$afh_errlist_objs spx_afh spx_common"
671 audio_format_handlers="$audio_format_handlers spx"
673 NEED_OPUS_OBJECTS && {
674 afh_errlist_objs="$afh_errlist_objs opus_afh opus_common"
675 audio_format_handlers="$audio_format_handlers opus"
677 NEED_FLAC_OBJECTS && {
678 afh_errlist_objs="$afh_errlist_objs flac_afh"
679 audio_format_handlers="$audio_format_handlers flac"
681 if test $HAVE_FAAD = yes; then
682 afh_errlist_objs="$afh_errlist_objs aac_afh"
683 audio_format_handlers="$audio_format_handlers aac"
686 afh_objs="$afh_errlist_objs"
688 AC_SUBST(afh_objs, add_dot_o($afh_objs))
689 ########################################################################## play
722 NEED_OGG_OBJECTS && play_errlist_objs="$play_errlist_objs ogg_afh_common"
723 NEED_VORBIS_OBJECTS && {
724 play_errlist_objs="$play_errlist_objs oggdec_filter ogg_afh"
726 NEED_SPEEX_OBJECTS && {
727 play_errlist_objs="$play_errlist_objs spxdec_filter spx_afh spx_common"
730 play_errlist_objs="$play_errlist_objs
735 NEED_FLAC_OBJECTS && {
736 play_errlist_objs="$play_errlist_objs flacdec_filter flac_afh"
738 if test $HAVE_FAAD = yes; then
739 play_errlist_objs="$play_errlist_objs aac_afh aacdec_filter"
741 if test $HAVE_MAD = yes; then
742 play_errlist_objs="$play_errlist_objs mp3dec_filter"
744 if test $HAVE_OSS = yes; then
745 play_errlist_objs="$play_errlist_objs oss_write"
747 if test $HAVE_ALSA = yes; then
748 play_errlist_objs="$play_errlist_objs alsa_write"
751 play_errlist_objs="$play_errlist_objs ao_write"
753 if test $HAVE_READLINE = yes; then
754 play_errlist_objs="$play_errlist_objs interactive"
756 if test $HAVE_SAMPLERATE = yes; then
757 play_errlist_objs="$play_errlist_objs resample_filter check_wav"
760 play_objs="$play_errlist_objs"
761 AC_SUBST(play_objs, add_dot_o($play_objs))
762 ######################################################################### write
778 write_errlist_objs="$write_errlist_objs ao_write"
780 if test $HAVE_OSS = yes; then
781 write_errlist_objs="$write_errlist_objs oss_write"
783 if test $HAVE_ALSA = yes; then
784 write_errlist_objs="$write_errlist_objs alsa_write"
786 write_objs="$write_errlist_objs"
787 AC_SUBST(write_objs, add_dot_o($write_objs))
788 ######################################################################## audioc
789 audioc_errlist_objs="
796 if test $HAVE_READLINE = yes; then
797 audioc_errlist_objs="$audioc_errlist_objs
804 audioc_objs="$audioc_errlist_objs"
805 AC_SUBST(audioc_objs, add_dot_o($audioc_objs))
806 ################################################################## status items
808 status_items="basename status num_played mtime bitrate frequency file_size
809 status_flags format score techinfo afs_mode
810 attributes_txt decoder_flags audiod_status play_time attributes_bitmap
811 offset seconds_total stream_start current_time audiod_uptime image_id
812 lyrics_id duration directory lyrics_name image_name path hash channels
813 last_played num_chunks chunk_time amplification artist title year album
814 comment max_chunk_size"
817 for i in $status_items; do
818 result="$result SI_$(echo $i | tr 'a-z' 'A-Z'), "
820 AC_DEFINE_UNQUOTED(STATUS_ITEM_ENUM, [$result],
821 [enum of all status items])
824 for i in $status_items; do
825 result="$result \"$i\", "
827 AC_DEFINE_UNQUOTED(STATUS_ITEM_ARRAY, [$result],
828 [char * array of all status items])
830 AC_DEFINE_UNQUOTED(AUDIO_FORMAT_HANDLERS, "$audio_format_handlers",
831 [formats supported by para_server and para_afh])
833 AC_SUBST(executables)
837 paraslash configuration:
838 ~~~~~~~~~~~~~~~~~~~~~~~~
839 crypto lib: ${CRYPTOLIB:-[none]}
840 unix socket credentials: $have_ucred
841 readline (interactive CLIs): $HAVE_READLINE
842 id3 version 2 support: $HAVE_ID3TAG
844 audio format handlers: $audio_format_handlers
846 para_server: $build_server
848 para_mixer: $build_mixer
849 para_client: $build_client
850 para_audiod: $build_audiod