mirror of https://github.com/wwarthen/RomWBW.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
2.5 KiB
103 lines
2.5 KiB
#!/bin/bash
|
|
|
|
# fail on any error
|
|
set -e
|
|
|
|
timestamp=$(date +%Y-%m-%d)
|
|
#timestamp="2020-02-24"
|
|
|
|
if [ $1 == '-d' ] ; then
|
|
shift
|
|
diffdir=$1
|
|
shift
|
|
if [ -f $diffdir/build.inc ] ; then
|
|
timestamp=$(grep TIMESTAMP $diffdir/build.inc | awk '{print $3}' | tr -d '\015"')
|
|
echo diff build using $timestamp
|
|
fi
|
|
fi
|
|
|
|
# positional arguments
|
|
platform=$1
|
|
config=$2
|
|
romsize=$3
|
|
romname=$4
|
|
|
|
export platform
|
|
|
|
# prompt if no match
|
|
platforms=($(find Config -name \*.asm -print | \
|
|
sed -e 's,Config/,,' -e 's/_.*$//' | sort -u))
|
|
|
|
while ! echo ${platforms[@]} | grep -q -w -s "$platform" ; do
|
|
echo -n "Enter platform [" ${platforms[@]} "] :"
|
|
read platform
|
|
done
|
|
|
|
configs=$(find Config -name ${platform}_\* -print | \
|
|
sed -e 's,Config/,,' -e "s/${platform}_//" -e "s/.asm//")
|
|
while ! echo ${configs[@]} | grep -s -w -q "$config" ; do
|
|
echo -n "Enter config for $platform [" ${configs[@]} "] :"
|
|
read config
|
|
done
|
|
configfile=Config/${platform}_${config}.asm
|
|
|
|
while [ ! '(' "$romsize" = 1024 -o "$romsize" = 512 -o "$romsize" = 256 -o "$romsize" = 128 ')' ] ; do
|
|
echo -n "Romsize :"
|
|
read romsize
|
|
done
|
|
|
|
if [ -z "$romname" ] ; then
|
|
romname=${platform}_${config}
|
|
fi
|
|
echo Building for $romname for $platform $config $romsize
|
|
|
|
if [ $platform == UNA ] ; then
|
|
BIOS=una
|
|
else
|
|
BIOS=wbw
|
|
fi
|
|
|
|
outdir=../../Binary
|
|
|
|
# Help make realize that build.inc has changed
|
|
sleep 1
|
|
|
|
cat <<- EOF > build.inc
|
|
; RomWBW Configured for $platform $config $timestamp
|
|
;
|
|
#DEFINE TIMESTAMP "$timestamp"
|
|
;
|
|
ROMSIZE .EQU $romsize
|
|
;
|
|
#INCLUDE "$configfile"
|
|
;
|
|
EOF
|
|
|
|
make prereq
|
|
|
|
make dbgmon.bin romldr.bin
|
|
|
|
if [ $platform != UNA ] ; then
|
|
make nascom.bin tastybasic.bin game.bin eastaegg.bin updater.bin usrrom.bin imgpad2.bin
|
|
make hbios_rom.bin hbios_app.bin hbios_img.bin
|
|
fi
|
|
|
|
echo "Building $romname output files..."
|
|
|
|
cat romldr.bin dbgmon.bin ../ZSDOS/zsys_$BIOS.bin ../CPM22/cpm_$BIOS.bin >osimg.bin
|
|
cat romldr.bin dbgmon.bin ../ZSDOS/zsys_$BIOS.bin >osimg_small.bin
|
|
|
|
if [ $platform != UNA ] ; then
|
|
cat camel80.bin nascom.bin tastybasic.bin game.bin eastaegg.bin netboot.mod updater.bin usrrom.bin >osimg1.bin
|
|
cat imgpad2.bin >osimg2.bin
|
|
fi
|
|
|
|
if [ $platform = UNA ] ; then
|
|
cp osimg.bin $outdir/UNA_WBW_SYS.bin
|
|
cp ../RomDsk/rom${romsize}_una.dat $outdir/UNA_WBW_ROM$romsize.bin
|
|
cat ../UBIOS/UNA-BIOS.BIN osimg.bin ../UBIOS/FSFAT.BIN ../RomDsk/rom${romsize}_una.dat >$romname.rom
|
|
else
|
|
cat hbios_rom.bin osimg.bin osimg1.bin osimg2.bin ../RomDsk/rom${romsize}_wbw.dat >$romname.rom
|
|
cat hbios_rom.bin osimg.bin osimg1.bin osimg2.bin >$romname.upd
|
|
cat hbios_app.bin osimg_small.bin > $romname.com
|
|
fi
|
|
|