AC_CHECK_LIB([osl], [osl_open_table], [], [HAVE_OSL=no])
LIB_SUBST_FLAGS(osl)
UNSTASH_FLAGS
-########################################################################### crypto
+######################################################################## openssl
+STASH_FLAGS
+HAVE_OPENSSL=yes
+LIB_ARG_WITH([openssl], [-lssl -lcrypto])
+AC_CHECK_HEADER(openssl/ssl.h, [], [HAVE_OPENSSL=no])
+AC_CHECK_LIB([crypto], [RAND_bytes], [], [HAVE_OPENSSL=no])
+LIB_SUBST_FLAGS(openssl)
+UNSTASH_FLAGS
+######################################################################### gcrypt
+STASH_FLAGS
+HAVE_GCRYPT=yes
+LIB_ARG_WITH([gcrypt], [-lgcrypt])
+AC_CHECK_HEADER(gcrypt.h, [], [HAVE_GCRYPT=no])
+AC_CHECK_LIB([gcrypt], [gcry_randomize], [], [HAVE_GCRYPT=no])
+LIB_SUBST_FLAGS(gcrypt)
+UNSTASH_FLAGS
+######################################################################### crypto
AC_ARG_ENABLE(cryptolib, [AS_HELP_STRING(--enable-cryptolib=lib, [
Force using crypto library "lib". This package requires either
openssl or libgcrypt being installed. Possible values for "lib"
openssl is tried first. If openssl was not found, gcrypt is
tried next.])])
+CRYPTOLIB="$enable_cryptolib"
case "$enable_cryptolib" in
- "openssl") check_openssl="yes"; check_gcrypt="no";;
- "gcrypt") check_openssl="no"; check_gcrypt="yes";;
- "") check_openssl="yes"; check_gcrypt="yes";;
- *) AC_MSG_ERROR([invalid value "$enable_cryptolib" for --enable-cryptolib]);;
-esac
-###################################################################### openssl
-if test "$check_openssl" = "yes"; then
- OLD_CPPFLAGS="$CPPFLAGS"
- OLD_LDFLAGS="$LDFLAGS"
- OLD_LIBS="$LIBS"
- have_openssl="yes"
- AC_ARG_WITH(openssl_headers, [AS_HELP_STRING(--with-openssl-headers=dir,
- [look for openssl headers also in dir])])
- if test -n "$with_openssl_headers"; then
- openssl_cppflags="-I$with_openssl_headers"
- CPPFLAGS="$CPPFLAGS $openssl_cppflags"
- fi
- AC_ARG_WITH(openssl_libs, [AS_HELP_STRING(--with-openssl-libs=dir,
- [look for openssl libraries also in dir])])
- if test -n "$with_openssl_libs"; then
- openssl_libs="-L$with_openssl_libs"
- LDFLAGS="$LDFLAGS $openssl_libs"
+"openssl")
+ test $HAVE_OPENSSL = no && AC_MSG_ERROR(openssl not found)
+ crypto_ldflags="$openssl_ldflags"
+ ;;
+"gcrypt")
+ test $HAVE_GCRYPT = no && AC_MSG_ERROR(gcrypt not found)
+ crypto_ldflags="$gcrypt_ldflags"
+ ;;
+"")
+ crypto_ldflags=
+ if test $HAVE_GCRYPT = yes; then
+ CRYPTOLIB=gcrypt
+ crypto_ldflags="$gcrypt_ldflags"
fi
- AC_CHECK_HEADER(openssl/ssl.h, [], [have_openssl="no"])
- AC_CHECK_LIB([crypto], [RAND_bytes], [], [have_openssl="no"])
- if test "$have_openssl" = "no" -a -z "$with_openssl_headers$with_openssl_libs"; then
- # try harder: openssl is sometimes installed in /usr/local/ssl
- openssl_cppflags="-I/usr/local/ssl/include"
- CPPFLAGS="$CPPFLAGS $openssl_cppflags"
- openssl_libs="-L/usr/local/ssl/lib"
- LDFLAGS="$LDFLAGS $openssl_libs"
- # clear cache
- unset ac_cv_header_openssl_ssl_h 2> /dev/null
- unset ac_cv_lib_crypto_RAND_bytes 2> /dev/null
- AC_CHECK_HEADER(openssl/ssl.h, [have_openssl="yes"], [])
- if test "$have_openssl" = "yes"; then
- AC_CHECK_LIB([crypto], [RAND_bytes], [], [have_openssl="no"])
- fi
+ if test $HAVE_OPENSSL = yes; then
+ CRYPTOLIB=openssl
+ crypto_ldflags="$openssl_ldflags"
fi
- if test "$have_openssl" = "yes"; then
- AC_DEFINE(HAVE_OPENSSL, 1, [define to 1 to turn on openssl support])
- AC_SUBST(openssl_cppflags)
- openssl_ldflags="$openssl_libs -lssl -lcrypto"
- AC_SUBST(openssl_ldflags)
-
- check_gcrypt="no"
- else
- AC_MSG_WARN([openssl libraries not found])
- fi
- CPPFLAGS="$OLD_CPPFLAGS"
- LDFLAGS="$OLD_LDFLAGS"
- LIBS="$OLD_LIBS"
-else
- have_openssl="no"
-fi
-########################################################################### gcrypt
-if test "$check_gcrypt" = "yes"; then
- OLD_CPPFLAGS="$CPPFLAGS"
- OLD_LDFLAGS="$LDFLAGS"
- OLD_LIBS="$LIBS"
- have_gcrypt="yes"
- AC_ARG_WITH(gcrypt_headers, [AS_HELP_STRING(--with-gcrypt-headers=dir,
- [look for gcrypt headers also in dir])])
- if test -n "$with_gcrypt_headers"; then
- gcrypt_cppflags="-I$with_gcrypt_headers"
- CPPFLAGS="$CPPFLAGS $gcrypt_cppflags"
- fi
- AC_ARG_WITH(gcrypt_libs, [AS_HELP_STRING(--with-gcrypt-libs=dir,
- [look for libgcrypt also in dir])])
- if test -n "$with_gcrypt_libs"; then
- gcrypt_libs="-L$with_gcrypt_libs"
- LDFLAGS="$LDFLAGS $gcrypt_libs"
- fi
- AC_CHECK_HEADER(gcrypt.h, [], [have_gcrypt="no"])
- AC_CHECK_LIB([gcrypt], [gcry_randomize], [], [have_gcrypt="no"])
- if test "$have_gcrypt" = "yes"; then
- AC_DEFINE(HAVE_GCRYPT, 1, [define to 1 to turn on gcrypt support])
- AC_SUBST(gcrypt_cppflags)
- gcrypt_ldflags="$gcrypt_libs -lgcrypt"
- AC_SUBST(gcrypt_ldflags)
- else
- AC_MSG_WARN([gcrypt library not found])
- fi
- CPPFLAGS="$OLD_CPPFLAGS"
- LDFLAGS="$OLD_LDFLAGS"
- LIBS="$OLD_LIBS"
-else
- have_gcrypt="no"
-fi
+ ;;
+*)
+ AC_MSG_ERROR([invalid value "$enable_cryptolib" for --enable-cryptolib])
+ ;;
+esac
+AC_SUBST(crypto_ldflags)
########################################################################### libsocket
AC_CHECK_LIB([c], [socket],
[socket_ldlflags=],
AC_CHECK_LIB([speex], [speex_decoder_init], [], [HAVE_SPEEX=no])
LIB_SUBST_FLAGS(speex)
UNSTASH_FLAGS
+######################################################################### opus
+STASH_FLAGS
+LIB_ARG_WITH([opus], [-lopus])
+HAVE_OPUS=yes
+AC_CHECK_HEADERS([opus/opus.h], [], [HAVE_OPUS=no])
+AC_CHECK_LIB([opus], [opus_multistream_decode], [], [HAVE_OPUS=no])
+LIB_SUBST_FLAGS(opus)
+UNSTASH_FLAGS
+# some helper functions for codecs which use the ogg container format
AC_DEFUN([NEED_OGG_OBJECTS], [{
test "$HAVE_OGG" = 'yes' -a \( \
"$HAVE_VORBIS" = 'yes' \
-o "$HAVE_SPEEX" = 'yes' \
+ -o "$HAVE_OPUS" = 'yes' \
\)
}])
AC_DEFUN([NEED_VORBIS_OBJECTS], [{
AC_DEFUN([NEED_SPEEX_OBJECTS], [{
test "$HAVE_OGG" = 'yes' -a "$HAVE_SPEEX" = 'yes'
}])
-####################################################### ogg/vorbis/speex/opus
-AC_ARG_WITH(opus_headers, [AS_HELP_STRING(--with-opus-headers=dir,
- [look for opus headers also in dir])])
-AC_ARG_WITH(opus_libs, [AS_HELP_STRING(--with-opus-libs=dir,
- [look for opus libs also in dir])])
-
-have_opus="yes"
-if test "$HAVE_OGG" = 'yes'; then
-
- # opus
- OLD_CPPFLAGS="$CPPFLAGS"
- OLD_LDFLAGS="$LDFLAGS"
- OLD_LIBS="$LIBS"
- if test -n "$with_opus_headers"; then
- opus_cppflags="-I$with_opus_headers"
- CPPFLAGS="$CPPFLAGS $opus_cppflags"
- fi
- if test -n "$with_opus_libs"; then
- opus_libs="-L$with_opus_libs"
- LDFLAGS="$LDFLAGS $opus_libs"
- fi
- AC_CHECK_LIB([opus], [opus_multistream_decode], [], [ have_opus="no" ])
- AC_CHECK_HEADERS([opus/opus.h], [], [ have_opus="no" ])
- CPPFLAGS="$OLD_CPPFLAGS"
- LDFLAGS="$OLD_LDFLAGS"
- LIBS="$OLD_LIBS"
-else
- AC_MSG_WARN([vorbis/speex/opus depend on libogg, which was not detected])
- have_opus="no"
-fi
-
-if test "$have_opus" = "yes"; then
- AC_DEFINE(HAVE_OPUS, 1, define to 1 to turn on ogg/opus support)
- AC_SUBST(opus_cppflags)
- opus_ldflags="$opus_libs -lopus"
- AC_SUBST(opus_ldflags)
- audio_format_handlers="$audio_format_handlers opus"
-else
- AC_MSG_WARN([no ogg/opus $msg])
-fi
+AC_DEFUN([NEED_OPUS_OBJECTS], [{
+ test "$HAVE_OGG" = 'yes' -a "$HAVE_OPUS" = 'yes'
+}])
########################################################################### faad
have_faad=yes
OLD_CPPFLAGS="$CPPFLAGS"
LDFLAGS="$OLD_LDFLAGS"
LIBS="$OLD_LIBS"
######################################################################### server
-if test \( "$have_openssl" = "yes" -o "$have_gcrypt" = "yes" \) \
- -a "$HAVE_OSL" = "yes" ; then
-
+if test -n "$CRYPTOLIB" && test $HAVE_OSL = yes; then
build_server="yes"
executables="$executables server"
server_cmdline_objs="server"
version
ggo
"
- if test "$have_openssl" = "yes"; then
+ if test "$CRYPTOLIB" = openssl; then
server_errlist_objs="$server_errlist_objs crypt"
- fi
- if test "$have_gcrypt" = "yes"; then
+ 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"
- if test "$have_opus" = "yes"; then
- server_errlist_objs="$server_errlist_objs opus_afh opus_common"
- fi
+ NEED_OPUS_OBJECTS() && server_errlist_objs="$server_errlist_objs opus_afh opus_common"
if test "$have_faad" = "yes"; then
server_errlist_objs="$server_errlist_objs aac_afh aac_common"
fi
build_server="no"
fi
############################################################# client
-if test "$have_openssl" = "yes" -o "$have_gcrypt" = "yes"; then
+if test -n "$CRYPTOLIB"; then
build_client="yes"
executables="$executables client"
client_cmdline_objs="client"
version
ggo
"
- if test "$have_openssl" = "yes"; then
+ if test "$CRYPTOLIB" = openssl; then
client_errlist_objs="$client_errlist_objs crypt"
- fi
- if test "$have_gcrypt" = "yes"; then
+ else
client_errlist_objs="$client_errlist_objs gcrypt"
fi
if test "$have_readline" = "yes"; then
build_client="no"
fi
############################################################# audiod
-if test "$have_openssl" = "yes" -o "$have_gcrypt" = "yes"; then
+if test -n "$CRYPTOLIB"; then
build_audiod="yes"
executables="$executables audiod"
audiod_audio_formats="wma"
buffer_tree
sync_filter
"
- if test "$have_openssl" = "yes"; then
+ if test "$CRYPTOLIB" = openssl; then
audiod_errlist_objs="$audiod_errlist_objs crypt"
- fi
- if test "$have_gcrypt" = "yes"; then
+ else
audiod_errlist_objs="$audiod_errlist_objs gcrypt"
fi
if test "$have_core_audio" = "yes"; then
audiod_errlist_objs="$audiod_errlist_objs spxdec_filter spx_common"
audiod_audio_formats="$audiod_audio_formats spx"
}
- if test "$have_opus" = "yes"; then
+ NEED_OPUS_OBJECTS && {
audiod_errlist_objs="$audiod_errlist_objs opusdec_filter opus_common"
audiod_audio_formats="$audiod_audio_formats opus"
- fi
+ }
if test "$have_faad" = "yes"; then
audiod_errlist_objs="$audiod_errlist_objs aacdec_filter aac_common"
audiod_audio_formats="$audiod_audio_formats aac"
filters="$filters spxdec"
filter_errlist_objs="$filter_errlist_objs spxdec_filter spx_common"
}
-if test "$have_opus" = "yes"; then
+NEED_OPUS_OBJECTS && {
filters="$filters opusdec"
filter_errlist_objs="$filter_errlist_objs opusdec_filter opus_common"
-fi
+}
if test "$have_faad" = "yes"; then
filter_errlist_objs="$filter_errlist_objs aacdec_filter aac_common"
filters="$filters aacdec"
mp3_afh
version
"
-if NEED_OGG_OBJECTS || test "$have_opus" = 'yes'; then
- recv_errlist_objs="$recv_errlist_objs ogg_afh_common"
-fi
+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"
-if test "$have_opus" = "yes"; then
- recv_errlist_objs="$recv_errlist_objs opus_afh opus_common"
-fi
+NEED_OPUS_OBJECTS && recv_errlist_objs="$recv_errlist_objs opus_afh opus_common"
+
if test "$have_faad" = "yes"; then
recv_errlist_objs="$recv_errlist_objs aac_afh aac_common"
fi
version
ggo
"
-if NEED_OGG_OBJECTS || test "$have_opus" = 'yes'; then
- afh_errlist_objs="$afh_errlist_objs ogg_afh_common"
-fi
+NEED_OGG_OBJECTS && afh_errlist_objs="$afh_errlist_objs ogg_afh_common"
NEED_VORBIS_OBJECTS && {
afh_errlist_objs="$afh_errlist_objs ogg_afh"
audio_format_handlers="$audio_format_handlers ogg"
afh_errlist_objs="$afh_errlist_objs spx_afh spx_common"
audio_format_handlers="$audio_format_handlers spx"
}
-if test "$have_opus" = "yes"; then
+NEED_OPUS_OBJECTS && {
afh_errlist_objs="$afh_errlist_objs opus_afh opus_common"
audio_format_handlers="$audio_format_handlers opus"
-fi
+}
if test "$have_faad" = "yes"; then
afh_errlist_objs="$afh_errlist_objs aac_common aac_afh"
audio_format_handlers="$audio_format_handlers aac"
play_errlist_objs="$play_errlist_objs osx_write ipc"
play_cmdline_objs="$play_cmdline_objs osx_write"
fi
-if NEED_OGG_OBJECTS || test "$have_opus" = 'yes'; then
- play_errlist_objs="$play_errlist_objs ogg_afh_common"
-fi
+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"
}
-if test "$have_opus" = "yes"; then
- play_errlist_objs="$play_errlist_objs opusdec_filter opus_afh opus_common"
-fi
+NEED_OPUS_OBJECTS &&
+ play_errlist_objs="$play_errlist_objs
+ opusdec_filter
+ opus_afh
+ opus_common
+ "
if test "$have_faad" = "yes"; then
play_errlist_objs="$play_errlist_objs aacdec_filter aac_afh aac_common"
fi
AC_MSG_NOTICE([
paraslash configuration:
~~~~~~~~~~~~~~~~~~~~~~~~
+crypto lib: ${CRYPTOLIB:-[none]}
unix socket credentials: $have_ucred
readline (interactive CLIs): $have_readline
audio formats handlers: $audio_format_handlers