update windows binary build script
This puts the 32 and 64-bit binaries in the same zip file, adds debug files that are compatible with Visual Studio/windbg, and updates for the new configure options.
This commit is contained in:
parent
ab0d3e54a2
commit
f94d3d671c
88
dist-win.sh
88
dist-win.sh
@ -1,56 +1,54 @@
|
|||||||
#!/bin/sh
|
#!/bin/bash
|
||||||
set -e
|
set -e
|
||||||
set -x
|
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
|
export PATH=/cygdrive/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio\ 12.0/VC/bin:$PATH
|
||||||
VERSION=`cat VERSION`
|
VERSION=`cat VERSION`
|
||||||
DIST=libressl-$VERSION-$ARCH
|
DIST=libressl-$VERSION
|
||||||
|
|
||||||
CC=$HOST-gcc \
|
|
||||||
CFLAGS="-Wl,--nxcompat -fstack-protector" \
|
|
||||||
LDFLAGS="-lssp -Wl,--dynamicbase,--export-all-symbols" \
|
|
||||||
./configure --prefix=/ --host=$HOST --enable-libtls
|
|
||||||
|
|
||||||
make clean
|
|
||||||
make -j 4 install DESTDIR=`pwd`/tmp
|
|
||||||
|
|
||||||
rm -fr $DIST
|
rm -fr $DIST
|
||||||
mkdir $DIST
|
mkdir -p $DIST
|
||||||
|
|
||||||
cp -a tmp/lib $DIST
|
for ARCH in X86 X64; do
|
||||||
cp -a tmp/include $DIST
|
echo Building for $ARCH
|
||||||
# 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
|
if [ $ARCH=X86 ]; then
|
||||||
echo EXPORTS > $i.def
|
HOST=i686-w64-mingw32
|
||||||
mv $DIST/lib/$i*.dll $DIST/lib/$i.dll
|
else
|
||||||
dumpbin.exe /exports $DIST/lib/$i.dll | awk '{print $4}' | awk 'NF' |tail -n +9 >> $i.def
|
HOST=x86_64-w64-mingw32
|
||||||
lib.exe /MACHINE:$ARCH /def:$i.def /out:$DIST/lib/$i.lib
|
fi
|
||||||
|
|
||||||
|
CC=$HOST-gcc ./configure --host=$HOST \
|
||||||
|
--enable-libtls --disable-shared
|
||||||
|
make clean
|
||||||
|
PATH=$PATH:/usr/$HOST/sys-root/mingw/bin \
|
||||||
|
make -j 4 check
|
||||||
|
make -j 4 install DESTDIR=`pwd`/stage-$ARCH
|
||||||
|
|
||||||
|
mkdir -p $DIST/$ARCH
|
||||||
|
#cp -a stage-$ARCH/usr/local/lib/* $DIST/$ARCH
|
||||||
|
if [ ! -e $DIST/include ]; then
|
||||||
|
cp -a stage-$ARCH/usr/local/include $DIST
|
||||||
|
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
|
||||||
|
fi
|
||||||
|
|
||||||
|
cp stage-$ARCH/usr/local/bin/* $DIST/$ARCH
|
||||||
|
#cp /usr/$HOST/sys-root/mingw/bin/libssp* $DIST/$ARCH
|
||||||
|
|
||||||
|
for i in libcrypto libssl libtls; do
|
||||||
|
DLL=$(basename `ls -1 $DIST/$ARCH/$i*.dll`|cut -d. -f1)
|
||||||
|
echo EXPORTS > $DLL.def
|
||||||
|
dumpbin /exports $DIST/$ARCH/$DLL.dll | \
|
||||||
|
awk '{print $4}' | awk 'NF' |tail -n +9 >> $DLL.def
|
||||||
|
lib /MACHINE:$ARCH /def:$DLL.def /out:$DIST/$ARCH/$DLL.lib
|
||||||
|
cv2pdb $DIST/$ARCH/$DLL.dll
|
||||||
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
zip -r $DIST.zip $DIST
|
zip -r $DIST.zip $DIST
|
||||||
|
Loading…
Reference in New Issue
Block a user