finished the tile deduplication and tilemap generation in pngdump
[mdlife] / Makefile
index b69ecbe..bcbcdc5 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 csrc = $(wildcard src/*.c) $(wildcard src/libc/*.c)
-asrc = $(wildcard src/*.s)
-aSsrc = $(wildcard src/*.S)
+asrc = $(wildcard src/*.s) $(wildcard src/libc/*.s)
+aSsrc = $(wildcard src/*.S) $(wildcard src/libc/*.S)
 obj = $(asrc:.s=-asm.o) $(aSsrc:.S=-asm.o) $(csrc:.c=.o)
 dep = $(csrc:.c=.d) $(aSsrc:.S=-asm.d)
 
@@ -14,22 +14,23 @@ bin = $(name).bin
 
 warn = -pedantic -Wall
 dbg = -g
-opt = -O2
+opt = -O3
 def = -D__NO_CTYPE
 inc = -I. -Isrc -Isrc/libc
 
-TC = m68k-linux-gnu-
+ARCH = m68k-elf
+TC = $(ARCH)-
 
 CC = $(TC)gcc
 AS = $(TC)as
 LD = $(TC)ld
 OBJCOPY = $(TC)objcopy
+OBJDUMP = $(TC)objdump
 
 CFLAGS = -m68000 -ffreestanding -fno-builtin -fcommon $(warn) $(dbg) $(opt) $(def) $(inc) -MMD
 CPPFLAGS = $(def)
 ASFLAGS = -m68000 $(inc)
-LDFLAGS = -T megadrive.ld -print-gc-sections \
-                 -L/usr/lib/gcc-cross/m68k-linux-gnu/11 -lgcc
+LDFLAGS = -T megadrive.ld -Wl,-print-gc-sections -nostdlib -lgcc
 
 Z80AS = vasmz80_oldstyle
 Z80ASFLAGS = -Fvobj
@@ -41,12 +42,16 @@ $(bin): $(elf)
        $(OBJCOPY) -O binary $< $@
 
 $(elf): $(obj)
-       $(LD) -o $@ $(obj) -Map link.map $(LDFLAGS)
+       $(CC) -o $@ $(obj) -Wl,-Map,link.map $(LDFLAGS)
 
 $(z80bin): $(z80obj)
        $(Z80LD) -o $@ $(Z80LDFLAGS) $(z80obj)
 
-src/data-asm.o: src/data.s data/font8x8.img data/cellspr.img
+disasm: $(elf)
+       $(OBJDUMP) -D $< >$@
+
+src/data-asm.o: src/data.s data/font8x8.img data/cellspr.img data/lifebg.tiles \
+       data/lifefg.tiles
 src/z80prog-asm.o: src/z80prog.s $(z80bin)
 
 data/cellspr.img: data/cellspr.png
@@ -92,5 +97,8 @@ PNGDUMP = tools/pngdump/pngdump
 $(PNGDUMP): tools/pngdump/main.c tools/pngdump/image.c tools/pngdump/quant.c
        $(MAKE) -C tools/pngdump
 
+%.tiles: %.png $(PNGDUMP)
+       $(PNGDUMP) -o $@ -oc $(@:.tiles=.cmap) -om $(@:.tiles=.tmap) -T 8x8 -D $<
+
 %.img: %.png $(PNGDUMP)
        $(PNGDUMP) -o $@ -oc $(@:.img=.cmap) -T 8x8 $<