]> git.tuebingen.mpg.de Git - paraslash.git/commitdiff
build: Rename all_objs -> dep_objs. next
authorAndre Noll <maan@tuebingen.mpg.de>
Sat, 24 Jun 2023 21:10:09 +0000 (23:10 +0200)
committerAndre Noll <maan@tuebingen.mpg.de>
Mon, 18 Mar 2024 17:38:54 +0000 (18:38 +0100)
The old name is misleading since there are additional objects which
correspond to the C files generated by lopsub. Those use different
dependency tracking.

Simplify the code a bit by creating the list in one step.

Makefile.in
Makefile.real
NEWS.md
audiod.c
audiod.h
configure.ac
openssl.c
t/makefile.test

index c618561d4dfeb18ebeb31f93a90ac69e32f84c63..396c8de6b98acbf0fdd9b9d42fe63a72316f2352 100644 (file)
@@ -12,21 +12,26 @@ FLEX := @FLEX@
 BISON := @BISON@
 M4 := @M4@
 LOPSUBGEN := @LOPSUBGEN@
+CRYPTOLIB := @CRYPTOLIB@
 
-executables := @executables@
+NEED_OGG_OBJECTS := @NEED_OGG_OBJECTS@
+NEED_VORBIS_OBJECTS := @NEED_VORBIS_OBJECTS@
+NEED_SPEEX_OBJECTS := @NEED_SPEEX_OBJECTS@
+NEED_OPUS_OBJECTS := @NEED_OPUS_OBJECTS@
+NEED_FLAC_OBJECTS := @NEED_FLAC_OBJECTS@
+NEED_AO_OBJECTS := @NEED_AO_OBJECTS@
 
-recv_objs := @recv_objs@
-filter_objs := @filter_objs@
-client_objs := @client_objs@
-gui_objs := @gui_objs@
-audiod_objs := @audiod_objs@
-audioc_objs := @audioc_objs@
-mixer_objs := @mixer_objs@
-server_objs := @server_objs@
-upgrade_db_objs := @upgrade_db_objs@
-write_objs := @write_objs@
-afh_objs := @afh_objs@
-play_objs := @play_objs@
+HAVE_OSL := @HAVE_OSL@
+HAVE_FAAD := @HAVE_FAAD@
+HAVE_READLINE := @HAVE_READLINE@
+HAVE_FLAC := @HAVE_FLAC@
+HAVE_MAD := @HAVE_MAD@
+HAVE_SAMPLERATE := @HAVE_SAMPLERATE@
+HAVE_AO := @HAVE_AO@
+HAVE_PTHREAD := @HAVE_PTHREAD@
+HAVE_OSS := @HAVE_OSS@
+HAVE_ALSA := @HAVE_ALSA@
+HAVE_CURSES := @HAVE_CURSES@
 
 speex_cppflags := @speex_cppflags@
 opus_cppflags := @opus_cppflags@
index bd2bd9d95fe8356f09e756268340f2f4cad52706..92a5724b3cc6543553dcaf8dbdf6385e4169e41e 100644 (file)
@@ -14,7 +14,6 @@ SEVERITIES := \"debug\",\"info\",\"notice\",\"warning\",\"error\",\"crit\",\"eme
 vardir := /var/paraslash
 mandir := $(datarootdir)/man/man1
 MKDIR_P := mkdir -p
-prefixed_executables := $(addprefix para_, $(executables))
 
 build_date := $(shell date)
 uname_s := $(shell uname -s 2>/dev/null || echo "UNKNOWN_OS")
@@ -35,15 +34,263 @@ m4depdir := $(build_dir)/m4deps
 lls_suite_dir := $(build_dir)/lls
 lls_m4_dir := m4/lls
 test_dir := t
