joeylib/scripts/build-PC.helper.sh
2019-04-20 18:27:54 -05:00

96 lines
1.9 KiB
Bash

# --- HERE BE DRAGONS ---
TARGET=${JOEY}/builds/${PROJECT}
WORK=/tmp/PC
function doPCBuild() {
local OSNAME=$1
local OSARCH=$2
local EXT=$3
local DEST=${TARGET}/${OSNAME}/${OSARCH}
local G_CFLAGS="-Wall -D_REENTRANT_ -I${JOEY}/dist"
echo '-------------------------------------------------------------------------------'
echo "Building ${OSNAME} ${OSARCH}"
echo '-------------------------------------------------------------------------------'
# Clean up target and working directories
if [ -d ${DEST} ]; then
rm -rf ${DEST}
fi
mkdir -p ${DEST}
if [ -d ${WORK} ]; then
rm -rf ${WORK}
fi
mkdir -p ${WORK}
# Make a list of files to compile, iterate over them
CFILES=($(ls -1 *.c))
OFILES=""
for F in "${CFILES[@]}"; do
O=${F%.*}
OFILES="${OFILES} ${WORK}/${O}.o"
echo "Compiling ${F}..."
${CC} ${CFLAGS} ${G_CFLAGS} -c ${F} -o ${WORK}/${O}.o
done
# Link source & JoeyLib
${CC} -o ${DEST}/${PROJECT}${EXT} ${OFILES} ${JOEY}/dist/${OSNAME}/${OSARCH}/libjoeylib.a ${LDFLAGS}
# Copy game data
mkdir -p ${DEST}/data
for F in "${DATA[@]}"; do
cp -f ${F} ${DEST}/data/.
done
}
function buildLinux32() {
CC="gcc"
CFLAGS="-m32"
LDFLAGS="-m32 -lstdc++ -lm -ldl -lpthread"
doPCBuild linux x86 ''
}
function buildLinux64() {
CC="gcc"
CFLAGS=""
LDFLAGS="-lstdc++ -lm -ldl -lpthread"
doPCBuild linux x64 ''
}
function buildWindows32() {
CC="i686-w64-mingw32-gcc"
CFLAGS=""
LDFLAGS="-lgdi32 -lwinmm -limm32 -lversion -lole32 -loleaut32 -lsetupapi -static -lstdc++"
doPCBuild windows x86 '.exe'
}
function buildWindows64() {
CC="x86_64-w64-mingw32-gcc"
CFLAGS=""
LDFLAGS="-lgdi32 -lwinmm -limm32 -lversion -lole32 -loleaut32 -lsetupapi -static -lstdc++"
doPCBuild windows x64 '.exe'
}
function buildmacOS32() {
CC="o32-clang"
CFLAGS=""
LDFLAGS=""
doPCBuild macos x86 ''
}
function buildmacOS64() {
CC="o64-clang"
CFLAGS=""
LDFLAGS=""
doPCBuild macos x64 ''
}