#!/bin/sh # # Try building the example programs: in 32-bit and 64-bit mode, in C and C++ # mode, and for Linux and for Windows. Also run the Linux versions to make sure # they work. # set -eu cd examples make clean COMMON_FLAGS="-Wall -Wextra -Werror -Wundef -Wno-unused-parameter -Wvla" COMMON_CFLAGS="$COMMON_FLAGS -std=gnu99 -Wdeclaration-after-statement -Wstrict-prototypes" COMMON_CXXFLAGS="$COMMON_FLAGS" TEST_WIM="$HOME/data/test.wim" TESTDATA="$HOME/data/testdata" tmpdir="$(mktemp -d)" tmpfile="$(mktemp)" tmpfile2="$(mktemp)" trap "rm -rf \"$tmpdir\" \"$tmpfile\" \"$tmpfile2\"" EXIT do_test() { rm -rf "$tmpdir" ./applywim "$TEST_WIM" "$tmpdir" ./capturewim "$tmpdir" "$tmpfile" ./updatewim "$tmpfile" "examples" . ./compressfile "$TESTDATA" "$tmpfile" ./decompressfile "$tmpfile" "$tmpfile2" cmp "$tmpfile2" "$TESTDATA" ./compressfile "$TESTDATA" "$tmpfile" XPRESS 16384 ./decompressfile "$tmpfile" "$tmpfile2" cmp "$tmpfile2" "$TESTDATA" } make CC=gcc CFLAGS="$COMMON_CFLAGS" do_test make clean make CC=g++ CFLAGS="$COMMON_CXXFLAGS" do_test make clean make CC=i686-w64-mingw32-gcc CFLAGS="$COMMON_CFLAGS -I../include -municode" LDLIBS="-lwim-15" LDFLAGS="-L/j/wimlib" make clean make CC=i686-w64-mingw32-g++ CFLAGS="$COMMON_CXXFLAGS -I../include -municode" LDLIBS="-lwim-15" LDFLAGS="-L/j/wimlib" make clean make CC=x86_64-w64-mingw32-gcc CFLAGS="$COMMON_CFLAGS -I../include -municode" LDLIBS="-lwim-15" LDFLAGS="-L/j/x64" make clean make CC=x86_64-w64-mingw32-g++ CFLAGS="$COMMON_CXXFLAGS -I../include -municode" LDLIBS="-lwim-15" LDFLAGS="-L/j/x64" make clean