-yy_src_dir = yy
-yy_build_dir = $(build_dir)/yy
+yy_src_dir := yy
+yy_build_dir := $(build_dir)/yy
+
+executables := recv filter audioc write afh play
+ifneq ($(CRYPTOLIB),)
+       ifeq ($(HAVE_OSL),yes)
+       executables += server upgrade_db
+               server_objs := $(addsuffix .o, \
+                       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 \
+               )
+               ifeq ($(CRYPTOLIB),openssl)
+                       server_objs += openssl.o
+               else
+                       server_objs += gcrypt.o
+               endif
+               ifeq ($(NEED_OGG_OBJECTS),yes)
+                       server_objs += ogg_afh_common.o
+               endif
+               ifeq ($(NEED_VORBIS_OBJECTS),yes)
+                       server_objs += ogg_afh.o
+               endif
+               ifeq ($(NEED_SPEEX_OBJECTS),yes)
+                       server_objs += spx_afh.o spx_common.o
+               endif
+               ifeq ($(NEED_OPUS_OBJECTS),yes)
+                       server_objs += opus_afh.o opus_common.o
+               endif
+               ifeq ($(NEED_FLAC_OBJECTS),yes)
+                       server_objs += flac_afh.o
+               endif
+               ifeq ($(HAVE_FAAD),yes)
+                       server_objs += aac_afh.o mp4.o
+               endif
+               upgrade_db_objs := $(addsuffix .o, crypt_common exec fd string \
+                       upgrade_db version base64)
+       endif
+endif
+ifneq ($(CRYPTOLIB),)
+       executables += client audiod
+       client_objs := $(addsuffix .o, \
+               client net string fd lsu sched stdin stdout time sideband client_common \
+               buffer_tree crypt_common base64 version $(CRYPTOLIB) \
+       )
+       ifeq ($(HAVE_READLINE),yes)
+               client_objs += interactive.o
+       endif
+       audiod_objs := $(addsuffix .o, \
+               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 $(CRYPTOLIB) \
+       )
+       audiod_audio_formats := "wma"
+       ifeq ($(NEED_VORBIS_OBJECTS),yes)
+               audiod_objs += oggdec_filter.o
+               audiod_audio_formats += ,"ogg"
+       endif
+       ifeq ($(NEED_SPEEX_OBJECTS),yes)
+               audiod_objs += spxdec_filter.o spx_common.o
+               audiod_audio_formats += ,"spx"
+       endif
+       ifeq ($(NEED_OPUS_OBJECTS),yes)
+               audiod_objs += opusdec_filter.o opus_common.o
+               audiod_audio_formats += ,"opus"
+       endif
+       ifeq ($(NEED_FLAC_OBJECTS),yes)
+               audiod_objs += flacdec_filter.o
+               audiod_audio_formats += ,"flac"
+       endif
+       ifeq ($(HAVE_FAAD),yes)
+               audiod_objs += aacdec_filter.o
+               audiod_audio_formats += ,"aac"
+       endif
+       ifeq ($(HAVE_MAD),yes)
+               audiod_objs += mp3dec_filter.o
+               audiod_audio_formats += ,"mp3"
+       endif
+       ifeq ($(HAVE_OSS),yes)
+               audiod_objs += oss_write.o
+       endif
+       ifeq ($(HAVE_ALSA),yes)
+               audiod_objs += alsa_write.o
+       endif
+       ifeq ($(NEED_AO_OBJECTS),yes)
+               audiod_objs += ao_write.o
+       endif
+       ifeq ($(HAVE_SAMPLERATE),yes)
+               audiod_objs += resample_filter.o check_wav.o
+       endif
+endif
+ifneq ($(HAVE_OSS)-$(HAVE_ALSA),no-no)
+       executables += mixer
+       mixer_objs := $(addsuffix .o, mixer exec string fd time lsu version)
+       ifeq ($(HAVE_OSS),yes)
+               mixer_objs += oss_mix.o
+       endif
+       ifeq ($(HAVE_ALSA),yes)
+               mixer_objs += alsa_mix.o
+       endif
+endif
+ifeq ($(HAVE_CURSES),yes)
+       executables += gui
+       gui_objs := $(addsuffix .o, exec signal string stat ringbuffer fd \
+               gui gui_theme lsu time sched version)
+endif
+filter_objs := $(addsuffix .o, \
+       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 \
+)
+ifeq ($(NEED_VORBIS_OBJECTS),yes)
+       filter_objs += oggdec_filter.o
+endif
+ifeq ($(NEED_SPEEX_OBJECTS),yes)
+       filter_objs += spxdec_filter.o spx_common.o
+endif
+ifeq ($(NEED_OPUS_OBJECTS),yes)
+       filter_objs += opusdec_filter.o opus_common.o
+endif
+ifeq ($(NEED_FLAC_OBJECTS),yes)
+       filter_objs += flacdec_filter.o
+endif
+ifeq ($(HAVE_FAAD),yes)
+       filter_objs += aacdec_filter.o
+endif
+ifeq ($(HAVE_MAD),yes)
+       filter_objs += mp3dec_filter.o
+endif
+ifeq ($(HAVE_SAMPLERATE),yes)
+       filter_objs += resample_filter.o check_wav.o
+endif
+
+recv_objs := $(addsuffix .o, \
+       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 \
+)
+ifeq ($(NEED_OGG_OBJECTS),yes)
+       recv_objs += ogg_afh_common.o
+endif
+ifeq ($(NEED_VORBIS_OBJECTS),yes)
+       recv_objs += ogg_afh.o
+endif
+ifeq ($(NEED_SPEEX_OBJECTS),yes)
+       recv_objs += spx_afh.o spx_common.o
+endif
+ifeq ($(NEED_OPUS_OBJECTS),yes)
+       recv_objs += opus_afh.o opus_common.o
+endif
+ifeq ($(NEED_FLAC_OBJECTS),yes)
+       recv_objs += flac_afh.o
+endif
+ifeq ($(HAVE_FAAD),yes)
+       recv_objs += aac_afh.o mp4.o
+endif
+
+audio_format_handlers := mp3 wma
+afh_objs := $(addsuffix .o, afh string fd mp3_afh afh_common time wma_afh \
+       wma_common version)
+ifeq ($(NEED_OGG_OBJECTS),yes)
+       afh_objs += ogg_afh_common.o
+endif
+ifeq ($(NEED_VORBIS_OBJECTS),yes)
+       afh_objs += ogg_afh.o
+       audio_format_handlers += ogg
+endif
+ifeq ($(NEED_SPEEX_OBJECTS),yes)
+       afh_objs += spx_common.o
+       audio_format_handlers += spx
+endif
+ifeq ($(NEED_OPUS_OBJECTS),yes)
+       afh_objs += opus_afh.o opus_common.o
+       audio_format_handlers += opus
+endif
+ifeq ($(NEED_FLAC_OBJECTS),yes)
+       afh_objs += flac_afh.o
+       audio_format_handlers += flac
+endif
+ifeq ($(HAVE_FAAD),yes)
+       afh_objs += aac_afh.o mp4.o
+       audio_format_handlers += aac
+endif
+
+play_objs := $(addsuffix .o, \
+       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 \
+)
+ifeq ($(NEED_OGG_OBJECTS),yes)
+       play_objs += ogg_afh_common.o
+endif
+ifeq ($(NEED_VORBIS_OBJECTS),yes)
+       play_objs += oggdec_filter.o ogg_afh.o
+endif
+ifeq ($(NEED_SPEEX_OBJECTS),yes)
+       play_objs += spxdec_filter.o spx_afh.o spx_common.o
+endif
+ifeq ($(NEED_OPUS_OBJECTS),yes)
+       play_objs += opusdec_filter.o opus_afh.o opus_common.o
+endif
+ifeq ($(NEED_FLAC_OBJECTS),yes)
+       play_objs += flacdec_filter.o flac_afh.o
+endif
+ifeq ($(HAVE_FAAD),yes)
+       play_objs += aac_afh.o aacdec_filter.o mp4.o
+endif
+ifeq ($(HAVE_MAD),yes)
+       play_objs += mp3dec_filter.o
+endif
+ifeq ($(HAVE_OSS),yes)
+       play_objs += oss_write.o
+endif
+ifeq ($(HAVE_ALSA),yes)
+       play_objs += alsa_write.o
+endif
+ifeq ($(NEED_AO_OBJECTS),yes)
+       play_objs += ao_write.o
+endif
+ifeq ($(HAVE_READLINE),yes)
+       play_objs += interactive.o
+endif
+ifeq ($(HAVE_SAMPLERATE),yes)
+       play_objs += resample_filter.o check_wav.o
+endif
+
+write_objs := $(addsuffix .o, write write_common file_write time fd \
+       string sched stdin buffer_tree check_wav version)
+ifeq ($(NEED_AO_OBJECTS),yes)
+       write_objs += ao_write.o
+endif
+ifeq ($(HAVE_OSS),yes)
+       write_objs += oss_write.o
+endif
+ifeq ($(HAVE_ALSA),yes)
+       write_objs += alsa_write.o
+endif
+
+audioc_objs := $(addsuffix .o, audioc string lsu net fd time version)
+ifeq ($(HAVE_READLINE),yes)
+       audioc_objs += buffer_tree.o interactive.o sched.o
+endif
 
 # sort removes duplicate words, which is all we need here
