foo
[mdlife] / Makefile
index 002cba4..8f84751 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,9 +1,13 @@
 csrc = $(wildcard src/*.c) $(wildcard src/libc/*.c)
 asrc = $(wildcard src/*.s)
 aSsrc = $(wildcard src/*.S)
-obj = $(asrc:.s=.o) $(aSsrc:.S=.o) $(csrc:.c=.o)
+obj = $(asrc:.s=-asm.o) $(aSsrc:.S=-asm.o) $(csrc:.c=.o)
 dep = $(csrc:.c=.d)
 
+z80src = $(wildcard src/z80/*.asm)
+z80obj = $(z80src:.asm=.z80)
+z80bin = z80.bin
+
 name = life
 elf = $(name).elf
 bin = $(name).bin
@@ -27,17 +31,39 @@ ASFLAGS = -m68000 $(inc)
 LDFLAGS = -T megadrive.ld -print-gc-sections \
                  -L/usr/lib/gcc-cross/m68k-linux-gnu/11 -lgcc
 
+Z80AS = vasmz80_oldstyle
+Z80ASFLAGS = -Fvobj
+Z80LD = vlink
+Z80LDFLAGS = -T z80.ld -b rawbin1
+
+
 $(bin): $(elf)
        $(OBJCOPY) -O binary $< $@
 
 $(elf): $(obj)
        $(LD) -o $@ $(obj) -Map link.map $(LDFLAGS)
 
+$(z80bin): $(z80obj)
+       $(Z80LD) -o $@ $(Z80LDFLAGS) $(z80obj)
+
+src/data.o: src/data.s data/font8x8.img
+src/z80prog-asm.o: src/z80prog.s $(z80bin)
+
 -include $(dep)
 
+%-asm.o: %.s
+       $(AS) -o $@ $(ASFLAGS) $<
+
+%-asm.o: %.S
+       $(CC) -o $@ $(ASFLAGS) -c $<
+
+%.z80: %.asm
+       $(Z80AS) -o $@ $(Z80ASFLAGS) $< >/dev/null
+
 .PHONY: clean
 clean:
        rm -f $(obj) $(elf) $(bin)
+       rm -f $(z80obj) $(z80bin)
 
 .PHONY: cleandep
 cleandep:
@@ -57,3 +83,12 @@ install: $(bin)
        mount /media/usbmass
        [ -f /media/usbmass/MEGA/MEGA.RBF ] || cp $(bin) /media/usbmass/MEGA/MEGA.BIN
        umount /media/usbmass
+
+# ---- tools ----
+PNGDUMP = tools/pngdump/pngdump
+
+$(PNGDUMP): tools/pngdump/main.c tools/pngdump/image.c tools/pngdump/quant.c
+       $(MAKE) -C tools/pngdump
+
+%.img: %.png $(PNGDUMP)
+       $(PNGDUMP) -o $@ -oc $(@:.img=.cmap) -T 8x8 $<