Installer and all builds working! User management, rebuild, and build commands working. Server startup is having issues.

This commit is contained in:
Scott Duensing 2023-01-18 15:16:51 -06:00
parent 2605c7e82e
commit bbea7b77b3
11 changed files with 148 additions and 96 deletions

2
.gitignore vendored
View file

@ -6,5 +6,5 @@ temp/
old/ old/
*~ *~
automated.install joeybuild.config
updateVM.sh updateVM.sh

View file

@ -1,23 +0,0 @@
#!/bin/bash
# All paths in this file must be relative to
# the home directory of the build user.
# Required for All.
AUTOMATED_SUDO=
# Required for IIgs.
AUTOMATED_OPUS_SOFTWARE_ISO="Opus ][ The Software.iso"
AUTOMATED_GOLDEN_GATE_MSI="Golden Gate.msi"
AUTOMATED_GOLDEN_GATE_PRIVATE_KEY=id_rsa
AUTOMATED_GOLDEN_GATE_PUBLIC_KEY=id_rsa.pub
AUTOMATED_GOLDEN_GATE_USER_NAME=
AUTOMATED_GOLDEN_GATE_PASSWORD=
# Required for MacOS. Fill in either the SDK or XCODE entries.
# Using SDK archives takes much longer.
# (But will generate XCODE archives for you for next time!)
AUTOMATED_MACOS_SDK_10_13=MacOSX10.13.sdk.tar.xz
AUTOMATED_MACOS_SDK_11_3=MacOSX11.3.sdk.tar.xz
AUTOMATED_XCODE_9_4_1_XIP=Xcode_9.4.1.xip
AUTOMATED_XCODE_12_5_1_XIP=Xcode_12.5.1.xip

View file

@ -1,9 +1,9 @@
#!/bin/bash #!/bin/bash
source automated.install source joeybuild.config
source towel/towel.sh source towel/towel.sh
tSudoSetPassword "${AUTOMATED_SUDO}" tSudoSetPassword "${CONFIG_SUDO}"
tArgsHandler $@ tArgsHandler $@
[[ -d /home/test/build ]] && tSudo rm -rf /home/test/build [[ -d /home/test/build ]] && tSudo rm -rf /home/test/build

View file