-all_objs := $(sort $(recv_objs) $(filter_objs) $(client_objs) $(gui_objs) \
+dep_objs := $(sort $(recv_objs) $(filter_objs) $(client_objs) $(gui_objs) \
        $(audiod_objs) $(audioc_objs) $(mixer_objs) $(server_objs) \
-       $(write_objs) $(afh_objs) $(play_objs))
-deps := $(addprefix $(dep_dir)/, $(all_objs:.o=.d))
-deps += $(addprefix $(dep_dir)/, mp.bison.d mp.flex.d)
+       $(write_objs) $(afh_objs) $(play_objs) mp.bison mp.flex)
+deps := $(addprefix $(dep_dir)/, $(dep_objs:.o=.d))
 
 afh_objs += afh.lsg.o
 audioc_objs += audioc.lsg.o
@@ -84,6 +331,7 @@ write_objs := $(addprefix $(object_dir)/, $(write_objs))
 afh_objs := $(addprefix $(object_dir)/, $(afh_objs))
 play_objs := $(addprefix $(object_dir)/, $(play_objs))
 
+prefixed_executables := $(addprefix para_, $(executables))
 man_pages := $(patsubst %, $(man_dir)/%.1, $(prefixed_executables))
 
 autocrap := config.h.in configure
@@ -200,6 +448,10 @@ $(object_dir)/%.o: %.c | $(object_dir)
 OD = $(addsuffix .d, $(addprefix $(dep_dir)/, $(1))) \
        $(addsuffix .o, $(addprefix $(object_dir)/, $(1)))
 
