1# 2# Sample script to checkout & build 'openconnect' project 3# with mingw64 on MSYS2 toolchain 4# 5 6[ "$MSYSTEM" != "MINGW64" ] && exit -1 7echo "Starting under MINGW64 build environment..." 8 9export OC_TAG=v7.08 10export STOKEN_TAG=v0.92 11 12pacman --needed -S \ 13 mingw-w64-x86_64-gnutls \ 14 mingw-w64-x86_64-libidn2 \ 15 mingw-w64-x86_64-libunistring \ 16 mingw-w64-x86_64-nettle \ 17 mingw-w64-x86_64-gmp \ 18 mingw-w64-x86_64-p11-kit \ 19 mingw-w64-x86_64-zlib \ 20 mingw-w64-x86_64-libxml2 \ 21 mingw-w64-x86_64-zlib \ 22 mingw-w64-x86_64-libxml2 \ 23 mingw-w64-x86_64-lz4 \ 24 mingw-w64-x86_64-libproxy 25 26 27[ -d work ] || mkdir work 28cd work 29 30[ -d stoken ] || git clone https://github.com/cernekee/stoken 31cd stoken 32git checkout ${STOKEN_TAG} 33./autogen.sh 34[ -d build64 ] || mkdir build64 35cd build64 36git clean -fdx 37../configure --disable-dependency-tracking --without-tomcrypt --without-gtk 38mingw32-make -j4 39mingw32-make install 40cd ../../ 41 42[ -d openconnect ] || git clone git://git.infradead.org/users/dwmw2/openconnect.git 43cd openconnect 44git reset --hard 45git checkout ${OC_TAG} 46./autogen.sh 47[ -d build64 ] || mkdir build64 48cd build64 49git clean -fdx 50../configure --disable-dependency-tracking --with-gnutls --without-openssl --without-libpskc --with-vpnc-script=vpnc-script-win.js 51mingw32-make -j4 52cd ../../ 53 54 55# 56# Sample script to create a package from build 'openconnect' project 57# incl. all dependencies (hardcoded paths!) 58# 59 60export MINGW_PREFIX=/mingw64 61 62rm -rf pkg 63mkdir -p pkg/nsis && cd pkg/nsis 64#cp ${MINGW_PREFIX}/bin/iconv.dll . 65cp ${MINGW_PREFIX}/bin/libffi-6.dll . 66cp ${MINGW_PREFIX}/bin/libgcc_*-1.dll . 67cp ${MINGW_PREFIX}/bin/libgmp-10.dll . 68cp ${MINGW_PREFIX}/bin/libgnutls-30.dll . 69cp ${MINGW_PREFIX}/bin/libhogweed-4.dll . 70cp ${MINGW_PREFIX}/bin/libintl-8.dll . 71cp ${MINGW_PREFIX}/bin/libnettle-6.dll . 72cp ${MINGW_PREFIX}/bin/libp11-kit-0.dll . 73cp ${MINGW_PREFIX}/bin/libtasn1-6.dll . 74cp ${MINGW_PREFIX}/bin/libwinpthread-1.dll . 75cp ${MINGW_PREFIX}/bin/libxml2-2.dll . 76cp ${MINGW_PREFIX}/bin/zlib1.dll . 77cp ${MINGW_PREFIX}/bin/libstoken-1.dll . 78cp ${MINGW_PREFIX}/bin/libproxy-1.dll . 79cp ${MINGW_PREFIX}/bin/liblz4.dll . 80cp ${MINGW_PREFIX}/bin/libiconv-2.dll . 81cp ${MINGW_PREFIX}/bin/libunistring-2.dll . 82cp ${MINGW_PREFIX}/bin/libidn2-0.dll . 83cp ${MINGW_PREFIX}/bin/libstdc++-6.dll . 84cp ${MINGW_PREFIX}/bin/liblzma-5.dll . 85cp ../../openconnect/build64/.libs/libopenconnect-5.dll . 86cp ../../openconnect/build64/.libs/openconnect.exe . 87curl -v -o vpnc-script-win.js http://git.infradead.org/users/dwmw2/vpnc-scripts.git/blob_plain/HEAD:/vpnc-script-win.js 88cd ../../ 89 90mkdir -p pkg/lib && cd pkg/lib 91cp ${MINGW_PREFIX}/lib/libgmp.dll.a . 92cp ${MINGW_PREFIX}/lib/libgnutls.dll.a . 93cp ${MINGW_PREFIX}/lib/libhogweed.dll.a . 94cp ${MINGW_PREFIX}/lib/libnettle.dll.a . 95cp ${MINGW_PREFIX}/lib/libp11-kit.dll.a . 96cp ${MINGW_PREFIX}/lib/libxml2.dll.a . 97cp ${MINGW_PREFIX}/lib/libz.dll.a . 98cp ${MINGW_PREFIX}/lib/libstoken.dll.a . 99cp ${MINGW_PREFIX}/lib/libproxy.dll.a . 100cp ${MINGW_PREFIX}/lib/liblz4.dll.a . 101cp ${MINGW_PREFIX}/lib/libiconv.dll.a . 102cp ${MINGW_PREFIX}/lib/libunistring.dll.a . 103cp ${MINGW_PREFIX}/lib/libidn2.dll.a . 104cp ${MINGW_PREFIX}/lib/liblzma.dll.a . 105cp ../../openconnect/build64/.libs/libopenconnect.dll.a . 106cd ../../ 107 108mkdir -p pkg/lib/pkgconfig && cd pkg/lib/pkgconfig 109cp ${MINGW_PREFIX}/lib/pkgconfig/gnutls.pc . 110cp ${MINGW_PREFIX}/lib/pkgconfig/hogweed.pc . 111cp ${MINGW_PREFIX}/lib/pkgconfig/libxml-2.0.pc . 112cp ${MINGW_PREFIX}/lib/pkgconfig/nettle.pc . 113cp ${MINGW_PREFIX}/lib/pkgconfig/zlib.pc . 114cp ${MINGW_PREFIX}/lib/pkgconfig/stoken.pc . 115cp ../../../openconnect/build64/openconnect.pc . 116cd ../../../ 117 118mkdir -p pkg/include && cd pkg/include 119cp -R ${MINGW_PREFIX}/include/gnutls/ . 120cp -R ${MINGW_PREFIX}/include/libxml2/ . 121cp -R ${MINGW_PREFIX}/include/nettle/ . 122cp -R ${MINGW_PREFIX}/include/p11-kit-1/p11-kit/ . 123cp ${MINGW_PREFIX}/include/gmp.h . 124cp ${MINGW_PREFIX}/include/zconf.h . 125cp ${MINGW_PREFIX}/include/zlib.h . 126cp ${MINGW_PREFIX}/include/stoken.h . 127cp ../../openconnect/openconnect.h . 128cd ../../ 129 130export MINGW_PREFIX= 131 132cd pkg/nsis 1337za a -tzip -mx=9 -sdel ../../openconnect-${OC_TAG}_mingw64.zip * 134cd ../ 135rmdir -v nsis 1367za a -tzip -mx=9 -sdel ../openconnect-devel-${OC_TAG}_mingw64.zip * 137cd ../ 138rmdir -v pkg 139 140 141#cd stoken/build64 142#sudo mingw64-make uninstall 143 144echo "List of system-wide used packages versions:" \ 145 > openconnect-${OC_TAG}_mingw64.txt 146echo "openconnect-${OC_TAG}" \ 147 >> openconnect-${OC_TAG}_mingw64.txt 148echo "stoken-${STOKEN_TAG}" \ 149 >> openconnect-${OC_TAG}_mingw64.txt 150pacman -Q \ 151 mingw-w64-x86_64-gnutls \ 152 mingw-w64-x86_64-libidn2 \ 153 mingw-w64-x86_64-libunistring \ 154 mingw-w64-x86_64-nettle \ 155 mingw-w64-x86_64-gmp \ 156 mingw-w64-x86_64-p11-kit \ 157 mingw-w64-x86_64-libxml2 \ 158 mingw-w64-x86_64-zlib \ 159 mingw-w64-x86_64-libxml2 \ 160 mingw-w64-x86_64-lz4 \ 161 mingw-w64-x86_64-libproxy \ 162 >> openconnect-${OC_TAG}_mingw64.txt 163 164sha512sum.exe openconnect-${OC_TAG}_mingw64.zip > openconnect-${OC_TAG}_mingw64.zip.sha512 165sha512sum.exe openconnect-devel-${OC_TAG}_mingw64.zip > openconnect-devel-${OC_TAG}_mingw64.zip.sha512 166 167mv -v openconnect-*.zip openconnect-*.txt openconnect-*.zip.sha512 .. 168