X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;ds=sidebyside;f=configure.ac;h=850e814f21cbe3601441f3f625a712290b7d3015;hb=refs%2Fheads%2Fpu;hp=c72581118326924a25b5ca9b020316439135d60b;hpb=b142089267ef501e438c3dc77ecf19bead3d4e58;p=paraslash.git diff --git a/configure.ac b/configure.ac index c7258111..9e90ae5d 100644 --- a/configure.ac +++ b/configure.ac @@ -1,11 +1,10 @@ AC_PREREQ([2.61]) AC_INIT([paraslash], [m4_esyscmd_s(./GIT-VERSION-GEN)], - [maan@tuebingen.mpg.de], [], [http://people.tuebingen.mpg.de/maan/paraslash/]) + [maan@tuebingen.mpg.de], [], [https://people.tuebingen.mpg.de/maan/paraslash/]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([Makefile]) -AC_DEFUN([add_dot_o],[$(for i in $@; do printf "$i.o "; done)]) AC_DEFUN([LIB_ARG_WITH], [ AC_ARG_WITH($1-headers, [AS_HELP_STRING(--with-$1-headers=dir, [look for $1 headers in dir])]) @@ -38,6 +37,7 @@ AC_DEFUN([LIB_SUBST_FLAGS], [ 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= @@ -61,7 +61,6 @@ REQUIRE_EXECUTABLE([bison]) REQUIRE_EXECUTABLE([flex]) REQUIRE_EXECUTABLE([m4]) -executables="recv filter audioc write afh play" ########################################################################### osl STASH_FLAGS LIB_ARG_WITH([osl], [-losl]) @@ -82,7 +81,7 @@ 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. Run the following command to download a copy. - git clone git://git.tuebingen.mpg.de/lopsub.git + git clone https://git.tuebingen.mpg.de/lopsub.git Install the library, then run this configure script again. ]) fi @@ -102,18 +101,18 @@ if test $HAVE_OPENSSL = yes; then 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 && + if test "$ac_cv_have_decl_RSA_set0_key" = yes; then 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 ]) - 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]) + 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 + AC_CHECK_LIB([crypto], [OSSL_PARAM_construct_BN], [HAVE_OSSL_PARAM=yes], + [HAVE_OSSL_PARAM=no]) + test $HAVE_OSSL_PARAM = yes && + AC_DEFINE([HAVE_OSSL_PARAM], [1], [openssl >= 3.0]) HAVE_OPENSSL_THREAD_STOP=yes AC_CHECK_DECL([OPENSSL_thread_stop], [], [HAVE_OPENSSL_THREAD_STOP=no], @@ -167,6 +166,7 @@ case "$enable_cryptolib" in ;; esac AC_SUBST(crypto_ldflags) +AC_SUBST(CRYPTOLIB) ########################################################################## iconv STASH_FLAGS LIBS= @@ -268,27 +268,26 @@ AC_CHECK_LIB([FLAC], [FLAC__stream_decoder_init_file], [], HAVE_FLAC=no) 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]) @@ -344,7 +343,9 @@ AC_CHECK_HEADER(ao/ao.h, [], HAVE_AO=no) AC_CHECK_LIB([ao], [ao_initialize], [], HAVE_AO=no) LIB_SUBST_FLAGS(ao) UNSTASH_FLAGS -AC_DEFUN([NEED_AO_OBJECTS], [{ test $HAVE_AO = yes -a $HAVE_PTHREAD = yes; }]) +AS_IF([test $HAVE_AO = yes -a $HAVE_PTHREAD = yes], + [NEED_AO_OBJECTS]=yes, [NEED_AO_OBJECTS=no]) +AC_SUBST([NEED_AO_OBJECTS]) ######################################################################## readline STASH_FLAGS AC_SEARCH_LIBS([tgetent], [tinfo curses terminfo termcap]) @@ -376,502 +377,5 @@ 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 -if test -n "$CRYPTOLIB" && test $HAVE_OSL = yes && test -n "$BISON" && \ - test -n "$FLEX"; then - build_server="yes" - executables="$executables server upgrade_db" - server_errlist_objs=" - server - afh_common - mp3_afh - vss - command - net - string - signal - time - daemon - http_send - close_on_fork - crypt_common - base64 - ipc - dccp_send - fd - user_list - chunk_queue - afs - aft - mood - mp - score - attribute - blob - playlist - sched - acl - send_common - udp_send - color - fec - wma_afh - wma_common - sideband - version - lsu - " - if test "$CRYPTOLIB" = openssl; then - server_errlist_objs="$server_errlist_objs openssl" - 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 mp4" - fi - server_objs="$server_errlist_objs" - AC_SUBST(server_objs, add_dot_o($server_objs)) -else - build_server="no" -fi -############################################################# upgrade_db -upgrade_db_objs=' - crypt_common - exec - fd - string - upgrade_db - version - base64 -' -AC_SUBST(upgrade_db_objs, add_dot_o($upgrade_db_objs)) -############################################################# client -if test -n "$CRYPTOLIB"; then - build_client="yes" - executables="$executables client" - client_errlist_objs=" - client - net - string - fd - lsu - sched - stdin - stdout - time - sideband - client_common - buffer_tree - crypt_common - base64 - version - " - if test "$CRYPTOLIB" = openssl; then - client_errlist_objs="$client_errlist_objs openssl" - else - client_errlist_objs="$client_errlist_objs gcrypt" - fi - if test $HAVE_READLINE = yes; then - client_errlist_objs="$client_errlist_objs interactive" - fi - client_objs="$client_errlist_objs" - AC_SUBST(client_objs, add_dot_o($client_errlist_objs)) -else - build_client="no" -fi -############################################################# audiod -if test -n "$CRYPTOLIB"; then - build_audiod="yes" - executables="$executables audiod" - audiod_audio_formats="wma" - audiod_errlist_objs="$audiod_errlist_objs - audiod - signal - string - daemon - stat - net - crypt_common - base64 - sideband - time - grab_client - filter_common - wav_filter - compress_filter - amp_filter - http_recv - dccp_recv - recv_common - fd - sched - write_common - file_write - audiod_command - fecdec_filter - client_common - udp_recv - color - fec - prebuffer_filter - version - bitstream - imdct - wma_common - wmadec_filter - buffer_tree - sync_filter - lsu - " - if test "$CRYPTOLIB" = openssl; then - audiod_errlist_objs="$audiod_errlist_objs openssl" - else - audiod_errlist_objs="$audiod_errlist_objs gcrypt" - fi - NEED_VORBIS_OBJECTS && { - audiod_errlist_objs="$audiod_errlist_objs oggdec_filter" - audiod_audio_formats="$audiod_audio_formats ogg" - } - NEED_SPEEX_OBJECTS && { - audiod_errlist_objs="$audiod_errlist_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" - audiod_audio_formats="$audiod_audio_formats opus" - } - NEED_FLAC_OBJECTS && { - audiod_errlist_objs="$audiod_errlist_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_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" - fi - if test $HAVE_OSS = yes; then - audiod_errlist_objs="$audiod_errlist_objs oss_write" - fi - if test $HAVE_ALSA = yes; then - audiod_errlist_objs="$audiod_errlist_objs alsa_write" - fi - NEED_AO_OBJECTS && { - audiod_errlist_objs="$audiod_errlist_objs ao_write" - } - if test $HAVE_SAMPLERATE = yes; then - audiod_errlist_objs="$audiod_errlist_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 - build_audiod="no" -fi -########################################################################### mixer -if test $HAVE_OSS = yes -o $HAVE_ALSA = yes; then - build_mixer="yes" - executables="$executables mixer" - mixer_errlist_objs="mixer exec string fd time lsu version" - if test $HAVE_OSS = yes; then - mixer_errlist_objs="$mixer_errlist_objs oss_mix" - fi - if test $HAVE_ALSA = yes; then - mixer_errlist_objs="$mixer_errlist_objs alsa_mix" - fi - mixer_objs="$mixer_errlist_objs" - AC_SUBST(mixer_objs, add_dot_o($mixer_objs)) -else - build_mixer="no" - AC_MSG_WARN([no mixer support]) -fi -########################################################################### gui -if test $HAVE_CURSES = yes; then - build_gui="yes" - executables="$executables gui" - gui_errlist_objs=" - exec - signal - string - stat - ringbuffer - 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_common - wav_filter - compress_filter - filter - string - stdin - stdout - sched - fd - amp_filter - fecdec_filter - fec - lsu - version - prebuffer_filter - time - bitstream - imdct - wma_common - wmadec_filter - buffer_tree - 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" -if test $HAVE_FAAD = yes; then - filter_errlist_objs="$filter_errlist_objs aacdec_filter" -fi -if test $HAVE_MAD = yes; then - filter_errlist_objs="$filter_errlist_objs mp3dec_filter" -fi -if test $HAVE_SAMPLERATE = yes; then - filter_errlist_objs="$filter_errlist_objs resample_filter check_wav" -fi -filter_objs="$filter_errlist_objs" - -AC_SUBST(filter_objs, add_dot_o($filter_objs)) -########################################################################## recv -recv_errlist_objs=" - http_recv - recv_common - recv - time - string - net - dccp_recv - fd - sched - stdout - udp_recv - buffer_tree - afh_recv - afh_common - wma_afh - wma_common - 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" - -if test $HAVE_FAAD = yes; then - recv_errlist_objs="$recv_errlist_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 - string - fd - mp3_afh - afh_common - time - wma_afh - 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" - audio_format_handlers="$audio_format_handlers ogg" -} -NEED_SPEEX_OBJECTS && { - afh_errlist_objs="$afh_errlist_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" - audio_format_handlers="$audio_format_handlers opus" -} -NEED_FLAC_OBJECTS && { - afh_errlist_objs="$afh_errlist_objs flac_afh" - audio_format_handlers="$audio_format_handlers flac" -} -if test $HAVE_FAAD = yes; then - afh_errlist_objs="$afh_errlist_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 - fd - sched - buffer_tree - time - string - net - afh_recv - afh_common - wma_afh - wma_common - mp3_afh - recv_common - udp_recv - http_recv - dccp_recv - filter_common - fec - bitstream - imdct - wav_filter - compress_filter - amp_filter - prebuffer_filter - fecdec_filter - wmadec_filter - write_common - 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" -} -if test $HAVE_FAAD = yes; then - play_errlist_objs="$play_errlist_objs aac_afh aacdec_filter mp4" -fi -if test $HAVE_MAD = yes; then - play_errlist_objs="$play_errlist_objs mp3dec_filter" -fi -if test $HAVE_OSS = yes; then - play_errlist_objs="$play_errlist_objs oss_write" -fi -if test $HAVE_ALSA = yes; then - play_errlist_objs="$play_errlist_objs alsa_write" -fi -NEED_AO_OBJECTS && { - play_errlist_objs="$play_errlist_objs ao_write" -} -if test $HAVE_READLINE = yes; then - play_errlist_objs="$play_errlist_objs interactive" -fi -if test $HAVE_SAMPLERATE = yes; then - play_errlist_objs="$play_errlist_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 - write_common - file_write - time - fd - string - sched - stdin - buffer_tree - check_wav - version -" - -NEED_AO_OBJECTS && { - write_errlist_objs="$write_errlist_objs ao_write" -} -if test $HAVE_OSS = yes; then - write_errlist_objs="$write_errlist_objs oss_write" -fi -if test $HAVE_ALSA = yes; then - write_errlist_objs="$write_errlist_objs alsa_write" -fi -write_objs="$write_errlist_objs" -AC_SUBST(write_objs, add_dot_o($write_objs)) -######################################################################## audioc -audioc_errlist_objs=" - audioc - string - lsu - net - fd - time - version -" -if test $HAVE_READLINE = yes; then - audioc_errlist_objs="$audioc_errlist_objs - buffer_tree - interactive - sched - " -fi -audioc_objs="$audioc_errlist_objs" -AC_SUBST(audioc_objs, add_dot_o($audioc_objs)) - -AC_DEFINE_UNQUOTED(AUDIO_FORMAT_HANDLERS, "$audio_format_handlers", - [formats supported by para_server and para_afh]) -AC_SUBST(executables) AC_OUTPUT -AC_MSG_NOTICE([ -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 -para_client: $build_client -para_audiod: $build_audiod -])