# --- 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 '' }