]> wimlib.net Git - wimlib/blobdiff - make-windows-release
Update release scripts
[wimlib] / make-windows-release
diff --git a/make-windows-release b/make-windows-release
new file mode 100755 (executable)
index 0000000..022767e
--- /dev/null
@@ -0,0 +1,71 @@
+#!/bin/bash
+
+set -e -u
+
+WIMLIB_ARCH=i686
+if [ $# -ge 1 ]; then
+       WIMLIB_ARCH=$1
+fi
+
+if [ $# -ge 2 ]; then
+       CONF_EXTRA_ARGS="$2"
+else
+       CONF_EXTRA_ARGS=
+fi
+
+if [[ $WIMLIB_ARCH = i686 ]] ; then
+       DESTDIR=/mnt/tmp/wimlib
+elif [[ $WIMLIB_ARCH = x86_64 ]]; then
+       DESTDIR=/mnt/tmp/x64/wimlib
+else
+       echo "Unknown architecture $1" 1>&2
+       exit 2
+fi
+
+VERSION=$(grep 'This is wimlib version' README | grep -o '[0-9]\+\.[0-9]\+\.[0-9]')
+ZIPFILE=wimlib-${VERSION}-windows-${WIMLIB_ARCH}-bin.zip
+
+if ! grep -q "./configure --host=${WIMLIB_ARCH}-w64-mingw32" config.log; then
+       ./configure --host=${WIMLIB_ARCH}-w64-mingw32 $CONF_EXTRA_ARGS
+       make clean
+fi
+
+make -j2
+
+rm -f $DESTDIR/{libwim-*.dll,doc/*,README*,NEWS*,wim*.bat,wim*.cmd}
+
+cp .libs/imagex.exe $DESTDIR/wimlib-imagex.exe
+cp .libs/libwim-*.dll $DESTDIR
+cp README* NEWS $DESTDIR
+
+for fil in ./doc/wimlib-imagex-*.1; do
+       base=`basename $fil`
+       base=${base%%.1}
+       cmd=$(echo $base | sed s/wimlib-imagex-//)
+       if [ $cmd == mount -o $cmd == mountrw -o $cmd == unmount ]; then
+               continue
+       fi
+
+       echo $fil
+       #MANWIDTH=80 man $fil | col -b > $DESTDIR/doc/$base
+       man -t $fil | ps2pdf - $DESTDIR/doc/${base}.pdf
+       sed 's/$/\r/g' > $DESTDIR/wim${cmd}.cmd <<- EOF
+               @echo off
+               %~dp0\\wimlib-imagex $cmd %*
+       EOF
+done
+
+#for fil in $DESTDIR/{README*,NEWS} $DESTDIR/doc/*; do
+for fil in $DESTDIR/{README*,NEWS}; do
+       sed < $fil > ${fil}.txt -e 's/$/\r/g'
+       rm $fil
+done
+
+${WIMLIB_ARCH}-w64-mingw32-strip $DESTDIR/*.{dll,exe}
+
+rm -f $ZIPFILE
+(
+       dir=$PWD
+       cd $DESTDIR
+       zip -r $dir/$ZIPFILE .
+)