3 # This script prepares a Windows binary distribution of wimlib on Linux using
4 # MinGW-w64. The desired architecture must be passed as the first argument.
8 if [ ! -e src/wim.c ]; then
9 echo "This script must be run from the toplevel directory" 1>&2
14 echo "Usage: $0 i686|x86_64" 1>&2
25 echo "ERROR: ARCH must be i686 or x86_64" 1>&2
30 VERSION=$(grep 'AC_INIT' configure.ac | \
31 grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+[^]]*')
32 DESTDIR=wimlib-${VERSION}-windows-${ARCH}-bin
33 ZIPFILE=wimlib-${VERSION}-windows-${ARCH}-bin.zip
34 MAKE="make -j $(grep -c processor /proc/cpuinfo)"
35 WINDEPDIR=./tools/windeps
36 SYSROOT=$WINDEPDIR/sysroot_${ARCH}
38 # Prepare third party libraries
40 if [ ! -e $SYSROOT ]; then
41 $MAKE -C $WINDEPDIR sysroot_${ARCH}
46 if ! grep -q "./configure --host=${ARCH}-w64-mingw32" config.log || \
47 ! grep -q "configure: exit 0" config.log
50 if [ $ARCH = x86_64 ]; then
51 extra_args="--enable-ssse3-sha1"
53 # Note: putting -static-libgcc in CC is a workaround for libtool
55 # http://www.gnu.org/software/libtool/manual/libtool.html#Stripped-link-flags
56 ./configure --host=${ARCH}-w64-mingw32 --disable-static \
57 CC="${ARCH}-w64-mingw32-gcc -static-libgcc" \
59 CPPFLAGS="-I$SYSROOT/include" \
60 LDFLAGS="-L$SYSROOT/lib" \
61 PKG_CONFIG_PATH="$SYSROOT/lib/pkgconfig" \
68 # Create empty destination directory
75 cp .libs/*.{dll,exe} $DESTDIR
76 ${ARCH}-w64-mingw32-strip $DESTDIR/*.{dll,exe}
80 cp NEWS README* COPYING* $DESTDIR
81 cp $WINDEPDIR/COPYING* $DESTDIR
84 for fil in NEWS README* COPYING*; do
85 sed < $fil > ${fil}.txt -e 's/$/\r/g'
95 function gen_pdf_from_man_page() {
97 local pdf=${DESTDIR}/doc/${manbase}.pdf
99 echo "Generating $pdf"
101 MANPATH="./doc" man -t $manbase | ps2pdf - $pdf
104 for fil in ./doc/man1/wimlib-imagex-*.1; do
105 manbase=`basename $fil`
106 manbase=${manbase%%.1}
107 cmd=$(echo $manbase | sed s/wimlib-imagex-//)
108 if [ $cmd == mount -o $cmd == mountrw -o $cmd == unmount ]; then
112 gen_pdf_from_man_page $manbase
114 sed 's/$/\r/g' > ${DESTDIR}/wim${cmd}.cmd <<- EOF
116 %~dp0\\wimlib-imagex $cmd %*
118 chmod +x ${DESTDIR}/wim${cmd}.cmd
121 gen_pdf_from_man_page wimlib-imagex
129 7z -mx9 a "$dir/$ZIPFILE" .