IIgs "Warehouse" demo built!
This commit is contained in:
parent
ccb46f4920
commit
b26b44fdbd
15 changed files with 1610 additions and 58 deletions
3
.gitattributes
vendored
Normal file
3
.gitattributes
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
*.dat filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.img filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.mod filter=lfs diff=lfs merge=lfs -text
|
17
buildTest.sh
Normal file
17
buildTest.sh
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
source automated.install
|
||||||
|
source towel/towel.sh
|
||||||
|
|
||||||
|
tSudoSetPassword "${AUTOMATED_SUDO}"
|
||||||
|
tArgsHandler $@
|
||||||
|
|
||||||
|
[[ -d /home/test/build ]] && tSudo rm -rf /home/test/build
|
||||||
|
tSudo mkdir -p /home/test/build
|
||||||
|
tSudo cp sampleProject/* /home/test/build
|
||||||
|
|
||||||
|
tSudo chown -R test:test /home/test/build
|
||||||
|
tSudo chmod ugo+rwx /home/test/build
|
||||||
|
tSudo chmod ugo+rw /home/test/build/*
|
||||||
|
|
||||||
|
./joeybuild.sh build /home/test/build
|
67
joeybuild.sh
67
joeybuild.sh
|
@ -27,6 +27,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
|
G_HTTP_PORT=6502 # Port to use for HTTP server. Must be > 1024.
|
||||||
G_EHOME="$(getent passwd $(logname) | cut -d: -f6)" # Home for this user.
|
G_EHOME="$(getent passwd $(logname) | cut -d: -f6)" # Home for this user.
|
||||||
G_SRC="${G_EHOME}/joeylib/joeylib/src" # Location of JoeyLib source.
|
G_SRC="${G_EHOME}/joeylib/joeylib/src" # Location of JoeyLib source.
|
||||||
G_TEMP="${G_EHOME}/temp" # Directory to store temporary data.
|
G_TEMP="${G_EHOME}/temp" # Directory to store temporary data.
|
||||||
|
@ -44,7 +45,7 @@ function addBuildUser() {
|
||||||
local SALT=$(LC_ALL=C tr -cd "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" < /dev/urandom | head -c 8)
|
local SALT=$(LC_ALL=C tr -cd "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" < /dev/urandom | head -c 8)
|
||||||
local CRYPT=$(perl -e 'print crypt($ARGV[0], $ARGV[1])' ${PASS} ${SALT})
|
local CRYPT=$(perl -e 'print crypt($ARGV[0], $ARGV[1])' ${PASS} ${SALT})
|
||||||
|
|
||||||
tSudo useradd -m -G sftponly -s /sbin/false -p "${CRYPT}" "${USER}"
|
tSudo useradd -m -G sftponly -s /usr/bin/false -p "${CRYPT}" "${USER}"
|
||||||
tSudo chown root:root /home/${USER}
|
tSudo chown root:root /home/${USER}
|
||||||
tSudo chmod 755 /home/${USER}
|
tSudo chmod 755 /home/${USER}
|
||||||
tSudo mkdir -p /home/${USER}/build
|
tSudo mkdir -p /home/${USER}/build
|
||||||
|
@ -100,12 +101,15 @@ function doBuild() {
|
||||||
local AFILES=()
|
local AFILES=()
|
||||||
local CFILES=()
|
local CFILES=()
|
||||||
local OFILES=()
|
local OFILES=()
|
||||||
local DATA=()
|
local DFILES=()
|
||||||
local TEMP=
|
local TEMP=
|
||||||
local TARGET=
|
local TARGET=
|
||||||
local RESULT=
|
local RESULT=
|
||||||
local LOG=
|
local LOG=
|
||||||
local PASS=
|
local PASS=
|
||||||
|
local PROJECT_TYPE=
|
||||||
|
|
||||||
|
set -x
|
||||||
|
|
||||||
pushd "${SOURCE}"
|
pushd "${SOURCE}"
|
||||||
|
|
||||||
|
@ -119,11 +123,20 @@ function doBuild() {
|
||||||
mkdir -p results
|
mkdir -p results
|
||||||
G_BUILD_RESULTS=${SOURCE}/results
|
G_BUILD_RESULTS=${SOURCE}/results
|
||||||
|
|
||||||
# Read project information.
|
|
||||||
G_BUILD_PLATFORMS="["
|
G_BUILD_PLATFORMS="["
|
||||||
G_BUILD_PROJECT=
|
G_BUILD_PROJECT=
|
||||||
|
PROJECT_TYPE=
|
||||||
|
|
||||||
|
# Read project information.
|
||||||
while IFS= read -r LINE; do
|
while IFS= read -r LINE; do
|
||||||
# If we don't have a project name, grab it from the first line of the project file and set things up.
|
# If we don't have a project type, grab it from the first line of the project file and set things up.
|
||||||
|
if [[ -z ${PROJECT_TYPE} ]]; then
|
||||||
|
PROJECT_TYPE=${LINE}
|
||||||
|
# Skip to next loop pass.
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If we don't have a project name, grab it from the second line of the project file and set things up.
|
||||||
if [[ -z ${G_BUILD_PROJECT} ]]; then
|
if [[ -z ${G_BUILD_PROJECT} ]]; then
|
||||||
G_BUILD_PROJECT=${LINE}
|
G_BUILD_PROJECT=${LINE}
|
||||||
# Generate a list of non-source files.
|
# Generate a list of non-source files.
|
||||||
|
@ -132,17 +145,26 @@ function doBuild() {
|
||||||
if [[ "${FILE}" != "build.start" && "${FILE}" != "build.temp" && "${FILE}" != "build.tar.bz2" ]]; then
|
if [[ "${FILE}" != "build.start" && "${FILE}" != "build.temp" && "${FILE}" != "build.tar.bz2" ]]; then
|
||||||
EXTENSION="${FILE##*.}"
|
EXTENSION="${FILE##*.}"
|
||||||
if [[ "${EXTENSION}" != "c" && "${EXTENSION}" != "h" && "${EXTENSION}" != "asm" && "${EXTENSION}" != "macro" && "${EXTENSION}" != "inc" ]]; then
|
if [[ "${EXTENSION}" != "c" && "${EXTENSION}" != "h" && "${EXTENSION}" != "asm" && "${EXTENSION}" != "macro" && "${EXTENSION}" != "inc" ]]; then
|
||||||
DATA+=(${FILE})
|
DFILES+=(${FILE})
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
# Generate a list of C files to compile.
|
# Generate a list of C files to compile.
|
||||||
|
TEMP=$(ls -1 *.c 2>/dev/null | wc -l)
|
||||||
|
if [[ ${TEMP} -ne 0 ]]; then
|
||||||
CFILES=($(ls -1 *.c))
|
CFILES=($(ls -1 *.c))
|
||||||
|
fi
|
||||||
# Generate a list of ASM files to assemble.
|
# Generate a list of ASM files to assemble.
|
||||||
|
TEMP=$(ls -1 *.asm 2>/dev/null | wc -l)
|
||||||
|
if [[ ${TEMP} -ne 0 ]]; then
|
||||||
AFILES=($(ls -1 *.asm))
|
AFILES=($(ls -1 *.asm))
|
||||||
else
|
fi
|
||||||
# This is for the 2nd and later lines of the project that list which targets to build.
|
# Skip to next loop pass.
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# This is for the 3rd and later lines of the project that list which targets to build.
|
||||||
TARGET=
|
TARGET=
|
||||||
for TEMP in ${LINE}; do
|
for TEMP in ${LINE}; do
|
||||||
if [[ -z ${TARGET} ]]; then
|
if [[ -z ${TARGET} ]]; then
|
||||||
|
@ -154,25 +176,33 @@ function doBuild() {
|
||||||
# We at least tried to build this target.
|
# We at least tried to build this target.
|
||||||
G_BUILD_PLATFORMS="${G_BUILD_PLATFORMS}${TARGET}.${TEMP}.${PASS} "
|
G_BUILD_PLATFORMS="${G_BUILD_PLATFORMS}${TARGET}.${TEMP}.${PASS} "
|
||||||
# Make sure we have the official JoeyLib header.
|
# Make sure we have the official JoeyLib header.
|
||||||
cp -f "${G_HOME}/dist/joey.h" .
|
cp -f "${G_EHOME}/dist/joey.h" .
|
||||||
# Log file.
|
# Log file.
|
||||||
LOG="${G_BUILD_RESULTS}/build.${TARGET}.${TEMP}.${PASS}"
|
LOG="${G_BUILD_RESULTS}/build.${TARGET}.${TEMP}.${PASS}"
|
||||||
# Compile C files and generate object list.
|
# Compile C files and generate object list.
|
||||||
call RESULT ${TARGET} ${TEMP} compile CFILES ${PASS} ${LOG}
|
if [[ "${#CFILES[@]}" != "0" ]]; then
|
||||||
|
call RESULT ${TARGET} compile ${TEMP} ${PASS} ${LOG} "${CFILES[@]}"
|
||||||
OFILES=(${RESULT})
|
OFILES=(${RESULT})
|
||||||
|
fi
|
||||||
# Assemble ASM files and generate object list.
|
# Assemble ASM files and generate object list.
|
||||||
call RESULT ${TARGET} ${TEMP} assemble AFILES ${PASS} ${LOG}
|
if [[ "${#AFILES[@]}" != "0" ]]; then
|
||||||
|
call RESULT ${TARGET} assemble ${TEMP} ${PASS} ${LOG} "${AFILES[@]}"
|
||||||
OFILES+=(${RESULT})
|
OFILES+=(${RESULT})
|
||||||
|
fi
|
||||||
# Link with JoeyLib.
|
# Link with JoeyLib.
|
||||||
call RESULT ${TARGET} ${TEMP} link OFILES ${PASS} ${LOG}
|
call RESULT ${TARGET} link ${TEMP} ${PASS} ${LOG} "${OFILES[@]}"
|
||||||
# Process game data files.
|
# Process game data files.
|
||||||
call RESULT ${TARGET} ${TEMP} package DATA ${PASS} ${LOG}
|
if [[ "${#DFILES[@]}" != "0" ]]; then
|
||||||
done
|
call RESULT ${TARGET} package ${TEMP} ${PASS} ${LOG} "${DFILES[@]}"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
done < build.start
|
||||||
|
|
||||||
|
popd
|
||||||
|
|
||||||
tTrim TEMP "${G_BUILD_PLATFORMS}"
|
tTrim TEMP "${G_BUILD_PLATFORMS}"
|
||||||
G_BUILD_PLATFORMS="${TEMP}]"
|
G_BUILD_PLATFORMS="${TEMP}]"
|
||||||
}
|
}
|
||||||
|
@ -185,6 +215,9 @@ function doInstall() {
|
||||||
updateSystem
|
updateSystem
|
||||||
configureSFTP
|
configureSFTP
|
||||||
|
|
||||||
|
# Add 'false' as a valid shell.
|
||||||
|
echo "/usr/bin/false" | tSudo tee -a /etc/shells
|
||||||
|
|
||||||
withTargets install "Installing SDK"
|
withTargets install "Installing SDK"
|
||||||
|
|
||||||
rebuildJoeyLib
|
rebuildJoeyLib
|
||||||
|
@ -315,20 +348,20 @@ function startBuildServer() {
|
||||||
# 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" > http/joeydev.info
|
||||||
echo "------------------------------------------------------------------------------" >> http/joeydev.info
|
echo "------------------------------------------------------------------------------" >> http/joeydev.info
|
||||||
echo "=build.application \"JoeyLib Application\"" >> http/joeydev.info
|
echo "project application \"JoeyLib Application\"" >> http/joeydev.info
|
||||||
echo "=build.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})
|
||||||
call RESULT ${NAME} enabled
|
call RESULT ${NAME} enabled
|
||||||
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 "+${NAME} \"${DESCRIPTION}\" ${ARCHS}" >> http/joeydev.info
|
echo "target ${NAME} \"${DESCRIPTION}\" ${ARCHS}" >> http/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:6502 -t http >> joeybuild.log 2>&1 &
|
php -S 0.0.0.0:${G_HTTP_PORT} -t http >> joeybuild.log 2>&1 &
|
||||||
|
|
||||||
# Start the actual build server.
|
# Start the actual build server.
|
||||||
cd /home
|
cd /home
|
||||||
|
|
BIN
sampleProject/about.img
(Stored with Git LFS)
Normal file
BIN
sampleProject/about.img
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
sampleProject/biff.img
(Stored with Git LFS)
Normal file
BIN
sampleProject/biff.img
(Stored with Git LFS)
Normal file
Binary file not shown.
3
sampleProject/build.start
Normal file
3
sampleProject/build.start
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
application
|
||||||
|
Warehouse
|
||||||
|
IIgs 65816
|
BIN
sampleProject/font.img
(Stored with Git LFS)
Normal file
BIN
sampleProject/font.img
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
sampleProject/help.img
(Stored with Git LFS)
Normal file
BIN
sampleProject/help.img
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
sampleProject/index.dat
(Stored with Git LFS)
Normal file
BIN
sampleProject/index.dat
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
sampleProject/kanga.img
(Stored with Git LFS)
Normal file
BIN
sampleProject/kanga.img
(Stored with Git LFS)
Normal file
Binary file not shown.
1366
sampleProject/main.c
Normal file
1366
sampleProject/main.c
Normal file
File diff suppressed because it is too large
Load diff
BIN
sampleProject/puzzles.dat
(Stored with Git LFS)
Normal file
BIN
sampleProject/puzzles.dat
(Stored with Git LFS)
Normal file
Binary file not shown.
95
sampleProject/stddclmr.h
Normal file
95
sampleProject/stddclmr.h
Normal file
|
@ -0,0 +1,95 @@
|
||||||
|
#ifndef STDDCLMR_H
|
||||||
|
#define STDDCLMR_H
|
||||||
|
|
||||||
|
/*
|
||||||
|
Action figures sold separately. Add toner. All models over 18 years of age.
|
||||||
|
All rights reserved. Allow four to six weeks for delivery. An equal
|
||||||
|
opportunity employer. Any resemblance to actual persons, living or dead, is
|
||||||
|
unintentional and purely coincidental. Apply only to affected area. Approved
|
||||||
|
for veterans. As seen on TV. At participating locations only. Avoid contact
|
||||||
|
with mucous membranes. Avoid contact with skin. Avoid extreme temperatures
|
||||||
|
and store in a cool dry place. Batteries not included. Be sure each item is
|
||||||
|
properly endorsed. Beware of dog. Booths for two or more. Breaking seal
|
||||||
|
constitutes acceptance of agreement. Call toll free number before digging.
|
||||||
|
Caveat emptor. Check here if tax deductible. Close cover before striking
|
||||||
|
Colors may fade. Contains a substantial amount of non-tobacco ingredients.
|
||||||
|
Contents may settle during shipment. Contestants have been briefed on some
|
||||||
|
questions before the show. Copyright 1995 Joker's Wild. Disclaimer does
|
||||||
|
not cover hurricane, lightning, tornado, tsunami, volcanic eruption,
|
||||||
|
earthquake, flood, and other Acts of God, misuse, neglect, unauthorized
|
||||||
|
repair, damage from improper installation, broken antenna or marred cabinet,
|
||||||
|
incorrect line voltage, missing or altered serial numbers, sonic boom
|
||||||
|
vibrations, electromagnetic radiation from nuclear blasts, customer
|
||||||
|
adjustments that are not covered in the joke list, and incidents owing to
|
||||||
|
airplane crash, ship sinking, motor vehicle accidents, leaky roof, broken
|
||||||
|
glass, falling rocks, mud slides, forest fire, flying projectiles, or
|
||||||
|
dropping the item. Do not bend, fold, mutilate, or spindle. Do not place
|
||||||
|
near flammable or magnetic source. Do not puncture, incinerate, or store
|
||||||
|
above 120 degrees Fahrenheit. Do not stamp. Use other side for additional
|
||||||
|
listings. Do not use while operating a motor vehicle or heavy equipment. Do
|
||||||
|
not write below this line. Documents are provided "as is" without any
|
||||||
|
warranties expressed or implied. Don't quote me on anything. Don't quote me
|
||||||
|
on that. Driver does not carry cash. Drop in any mailbox. Edited for
|
||||||
|
television. Employees and their families are not eligible. Falling rock.
|
||||||
|
First pull up, then pull down. Flames redirected to /dev/null. For a
|
||||||
|
limited time only. For external use only. For off-road use only. For office
|
||||||
|
use only. For recreational use only. Do not disturb. Freshest if eaten
|
||||||
|
before date on carton. Hand wash only, tumble dry on low heat. If a rash,
|
||||||
|
redness, irritation, or swelling develops, discontinue use. If condition
|
||||||
|
persists, consult your physician. If defects are discovered, do not attempt
|
||||||
|
to fix them yourself, but return to an authorized service center. If
|
||||||
|
ingested, do not induce vomiting, if symptoms persist, consult a doctor.
|
||||||
|
Keep away from open flames and avoid inhaling fumes. Keep away from
|
||||||
|
sunlight, pets, and small children. Keep cool; process promptly. Limit
|
||||||
|
one-per-family please. Limited time offer, call now to ensure prompt
|
||||||
|
delivery. List at least two alternate dates. List each check separately by
|
||||||
|
bank number. List was current at time of printing. Lost ticket pays maximum
|
||||||
|
rate. May be too intense for some viewers. Must be 18 to enter. No Canadian
|
||||||
|
coins. No alcohol, dogs or horses. No anchovies unless otherwise specified.
|
||||||
|
No animals were harmed in the production of these documents. No money down.
|
||||||
|
No other warranty expressed or implied. No passes accepted for this
|
||||||
|
engagement. No postage necessary if mailed in the United States. No
|
||||||
|
preservatives added. No purchase necessary. No salt, MSG, artificial color
|
||||||
|
or flavor added. No shoes, no shirt, no service, no kidding. No solicitors.
|
||||||
|
No substitutions allowed. No transfers issued until the bus comes to a
|
||||||
|
complete stop. No user-serviceable parts inside. Not affiliated with the
|
||||||
|
American Red Cross. Not liable for damages due to use or misuse. Not
|
||||||
|
recommended for children. Not responsible for direct, indirect, incidental
|
||||||
|
or consequential damages resulting from any defect, error or failure to
|
||||||
|
perform. Not the Beatles. Objects in mirror may be closer than they appear.
|
||||||
|
One size fits all. Many suitcases look alike. Other copyright laws for
|
||||||
|
specific entries apply wherever noted. Other restrictions may apply. Package
|
||||||
|
sold by weight, not volume. Parental advisory - explicit lyrics. Penalty for
|
||||||
|
private use. Place stamp here. Please remain seated until the ride has come
|
||||||
|
to a complete stop. Possible penalties for early withdrawal. Post office will
|
||||||
|
not deliver without postage. Postage will be paid by addressee. Prerecorded
|
||||||
|
for this time zone. Price does not include taxes. Processed at location
|
||||||
|
stamped in code at top of carton. Quantities are limited while supplies last.
|
||||||
|
Read at your own risk. Record additional transactions on back of previous
|
||||||
|
stub. Replace with same type. Reproduction strictly prohibited. Restaurant
|
||||||
|
package, not for resale. Return to sender, no forwarding order on file,
|
||||||
|
unable to forward. Safety goggles may be required during use. Sanitized for
|
||||||
|
your protection. Sealed for your protection, do not use if the safety seal is
|
||||||
|
broken. See label for sequence. Shading within a garment may occur. Sign here
|
||||||
|
without admitting guilt. Simulated picture. Slightly enlarged to show detail.
|
||||||
|
Slightly higher west of the Rockies. Slippery when wet. Smoking these may be
|
||||||
|
hazardous to your health. Some assembly required. Some equipment shown is
|
||||||
|
optional. Some of the trademarks mentioned in this product appear for
|
||||||
|
identification purposes only. Subject to FCC approval. Subject to change
|
||||||
|
without notice. Substantial penalty for early withdrawal. Text may contain
|
||||||
|
material some readers may find objectionable, parental guidance is advised.
|
||||||
|
Text used in these documents is made from 100% recycled electrons and magnetic
|
||||||
|
particles. These documents do not reflect the thoughts or opinions of either
|
||||||
|
myself, my company, my friends, or my rabbit. This is not an offer to sell
|
||||||
|
securities. This offer is void where prohibited, taxed, or otherwise
|
||||||
|
restricted. This product is meant for educational purposes only. Times
|
||||||
|
approximate. Unix is a registered trademark of AT&T. Use only as directed. Use
|
||||||
|
only in a well-ventilated are. User assumes full liabilities. Void where
|
||||||
|
prohibited. We have sent the forms which seem right for you. You must be
|
||||||
|
present to win. You need not be present to win. Your canceled check is your
|
||||||
|
receipt. Your mileage may vary. I didn't do it. You can't prove anything.
|
||||||
|
|
||||||
|
This supersedes all previous notices.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endif // STDDCLMR_H
|
BIN
sampleProject/title.img
(Stored with Git LFS)
Normal file
BIN
sampleProject/title.img
(Stored with Git LFS)
Normal file
Binary file not shown.
|
@ -37,9 +37,10 @@ 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})
|
||||||
local OFILES=""
|
local OFILES=""
|
||||||
local FILE=
|
local FILE=
|
||||||
local O=
|
local O=
|
||||||
|
@ -64,12 +65,12 @@ function buildJoeyLib() {
|
||||||
local PASS=$2
|
local PASS=$2
|
||||||
local OUT=${GOLDEN_GATE}/out/joey
|
local OUT=${GOLDEN_GATE}/out/joey
|
||||||
|
|
||||||
|
setCompiler
|
||||||
|
|
||||||
rm -rf ${G_DIST}
|
rm -rf ${G_DIST}
|
||||||
mkdir -p ${G_DIST}
|
mkdir -p ${G_DIST}
|
||||||
pushd ${G_DIST}
|
pushd ${G_DIST}
|
||||||
|
|
||||||
setCompiler
|
|
||||||
|
|
||||||
rm -rf ${OUT} || true
|
rm -rf ${OUT} || true
|
||||||
mkdir -p ${OUT}
|
mkdir -p ${OUT}
|
||||||
|
|
||||||
|
@ -98,25 +99,26 @@ function buildJoeyLib() {
|
||||||
cp -f "${OUT}/joey.a" "joey.a#b10000"
|
cp -f "${OUT}/joey.a" "joey.a#b10000"
|
||||||
cp -f "${M_IIGS}/Tool222#ba0000" .
|
cp -f "${M_IIGS}/Tool222#ba0000" .
|
||||||
|
|
||||||
unSetCompiler
|
|
||||||
|
|
||||||
popd
|
popd
|
||||||
|
|
||||||
|
unSetCompiler
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
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})
|
||||||
local OFILES=""
|
local OFILES=""
|
||||||
local FILE=
|
local FILE=
|
||||||
local O=
|
local O=
|
||||||
|
|
||||||
[[ -d "${M_TARGET}" ]] && rm -rf "${M_TARGET}"
|
|
||||||
mkdir -p "${M_TARGET}"
|
|
||||||
|
|
||||||
setCompiler
|
setCompiler
|
||||||
|
|
||||||
|
rm -rf "${M_TARGET}" || true
|
||||||
|
mkdir -p "${M_TARGET}"
|
||||||
|
|
||||||
# Compile C files and generate object list.
|
# Compile C files and generate object list.
|
||||||
for FILE in "${CFILES[@]}"; do
|
for FILE in "${CFILES[@]}"; do
|
||||||
O=${FILE%.*}
|
O=${FILE%.*}
|
||||||
|
@ -282,10 +284,11 @@ 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 LIB="${G_HOME}/dist/IIgs-65816/${PASS}"
|
local OFILES=(${*:4})
|
||||||
|
local LIB="${G_EHOME}/dist/IIgs-65816/${PASS}"
|
||||||
|
|
||||||
setCompiler
|
setCompiler
|
||||||
|
|
||||||
|
@ -314,23 +317,29 @@ function link() {
|
||||||
|
|
||||||
|
|
||||||
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})
|
||||||
local DIR=${G_BUILD_RESULTS}/IIgs-65816/${PASS}
|
local DIR=${G_BUILD_RESULTS}/IIgs-65816/${PASS}
|
||||||
local DISK=${DIR}/${G_BUILD_PROJECT}.po
|
local DISK=${DIR}/${G_BUILD_PROJECT}.po
|
||||||
local LIB="${G_HOME}/dist/IIgs-65816/${PASS}"
|
local LIB="${G_EHOME}/dist/IIgs-65816/${PASS}"
|
||||||
local FILE=
|
local FILE=
|
||||||
local O=
|
local O=
|
||||||
local EXTENSION=
|
local EXTENSION=
|
||||||
|
|
||||||
|
setCompiler
|
||||||
|
|
||||||
mkdir -p ${DIR}
|
mkdir -p ${DIR}
|
||||||
|
|
||||||
|
#***TODO*** Maybe copy source code for everything to the disk in DEBUG so there are symbols to view?
|
||||||
|
|
||||||
# Create disk image, setting known file types
|
# Create disk image, setting known file types
|
||||||
${M_CADIUS} createvolume ${DISK} ${G_BUILD_PROJECT} 32MB
|
${M_CADIUS} createvolume ${DISK} ${G_BUILD_PROJECT} 32MB
|
||||||
${M_CADIUS} createfolder ${DISK} ${G_BUILD_PROJECT}/data
|
${M_CADIUS} createfolder ${DISK} ${G_BUILD_PROJECT}/data
|
||||||
${M_CADIUS} addfile ${DISK} ${G_BUILD_PROJECT} ${M_TARGET}/${G_BUILD_PROJECT}#b3db03
|
${M_CADIUS} addfile ${DISK} ${G_BUILD_PROJECT} ${M_TARGET}/${G_BUILD_PROJECT}#b3db03
|
||||||
${M_CADIUS} addfile ${DISK} ${G_BUILD_PROJECT}/data ${LIB}/Tool222#ba0000
|
${M_CADIUS} addfile ${DISK} ${G_BUILD_PROJECT}/data ${LIB}/Tool222#ba0000
|
||||||
|
|
||||||
# Copy game data.
|
# Copy game data.
|
||||||
for FILE in "${DFILES[@]}"; do
|
for FILE in "${DFILES[@]}"; do
|
||||||
# Data conversion.
|
# Data conversion.
|
||||||
|
@ -338,30 +347,32 @@ function package() {
|
||||||
case ${EXTENSION,,} in
|
case ${EXTENSION,,} in
|
||||||
mod)
|
mod)
|
||||||
php "${M_IIGS}/ntpconverter/ntpconverter.php" "${FILE}"
|
php "${M_IIGS}/ntpconverter/ntpconverter.php" "${FILE}"
|
||||||
O=`basename -s .mod ${FILE}`.ntp#060000
|
O=${M_TARGET}/$(basename -s .mod ${FILE}).ntp#060000
|
||||||
mv -f ${FILE} ${O}
|
mv -f ${FILE} ${O}
|
||||||
${M_CADIUS} addfile ${DISK} ${G_BUILD_PROJECT}/data ${O}
|
${M_CADIUS} addfile ${DISK} ${G_BUILD_PROJECT}/data ${O}
|
||||||
rm ${O}
|
rm ${O}
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
O=`basename ${FILE}`#060000
|
O=${M_TARGET}/$(basename ${FILE})#060000
|
||||||
cp -f ${FILE} ${O}
|
cp -f ${FILE} ${O}
|
||||||
${M_CADIUS} addfile ${DISK} ${G_BUILD_PROJECT}/data ${O}
|
${M_CADIUS} addfile ${DISK} ${G_BUILD_PROJECT}/data ${O}
|
||||||
rm ${O}
|
rm ${O}
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
unSetCompiler
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function setCompiler() {
|
function setCompiler() {
|
||||||
export PATH=${G_ORIGINAL_PATH}:${M_IIGS}
|
export PATH=${G_ORIGINAL_PATH}:${M_IIGS}
|
||||||
"${M_IIGS}/mountORCA.sh"
|
"${M_IIGS}/mountORCA.sh" &> /dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function unSetCompiler() {
|
function unSetCompiler() {
|
||||||
"${M_IIGS}/unmountORCA.sh"
|
"${M_IIGS}/unmountORCA.sh" &> /dev/null
|
||||||
export PATH=${G_ORIGINAL_PATH}
|
export PATH=${G_ORIGINAL_PATH}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue