hostap/build_release

143 lines
3.1 KiB
Bash
Executable file

#!/bin/sh
# Path to the Windows cross compiler (mingw)
WINCROSS=/opt/xmingw/bin
WINLOCAL=/home/jm/H-win/local
set -e
if [ -z "$1" ]; then
echo "build_release <version> [nobin]"
exit 1
fi
TMP=tmp.build_release
RELDIR=`pwd`/Release
VER=$1
NOW=`date +%Y-%m-%d`
echo "Version: $VER - $NOW"
DATEw=`head -n 3 wpa_supplicant/ChangeLog | tail -n 1 | sed "s/ .*//"`
DATEh=`head -n 3 hostapd/ChangeLog | tail -n 1 | sed "s/ .*//"`
if [ "$DATEw" != "$NOW" -o "$DATEh" != "$NOW" ]; then
echo "NOTE! Date mismatch in ChangeLog: wpa_supplicant $DATEw hostapd $DATEh != $NOW"
fi
if [ -r $TMP ]; then
echo "Temporary directory '$TMP' exists. Remove it before running this."
exit 1
fi
mkdir $TMP
mkdir -p $RELDIR
git-archive --format=tar --prefix=wpa-$VER/ HEAD \
README COPYING patches src wpa_supplicant hostapd |
gzip > $RELDIR/wpa-$VER.tar.gz
git-archive --format=tar --prefix=hostapd-$VER/ HEAD \
README COPYING patches src hostapd |
gzip > $RELDIR/hostapd-$VER.tar.gz
git-archive --format=tar --prefix=wpa_supplicant-$VER/ HEAD \
README COPYING patches src wpa_supplicant |
tar --directory=$TMP -xf -
cd $TMP
make -C wpa_supplicant-$VER/wpa_supplicant/doc/docbook man
rm -f wpa_supplicant-$VER/wpa_supplicant/doc/docbook/manpage.{links,refs}
tar czf $RELDIR/wpa_supplicant-$VER.tar.gz wpa_supplicant-$VER
cd ..
rm -r $TMP
if [ "$2" == "nobin" ]; then
exit 0
fi
if [ -d $WINCROSS ]; then
pushd $RELDIR
PDIR=wpa_supplicant-$VER
WDIR=wpa_supplicant-windows-bin-$VER
tar xzf $PDIR.tar.gz
mkdir "$WDIR"
cd "$PDIR/wpa_supplicant"
cat > .config <<EOF
CONFIG_DRIVER_NDIS=y
CONFIG_NATIVE_WINDOWS=y
CFLAGS += -I/opt/xmingw/i386-mingw32msvc/include/ddk
CC=i386-mingw32msvc-gcc
STRIP=i386-mingw32msvc-strip
PLATFORMSDKLIB=$WINLOCAL/lib
CONFIG_NDIS_EVENTS_INTEGRATED=y
CFLAGS += -I$WINLOCAL/include
LIBS += -L$WINLOCAL/lib
LIBS_w += -L$WINLOCAL/lib
LIBS_p += -L$WINLOCAL/lib
CONFIG_EAP_SIM=y
CONFIG_EAP_AKA=y
CONFIG_EAP_LEAP=y
CONFIG_EAP_FAST=y
CONFIG_EAP_TLS=y
CONFIG_CTRL_IFACE=y
CONFIG_EAP_FAST=y
CONFIG_EAP_MSCHAPV2=y
CONFIG_EAP_TTLS=y
CONFIG_EAP_PEAP=y
CONFIG_EAP_MD5=y
CONFIG_EAP_GTC=y
CONFIG_EAP_OTP=y
CONFIG_EAP_PAX=y
CONFIG_EAP_SAKE=y
CONFIG_EAP_PSK=y
CONFIG_EAP_TNC=y
CONFIG_PKCS12=y
CONFIG_PCSC=y
CONFIG_L2_PACKET=winpcap
CONFIG_MAIN=main_winsvc
CONFIG_BACKEND=winreg
CONFIG_ELOOP=eloop_win
CFLAGS += -DCONFIG_DEBUG_FILE
EOF
# First, build the Windows service & registry version and rename it
PATH=$PATH:$WINCROSS make windows-bin
mv wpa_supplicant.exe wpasvc.exe
# Then, build "the standard" wpa_supplicant.exe
cat >> .config <<EOF
CONFIG_MAIN=main
CONFIG_BACKEND=file
EOF
PATH=$PATH:$WINCROSS make windows-bin
for i in COPYING; do
unix2dos < ../$i > ../../"$WDIR"/$i
done
for i in README README-Windows.txt wpa_supplicant.conf; do
unix2dos < $i > ../../"$WDIR"/$i
done
mv *.exe ../../"$WDIR"
cp win_example.reg ../../"$WDIR"
cd wpa_gui-qt4
PATH=$PATH:$WINCROSS ./setup-mingw-cross-compiling
PATH=$PATH:$WINCROSS make
cp release/wpa_gui.exe ../../../"$WDIR"
cd ../../..
rm -rf "$PDIR"
zip "$WDIR.zip" "$WDIR"/*
rm -rf "$WDIR"
popd
fi
ls -l $RELDIR/*$VER*
exit 0