@ -36,7 +36,7 @@ function assembleGCC() {
O=${G_TEMP}/${FILE%.*} O=${G_TEMP}/${FILE%.*}
OFILES="${OFILES} ${O}" OFILES="${OFILES} ${O}"
# as # as
#gcc -static -nostdlib -nostartfiles ${FILE} -o ${O} #gcc -v -static -nostdlib -nostartfiles ${FILE} -o ${O} >> ${LOG} 2>&1
done done
echo ${OFILES} echo ${OFILES}
@ -59,7 +59,7 @@ function compileGCC() {
for FILE in "${CFILES[@]}"; do for FILE in "${CFILES[@]}"; do
O=${G_TEMP}/$(basename ${FILE%.*}).o O=${G_TEMP}/$(basename ${FILE%.*}).o
OFILES="${OFILES} ${O}" OFILES="${OFILES} ${O}"
${CC} ${CFLAGS} -c ${FILE} -o ${O} ${CC} -v ${CFLAGS} -c ${FILE} -o ${O} >> ${LOG} 2>&1
done done
echo ${OFILES} echo ${OFILES}
@ -71,14 +71,15 @@ function linkGCC() {
local ARCH=$2 local ARCH=$2
local PASS=$3 local PASS=$3
local EXT=$4 local EXT=$4
local LOG=$5 local LINKFIRST=$5
local OFILES=(${*:6}) local LOG=$6
local OFILES=(${*:7})
local LIB="${G_EHOME}/dist/${OS}-${ARCH}/${PASS}" local LIB="${G_EHOME}/dist/${OS}-${ARCH}/${PASS}"
local DIR=${G_BUILD_RESULTS}/${OS}-${ARCH}/${PASS} local DIR=${G_BUILD_RESULTS}/${OS}-${ARCH}/${PASS}
mkdir -p ${DIR} mkdir -p ${DIR}
${LD} ${CFLAGS} -o ${DIR}/${G_BUILD_PROJECT}${EXT} ${OFILES[@]} ${LIB}/libjoeylib.a ${LDFLAGS} ${LD} -v ${CFLAGS} -o ${DIR}/${G_BUILD_PROJECT}${EXT} ${LINKFIRST} ${OFILES[@]} ${LIB}/libjoeylib.a ${LDFLAGS} >> ${LOG} 2>&1
} }

View file

@ -50,10 +50,13 @@ function buildSDL2() {
local TAG=$1 local TAG=$1
local TRIPLE=$2 local TRIPLE=$2
if [[ ! -d SDL ]]; then if [[ ! -d SDL_Clean ]]; then
git clone https://skunkworks.kangaroopunch.com/mirrors/SDL.git git clone https://skunkworks.kangaroopunch.com/mirrors/SDL.git SDL_Clean
fi fi
rm -rf SDL || true
cp -R SDL_Clean SDL
pushd SDL pushd SDL
git checkout ${TAG} git checkout ${TAG}
popd popd

23
joeybuild.config.sample Normal file
View file

@ -0,0 +1,23 @@
#!/bin/bash
# All paths in this file must be relative to
# the home directory of the build user.
# Required for All.
CONFIG_SUDO=
# Required for IIgs.
CONFIG_OPUS_SOFTWARE_ISO="Opus ][ The Software.iso"
CONFIG_GOLDEN_GATE_MSI="Golden Gate.msi"
CONFIG_GOLDEN_GATE_PRIVATE_KEY=id_rsa
CONFIG_GOLDEN_GATE_PUBLIC_KEY=id_rsa.pub
CONFIG_GOLDEN_GATE_USER_NAME=
CONFIG_GOLDEN_GATE_PASSWORD=
# Required for MacOS. Fill in either the SDK or XCODE entries.
# Using SDK archives takes much longer.
# (But will generate XCODE archives for you for next time!)
CONFIG_MACOS_SDK_10_13=MacOSX10.13.sdk.tar.xz
CONFIG_MACOS_SDK_11_3=MacOSX11.3.sdk.tar.xz
CONFIG_XCODE_9_4_1_XIP=Xcode_9.4.1.xip
CONFIG_XCODE_12_5_1_XIP=Xcode_12.5.1.xip

View file

@ -1,4 +1,4 @@
#!/bin/bash -e #!/bin/bash -ex
# #
# JoeyBuild # JoeyBuild
@ -206,6 +206,7 @@ function doBuild() {
done < build.start done < build.start
# Compress the results. # Compress the results.
tBoldBox tPURPLE "Packaging \"${G_BUILD_PROJECT}\"..."
tar cJf build.temp results tar cJf build.temp results
tSudo chown ${USERNAME}:${USERNAME} build.temp tSudo chown ${USERNAME}:${USERNAME} build.temp
@ -250,8 +251,7 @@ function doInstall() {
# Start build server on reboot. # Start build server on reboot.
if [[ ! -f /etc/rc.local ]]; then if [[ ! -f /etc/rc.local ]]; then
echo "#!/bin/bash" | tSudo tee /etc/rc.local > /dev/null echo "#!/bin/bash" | tSudo tee /etc/rc.local > /dev/null
echo "cd ${G_EHOME}" | tSudo tee -a /etc/rc.local > /dev/null echo "sudo -i -u $(logname) ${BASH_SOURCE[0]} server &> /dev/null &" | tSudo tee -a /etc/rc.local > /dev/null
echo "sudo -u $(logname) ${BASH_SOURCE[0]} server &> /dev/null &" | tSudo tee -a /etc/rc.local > /dev/null
echo "exit 0" | tSudo tee -a /etc/rc.local > /dev/null echo "exit 0" | tSudo tee -a /etc/rc.local > /dev/null
fi fi
} }
@ -303,13 +303,13 @@ function startup() {
exit 1 exit 1
fi fi
# Do we have an automation file? # Do we have a config file?
if [[ ! -f "${G_EHOME}/automated.install" ]]; then if [[ ! -f "${G_EHOME}/joeybuild.config" ]]; then
tBoldBox tRED "Cannot find automated.install file!" tBoldBox tRED "Cannot find joeybuild.config file!"
exit 1 exit 1
fi fi
source "${G_EHOME}/automated.install" source "${G_EHOME}/joeybuild.config"
tSudoSetPassword "${AUTOMATED_SUDO}" tSudoSetPassword "${CONFIG_SUDO}"
# Be sure we can silently sudo. (for mountORCA) # Be sure we can silently sudo. (for mountORCA)
tSudo tSudo
@ -361,19 +361,16 @@ function startBuildServer() {
local ARCHS= local ARCHS=
local DESCRIPTION= local DESCRIPTION=
local USERNAME= local USERNAME=
local FILE=
cd ${G_EHOME} cd ${G_EHOME}
# Log startup. # Log startup.
echo "$(date) - Startup ${0}" >> "${LOG}" echo "$(date) - Startup ${0}" >> joeybuild.log
mkdir -p http
# Build supported project types and target details for JoeyDev. # Build supported project types and target details for JoeyDev.
echo "1.0" > http/joeydev.info echo "1.0" > dist/joeydev.info
echo "------------------------------------------------------------------------------" >> http/joeydev.info echo "------------------------------------------------------------------------------" >> dist/joeydev.info
echo "project application \"JoeyLib Application\"" >> http/joeydev.info echo "project application \"JoeyLib Application\"" >> dist/joeydev.info
# echo "project joeylib \"JoeyLib Itself\"" >> http/joeydev.info # echo "project joeylib \"JoeyLib Itself\"" >> http/joeydev.info
for TARGET in ${G_EHOME}/targets/*.target; do for TARGET in ${G_EHOME}/targets/*.target; do
NAME=$(basename -s .target ${TARGET}) NAME=$(basename -s .target ${TARGET})
@ -381,12 +378,12 @@ function startBuildServer() {
if [[ ${RESULT} -eq 1 ]]; then if [[ ${RESULT} -eq 1 ]]; then
call ARCHS ${NAME} architectures call ARCHS ${NAME} architectures
call DESCRIPTION ${NAME} friendlyName call DESCRIPTION ${NAME} friendlyName
echo "target ${NAME} \"${DESCRIPTION}\" ${ARCHS}" >> http/joeydev.info echo "target ${NAME} \"${DESCRIPTION}\" ${ARCHS}" >> dist/joeydev.info
fi fi
done done
# Start the PHP web server if it's not already running. # Start the PHP web server if it's not already running.
php -S 0.0.0.0:${G_HTTP_PORT} -t http >> joeybuild.log 2>&1 & php -S 0.0.0.0:${G_HTTP_PORT} -t dist >> joeybuild.log 2>&1 &
# Start the actual build server. # Start the actual build server.
cd /home cd /home
@ -512,4 +509,4 @@ function withTargets() {
# At the very end so we can stream this script from a web server. # At the very end so we can stream this script from a web server.
startup $@ # 2>&1 | tee lastrun.log startup $@ 2>&1 | tee lastrun.log

View file

@ -133,7 +133,7 @@ function compile() {
function enabled() { function enabled() {
echo 0 echo 1
} }
@ -157,8 +157,8 @@ function install() {
chmod 777 "${M_IIGS}/ORCA" chmod 777 "${M_IIGS}/ORCA"
mkdir -p ${G_EHOME}/.ssh mkdir -p ${G_EHOME}/.ssh
cp -f "${AUTOMATED_GOLDEN_GATE_PUBLIC_KEY}" ${G_EHOME}/.ssh/id_rsa.pub cp -f "${CONFIG_GOLDEN_GATE_PUBLIC_KEY}" ${G_EHOME}/.ssh/id_rsa.pub
cp -f "${AUTOMATED_GOLDEN_GATE_PRIVATE_KEY}" ${G_EHOME}/.ssh/id_rsa cp -f "${CONFIG_GOLDEN_GATE_PRIVATE_KEY}" ${G_EHOME}/.ssh/id_rsa
touch ${G_EHOME}/.ssh/authorized_keys touch ${G_EHOME}/.ssh/authorized_keys
touch ${G_EHOME}/.ssh/known_hosts touch ${G_EHOME}/.ssh/known_hosts
touch ${G_EHOME}/.ssh/config touch ${G_EHOME}/.ssh/config
@ -199,7 +199,7 @@ function install() {
if [[ ! -d GoldenGate ]]; then if [[ ! -d GoldenGate ]]; then
ssh-keygen -F gitlab.com || ssh-keyscan gitlab.com > ${G_EHOME}/.ssh/known_hosts ssh-keygen -F gitlab.com || ssh-keyscan gitlab.com > ${G_EHOME}/.ssh/known_hosts
git config --global credential.helper cache git config --global credential.helper cache
git clone https://${AUTOMATED_GOLDEN_GATE_USER_NAME}:${AUTOMATED_GOLDEN_GATE_PASSWORD}@gitlab.com/GoldenGate/GoldenGate.git git clone https://${CONFIG_GOLDEN_GATE_USER_NAME}:${CONFIG_GOLDEN_GATE_PASSWORD}@gitlab.com/GoldenGate/GoldenGate.git
fi fi
if [[ ! -f "${M_IIGS}/iix" ]]; then if [[ ! -f "${M_IIGS}/iix" ]]; then
@ -214,13 +214,13 @@ function install() {
mkdir -p ${M_IIGS} mkdir -p ${M_IIGS}
cp -f bin/{iix,dumpobj,opus-extractor} "${M_IIGS}/." cp -f bin/{iix,dumpobj,opus-extractor} "${M_IIGS}/."
cd installed cd installed
msiextract "${G_EHOME}/${AUTOMATED_GOLDEN_GATE_MSI}" msiextract "${G_EHOME}/${CONFIG_GOLDEN_GATE_MSI}"
find -name ".*" -delete find -name ".*" -delete
cp -rf GoldenGate/* "${M_IIGS}/ORCA/." cp -rf GoldenGate/* "${M_IIGS}/ORCA/."
popd popd
fi fi
isoinfo -i "${AUTOMATED_OPUS_SOFTWARE_ISO}" -x /FOR_EMUL/BYTEWORK.S\;1 > BYTEWORKS isoinfo -i "${CONFIG_OPUS_SOFTWARE_ISO}" -x /FOR_EMUL/BYTEWORK.S\;1 > BYTEWORKS
"${M_IIGS}/opus-extractor" -v BYTEWORKS "${M_IIGS}/ORCA" "${M_IIGS}/opus-extractor" -v BYTEWORKS "${M_IIGS}/ORCA"
rm BYTEWORKS rm BYTEWORKS

View file

@ -74,8 +74,6 @@ function compile() {
local LOG=$3 local LOG=$3
local CFILES=(${*:4}) local CFILES=(${*:4})
setCompiler ${ARCH} ${PASS}
if [[ "${ARCH}" == "i386" ]]; then if [[ "${ARCH}" == "i386" ]]; then
export CFLAGS="-m32 -Wall -D_REENTRANT_" export CFLAGS="-m32 -Wall -D_REENTRANT_"
else else
@ -85,8 +83,6 @@ function compile() {
setCompiler ${ARCH} ${PASS} setCompiler ${ARCH} ${PASS}
compileGCC ${ARCH} ${PASS} ${LOG} "${CFILES[@]}" compileGCC ${ARCH} ${PASS} ${LOG} "${CFILES[@]}"
unSetCompiler unSetCompiler
unSetCompiler
} }
@ -128,7 +124,7 @@ function link() {
export LDFLAGS="-lm -ldl -lpthread" export LDFLAGS="-lm -ldl -lpthread"
setCompiler ${ARCH} ${PASS} setCompiler ${ARCH} ${PASS}
linkGCC Linux ${ARCH} ${PASS} "" ${LOG} "${OFILES[@]}" linkGCC Linux ${ARCH} ${PASS} "" "" ${LOG} "${OFILES[@]}"
unSetCompiler unSetCompiler
} }

View file

@ -26,6 +26,7 @@ M_TRIPLE=
source ${G_EHOME}/helpers/SDL2.helper source ${G_EHOME}/helpers/SDL2.helper
source ${G_EHOME}/helpers/GCC.helper
function architectures() { function architectures() {
@ -34,10 +35,14 @@ function architectures() {
function assemble() { function assemble() {
local -n AFILES=$1 local ARCH=$1
local PASS=$2 local PASS=$2
local LOG=$3 local LOG=$3
local AFILES=(${*:4})
setCompiler ${ARCH} ${PASS}
assembleGCC ${ARCH} ${PASS} ${LOG} "${AFILES[@]}"
unSetCompiler
} }
@ -67,35 +72,50 @@ function buildMacOSXToolchain() {
git clone https://skunkworks.kangaroopunch.com/mirrors/osxcross.git git clone https://skunkworks.kangaroopunch.com/mirrors/osxcross.git
fi fi
pushd osxcross if [[ ! -f cross/${PLATFORM}/toolchain.cmake ]]; then
# Do we have an existing SDK tarball? pushd osxcross
if [[ ! -f "../${SDK}" ]]; then # Do we have an existing SDK tarball?
# Nope. Build tarball and keep for later. if [[ ! -f "../${SDK}" ]]; then
./tools/gen_sdk_package_pbzx.sh "../${XCODE}" # Nope. Build tarball and keep for later.
mv -f MacOSX* ../. ./tools/gen_sdk_package_pbzx.sh "../${XCODE}"
mv -f MacOSX* "../${SDK}"
fi
# Put tarball in place.
cp -f "../${SDK}" tarballs/.
# Build SDK.
UNATTENDED=1 ./build.sh
# Build compiler runtime.
if [[ -d /usr/lib/llvm-10/lib/clang/10.0.0/lib/darwin ]]; then
tSudo rm -rf /usr/lib/llvm-10/lib/clang/10.0.0/lib/darwin
fi
tSudo ENABLE_COMPILER_RT_INSTALL=1 ./build_compiler_rt.sh
# Move results into cross compiler location.
mkdir -p ../cross/${PLATFORM}
mv -f target/* ../cross/${PLATFORM}
tSudo mv -f /usr/lib/llvm-10/lib/clang/10.0.0/lib/darwin ../cross/${PLATFORM}/.
# Tidy up for next build.
./cleanup.sh
rm -f tarballs/*
popd
fi fi
cp -f "../${SDK}" tarballs/.
if [[ ! -f ../cross/${PLATFORM}/toolchain.cmake ]]; then
UNATTENDED=1 ./build.sh
tSudo ENABLE_COMPILER_RT_INSTALL=1 ./build_compiler_rt.sh
mkdir -p ../cross/${PLATFORM}
mv -f target/* ../cross/${PLATFORM}
tSudo mv -f /usr/lib/llvm-10/lib/clang/10.0.0/lib/darwin ../cross/${PLATFORM}/.
./cleanup.sh
fi
popd
} }
function compile() { function compile() {
local -n CFILES=$1 local ARCH=$1
local PASS=$2 local PASS=$2
local LOG=$3 local LOG=$3
local CFILES=(${*:4})
export CFLAGS="-Wall -D_THREAD_SAFE"
setCompiler ${ARCH} ${PASS}
compileGCC ${ARCH} ${PASS} ${LOG} "${CFILES[@]}"
unSetCompiler
} }
function enabled() { function enabled() {
echo 0 echo 1
} }
@ -108,12 +128,15 @@ function install() {
local ARCH=$1 local ARCH=$1
local PASS=$2 local PASS=$2
if [[ "${ARCH}" == "aarch64" ]]; then # Debug is the first pass, so build our toolchains then.
buildMacOSXToolchain "${AUTOMATED_MACOS_SDK_11_3}" "${AUTOMATED_XCODE_12_5_1_XIP}" macos-apple if [[ "${PASS}" == "debug" ]]; then
SDL2_TAG=97a5e744497ff7cc93edc5119d67cad3ee86dd57 if [[ "${ARCH}" == "aarch64" ]]; then
else buildMacOSXToolchain "${CONFIG_MACOS_SDK_11_3}" "${CONFIG_XCODE_12_5_1_XIP}" macos-apple
buildMacOSXToolchain "${AUTOMATED_MACOS_SDK_10_13}" "${AUTOMATED_XCODE_9_4_1_XIP}" macos-intel SDL2_TAG=97a5e744497ff7cc93edc5119d67cad3ee86dd57
SDL2_TAG=25f9ed87ff6947d9576fc9d79dee0784e638ac58 else
buildMacOSXToolchain "${CONFIG_MACOS_SDK_10_13}" "${CONFIG_XCODE_9_4_1_XIP}" macos-intel
SDL2_TAG=25f9ed87ff6947d9576fc9d79dee0784e638ac58
fi
fi fi
setCompiler ${ARCH} ${PASS} setCompiler ${ARCH} ${PASS}
@ -123,18 +146,31 @@ function install() {
function link() { function link() {
local -n OFILES=$1 local ARCH=$1
local PASS=$2 local PASS=$2
local LOG=$3 local LOG=$3
local OFILES=(${*:4})
export CFLAGS="-Wall -D_THREAD_SAFE"
if [[ "${ARCH}" == "aarch64" ]]; then
export LDFLAGS="-lm -liconv -Wl,-framework,CoreAudio -Wl,-framework,AudioToolbox -Wl,-weak_framework,CoreHaptics -Wl,-weak_framework,GameController -Wl,-framework,ForceFeedback -lobjc -Wl,-framework,CoreVideo -Wl,-framework,Cocoa -Wl,-framework,Carbon -Wl,-framework,IOKit -Wl,-weak_framework,QuartzCore -Wl,-weak_framework,Metal"
else
export LDFLAGS="-lm -liconv -Wl,-framework,CoreAudio -Wl,-framework,AudioToolbox -Wl,-framework,ForceFeedback -lobjc -Wl,-framework,CoreVideo -Wl,-framework,Cocoa -Wl,-framework,Carbon -Wl,-framework,IOKit -Wl,-weak_framework,QuartzCore -Wl,-weak_framework,Metal"
fi
setCompiler ${ARCH} ${PASS}
linkGCC MacOS ${ARCH} ${PASS} "" "" ${LOG} "${OFILES[@]}"
unSetCompiler
} }
function package() { function package() {
local -n DFILES=$1 local ARCH=$1
local PASS=$2 local PASS=$2
local LOG=$3 local LOG=$3
local DFILES=(${*:4})
packageGCC MacOS ${ARCH} ${PASS} ${LOG} "${DFILES[@]}"
} }
@ -154,8 +190,7 @@ function setCompiler() {
export PATH=${G_EHOME}/cross/${CROSS}/bin:${G_ORIGINAL_PATH} export PATH=${G_EHOME}/cross/${CROSS}/bin:${G_ORIGINAL_PATH}
export LD_LIBRARY_PATH=${G_EHOME}/cross/${CROSS}/lib export LD_LIBRARY_PATH=${G_EHOME}/cross/${CROSS}/lib
sudo rm -f /usr/lib/llvm-10/lib/clang/10.0.0/lib/darwin || true tSudo ln -sf ${G_EHOME}/cross/${CROSS}/darwin/ /usr/lib/llvm-10/lib/clang/10.0.0/lib/.
sudo ln -s ${G_EHOME}/cross/${CROSS}/darwin /usr/lib/llvm-10/lib/clang/10.0.0/lib/.
export CC=${M_TRIPLE}-clang export CC=${M_TRIPLE}-clang
export LD=${M_TRIPLE}-c++ export LD=${M_TRIPLE}-c++

View file

@ -27,6 +27,7 @@ M_TRIPLE=
source ${G_EHOME}/helpers/SDL2.helper source ${G_EHOME}/helpers/SDL2.helper
source ${G_EHOME}/helpers/GCC.helper
function architectures() { function architectures() {
@ -35,10 +36,14 @@ function architectures() {
function assemble() { function assemble() {
local -n AFILES=$1 local ARCH=$1
local PASS=$2 local PASS=$2
local LOG=$3 local LOG=$3
local AFILES=(${*:4})
setCompiler ${ARCH} ${PASS}
assembleGCC ${ARCH} ${PASS} ${LOG} "${AFILES[@]}"
unSetCompiler
} }
@ -60,14 +65,20 @@ function buildJoeyLib() {
function compile() { function compile() {
local -n CFILES=$1 local ARCH=$1
local PASS=$2 local PASS=$2
local LOG=$3 local LOG=$3
local CFILES=(${*:4})
export CFLAGS="-Dmain=SDL_main -Wall -static-libgcc"
setCompiler ${ARCH} ${PASS}
compileGCC ${ARCH} ${PASS} ${LOG} "${CFILES[@]}"
unSetCompiler
} }
function enabled() { function enabled() {
echo 0 echo 1
} }
@ -86,18 +97,27 @@ function install() {
function link() { function link() {
local -n OFILES=$1 local ARCH=$1
local PASS=$2 local PASS=$2
local LOG=$3 local LOG=$3
local OFILES=(${*:4})
export CFLAGS="-Dmain=SDL_main -Wall -static-libgcc"
export LDFLAGS="-mwindows -Wl,--dynamicbase -Wl,--nxcompat -lm -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lsetupapi -lversion -luuid"
setCompiler ${ARCH} ${PASS}
linkGCC Windows ${ARCH} ${PASS} ".exe" "-lmingw32" ${LOG} "${OFILES[@]}"
unSetCompiler
} }
function package() { function package() {
local -n DFILES=$1 local ARCH=$1
local PASS=$2 local PASS=$2
local LOG=$3 local LOG=$3
local DFILES=(${*:4})
packageGCC Windows ${ARCH} ${PASS} ${LOG} "${DFILES[@]}"
} }