add script for building windows binary distribution packages
This commit is contained in:
parent
49d80f0e89
commit
7ba784891d
52
dist-win.sh
Executable file
52
dist-win.sh
Executable file
@ -0,0 +1,52 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
set -x
|
||||
|
||||
# This script generates Windows binary distribution packages with Visual
|
||||
# Studio-compatible header and library files.
|
||||
|
||||
# Visual Studio 2013 Community Edition and the mingw64 32-bit and 64-bit cross
|
||||
# compilers packaged with Cygwin are assumed to be installed.
|
||||
|
||||
ARCH=$1
|
||||
if [ x$ARCH = x ]; then
|
||||
ARCH=X86
|
||||
fi
|
||||
echo Building for $ARCH
|
||||
|
||||
if [ $ARCH=X86 ]; then
|
||||
HOST=i686-w64-mingw32
|
||||
else
|
||||
HOST=x86_64-w64-mingw32
|
||||
fi
|
||||
|
||||
export PATH=/cygdrive/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio\ 12.0/VC/bin:$PATH
|
||||
VERSION=`cat VERSION`
|
||||
DIST=libressl-$VERSION-$ARCH
|
||||
|
||||
CC=$HOST-gcc ./configure --prefix=/ --host=$HOST --enable-libtls
|
||||
make clean
|
||||
make -j 4 install DESTDIR=`pwd`/tmp
|
||||
|
||||
rm -fr $DIST
|
||||
mkdir $DIST
|
||||
|
||||
cp -a tmp/lib $DIST
|
||||
cp -a tmp/include $DIST
|
||||
# massage the headers to remove things cl.exe cannot understand
|
||||
sed -i -e 'N;/\n.*__non/s/"\? *\n/ /;P;D' \
|
||||
$DIST/include/openssl/*.h $DIST/include/*.h
|
||||
sed -i -e 'N;/\n.*__attr/s/"\? *\n/ /;P;D' \
|
||||
$DIST/include/openssl/*.h $DIST/include/*.h
|
||||
sed -i -e "s/__attr.*;/;/" \
|
||||
-e "s/sys\/time.h/winsock2.h/" \
|
||||
$DIST/include/openssl/*.h $DIST/include/*.h
|
||||
cp tmp/bin/* $DIST/lib
|
||||
|
||||
for i in libcrypto libssl libtls; do
|
||||
echo EXPORTS > $i.def
|
||||
mv $DIST/lib/$i*.dll $DIST/lib/$i.dll
|
||||
dumpbin.exe /exports $DIST/lib/$i.dll | awk '{print $4}' | awk 'NF' |tail -n +9 >> $i.def
|
||||
lib.exe /MACHINE:$ARCH /def:$i.def /out:$DIST/lib/$i.lib
|
||||
done
|
||||
zip -r $DIST.zip $DIST
|
Loading…
Reference in New Issue
Block a user