mirror of
git://git.acid.vegas/unrealircd.git
synced 2024-11-16 04:56:45 +00:00
115 lines
3.6 KiB
Bash
Executable File
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
|