AC_CONFIG_FILES([Makefile])
AC_DEFUN([add_dot_o],[$(for i in $@; do printf "$i.o "; done)])
-AC_DEFUN([add_cmdline],[$(for i in $@; do printf "${i}.cmdline "; done)])
AC_DEFUN([LIB_ARG_WITH], [
AC_ARG_WITH($1-headers, [AS_HELP_STRING(--with-$1-headers=dir,
[look for $1 headers in dir])])
if test "$HAVE_[]m4_toupper([$1])" = 'yes'; then
AC_DEFINE(HAVE_[]m4_toupper([$1]), 1,
define to 1 to turn on $1 support)
+ AC_SUBST(HAVE_[]m4_toupper([$1]))
else
$1_cppflags=
$1_ldflags=
AC_SUBST($1_cppflags)
AC_SUBST($1_ldflags)
])
+AC_DEFUN([REQUIRE_EXECUTABLE], [
+ AC_PATH_PROG(m4_toupper([$1]), [$1])
+ test -z "$m4_toupper([$1])" && AC_MSG_ERROR(
+ [$1 is required to build this package])
+])
AC_USE_SYSTEM_EXTENSIONS
AC_C_BIGENDIAN()
-
-AC_PATH_PROG([M4], [m4])
-test -z "$M4" && AC_MSG_ERROR(
- [The m4 macro processor is required to build this package])
-
-AC_PATH_PROG([lopsubgen], [lopsubgen])
-test -z "$lopsubgen" && AC_MSG_ERROR(
- [lopsubgen is required to build this package])
-
AC_PROG_CC
AC_PROG_CPP
+REQUIRE_EXECUTABLE([bison])
+REQUIRE_EXECUTABLE([flex])
+REQUIRE_EXECUTABLE([m4])
+
executables="recv filter audioc write afh play"
########################################################################### osl
STASH_FLAGS
LIB_SUBST_FLAGS(osl)
UNSTASH_FLAGS
######################################################################## lopsub
+HAVE_LOPSUB=yes
+AC_PATH_PROG([LOPSUBGEN], [lopsubgen])
+test -z "$LOPSUBGEN" && HAVE_LOPSUB=no
STASH_FLAGS
LIB_ARG_WITH([lopsub], [-llopsub])
-HAVE_LOPSUB=yes
AC_CHECK_HEADER(lopsub.h, [], [HAVE_LOPSUB=no])
-AC_CHECK_LIB([lopsub], [lls_merge], [], [HAVE_LOPSUB=yes])
+AC_CHECK_LIB([lopsub], [lls_merge], [], [HAVE_LOPSUB=no])
if test $HAVE_LOPSUB = no; then AC_MSG_ERROR([
The lopsub library is required to build this software, but
the above checks indicate it is not installed on your system.
AC_CHECK_LIB([crypto], [RAND_bytes], [], [HAVE_OPENSSL=no])
LIB_SUBST_FLAGS(openssl)
if test $HAVE_OPENSSL = yes; then
- AC_CHECK_LIB([crypto], [RSA_set0_key],
- AC_DEFINE([HAVE_RSA_SET0_KEY], [1], [openssl-1.1]))
+ HAVE_RSA_SET0_KEY=yes
+ AC_CHECK_DECL([RSA_set0_key], [], [], [#include <openssl/rsa.h>])
+ AC_CHECK_LIB([crypto], [RSA_set0_key], [], [])
+ if test "$ac_cv_have_decl_RSA_set0_key" != "$ac_cv_lib_crypto_RSA_set0_key"; then
+ AC_MSG_ERROR([openssl header/library mismatch])
+ fi
+ if test "$ac_cv_have_decl_RSA_set0_key" = yes; then
+ AC_DEFINE([HAVE_RSA_SET0_KEY], [1], [openssl >= 1.1])
+ else
+ AC_MSG_WARN([
+ Old openssl library detected. Support for openssl-1.0 and earlier
+ will be removed in the next major paraslash release. Please upgrade
+ your openssl installation.])
+ fi
+ HAVE_CRYPTO_CLEANUP_ALL_EX_DATA=yes
+ AC_CHECK_DECL([CRYPTO_cleanup_all_ex_data], [],
+ [HAVE_CRYPTO_CLEANUP_ALL_EX_DATA=no],
+ [#include <openssl/rsa.h>])
+ AC_CHECK_LIB([crypto], [CRYPTO_cleanup_all_ex_data], [],
+ [HAVE_CRYPTO_CLEANUP_ALL_EX_DATA=no])
+ test $HAVE_CRYPTO_CLEANUP_ALL_EX_DATA = yes &&
+ AC_DEFINE([HAVE_CRYPTO_CLEANUP_ALL_EX_DATA], [1],
+ [not available on FreeBSD 12])
+ HAVE_OPENSSL_THREAD_STOP=yes
+ AC_CHECK_DECL([OPENSSL_thread_stop], [],
+ [HAVE_OPENSSL_THREAD_STOP=no],
+ [#include <openssl/crypto.h>])
+ AC_CHECK_LIB([crypto], [OPENSSL_thread_stop], [],
+ [HAVE_OPENSSL_THREAD_STOP=no])
+ test $HAVE_OPENSSL_THREAD_STOP = yes &&
+ AC_DEFINE([HAVE_OPENSSL_THREAD_STOP], [1],
+ [not available on openssl-1.0])
fi
UNSTASH_FLAGS
######################################################################### gcrypt
;;
esac
AC_SUBST(crypto_ldflags)
+AC_SUBST(CRYPTOLIB)
########################################################################## iconv
STASH_FLAGS
LIBS=
AC_MSG_RESULT($msg)
UNSTASH_FLAGS
########################################################################### ucred
-AC_MSG_CHECKING(for struct ucred)
-AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+AC_CHECK_TYPE([struct ucred], [
+ AC_DEFINE(HAVE_UCRED, 1, define to 1 you have struct ucred)
+], [], [
#include <sys/types.h>
#include <sys/socket.h>
+])
+################################################################### FNM_EXTMATCH
+AC_MSG_CHECKING(for extended wildcard pattern matching)
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ #include <fnmatch.h>
]], [[
- struct ucred sucred; sucred.pid=0;
-]])],[have_ucred=yes],[have_ucred=no])
-AC_MSG_RESULT($have_ucred)
-if test ${have_ucred} = yes; then
- AC_DEFINE(HAVE_UCRED, 1, define to 1 you have struct ucred)
+ unsigned n = FNM_EXTMATCH;
+]])], [have_fnm_extmatch=yes], [have_fnm_extmatch=no])
+AC_MSG_RESULT($have_fnm_extmatch)
+if test $have_fnm_extmatch = yes; then
+ AC_DEFINE(HAVE_FNM_EXTMATCH, 1, define to 1 if FNM_EXTMATCH is defined)
fi
########################################################################### curses
STASH_FLAGS
LIB_SUBST_FLAGS(curses)
UNSTASH_FLAGS
########################################################################### ip_mreqn
-AC_MSG_CHECKING(for struct ip_mreqn (UDPv4 multicast))
-AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+AC_CHECK_TYPE([struct ip_mreqn], [
+ AC_DEFINE(HAVE_IP_MREQN, 1, define to 1 if you have struct ip_mreqn)
+], [], [
#include <netdb.h>
#include <net/if.h>
-]], [[
- struct ip_mreqn mn;
- mn.imr_ifindex = 0;
-]])],[have_ip_mreqn=yes],[have_ip_mreqn=no])
-AC_MSG_RESULT($have_ip_mreqn)
-if test ${have_ip_mreqn} = yes; then
- AC_DEFINE(HAVE_IP_MREQN, 1, define to 1 you have struct ip_mreqn)
-fi
+])
########################################################################### ogg
STASH_FLAGS
LIB_ARG_WITH([ogg], [-logg])
LIB_SUBST_FLAGS(flac)
UNSTASH_FLAGS
-# some helper functions for codecs which use the ogg container format
-AC_DEFUN([NEED_OGG_OBJECTS], [{
- test "$HAVE_OGG" = 'yes' -a \( \
+# some helpers for the ogg container format
+AS_IF([test "$HAVE_OGG" = 'yes' -a \( \
"$HAVE_VORBIS" = 'yes' \
-o "$HAVE_SPEEX" = 'yes' \
-o "$HAVE_OPUS" = 'yes' \
-o "$HAVE_FLAC" = 'yes' \
- \)
-}])
-AC_DEFUN([NEED_VORBIS_OBJECTS], [{
- test "$HAVE_OGG" = 'yes' -a "$HAVE_VORBIS" = 'yes'
-}])
-AC_DEFUN([NEED_SPEEX_OBJECTS], [{
- test "$HAVE_OGG" = 'yes' -a "$HAVE_SPEEX" = 'yes'
-}])
-AC_DEFUN([NEED_OPUS_OBJECTS], [{
- test "$HAVE_OGG" = 'yes' -a "$HAVE_OPUS" = 'yes'
-}])
-AC_DEFUN([NEED_FLAC_OBJECTS], [{
- test "$HAVE_OGG" = 'yes' -a "$HAVE_FLAC" = 'yes'
-}])
+\)], [NEED_OGG_OBJECTS=yes], [NEED_OGG_OBJECTS=no])
+AC_SUBST([NEED_OGG_OBJECTS])
+AS_IF([test "$HAVE_OGG" = 'yes' -a "$HAVE_VORBIS" = 'yes'],
+ [NEED_VORBIS_OBJECTS=yes], [NEED_VORBIS_OBJECTS=no])
+AC_SUBST([NEED_VORBIS_OBJECTS])
+AS_IF([test "$HAVE_OGG" = 'yes' -a "$HAVE_SPEEX" = 'yes'],
+ [NEED_SPEEX_OBJECTS=yes], [NEED_SPEEX_OBJECTS=no])
+AC_SUBST([NEED_SPEEX_OBJECTS])
+AS_IF([test "$HAVE_OGG" = 'yes' -a "$HAVE_OPUS" = 'yes'],
+ [NEED_OPUS_OBJECTS=yes], [NEED_OPUS_OBJECTS=no])
+AC_SUBST([NEED_OPUS_OBJECTS])
+AS_IF([test "$HAVE_OGG" = 'yes' -a "$HAVE_FLAC" = 'yes'],
+ [NEED_FLAC_OBJECTS=yes], [NEED_FLAC_OBJECTS=no])
+AC_SUBST([NEED_FLAC_OBJECTS])
########################################################################### faad
STASH_FLAGS
-LIB_ARG_WITH([faad], [-lfaad -lmp4ff])
+LIB_ARG_WITH([faad], [-lfaad])
HAVE_FAAD=yes
AC_CHECK_HEADER(neaacdec.h, [], HAVE_FAAD=no)
-AC_CHECK_HEADER(mp4ff.h, [], HAVE_FAAD=no)
AC_CHECK_LIB([faad], [NeAACDecOpen], [], HAVE_FAAD=no)
-AC_CHECK_LIB([mp4ff], [mp4ff_meta_get_artist], [], HAVE_FAAD=no)
LIB_SUBST_FLAGS(faad)
UNSTASH_FLAGS
########################################################################### mad
AC_CHECK_LIB([samplerate], [src_process], [], HAVE_SAMPLERATE=no)
LIB_SUBST_FLAGS(samplerate)
UNSTASH_FLAGS
-######################################################################### server
+######################################################################### ubsan
+AC_ARG_ENABLE([ubsan], [AS_HELP_STRING(--enable-ubsan,
+ [Detect and report undefined behaviour.])],
+ [ENABLE_UBSAN=yes], [ENABLE_UBSAN=no])
+AC_SUBST(ENABLE_UBSAN)
+######################################################### server and upgrade_db
if test -n "$CRYPTOLIB" && test $HAVE_OSL = yes; then
build_server="yes"
- executables="$executables server"
- server_errlist_objs="
- server
- afh_common
- mp3_afh
- vss
- command
- net
- string
- signal
- time
- daemon
- http_send
- close_on_fork
- mm
- crypt_common
- base64
- ipc
- dccp_send
- fd
- user_list
- chunk_queue
- afs
- aft
- mood
- score
- attribute
- blob
- playlist
- sched
- acl
- send_common
- udp_send
- color
- fec
- wma_afh
- wma_common
- sideband
- version
- "
- if test "$CRYPTOLIB" = openssl; then
- server_errlist_objs="$server_errlist_objs crypt"
- else
- server_errlist_objs="$server_errlist_objs gcrypt"
- fi
- NEED_OGG_OBJECTS() && server_errlist_objs="$server_errlist_objs ogg_afh_common"
- NEED_VORBIS_OBJECTS() && server_errlist_objs="$server_errlist_objs ogg_afh"
- NEED_SPEEX_OBJECTS() && server_errlist_objs="$server_errlist_objs spx_afh spx_common"
- NEED_OPUS_OBJECTS() && server_errlist_objs="$server_errlist_objs opus_afh opus_common"
- NEED_FLAC_OBJECTS && server_errlist_objs="$server_errlist_objs flac_afh"
- if test $HAVE_FAAD = yes; then
- server_errlist_objs="$server_errlist_objs aac_afh"
- fi
- server_objs="$server_errlist_objs"
- AC_SUBST(server_objs, add_dot_o($server_objs))
+ executables="$executables server upgrade_db"
else
build_server="no"
fi
if test -n "$CRYPTOLIB"; then
build_client="yes"
executables="$executables client"
- client_errlist_objs="
+ client_objs="
client
net
string
fd
+ lsu
sched
stdin
stdout
version
"
if test "$CRYPTOLIB" = openssl; then
- client_errlist_objs="$client_errlist_objs crypt"
+ client_objs="$client_objs openssl"
else
- client_errlist_objs="$client_errlist_objs gcrypt"
+ client_objs="$client_objs gcrypt"
fi
if test $HAVE_READLINE = yes; then
- client_errlist_objs="$client_errlist_objs interactive"
+ client_objs="$client_objs interactive"
fi
- client_objs="$client_errlist_objs"
- AC_SUBST(client_objs, add_dot_o($client_errlist_objs))
+ AC_SUBST(client_objs, add_dot_o($client_objs))
else
build_client="no"
fi
build_audiod="yes"
executables="$executables audiod"
audiod_audio_formats="wma"
- audiod_errlist_objs="$audiod_errlist_objs
+ audiod_objs="$audiod_objs
audiod
signal
string
wmadec_filter
buffer_tree
sync_filter
+ lsu
"
if test "$CRYPTOLIB" = openssl; then
- audiod_errlist_objs="$audiod_errlist_objs crypt"
+ audiod_objs="$audiod_objs openssl"
else
- audiod_errlist_objs="$audiod_errlist_objs gcrypt"
+ audiod_objs="$audiod_objs gcrypt"
fi
- NEED_VORBIS_OBJECTS && {
- audiod_errlist_objs="$audiod_errlist_objs oggdec_filter"
+ AS_IF([test $NEED_VORBIS_OBJECTS = yes], [
+ audiod_objs="$audiod_objs oggdec_filter"
audiod_audio_formats="$audiod_audio_formats ogg"
- }
- NEED_SPEEX_OBJECTS && {
- audiod_errlist_objs="$audiod_errlist_objs spxdec_filter spx_common"
+ ])
+ AS_IF([test $NEED_SPEEX_OBJECTS = yes], [
+ audiod_objs="$audiod_objs spxdec_filter spx_common"
audiod_audio_formats="$audiod_audio_formats spx"
- }
- NEED_OPUS_OBJECTS && {
- audiod_errlist_objs="$audiod_errlist_objs opusdec_filter opus_common"
+ ])
+ AS_IF([test $NEED_OPUS_OBJECTS = yes], [
+ audiod_objs="$audiod_objs opusdec_filter opus_common"
audiod_audio_formats="$audiod_audio_formats opus"
- }
- NEED_FLAC_OBJECTS && {
- audiod_errlist_objs="$audiod_errlist_objs flacdec_filter"
+ ])
+ AS_IF([test $NEED_FLAC_OBJECTS = yes], [
+ audiod_objs="$audiod_objs flacdec_filter"
audiod_audio_formats="$audiod_audio_formats flac"
- }
+ ])
if test $HAVE_FAAD = yes; then
- audiod_errlist_objs="$audiod_errlist_objs aacdec_filter"
+ audiod_objs="$audiod_objs aacdec_filter"
audiod_audio_formats="$audiod_audio_formats aac"
fi
if test $HAVE_MAD = yes; then
audiod_audio_formats="$audiod_audio_formats mp3"
- audiod_errlist_objs="$audiod_errlist_objs mp3dec_filter"
+ audiod_objs="$audiod_objs mp3dec_filter"
fi
if test $HAVE_OSS = yes; then
- audiod_errlist_objs="$audiod_errlist_objs oss_write"
+ audiod_objs="$audiod_objs oss_write"
fi
if test $HAVE_ALSA = yes; then
- audiod_errlist_objs="$audiod_errlist_objs alsa_write"
+ audiod_objs="$audiod_objs alsa_write"
fi
NEED_AO_OBJECTS && {
- audiod_errlist_objs="$audiod_errlist_objs ao_write"
+ audiod_objs="$audiod_objs ao_write"
}
if test $HAVE_SAMPLERATE = yes; then
- audiod_errlist_objs="$audiod_errlist_objs resample_filter check_wav"
+ audiod_objs="$audiod_objs resample_filter check_wav"
fi
- audiod_objs="$audiod_errlist_objs"
AC_SUBST(audiod_objs, add_dot_o($audiod_objs))
- enum="$(for i in $audiod_audio_formats; do printf "AUDIO_FORMAT_${i}, " | tr '[a-z]' '[A-Z]'; done)"
- AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMATS_ENUM, $enum NUM_AUDIO_FORMATS,
- enum of audio formats supported by audiod)
names="$(for i in $audiod_audio_formats; do printf \"$i\",' ' ; done)"
AC_DEFINE_UNQUOTED(AUDIOD_AUDIO_FORMAT_ARRAY, $names, array of audio formats supported by audiod)
else
if test $HAVE_OSS = yes -o $HAVE_ALSA = yes; then
build_mixer="yes"
executables="$executables mixer"
- mixer_errlist_objs="mixer exec string fd version"
+ mixer_objs="mixer exec string fd time lsu version"
if test $HAVE_OSS = yes; then
- mixer_errlist_objs="$mixer_errlist_objs oss_mix"
+ mixer_objs="$mixer_objs oss_mix"
fi
if test $HAVE_ALSA = yes; then
- mixer_errlist_objs="$mixer_errlist_objs alsa_mix"
+ mixer_objs="$mixer_objs alsa_mix"
fi
- mixer_objs="$mixer_errlist_objs"
AC_SUBST(mixer_objs, add_dot_o($mixer_objs))
else
build_mixer="no"
if test $HAVE_CURSES = yes; then
build_gui="yes"
executables="$executables gui"
- gui_errlist_objs="
+ gui_objs="
exec
signal
string
fd
gui
gui_theme
+ lsu
time
sched
version
"
- gui_objs="$gui_errlist_objs"
AC_SUBST(gui_objs, add_dot_o($gui_objs))
else
build_gui="no"
AC_MSG_WARN([no curses lib, cannot build para_gui])
fi
######################################################################## filter
-filter_errlist_objs="
+filter_objs="
filter_common
wav_filter
compress_filter
amp_filter
fecdec_filter
fec
+ lsu
version
prebuffer_filter
time
net
sync_filter
"
-NEED_VORBIS_OBJECTS && filter_errlist_objs="$filter_errlist_objs oggdec_filter"
-NEED_SPEEX_OBJECTS && filter_errlist_objs="$filter_errlist_objs spxdec_filter spx_common"
-NEED_OPUS_OBJECTS && filter_errlist_objs="$filter_errlist_objs opusdec_filter opus_common"
-NEED_FLAC_OBJECTS && filter_errlist_objs="$filter_errlist_objs flacdec_filter"
+AS_IF([test $NEED_VORBIS_OBJECTS = yes],
+ [filter_objs="$filter_objs oggdec_filter"])
+AS_IF([test $NEED_SPEEX_OBJECTS = yes],
+ [filter_objs="$filter_objs spxdec_filter spx_common"])
+AS_IF([test $NEED_OPUS_OBJECTS = yes],
+ [filter_objs="$filter_objs opusdec_filter opus_common"])
+AS_IF([test $NEED_FLAC_OBJECTS = yes],
+ [filter_objs="$filter_objs flacdec_filter"])
if test $HAVE_FAAD = yes; then
- filter_errlist_objs="$filter_errlist_objs aacdec_filter"
+ filter_objs="$filter_objs aacdec_filter"
fi
if test $HAVE_MAD = yes; then
- filter_errlist_objs="$filter_errlist_objs mp3dec_filter"
+ filter_objs="$filter_objs mp3dec_filter"
fi
if test $HAVE_SAMPLERATE = yes; then
- filter_errlist_objs="$filter_errlist_objs resample_filter check_wav"
+ filter_objs="$filter_objs resample_filter check_wav"
fi
-filter_objs="$filter_errlist_objs"
-
AC_SUBST(filter_objs, add_dot_o($filter_objs))
########################################################################## recv
-recv_errlist_objs="
+recv_objs="
http_recv
recv_common
recv
mp3_afh
version
"
-NEED_OGG_OBJECTS && recv_errlist_objs="$recv_errlist_objs ogg_afh_common"
-NEED_VORBIS_OBJECTS && recv_errlist_objs="$recv_errlist_objs ogg_afh"
-NEED_SPEEX_OBJECTS && recv_errlist_objs="$recv_errlist_objs spx_afh spx_common"
-NEED_OPUS_OBJECTS && recv_errlist_objs="$recv_errlist_objs opus_afh opus_common"
-NEED_FLAC_OBJECTS && recv_errlist_objs="$recv_errlist_objs flac_afh"
+AS_IF([test $NEED_OGG_OBJECTS = yes], [recv_objs="$recv_objs ogg_afh_common"])
+AS_IF([test $NEED_VORBIS_OBJECTS = yes], [recv_objs="$recv_objs ogg_afh"])
+AS_IF([test $NEED_SPEEX_OBJECTS = yes],
+ [recv_objs="$recv_objs spx_afh spx_common"])
+AS_IF([test $NEED_OPUS_OBJECTS = yes],
+ [recv_objs="$recv_objs opus_afh opus_common"])
+AS_IF([test $NEED_FLAC_OBJECTS = yes], [recv_objs="$recv_objs flac_afh"])
if test $HAVE_FAAD = yes; then
- recv_errlist_objs="$recv_errlist_objs aac_afh"
+ recv_objs="$recv_objs aac_afh mp4"
fi
-recv_objs="$recv_errlist_objs"
AC_SUBST(recv_objs, add_dot_o($recv_objs))
########################################################################### afh
audio_format_handlers="mp3 wma"
-afh_errlist_objs="
+afh_objs="
afh
string
fd
wma_common
version
"
-NEED_OGG_OBJECTS && afh_errlist_objs="$afh_errlist_objs ogg_afh_common"
-NEED_VORBIS_OBJECTS && {
- afh_errlist_objs="$afh_errlist_objs ogg_afh"
+AS_IF([test $NEED_OGG_OBJECTS = yes], [afh_objs="$afh_objs ogg_afh_common"])
+AS_IF([test $NEED_VORBIS_OBJECTS = yes], [
+ afh_objs="$afh_objs ogg_afh"
audio_format_handlers="$audio_format_handlers ogg"
-}
-NEED_SPEEX_OBJECTS && {
- afh_errlist_objs="$afh_errlist_objs spx_afh spx_common"
+])
+AS_IF([test $NEED_SPEEX_OBJECTS = yes], [
+ afh_objs="$afh_objs spx_afh spx_common"
audio_format_handlers="$audio_format_handlers spx"
-}
-NEED_OPUS_OBJECTS && {
- afh_errlist_objs="$afh_errlist_objs opus_afh opus_common"
+])
+AS_IF([test $NEED_OPUS_OBJECTS = yes], [
+ afh_objs="$afh_objs opus_afh opus_common"
audio_format_handlers="$audio_format_handlers opus"
-}
-NEED_FLAC_OBJECTS && {
- afh_errlist_objs="$afh_errlist_objs flac_afh"
+])
+AS_IF([test $NEED_FLAC_OBJECTS = yes], [
+ afh_objs="$afh_objs flac_afh"
audio_format_handlers="$audio_format_handlers flac"
-}
+])
if test $HAVE_FAAD = yes; then
- afh_errlist_objs="$afh_errlist_objs aac_afh"
+ afh_objs="$afh_objs aac_afh mp4"
audio_format_handlers="$audio_format_handlers aac"
fi
-
-afh_objs="$afh_errlist_objs"
-
AC_SUBST(afh_objs, add_dot_o($afh_objs))
########################################################################## play
-play_errlist_objs="
+play_objs="
play
fd
sched
file_write
version
sync_filter
+ lsu
"
-NEED_OGG_OBJECTS && play_errlist_objs="$play_errlist_objs ogg_afh_common"
-NEED_VORBIS_OBJECTS && {
- play_errlist_objs="$play_errlist_objs oggdec_filter ogg_afh"
-}
-NEED_SPEEX_OBJECTS && {
- play_errlist_objs="$play_errlist_objs spxdec_filter spx_afh spx_common"
-}
-NEED_OPUS_OBJECTS &&
- play_errlist_objs="$play_errlist_objs
- opusdec_filter
- opus_afh
- opus_common
- "
-NEED_FLAC_OBJECTS && {
- play_errlist_objs="$play_errlist_objs flacdec_filter flac_afh"
-}
+AS_IF([test $NEED_OGG_OBJECTS = yes], [play_objs="$play_objs ogg_afh_common"])
+AS_IF([test $NEED_VORBIS_OBJECTS = yes],
+ [play_objs="$play_objs oggdec_filter ogg_afh"])
+AS_IF([test $NEED_SPEEX_OBJECTS = yes],
+ [play_objs="$play_objs spxdec_filter spx_afh spx_common"])
+AS_IF([test $NEED_OPUS_OBJECTS = yes],
+ [play_objs="$play_objs opusdec_filter opus_afh opus_common"])
+AS_IF([test $NEED_FLAC_OBJECTS = yes],
+ [play_objs="$play_objs flacdec_filter flac_afh"])
if test $HAVE_FAAD = yes; then
- play_errlist_objs="$play_errlist_objs aac_afh aacdec_filter"
+ play_objs="$play_objs aac_afh aacdec_filter mp4"
fi
if test $HAVE_MAD = yes; then
- play_errlist_objs="$play_errlist_objs mp3dec_filter"
+ play_objs="$play_objs mp3dec_filter"
fi
if test $HAVE_OSS = yes; then
- play_errlist_objs="$play_errlist_objs oss_write"
+ play_objs="$play_objs oss_write"
fi
if test $HAVE_ALSA = yes; then
- play_errlist_objs="$play_errlist_objs alsa_write"
+ play_objs="$play_objs alsa_write"
fi
NEED_AO_OBJECTS && {
- play_errlist_objs="$play_errlist_objs ao_write"
+ play_objs="$play_objs ao_write"
}
if test $HAVE_READLINE = yes; then
- play_errlist_objs="$play_errlist_objs interactive"
+ play_objs="$play_objs interactive"
fi
if test $HAVE_SAMPLERATE = yes; then
- play_errlist_objs="$play_errlist_objs resample_filter check_wav"
+ play_objs="$play_objs resample_filter check_wav"
fi
-
-play_objs="$play_errlist_objs"
AC_SUBST(play_objs, add_dot_o($play_objs))
######################################################################### write
-write_errlist_objs="
+write_objs="
write
write_common
file_write
"
NEED_AO_OBJECTS && {
- write_errlist_objs="$write_errlist_objs ao_write"
+ write_objs="$write_objs ao_write"
}
if test $HAVE_OSS = yes; then
- write_errlist_objs="$write_errlist_objs oss_write"
+ write_objs="$write_objs oss_write"
fi
if test $HAVE_ALSA = yes; then
- write_errlist_objs="$write_errlist_objs alsa_write"
+ write_objs="$write_objs alsa_write"
fi
-write_objs="$write_errlist_objs"
AC_SUBST(write_objs, add_dot_o($write_objs))
######################################################################## audioc
-audioc_errlist_objs="
+audioc_objs="
audioc
string
+ lsu
net
fd
+ time
version
"
if test $HAVE_READLINE = yes; then
- audioc_errlist_objs="$audioc_errlist_objs
+ audioc_objs="$audioc_objs
buffer_tree
interactive
sched
- time
"
fi
-audioc_objs="$audioc_errlist_objs"
AC_SUBST(audioc_objs, add_dot_o($audioc_objs))
-################################################################## status items
-
-status_items="basename status num_played mtime bitrate frequency file_size
-status_flags format score techinfo afs_mode
-attributes_txt decoder_flags audiod_status play_time attributes_bitmap
-offset seconds_total stream_start current_time audiod_uptime image_id
-lyrics_id duration directory lyrics_name image_name path hash channels
-last_played num_chunks chunk_time amplification artist title year album
-comment max_chunk_size"
-
-result=
-for i in $status_items; do
- result="$result SI_$(echo $i | tr 'a-z' 'A-Z'), "
-done
-AC_DEFINE_UNQUOTED(STATUS_ITEM_ENUM, [$result],
- [enum of all status items])
-
-result=
-for i in $status_items; do
- result="$result \"$i\", "
-done
-AC_DEFINE_UNQUOTED(STATUS_ITEM_ARRAY, [$result],
- [char * array of all status items])
AC_DEFINE_UNQUOTED(AUDIO_FORMAT_HANDLERS, "$audio_format_handlers",
[formats supported by para_server and para_afh])
-
AC_SUBST(executables)
AC_OUTPUT
paraslash configuration:
~~~~~~~~~~~~~~~~~~~~~~~~
crypto lib: ${CRYPTOLIB:-[none]}
-unix socket credentials: $have_ucred
readline (interactive CLIs): $HAVE_READLINE
id3 version 2 support: $HAVE_ID3TAG
faad: $HAVE_FAAD
audio format handlers: $audio_format_handlers
+exe: $executables
para_server: $build_server
para_gui: $build_gui
para_mixer: $build_mixer