unrealircd/extras/build-tests/nix/select-config

115 lines
3.6 KiB
Bash
Executable File

#!/bin/bash
#
# This is a helper script for travis-ci builds and our own FreeBSD test machine.
# It is not meant to be used by end-users
#
function fail()
{
echo "select-config failed: $*"
exit 1
}
function build_ssl {
DIR="$2"
URL="$1/$2.tar.gz"
savewd="$PWD"
cd ~
wget "$URL" || exit 1
tar xzf $DIR.tar.gz
cd "$DIR"
(./configure --prefix=$HOME/ssl 1>/dev/null 2>&1 || ./config --prefix=$HOME/ssl -fPIC 1>/dev/null 2>&1 ) || fail "build_ssl: configure/config failed"
(make -j2 1>/dev/null 2>&1 && make install 1>/dev/null 2>&1) || fail "build_ssl: make failed"
cd "$savewd"
echo "SSLDIR=$HOME/ssl" >>config.settings
}
if [ ! -d extras ]; then
echo "This tool is supposed to be run from the source root, so ~/unrealircd-5.0.x or similar"
exit 1
fi
set -x
# Take default settings as a starter..
cp extras/build-tests/nix/configs/default ./config.settings
# Libtool is required for the other options..
# Also for our FreeBSD machine we have to uninstall some stuff since a clean
# environment is not guaranteed...
if [ "$OSTYPE" = "linux-gnu" ]; then
sudo apt-get -qq update
sudo apt-get install libtool -qq
elif [[ "$OSTYPE" == "freebsd"* ]]; then
sudo pkg install -y libtool
sudo pkg remove -y c-ares
elif [[ "$OSTYPE" == "darwin"* ]]; then
brew update
brew install openssl
else
echo "OS not correctly detected ($OSTYPE). Aborting."
exit 1
fi
echo "*****************************************************************"
echo "SELECTED BUILD OPTIONS: $*"
echo "*****************************************************************"
while [ "$1" ]
do
echo "Processing option $1..."
if [ "$1" = "system-cares" ]; then
if [ "$OSTYPE" = "linux-gnu" ]; then
sudo apt-get install libc-ares-dev -qq
elif [[ "$OSTYPE" == "freebsd"* ]]; then
sudo pkg install -y c-ares
elif [[ "$OSTYPE" == "darwin"* ]]; then
brew install c-ares
fi
elif [ "$1" = "system-curl" ]; then
echo 'REMOTEINC=1' >>config.settings
if [ "$OSTYPE" = "linux-gnu" ]; then
sudo apt-get install libcurl4-openssl-dev -qq
echo 'CURLDIR=/usr' >>config.settings
elif [[ "$OSTYPE" == "freebsd"* ]]; then
sudo pkg install -y curl
echo 'CURLDIR=/usr/local' >>config.settings
elif [[ "$OSTYPE" == "darwin"* ]]; then
brew install c-ares curl
echo 'CURLDIR=/usr/local/opt/curl' >>config.settings
fi
elif [ "$1" = "local-curl" ]; then
if [ "$OSTYPE" = "linux-gnu" ]; then
sudo apt-get remove libcurl4-openssl-dev libcurl3-gnutls libcurl3 -qq
elif [[ "$OSTYPE" == "freebsd"* ]]; then
sudo pkg remove -y curl #NOTE: unfortunately this also removes 'git' :D
elif [[ "$OSTYPE" == "darwin"* ]]; then
echo "No need to remove curl since it's not installed. Or at least I hope so..."
fi
echo 'REMOTEINC=1' >>config.settings
echo "CURLDIR=`pwd`/extras/curl" >>config.settings
elif [ "$1" = "libressl-27" ]; then
build_ssl https://ftp.openbsd.org/pub/OpenBSD/LibreSSL libressl-2.7.5
elif [ "$1" = "libressl-28" ]; then
build_ssl https://ftp.openbsd.org/pub/OpenBSD/LibreSSL libressl-2.8.3
elif [ "$1" = "libressl-29" ]; then
build_ssl https://ftp.openbsd.org/pub/OpenBSD/LibreSSL libressl-2.9.0
elif [ "$1" = "openssl-102" ]; then
build_ssl https://www.openssl.org/source openssl-1.0.2q
elif [ "$1" = "openssl-110" ]; then
build_ssl https://www.openssl.org/source openssl-1.1.0j
elif [ "$1" = "openssl-111" ]; then
build_ssl https://www.openssl.org/source openssl-1.1.1a
else
echo "Unknown option $1"
exit 1
fi
shift
done
if [[ "$OSTYPE" == "darwin"* ]]; then
echo "NOTE: Not building with -Werror for now on macOS..."
else
echo 'EXTRAPARA="--enable-werror"' >>config.settings
fi