Correct mistakes in configure.ac whereby it would interpret a --without-<option> as a --with<option>. Improve some of the library hints.
This commit is contained in:
@@ -0,0 +1,207 @@
|
||||
#!/bin/sh
|
||||
|
||||
# These tests check that the requested configuration can be made and can be built
|
||||
# In many cases it will check that the Shairport Sync configuration string
|
||||
# contains or omits the relevant string
|
||||
# If doesn't check for the presence or absence of products except
|
||||
# when it checks for the configuration string
|
||||
|
||||
# To get it to work first time, and assuming you have already build Shairport Sync according to the standard
|
||||
# you need the following extra libraries in Linux:
|
||||
# libmbedtls-dev libpolarssl-dev libjack-dev libsndio-dev libao-dev libpulse-dev libsndfile1-dev libavahi-compat-libdnssd-dev libglib2.0-dev libmosquitto-dev
|
||||
# Also, you'll need to build the ALAC library -- see https://github.com/mikebrady/alac.
|
||||
|
||||
# At present, it is Linux-only.
|
||||
check_configuration_string_includes()
|
||||
{
|
||||
echo -n " checking configuration string includes \"$1\"..."
|
||||
./shairport-sync -V | grep -q $1
|
||||
if [ "$?" -eq "1" ] ; then
|
||||
echo "\nError: \"$1\" not included in configuration string. See \"../configure_test.log\"."
|
||||
exit 1
|
||||
fi
|
||||
echo -n "ok"
|
||||
}
|
||||
|
||||
check_configuration_string_excludes()
|
||||
{
|
||||
echo -n " checking configuration string excludes \"$1\"..."
|
||||
./shairport-sync -V | grep -q $1
|
||||
if [ "$?" -eq "0" ] ; then
|
||||
echo "\nError: \"$1\" is unexpectedly included in the configuration string. See \"../configure_test.log\"."
|
||||
exit 1
|
||||
fi
|
||||
echo -n "ok"
|
||||
}
|
||||
check_for_success()
|
||||
{
|
||||
if [ "$2" = "x" ] ; then
|
||||
A2=""
|
||||
else
|
||||
A2="$2"
|
||||
fi
|
||||
if [ "$3" = "x" ] ; then
|
||||
A3=""
|
||||
else
|
||||
A3="$3"
|
||||
fi
|
||||
if [ "$4" = "x" ] ; then
|
||||
A4=""
|
||||
else
|
||||
A4="$4"
|
||||
fi
|
||||
if [ "$5" = "x" ] ; then
|
||||
A5=""
|
||||
else
|
||||
A5=$5
|
||||
fi
|
||||
if [ "$1" = "x" -o "$1" = "x$A2" ] ; then
|
||||
TESTCOUNT="$(expr "$TESTCOUNT" '+' '1')"
|
||||
echo -n "Checking \"$A2\": "
|
||||
echo -n "configuring..."
|
||||
echo "./configure $A3 $A2" > $LOGFILE
|
||||
./configure $A3 $A2 >> $LOGFILE 2>&1
|
||||
if [ "$?" -eq "0" ] ; then
|
||||
echo -n "ok making..."
|
||||
echo "make clean" >> $LOGFILE
|
||||
make clean >> $LOGFILE 2>&1
|
||||
echo "make -j $((`nproc`*2))" >> $LOGFILE
|
||||
make -j $((`nproc`*2)) >> $LOGFILE 2>&1
|
||||
if [ "$?" -ne "0" ] ; then
|
||||
echo "\nError at build step with arg \"$A2\". See \"../configure_test.log\"."
|
||||
exit 1
|
||||
fi
|
||||
echo -n "ok"
|
||||
else
|
||||
echo "\nError at configure step with arg \"$A2\". See \"../configure_test.log\"."
|
||||
exit 1
|
||||
fi
|
||||
if [ "$A4" != "" ] ; then
|
||||
check_configuration_string_includes $A4
|
||||
fi
|
||||
if [ "$A5" != "" ] ; then
|
||||
check_configuration_string_excludes $A5
|
||||
fi
|
||||
echo "."
|
||||
fi
|
||||
}
|
||||
|
||||
check_for_configuration_fail()
|
||||
{
|
||||
if [ "$1" = "x" -o "$1" = "x$2" ] ; then
|
||||
echo -n "Checking \"$2\" fails during configuration... "
|
||||
TESTCOUNT="$(expr "$TESTCOUNT" '+' '1')"
|
||||
./configure $3 $2 > $LOGFILE 2>&1
|
||||
if [ "$?" -eq "0" ] ; then
|
||||
echo "\nError: configuration did not fail with arg \"$2\". See \"../configure_test.log\"."
|
||||
exit 1
|
||||
fi
|
||||
echo " done."
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
echo -n "Preparing..."
|
||||
LOGFILE=configure_test.log
|
||||
CWD=`pwd`
|
||||
cd ..
|
||||
autoreconf -fi > $LOGFILE 2>&1
|
||||
if [ "$?" -ne "0" ] ; then
|
||||
echo " error running \"autoreconf -fi\" -- see \"../configure_test.log\"."
|
||||
exit 1
|
||||
fi
|
||||
echo "ok."
|
||||
TESTCOUNT=0
|
||||
check_for_success x$1 --with-pkg-config --with-ssl=mbedtls
|
||||
check_for_success x$1 --with-ssl=openssl x OpenSSL
|
||||
check_for_success x$1 --with-ssl=mbedtls x mbedTLS
|
||||
check_for_success x$1 --with-ssl=polarssl x PolarSSL
|
||||
check_for_configuration_fail x$1 --with-ssl
|
||||
check_for_configuration_fail x$1 --without-ssl=openssl
|
||||
check_for_configuration_fail x$1 --without-ssl=mbedtls
|
||||
check_for_configuration_fail x$1 --without-ssl=polarssl
|
||||
check_for_configuration_fail x$1
|
||||
check_for_success x$1 --with-alsa --with-ssl=mbedtls ALSA
|
||||
check_for_success x$1 --without-alsa --with-ssl=mbedtls x ALSA
|
||||
|
||||
check_for_success x$1 --with-dummy --with-ssl=mbedtls dummy
|
||||
check_for_success x$1 --without-dummy --with-ssl=mbedtls x dummy
|
||||
|
||||
check_for_success x$1 --with-stdout --with-ssl=mbedtls stdout
|
||||
check_for_success x$1 --without-stdout --with-ssl=mbedtls x stdout
|
||||
|
||||
check_for_success x$1 --with-pipe --with-ssl=mbedtls pipe
|
||||
check_for_success x$1 --without-pipe --with-ssl=mbedtls x pipe
|
||||
|
||||
check_for_success x$1 --with-external-mdns --with-ssl=mbedtls external_mdns
|
||||
check_for_success x$1 --without-external-mdns --with-ssl=mbedtls x external_mdns
|
||||
|
||||
check_for_success x$1 --with-apple-alac --with-ssl=mbedtls alac
|
||||
check_for_success x$1 --without-apple-alac --with-ssl=mbedtls x alac
|
||||
|
||||
check_for_success x$1 --with-piddir=/var --with-ssl=mbedtls
|
||||
check_for_success x$1 --without-piddir --with-ssl=mbedtls
|
||||
|
||||
check_for_success x$1 --with-libdaemon --with-ssl=mbedtls
|
||||
check_for_success x$1 --without-libdaemon --with-ssl=mbedtls
|
||||
|
||||
check_for_success x$1 --with-soxr --with-ssl=mbedtls soxr
|
||||
check_for_success x$1 --without-soxr --with-ssl=mbedtls x soxr
|
||||
|
||||
check_for_success x$1 --with-metadata --with-ssl=mbedtls metadata
|
||||
check_for_success x$1 --without-metadata --with-ssl=mbedtls x metadata
|
||||
|
||||
check_for_success x$1 --with-avahi --with-ssl=mbedtls Avahi
|
||||
check_for_success x$1 --without-avahi --with-ssl=mbedtls x Avahi
|
||||
|
||||
check_for_success x$1 --with-tinysvcmdns --with-ssl=mbedtls tinysvcmdns
|
||||
check_for_success x$1 --without-tinysvcmdns --with-ssl=mbedtls x tinysvcmdns
|
||||
|
||||
check_for_success x$1 --with-jack --with-ssl=mbedtls jack
|
||||
check_for_success x$1 --without-jack --with-ssl=mbedtls x jack
|
||||
|
||||
check_for_success x$1 --with-sndio --with-ssl=mbedtls sndio
|
||||
check_for_success x$1 --without-sndio --with-ssl=mbedtls x sndio
|
||||
|
||||
check_for_success x$1 --with-ao --with-ssl=mbedtls ao
|
||||
check_for_success x$1 --without-ao --with-ssl=mbedtls x ao
|
||||
|
||||
# the following is disabled because there is no soundio library for Raspberry OS
|
||||
#check_for_success x$1 --with-soundio --with-ssl=mbedtls soundio
|
||||
check_for_success x$1 --without-soundio --with-ssl=mbedtls x soundio
|
||||
|
||||
check_for_success x$1 --with-pa --with-ssl=mbedtls pa
|
||||
check_for_success x$1 --without-pa --with-ssl=mbedtls x pa
|
||||
|
||||
check_for_success x$1 --with-convolution --with-ssl=mbedtls convolution
|
||||
check_for_success x$1 --without-convolution --with-ssl=mbedtls x convolution
|
||||
|
||||
check_for_success x$1 --with-dns_sd --with-ssl=mbedtls dns_sd
|
||||
check_for_success x$1 --without-dns_sd --with-ssl=mbedtls x dns_sd
|
||||
|
||||
check_for_success x$1 --with-dbus-interface --with-ssl=mbedtls metadata-dbus
|
||||
check_for_success x$1 --without-dbus-interface --with-ssl=mbedtls x dbus
|
||||
|
||||
check_for_success x$1 --with-dbus-test-client --with-ssl=mbedtls
|
||||
check_for_success x$1 --without-dbus-test-client --with-ssl=mbedtls
|
||||
|
||||
check_for_success x$1 --with-mpris-interface --with-ssl=mbedtls metadata-mpris
|
||||
check_for_success x$1 --without-mpris-interface --with-ssl=mbedtls x mpris
|
||||
|
||||
check_for_success x$1 --with-mpris-test-client --with-ssl=mbedtls
|
||||
check_for_success x$1 --without-mpris-test-client --with-ssl=mbedtls
|
||||
|
||||
check_for_success x$1 --with-mqtt-client --with-ssl=mbedtls metadata-mqtt
|
||||
check_for_success x$1 --without-mqtt-client --with-ssl=mbedtls x mqtt
|
||||
|
||||
check_for_success x$1 --with-configfiles '--sysconfdir=/etc --with-alsa --with-soxr --with-avahi --with-ssl=openssl --with-systemd' OpenSSL-Avahi-ALSA-soxr-sysconfdir:/etc
|
||||
check_for_success x$1 --without-configfiles '--sysconfdir=/etc --with-alsa --with-soxr --with-avahi --with-ssl=openssl --with-systemd' OpenSSL-Avahi-ALSA-soxr-sysconfdir:/etc
|
||||
|
||||
check_for_success x$1 --with-systemd '--sysconfdir=/etc --with-alsa --with-soxr --with-avahi --with-ssl=openssl' OpenSSL-Avahi-ALSA-soxr-sysconfdir:/etc
|
||||
check_for_success x$1 --without-systemd '--sysconfdir=/etc --with-alsa --with-soxr --with-avahi --with-ssl=openssl' OpenSSL-Avahi-ALSA-soxr-sysconfdir:/etc
|
||||
check_for_success x$1 --with-systemv '--sysconfdir=/etc --with-libdaemon --with-alsa --with-soxr --with-avahi --with-ssl=openssl' OpenSSL-Avahi-ALSA-soxr-sysconfdir:/etc
|
||||
check_for_success x$1 --without-systemv '--sysconfdir=/etc --with-libdaemon --with-alsa --with-soxr --with-avahi --with-ssl=openssl' OpenSSL-Avahi-ALSA-soxr-sysconfdir:/etc
|
||||
|
||||
cd $CWD
|
||||
echo "$TESTCOUNT tests completed."
|
||||
|
||||
Reference in New Issue
Block a user