+$(call OD, audiod): \
+       CPPFLAGS += -DAUDIOD_AUDIO_FORMAT_ARRAY='$(audiod_audio_formats)'
+$(call OD, afh command): \
+       CPPFLAGS += -DAUDIO_FORMAT_HANDLERS='"$(audio_format_handlers)"'
 $(call OD, opus%): CPPFLAGS += $(opus_cppflags)
 $(call OD, gui gui%): CPPFLAGS += $(curses_cppflags)
 $(call OD, spx%): CPPFLAGS += $(speex_cppflags)
diff --git a/NEWS.md b/NEWS.md
index 4b718d8a6b396ee143fd7de65d9b49f32f0f0dd4..d5812289640d71c52a60bd850928c72b3c5ba0b8 100644 (file)
--- a/NEWS.md
+++ b/NEWS.md
@@ -1,9 +1,24 @@
 NEWS
 ====
 
-----------------------------------------------
-0.7.3 (to be announced) "weighted correctness"
-----------------------------------------------
+---------------------------------------------
+0.7.4 (to be announced) "genetic contraction"
+---------------------------------------------
+
+Downloads:
+[tarball](./releases/paraslash-git.tar.xz)
+
+-----------------------------------------
+0.7.3 (2024-03-12) "weighted correctness"
+-----------------------------------------
+
+The highlight of this release is the new "ls --admissible=m/foo"
+feature described below. Other user-visible changes include minor
+additions to the "ls" and "select" server commands. The release also
+includes a fair number of cleanups for the crypto code and the file
+descriptor utilities, both without visible effects. Old ssh keys
+and outdated openssl library versions are now deprecated and cause
+warnings.
 
 - Old style PEM keys are now deprecated. They still work but their
   use results in a run-time warning. The removal of PEM key support is
