Blame win/build-program-win.sh

Ivan Mahonin 173ebc
#!/bin/bash
Ivan Mahonin 173ebc
Ivan Mahonin 173ebc
set -e
Ivan Mahonin 173ebc
Ivan Mahonin 94a33e
if [ -z "$TARGETPATH" ]; then
Ivan Mahonin 94a33e
	TARGETPATH="$(pwd)"
Ivan Mahonin 94a33e
fi
Ivan Mahonin 94a33e
Ivan Mahonin 173ebc
PROGNAME="$1"
Ivan Mahonin 173ebc
ARGS=()
Ivan Mahonin 173ebc
for file in ${@:2}; do
Ivan Mahonin 173ebc
	FILEPATH="$(realpath $file)"
Ivan Mahonin 173ebc
    ARGS+=("$FILEPATH")
Ivan Mahonin 173ebc
	echo "add file: $FILEPATH"
Ivan Mahonin 173ebc
done
Ivan Mahonin 173ebc
Ivan Mahonin 173ebc
Ivan Mahonin 173ebc
if [ -z "$PROGNAME" ] || [ -z "$ARGS" ]; then
Ivan Mahonin 173ebc
	echo "Usage: $0 program_name file1.c file2.c ..."
Ivan Mahonin 94a33e
	echo "You may set environment variable TARGETPATH - the full path to target directory"
Ivan Mahonin 173ebc
	exit 1
Ivan Mahonin 173ebc
fi
Ivan Mahonin 173ebc
Ivan Mahonin 173ebc
ROOT="$(cd `dirname "$0"`; pwd)"
Ivan Mahonin 173ebc
cd "$ROOT"
Ivan Mahonin 173ebc
Ivan Mahonin 173ebc
source function.sh
Ivan Mahonin 173ebc
source toolchain.sh
Ivan Mahonin 173ebc
Ivan Mahonin 173ebc
Ivan Mahonin 56274e
if [ -z "OPTIONS" ]; then
Ivan Mahonin 56274e
	OPTIONS="-O3 -DNDEBUG"
Ivan Mahonin 56274e
	#OPTIONS="-g -O0"
Ivan Mahonin 56274e
fi
Ivan Mahonin 56274e
Ivan Mahonin 56274e
COMP="CC"
Ivan Mahonin 56274e
COMP_OPTIONS=
Ivan Mahonin 56274e
if [ "$COMPILER" = "c++" ]; then
Ivan Mahonin 56274e
	COMP="CXX"
Ivan Mahonin 56274e
	COMP_OPTIONS="-static-libstdc++"
Ivan Mahonin 56274e
fi
Ivan Mahonin 56274e
Ivan Mahonin 173ebc
Ivan Mahonin 173ebc
packages=""
Ivan Mahonin 173ebc
newpackages="program"
Ivan Mahonin 173ebc
Ivan Mahonin 173ebc
#######################################################################
Ivan Mahonin 173ebc
Ivan Mahonin 173ebc
Ivan Mahonin 173ebc
function build_program() {
Ivan Mahonin 56274e
	local CMP=${!COMP}
Ivan Mahonin 1b8859
	if [ -z "$LINUX" ]; then
Ivan Mahonin 56274e
		echocall $CMP \
Ivan Mahonin 1b8859
			"${ARGS[@]}" \
Ivan Mahonin 1b8859
			-Wall $OPTIONS \
Ivan Mahonin 1b8859
			-I"$ROOT/release/include/helianthus" \
Ivan Mahonin 1b8859
			"$ROOT/release/lib-$bits/libhelianthus.a" \
Ivan Mahonin 1b8859
			-lmingw32 -mconsole \
Ivan Mahonin 56274e
			-lm -static-libgcc $COMP_OPTIONS \
Ivan Mahonin 1b8859
			-lopengl32 -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lshlwapi \
Ivan Mahonin 1b8859
			-lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lsetupapi -lversion -luuid \
Ivan Mahonin 1b8859
			-o "$TARGETPATH/$PROGNAME-$bits.exe"
Ivan Mahonin 1b8859
	else
Ivan Mahonin 56274e
		echocall $CMP \
Ivan Mahonin 1b8859
			"${ARGS[@]}" \
Ivan Mahonin 1b8859
			-Wall $OPTIONS \
Ivan Mahonin 1b8859
			-I"$ROOT/release/include/helianthus" \
Ivan Mahonin 1b8859
			"$ROOT/release/lib-$bits/libhelianthus.a" \
Ivan Mahonin 56274e
			-lm -static-libgcc $COMP_OPTIONS -lGL -ldl -pthread \
Ivan Mahonin 1b8859
			-o "$TARGETPATH/$PROGNAME-$bits"
Ivan Mahonin 1b8859
	fi
Ivan Mahonin 173ebc
}
Ivan Mahonin 173ebc
Ivan Mahonin 173ebc
Ivan Mahonin 173ebc
#######################################################################
Ivan Mahonin 173ebc
Ivan Mahonin 173ebc
Ivan Mahonin 173ebc
rm -f build*/program.done
Ivan Mahonin 1b8859
build win32 i686-w64-mingw32
Ivan Mahonin 1b8859
build win64 x86_64-w64-mingw32
Ivan Mahonin 1b8859
#LINUX=1 ADDCFLAGS="-m32 -fPIC" build linux32 ""
Ivan Mahonin 1b8859
LINUX=1 ADDCFLAGS=-fPIC build linux64 ""
Ivan Mahonin 173ebc
rm -f build*/program.done
Ivan Mahonin 173ebc
Ivan Mahonin 173ebc
print_section done