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_PROG_CC
AC_PROG_CPP
+REQUIRE_EXECUTABLE([bison])
+REQUIRE_EXECUTABLE([flex])
+REQUIRE_EXECUTABLE([m4])
+
executables="recv filter audioc write afh play"
########################################################################### osl
STASH_FLAGS
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
+ test "$ac_cv_have_decl_RSA_set0_key" = yes &&
+ AC_DEFINE([HAVE_RSA_SET0_KEY], [1], [openssl >= 1.1])
+
+ 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
#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>
+]], [[
+ 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_ARG_WITH([curses], [])
LIB_SUBST_FLAGS(samplerate)
UNSTASH_FLAGS
######################################################################### server
-if test -n "$CRYPTOLIB" && test $HAVE_OSL = yes; then
+if test -n "$CRYPTOLIB" && test $HAVE_OSL = yes && test -n "$BISON" && \
+ test -n "$FLEX"; then
build_server="yes"
executables="$executables server"
server_errlist_objs="
afs
aft
mood
+ mp
score
attribute
blob
wma_common
sideband
version
+ lsu
"
if test "$CRYPTOLIB" = openssl; then
- server_errlist_objs="$server_errlist_objs crypt"
+ server_errlist_objs="$server_errlist_objs openssl"
else
server_errlist_objs="$server_errlist_objs gcrypt"
fi
net
string
fd
+ lsu
sched
stdin
stdout
version
"
if test "$CRYPTOLIB" = openssl; then
- client_errlist_objs="$client_errlist_objs crypt"
+ client_errlist_objs="$client_errlist_objs openssl"
else
client_errlist_objs="$client_errlist_objs gcrypt"
fi
wmadec_filter
buffer_tree
sync_filter
+ lsu
"
if test "$CRYPTOLIB" = openssl; then
- audiod_errlist_objs="$audiod_errlist_objs crypt"
+ audiod_errlist_objs="$audiod_errlist_objs openssl"
else
audiod_errlist_objs="$audiod_errlist_objs gcrypt"
fi
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_errlist_objs="mixer exec string fd lsu version"
if test $HAVE_OSS = yes; then
mixer_errlist_objs="$mixer_errlist_objs oss_mix"
fi
fd
gui
gui_theme
+ lsu
time
sched
version
amp_filter
fecdec_filter
fec
+ lsu
version
prebuffer_filter
time
file_write
version
sync_filter
+ lsu
"
NEED_OGG_OBJECTS && play_errlist_objs="$play_errlist_objs ogg_afh_common"
NEED_VORBIS_OBJECTS && {
audioc_errlist_objs="
audioc
string
+ lsu
net
fd
version