@@ -23,7 +38,8 @@ NEWS
 - Cleanup of the openssl-specific code.
 
 Downloads:
-[tarball](./releases/paraslash-git.tar.xz)
+[tarball](./releases/paraslash-0.7.3.tar.xz),
+[signature](./releases/paraslash-0.7.3.tar.xz.asc)
 
 -------------------------------------
 0.7.2 (2023-03-08) "optical friction"
index 7c223995a9a29cec3c8e8ae5497c3be58655f63c..0fae454c51708a5db51a2833e1fa5fc74d0b72a2 100644 (file)
--- a/audiod.c
+++ b/audiod.c
@@ -46,8 +46,9 @@ static struct lls_parse_result *lpr;
 #define OPT_UINT32_VAL(_name) (lls_uint32_val(0, OPT_RESULT(_name)))
 
 __printf_2_3 void (*para_log)(int, const char*, ...) = daemon_log;
-/** define the array containing all supported audio formats */
-const char *audio_formats[] = {AUDIOD_AUDIO_FORMAT_ARRAY NULL};
+/* Audio formats supported by audiod */
+static const char *audio_formats[] = {AUDIOD_AUDIO_FORMAT_ARRAY};
+#define NUM_AUDIO_FORMATS ARRAY_SIZE(audio_formats)
 
 /** Defines how audiod handles one supported audio format. */
 struct audio_format_info {
index 39beda1bd4223d145fb327f07be4c5e5d4845d94..d5a9da65fde12fb303ddf55958f46a8cff124f12 100644 (file)
--- a/audiod.h
+++ b/audiod.h
@@ -2,13 +2,6 @@
 
 /** \file audiod.h Symbols exported from audiod.c. */
 
-
-/** enum of audio formats supported by para_audiod */
-enum {AUDIOD_AUDIO_FORMATS_ENUM};
-
-/** array of audio format names supported by para_audiod */
-extern const char *audio_formats[];
-
 extern int audiod_status;
 
 /* defined in audiod.c */
index 92560e00ec50b7fa7ae4fcfd7d8966bdca2c63bf..34dcd060a5891a07dc6ea8c62ca53a7209f2a376 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,6 @@ 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])
        HAVE_OPENSSL_THREAD_STOP=yes
        AC_CHECK_DECL([OPENSSL_thread_stop], [],
                [HAVE_OPENSSL_THREAD_STOP=no],
@@ -172,6 +162,7 @@ case "$enable_cryptolib" in
        ;;
 esac
 AC_SUBST(crypto_ldflags)
+AC_SUBST(CRYPTOLIB)
 ########################################################################## iconv
 STASH_FLAGS
 LIBS=
@@ -273,27 +264,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])
@@ -349,7 +339,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])
@@ -381,502 +373,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
-])
index f696cd9e83606bc4e6bdd89d666f0885575f1d9f..13550e7a9f34e1771932d05ef7fea5fed8c109d6 100644 (file)
--- a/openssl.c
+++ b/openssl.c
@@ -54,9 +54,6 @@ void crypt_init(void)
 
 void crypt_shutdown(void)
 {
-#ifdef HAVE_CRYPTO_CLEANUP_ALL_EX_DATA
-       CRYPTO_cleanup_all_ex_data();
-#endif
 #ifdef HAVE_OPENSSL_THREAD_STOP /* openssl-1.1 or later */
        OPENSSL_thread_stop();
 #else /* openssl-1.0 */
index 904c779353bbd5e08dfab8e449e607dead8a622c..1ef3ac696f42a78df6942cccd34958341b9044c6 100644 (file)
@@ -7,7 +7,7 @@ test_options := --executables-dir $(shell pwd)
 test_options += --results-dir $(results_dir)
 test_options += --trash-dir $(trash_dir)
 test_options += --executables "$(prefixed_executables)"
-test_options += --objects "$(basename $(all_objs))"
+test_options += --objects "$(basename $(dep_objs))"
 test_options += --man-dir $(man_dir)
 
 ifdef V