0
0
mirror of https://github.com/OpenVPN/openvpn3.git synced 2024-09-20 20:13:05 +02:00
openvpn3/scripts/build
2011-11-23 03:35:51 +00:00

39 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
if [ -z "$1" ]; then
echo "usage: ./build target"
echo "options:"
echo " DEBUG=1 -- enable debug"
echo " STRIP=1 -- strip binary"
echo " LTO=1 -- build with LTO"
echo " GPROF=1 -- build for gprof profiling"
echo " OSSL=1 -- include OpenSSL on Mac"
echo ' GCC_EXTRA="-DITER=5" -- add build flags'
exit 1
fi
# On Mac, only link with OpenSSL if OSSL is defined.
# On other platforms, always link with OpenSSL.
if [ "$PLATFORM" = "mac" ] && [ -z "$OSSL" ]; then
CRYPTO_LIBS="-framework Security"
else
CRYPTO_LIBS="-DUSE_OPENSSL -lcrypto -lssl"
fi
# remove previous build
rm -f $1
if [ "$DEBUG" ]; then
# debug build
g++ -Wall -g -pthread $GCC_EXTRA -I$BOOST -I$OVPN3 -L$BOOST/stage/lib $1.cpp -o $1 -lboost_system $CRYPTO_LIBS
else
# release build
FLAGS=""
[ "$LTO" ] && FLAGS="$FLAGS -flto=4 -Wl,--no-as-needed"
[ "$GPROF" ] && FLAGS="$FLAGS -pg"
g++ -Wall -O3 -fwhole-program $FLAGS -pthread $GCC_EXTRA -I$BOOST -I$OVPN3 -L$BOOST/stage/lib $1.cpp -o $1 -lboost_system $CRYPTO_LIBS
fi
# maybe strip
[ "$STRIP" ] && strip $1
exit 0