diff options
Diffstat (limited to 'pkg/thirdparty/openvpn/build_openvpn.sh')
-rwxr-xr-x | pkg/thirdparty/openvpn/build_openvpn.sh | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/pkg/thirdparty/openvpn/build_openvpn.sh b/pkg/thirdparty/openvpn/build_openvpn.sh new file mode 100755 index 00000000..a9007aa7 --- /dev/null +++ b/pkg/thirdparty/openvpn/build_openvpn.sh @@ -0,0 +1,148 @@ +#!/bin/bash + +############################################################################# +# Builds OpenVPN statically against polarssl. +# Requirements: cmake +############################################################################# + +set -e +set -x + +platform='unknown' +unamestr=`uname` +if [[ "$unamestr" == 'Linux' ]]; then + platform='linux' +elif [[ "$unamestr" == 'Darwin' ]]; then + platform='osx' +fi + +BUILDDIR="openvpn_build" +mkdir -p ~/$BUILDDIR && cd ~/$BUILDDIR + +BASE=`pwd` +SRC=$BASE/src +mkdir -p $SRC + +LZO="lzo-2.10" +ZLIB="zlib-1.2.11" +MBEDTLS="mbedtls-2.4.2" +OPENVPN="openvpn-2.4.1" + +WGET="wget --prefer-family=IPv4" +DEST=$BASE/install +LDFLAGS="-L$DEST/lib -L$DEST/usr/local/lib -W" +CPPFLAGS="-I$DEST/include" +CFLAGS="-D_FORTIFY_SOURCE=2 -O1 -Wformat -Wformat-security -fstack-protector -pie -fPIE" +CXXFLAGS=$CFLAGS +CONFIGURE="./configure --prefix=/install" +MAKE="make -j2" + + +######## #################################################################### +# ZLIB # #################################################################### +######## #################################################################### + +function build_zlib() +{ + mkdir $SRC/zlib && cd $SRC/zlib + + if [ ! -f $ZLIB.tar.gz ]; then + $WGET http://zlib.net/$ZLIB.tar.gz + fi + tar zxvf $ZLIB.tar.gz + cd $ZLIB + + LDFLAGS=$LDFLAGS \ + CPPFLAGS=$CPPFLAGS \ + CFLAGS=$CFLAGS \ + CXXFLAGS=$CXXFLAGS \ + ./configure \ + --prefix=/install + + $MAKE + make install DESTDIR=$BASE +} + +############ ################################################################# +# POLARSSL # ################################################################# +############ ################################################################# + +function build_mbedtls() +{ + mkdir -p $SRC/polarssl && cd $SRC/polarssl + if [ ! -f $MBEDTLS-gpl.tgz ]; then + $WGET https://tls.mbed.org/download/$MBEDTLS-gpl.tgz + fi + tar zxvf $MBEDTLS-gpl.tgz + cd $MBEDTLS + mkdir -p build + cd build + cmake .. + $MAKE + make install DESTDIR=$BASE/install +} + +######## #################################################################### +# LZO2 # #################################################################### +######## #################################################################### + +function build_lzo2() +{ + mkdir $SRC/lzo2 && cd $SRC/lzo2 + if [ ! -f $LZO.tar.gz ]; then + $WGET http://www.oberhumer.com/opensource/lzo/download/$LZO.tar.gz + fi + tar zxvf $LZO.tar.gz + cd $LZO + + LDFLAGS=$LDFLAGS \ + CPPFLAGS=$CPPFLAGS \ + CFLAGS=$CFLAGS \ + CXXFLAGS=$CXXFLAGS \ + $CONFIGURE --enable-static --disable-debug + + $MAKE + make install DESTDIR=$BASE +} + +########### ################################################################# +# OPENVPN # ################################################################# +########### ################################################################# + +function build_openvpn() +{ + mkdir $SRC/openvpn && cd $SRC/openvpn + if [ ! -f $OPENVPN.tar.gz ]; then + $WGET http://swupdate.openvpn.org/community/releases/$OPENVPN.tar.gz + fi + tar zxvf $OPENVPN.tar.gz + cd $OPENVPN + + POLARSSL_CFLAGS=-I$DEST/usr/local/include \ + POLARSSL_LIBS=$DEST/lib/ \ + LDFLAGS=$LDFLAGS \ + CPPFLAGS=$CPPFLAGS \ + CFLAGS=$CFLAGS \ + CXXFLAGS=$CXXFLAGS \ + $CONFIGURE \ + --disable-plugin-auth-pam \ + --enable-password-save \ + --with-crypto-library=mbedtls \ + --enable-small \ + --disable-debug + + $MAKE LIBS="-all-static -lssl -lcrypto -lz -llzo2" + make install DESTDIR=$BASE/openvpn +} + +function main() +{ + if [[ $platform == 'linux' ]]; then + build_zlib + build_mbedtls + build_lzo2 + build_openvpn + fi +} + +main "$@" |