]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - configure.ac
Merge topic branch t/sf_float into pu
[paraslash.git] / configure.ac
index efcd228816a382111ee367732c48e0b3d191ec3e..2bba8129b92a834a998a1aea84fee9b475e3cdde 100644 (file)
@@ -5,7 +5,6 @@ AC_INIT([paraslash], [m4_esyscmd_s(./GIT-VERSION-GEN)],
 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])
@@ -110,15 +109,10 @@ if test $HAVE_OPENSSL = yes; then
        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])
+       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],
@@ -172,6 +166,7 @@ case "$enable_cryptolib" in
        ;;
 esac
 AC_SUBST(crypto_ldflags)
+AC_SUBST(CRYPTOLIB)
 ########################################################################## iconv
 STASH_FLAGS
 LIBS=
@@ -280,14 +275,19 @@ AS_IF([test "$HAVE_OGG" = 'yes' -a \( \
                -o "$HAVE_OPUS" = 'yes' \
                -o "$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])
@@ -343,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])
@@ -375,486 +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; then
-       build_server="yes"
-       executables="$executables server upgrade_db"
-       server_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_objs="$server_objs openssl"
-       else
-               server_objs="$server_objs gcrypt"
-       fi
-       AS_IF([test $NEED_OGG_OBJECTS = yes],
-               [server_objs="$server_objs ogg_afh_common"])
-       AS_IF([test $NEED_VORBIS_OBJECTS = yes],
-               [server_objs="$server_objs ogg_afh"])
-       AS_IF([test $NEED_SPEEX_OBJECTS = yes],
-               [server_objs="$server_objs spx_afh spx_common"])
-       AS_IF([test $NEED_OPUS_OBJECTS = yes],
-               [server_objs="$server_objs opus_afh opus_common"])
-       AS_IF([test $NEED_FLAC_OBJECTS = yes],
-               [server_objs="$server_objs flac_afh"])
-       if test $HAVE_FAAD = yes; then
-               server_objs="$server_objs aac_afh mp4"
-       fi
-       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_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_objs="$client_objs openssl"
-       else
-               client_objs="$client_objs gcrypt"
-       fi
-       if test $HAVE_READLINE = yes; then
-               client_objs="$client_objs interactive"
-       fi
-       AC_SUBST(client_objs, add_dot_o($client_objs))
-else
-       build_client="no"
-fi
-############################################################# audiod
-if test -n "$CRYPTOLIB"; then
-       build_audiod="yes"
-       executables="$executables audiod"
-       audiod_audio_formats="wma"
-       audiod_objs="$audiod_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_objs="$audiod_objs openssl"
-       else
-               audiod_objs="$audiod_objs gcrypt"
-       fi
-       AS_IF([test $NEED_VORBIS_OBJECTS = yes], [
-               audiod_objs="$audiod_objs oggdec_filter"
-               audiod_audio_formats="$audiod_audio_formats ogg"
-       ])
-       AS_IF([test $NEED_SPEEX_OBJECTS = yes], [
-               audiod_objs="$audiod_objs spxdec_filter spx_common"
-               audiod_audio_formats="$audiod_audio_formats spx"
-       ])
-       AS_IF([test $NEED_OPUS_OBJECTS = yes], [
-               audiod_objs="$audiod_objs opusdec_filter opus_common"
-               audiod_audio_formats="$audiod_audio_formats opus"
-       ])
-       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_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_objs="$audiod_objs mp3dec_filter"
-       fi
-       if test $HAVE_OSS = yes; then
-               audiod_objs="$audiod_objs oss_write"
-       fi
-       if test $HAVE_ALSA = yes; then
-               audiod_objs="$audiod_objs alsa_write"
-       fi
-       NEED_AO_OBJECTS && {
-               audiod_objs="$audiod_objs ao_write"
-       }
-       if test $HAVE_SAMPLERATE = yes; then
-               audiod_objs="$audiod_objs resample_filter check_wav"
-       fi
-       AC_SUBST(audiod_objs, add_dot_o($audiod_objs))
-
-       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_objs="mixer exec string fd time lsu version"
-       if test $HAVE_OSS = yes; then
-               mixer_objs="$mixer_objs oss_mix"
-       fi
-       if test $HAVE_ALSA = yes; then
-               mixer_objs="$mixer_objs alsa_mix"
-       fi
-       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_objs="
-               exec
-               signal
-               string
-               stat
-               ringbuffer
-               fd
-               gui
-               gui_theme
-               lsu
-               time
-               sched
-               version
-       "
-       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_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
-"
-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_objs="$filter_objs aacdec_filter"
-fi
-if test $HAVE_MAD = yes; then
-       filter_objs="$filter_objs mp3dec_filter"
-fi
-if test $HAVE_SAMPLERATE = yes; then
-       filter_objs="$filter_objs resample_filter check_wav"
-fi
-AC_SUBST(filter_objs, add_dot_o($filter_objs))
-########################################################################## recv
-recv_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
-"
-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_objs="$recv_objs aac_afh mp4"
-fi
-AC_SUBST(recv_objs, add_dot_o($recv_objs))
-########################################################################### afh
-audio_format_handlers="mp3 wma"
-afh_objs="
-       afh
-       string
-       fd
-       mp3_afh
-       afh_common
-       time
-       wma_afh
-       wma_common
-       version
-"
-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"
-])
-AS_IF([test $NEED_SPEEX_OBJECTS = yes], [
-       afh_objs="$afh_objs spx_afh spx_common"
-       audio_format_handlers="$audio_format_handlers spx"
-])
-AS_IF([test $NEED_OPUS_OBJECTS = yes], [
-       afh_objs="$afh_objs opus_afh opus_common"
-       audio_format_handlers="$audio_format_handlers opus"
-])
-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_objs="$afh_objs aac_afh mp4"
-       audio_format_handlers="$audio_format_handlers aac"
-fi
-AC_SUBST(afh_objs, add_dot_o($afh_objs))
-########################################################################## play
-play_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
-"
-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_objs="$play_objs aac_afh aacdec_filter mp4"
-fi
-if test $HAVE_MAD = yes; then
-       play_objs="$play_objs mp3dec_filter"
-fi
-if test $HAVE_OSS = yes; then
-       play_objs="$play_objs oss_write"
-fi
-if test $HAVE_ALSA = yes; then
-       play_objs="$play_objs alsa_write"
-fi
-NEED_AO_OBJECTS && {
-       play_objs="$play_objs ao_write"
-}
-if test $HAVE_READLINE = yes; then
-       play_objs="$play_objs interactive"
-fi
-if test $HAVE_SAMPLERATE = yes; then
-       play_objs="$play_objs resample_filter check_wav"
-fi
-AC_SUBST(play_objs, add_dot_o($play_objs))
-######################################################################### write
-write_objs="
-       write
-       write_common
-       file_write
-       time
-       fd
-       string
-       sched
-       stdin
-       buffer_tree
-       check_wav
-       version
-"
-
-NEED_AO_OBJECTS && {
-       write_objs="$write_objs ao_write"
-}
-if test $HAVE_OSS = yes; then
-       write_objs="$write_objs oss_write"
-fi
-if test $HAVE_ALSA = yes; then
-       write_objs="$write_objs alsa_write"
-fi
-AC_SUBST(write_objs, add_dot_o($write_objs))
-######################################################################## audioc
-audioc_objs="
-       audioc
-       string
-       lsu
-       net
-       fd
-       time
-       version
-"
-if test $HAVE_READLINE = yes; then
-       audioc_objs="$audioc_objs
-               buffer_tree
-               interactive
-               sched
-       "
-fi
-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]}
-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
-])