TARGET=for-16k-cocoio RAM_LIMIT=16384 NET_TYPE=cocoio CFILES=../kernel/alloc64.c ../kernel/bonobo.c ../kernel/breakkey.c ../kernel/config.c ../kernel/console.c ../kernel/irq.c ../kernel/kern.c ../kernel/kernel.c ../kernel/keyboard.c ../kernel/main.c ../kernel/mono.c ../kernel/network.c ../kernel/prelude.c ../kernel/score.c ../kernel/vdg.c ../kernel/wall.c ../kernel/wiznet.c GAMES=blue.game clock.game cow-glider.game forth.game green.game lib8.game life.game music.game noise2k.game noise4k.game noise8k.game red.game spacewar.game DFLAGS=-DRAM_LIMIT=16384 -DRAM_LIMIT_16384=1 -DNET_TYPE=cocoio -DNET_TYPE_cocoio=1 KERNEL_PRODUCTS = _kernel.decb _kernel_sym.o _game.script NEKOTOS_OUT_DIR = ../../build-frobio/pizga/Internal/NEKOTOS all: ${KERNEL_PRODUCTS} ${GAMES} echo ALL OKAY .SUFFIXES: GCC = ../../bin/gcc6809 -std=gnu99 GCFLAGS = -Os -I.. -f'omit-frame-pointer' -Wall $(DFLAGS) LWASM = ../../bin/lwasm.orig --obj \ --pragma=undefextern --pragma=cescapes --pragma=importundefexport LWLINK = ../../bin/lwlink --format=decb \ -L'../../lib/gcc/m6809-unknown/4.6.4/' _kernel.c: $(CFILES) cat ../kernel/kernel.c > _kernel.c _kernel.s: _kernel.c $(GCC) -f'whole-program' -S $(GCFLAGS) $< _kernel.o: _kernel.s $(LWASM) $< -o'$@' --list='$@.list' --map='$@.map' --symbol-dump='$@.sym' _kernel.decb: _kernel.o $(LWLINK) $< -o'$@' --map='$@.map' --script=../kernel/kernel.script --entry=entry -lgcc grep '^Section:' $@.map sha256sum < $@ | dd bs=1 count=16 | ( cat ; echo '' ) > $@.hash cat $@.hash python3 -c "import sys; sys.stdout.buffer.write(bytes([0, 0, 8, 0x01, 0x18]))" > _hash.decb python3 -c "import sys; x=0x$$(cat $@.hash); sys.stdout.buffer.write(bytes([(255 & (x>>(8*(7-i)))) for i in range(8)]))" >> _hash.decb cat _hash.decb $@ > $@.new mv -fv $@.new $@ cp -fv $@ _kernel.$$(cat $@.hash).decb test -d $(NEKOTOS_OUT_DIR) || mkdir $(NEKOTOS_OUT_DIR) cp -vf _kernel.decb $(NEKOTOS_OUT_DIR)/kernel.$(TARGET).decb cp -vf $@.hash $(NEKOTOS_OUT_DIR)/kernel.$(TARGET).hash echo OKAY $@ _kernel_sym.s : _kernel.decb awk ' \ BEGIN {print " .area .absolute"} \ /^Symbol: _([gx][A-Z]|mem|str)/ { \ printf " .globl %s\n%-20s EQU $$%s\n", $$2, $$2, $$5} \ ' < _kernel.decb.map > '$@' _kernel_sym.o : _kernel_sym.s $(LWASM) -o'$@' $< --list='$@.list' --map='$@.map' --symbol-dump='$@.sym' _game.script : _kernel.decb sh ../kernel/n1-create-game-script.sh < '$<.map' > '_game.script' install-test98: _kernel.decb cp -vf _kernel.decb ../../build-frobio/pizga-base/Internal/LEMMINGS/test98.lem ################ blue.game: ../games/blue/game.c python3 ../kernel/n1preprocess.py $< blue.c $(GCC) -fwhole-program -S $(GCFLAGS) -I../games/blue -I.. -I../.. blue.c cat _kernel_sym.s >> blue.s $(LWASM) -oblue.o blue.s --list=blue.o.list --map=blue.o.map --symbol-dump=blue.o.sym $(LWLINK) --decb --output=blue.game blue.o -lgcc --entry=__n1pre_entry --script=_game.script --map=blue.map grep "^Section:" blue.map cp -vf blue.game /tmp/blue.game cp -vf blue.game /tmp/blue.$$(cat _kernel.decb.hash).game cp -vf blue.game $(NEKOTOS_OUT_DIR)/blue.$$(cat _kernel.decb.hash).game echo OKAY $@ clock.game: ../games/clock/game.c python3 ../kernel/n1preprocess.py $< clock.c $(GCC) -fwhole-program -S $(GCFLAGS) -I../games/clock -I.. -I../.. clock.c cat _kernel_sym.s >> clock.s $(LWASM) -oclock.o clock.s --list=clock.o.list --map=clock.o.map --symbol-dump=clock.o.sym $(LWLINK) --decb --output=clock.game clock.o -lgcc --entry=__n1pre_entry --script=_game.script --map=clock.map grep "^Section:" clock.map cp -vf clock.game /tmp/clock.game cp -vf clock.game /tmp/clock.$$(cat _kernel.decb.hash).game cp -vf clock.game $(NEKOTOS_OUT_DIR)/clock.$$(cat _kernel.decb.hash).game echo OKAY $@ cow-glider.game: ../games/cow-glider/game.c python3 ../kernel/n1preprocess.py $< cow-glider.c $(GCC) -fwhole-program -S $(GCFLAGS) -I../games/cow-glider -I.. -I../.. cow-glider.c cat _kernel_sym.s >> cow-glider.s $(LWASM) -ocow-glider.o cow-glider.s --list=cow-glider.o.list --map=cow-glider.o.map --symbol-dump=cow-glider.o.sym $(LWLINK) --decb --output=cow-glider.game cow-glider.o -lgcc --entry=__n1pre_entry --script=_game.script --map=cow-glider.map grep "^Section:" cow-glider.map cp -vf cow-glider.game /tmp/cow-glider.game cp -vf cow-glider.game /tmp/cow-glider.$$(cat _kernel.decb.hash).game cp -vf cow-glider.game $(NEKOTOS_OUT_DIR)/cow-glider.$$(cat _kernel.decb.hash).game echo OKAY $@ forth.game: ../games/forth/game.c python3 ../kernel/n1preprocess.py $< forth.c $(GCC) -fwhole-program -S $(GCFLAGS) -I../games/forth -I.. -I../.. forth.c cat _kernel_sym.s >> forth.s $(LWASM) -oforth.o forth.s --list=forth.o.list --map=forth.o.map --symbol-dump=forth.o.sym $(LWLINK) --decb --output=forth.game forth.o -lgcc --entry=__n1pre_entry --script=_game.script --map=forth.map grep "^Section:" forth.map cp -vf forth.game /tmp/forth.game cp -vf forth.game /tmp/forth.$$(cat _kernel.decb.hash).game cp -vf forth.game $(NEKOTOS_OUT_DIR)/forth.$$(cat _kernel.decb.hash).game echo OKAY $@ green.game: ../games/green/game.c python3 ../kernel/n1preprocess.py $< green.c $(GCC) -fwhole-program -S $(GCFLAGS) -I../games/green -I.. -I../.. green.c cat _kernel_sym.s >> green.s $(LWASM) -ogreen.o green.s --list=green.o.list --map=green.o.map --symbol-dump=green.o.sym $(LWLINK) --decb --output=green.game green.o -lgcc --entry=__n1pre_entry --script=_game.script --map=green.map grep "^Section:" green.map cp -vf green.game /tmp/green.game cp -vf green.game /tmp/green.$$(cat _kernel.decb.hash).game cp -vf green.game $(NEKOTOS_OUT_DIR)/green.$$(cat _kernel.decb.hash).game echo OKAY $@ lib8.game: ../games/lib8/game.c python3 ../kernel/n1preprocess.py $< lib8.c $(GCC) -fwhole-program -S $(GCFLAGS) -I../games/lib8 -I.. -I../.. lib8.c cat _kernel_sym.s >> lib8.s $(LWASM) -olib8.o lib8.s --list=lib8.o.list --map=lib8.o.map --symbol-dump=lib8.o.sym $(LWLINK) --decb --output=lib8.game lib8.o -lgcc --entry=__n1pre_entry --script=_game.script --map=lib8.map grep "^Section:" lib8.map cp -vf lib8.game /tmp/lib8.game cp -vf lib8.game /tmp/lib8.$$(cat _kernel.decb.hash).game cp -vf lib8.game $(NEKOTOS_OUT_DIR)/lib8.$$(cat _kernel.decb.hash).game echo OKAY $@ life.game: ../games/life/game.c python3 ../kernel/n1preprocess.py $< life.c $(GCC) -fwhole-program -S $(GCFLAGS) -I../games/life -I.. -I../.. life.c cat _kernel_sym.s >> life.s $(LWASM) -olife.o life.s --list=life.o.list --map=life.o.map --symbol-dump=life.o.sym $(LWLINK) --decb --output=life.game life.o -lgcc --entry=__n1pre_entry --script=_game.script --map=life.map grep "^Section:" life.map cp -vf life.game /tmp/life.game cp -vf life.game /tmp/life.$$(cat _kernel.decb.hash).game cp -vf life.game $(NEKOTOS_OUT_DIR)/life.$$(cat _kernel.decb.hash).game echo OKAY $@ music.game: ../games/music/game.c python3 ../kernel/n1preprocess.py $< music.c $(GCC) -fwhole-program -S $(GCFLAGS) -I../games/music -I.. -I../.. music.c cat _kernel_sym.s >> music.s $(LWASM) -omusic.o music.s --list=music.o.list --map=music.o.map --symbol-dump=music.o.sym $(LWLINK) --decb --output=music.game music.o -lgcc --entry=__n1pre_entry --script=_game.script --map=music.map grep "^Section:" music.map cp -vf music.game /tmp/music.game cp -vf music.game /tmp/music.$$(cat _kernel.decb.hash).game cp -vf music.game $(NEKOTOS_OUT_DIR)/music.$$(cat _kernel.decb.hash).game echo OKAY $@ noise2k.game: ../games/noise2k/game.c python3 ../kernel/n1preprocess.py $< noise2k.c $(GCC) -fwhole-program -S $(GCFLAGS) -I../games/noise2k -I.. -I../.. noise2k.c cat _kernel_sym.s >> noise2k.s $(LWASM) -onoise2k.o noise2k.s --list=noise2k.o.list --map=noise2k.o.map --symbol-dump=noise2k.o.sym $(LWLINK) --decb --output=noise2k.game noise2k.o -lgcc --entry=__n1pre_entry --script=_game.script --map=noise2k.map grep "^Section:" noise2k.map cp -vf noise2k.game /tmp/noise2k.game cp -vf noise2k.game /tmp/noise2k.$$(cat _kernel.decb.hash).game cp -vf noise2k.game $(NEKOTOS_OUT_DIR)/noise2k.$$(cat _kernel.decb.hash).game echo OKAY $@ noise4k.game: ../games/noise4k/game.c python3 ../kernel/n1preprocess.py $< noise4k.c $(GCC) -fwhole-program -S $(GCFLAGS) -I../games/noise4k -I.. -I../.. noise4k.c cat _kernel_sym.s >> noise4k.s $(LWASM) -onoise4k.o noise4k.s --list=noise4k.o.list --map=noise4k.o.map --symbol-dump=noise4k.o.sym $(LWLINK) --decb --output=noise4k.game noise4k.o -lgcc --entry=__n1pre_entry --script=_game.script --map=noise4k.map grep "^Section:" noise4k.map cp -vf noise4k.game /tmp/noise4k.game cp -vf noise4k.game /tmp/noise4k.$$(cat _kernel.decb.hash).game cp -vf noise4k.game $(NEKOTOS_OUT_DIR)/noise4k.$$(cat _kernel.decb.hash).game echo OKAY $@ noise8k.game: ../games/noise8k/game.c python3 ../kernel/n1preprocess.py $< noise8k.c $(GCC) -fwhole-program -S $(GCFLAGS) -I../games/noise8k -I.. -I../.. noise8k.c cat _kernel_sym.s >> noise8k.s $(LWASM) -onoise8k.o noise8k.s --list=noise8k.o.list --map=noise8k.o.map --symbol-dump=noise8k.o.sym $(LWLINK) --decb --output=noise8k.game noise8k.o -lgcc --entry=__n1pre_entry --script=_game.script --map=noise8k.map grep "^Section:" noise8k.map cp -vf noise8k.game /tmp/noise8k.game cp -vf noise8k.game /tmp/noise8k.$$(cat _kernel.decb.hash).game cp -vf noise8k.game $(NEKOTOS_OUT_DIR)/noise8k.$$(cat _kernel.decb.hash).game echo OKAY $@ red.game: ../games/red/game.c python3 ../kernel/n1preprocess.py $< red.c $(GCC) -fwhole-program -S $(GCFLAGS) -I../games/red -I.. -I../.. red.c cat _kernel_sym.s >> red.s $(LWASM) -ored.o red.s --list=red.o.list --map=red.o.map --symbol-dump=red.o.sym $(LWLINK) --decb --output=red.game red.o -lgcc --entry=__n1pre_entry --script=_game.script --map=red.map grep "^Section:" red.map cp -vf red.game /tmp/red.game cp -vf red.game /tmp/red.$$(cat _kernel.decb.hash).game cp -vf red.game $(NEKOTOS_OUT_DIR)/red.$$(cat _kernel.decb.hash).game echo OKAY $@ spacewar.game: ../games/spacewar/game.c python3 ../kernel/n1preprocess.py $< spacewar.c $(GCC) -fwhole-program -S $(GCFLAGS) -I../games/spacewar -I.. -I../.. spacewar.c cat _kernel_sym.s >> spacewar.s $(LWASM) -ospacewar.o spacewar.s --list=spacewar.o.list --map=spacewar.o.map --symbol-dump=spacewar.o.sym $(LWLINK) --decb --output=spacewar.game spacewar.o -lgcc --entry=__n1pre_entry --script=_game.script --map=spacewar.map grep "^Section:" spacewar.map cp -vf spacewar.game /tmp/spacewar.game cp -vf spacewar.game /tmp/spacewar.$$(cat _kernel.decb.hash).game cp -vf spacewar.game $(NEKOTOS_OUT_DIR)/spacewar.$$(cat _kernel.decb.hash).game echo OKAY $@