-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathass_romrules
85 lines (63 loc) · 2.06 KB
/
ass_romrules
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
PATH := $(DEVKIT68K)/bin:$(PATH)
CROSS := m68k-elf-
CC := $(CROSS)gcc
AS := $(CROSS)gcc
LD := $(CROSS)gcc
OBJCOPY := $(CROSS)objcopy
IMG2ASS := python ../img2ass.py
HDMA2ASS := python ../hdma2ass.py
TILED2ASS := python ../tiled2ass.py
ASSFIX := python ../assfix.py
GRIT := grit.exe
export OFILES := $(SFILES:.s=.o) $(CFILES:.c=.o) $(CPPFILES:.cpp=.o)
GFXall = $(GRAPHICS) $(GFXAPI) $(HDMA)
GFXtoclean := $(GFXall:.png=.c) $(GFXall:.png=.s) $(GFXall:.png=.o) $(TILED:.json=.s)
GRITFLAGS := -ftc -fh! -gu8
# --------------------------------------------------------------------
# OPTIONS
# --------------------------------------------------------------------
MAPFILE := $(TARGET).map
ifndef ARCH
ARCH := -m68030
endif
SPECS := -B ../devkit68K/m68k-elf/lib -specs=asspull.specs
INCLUDE := -I toolinclude
LIBPATHS :=
CFLAGS := $(INCLUDE) -Wall -Wextra -Os -fno-strict-aliasing -fomit-frame-pointer -fno-builtin -fno-exceptions $(ARCH)
ASFLAGS := -x assembler-with-cpp -c $(ARCH) -Wall
LDFLAGS := $(ARCH) $(SPECS) $(LIBPATHS) $(LIBS)
LDFLAGS += -Wl,-Map $(MAPFILE) -nostartfiles
# ---------------------------------------------------------------------
# RULES
# ---------------------------------------------------------------------
../$(TARGET).ap3 : $(TARGET).elf
$(OBJCOPY) -O binary $< $@
# $(CROSS)objdump -d $(TARGET).elf > $(TARGET).txt
$(ASSFIX) ../$(TARGET).ap3
$(TARGET).elf : $(OFILES) $(AFILES) Makefile $(DEPENDFILE)
@echo > $(MAPFILE)
$(LD) -g -o $@ $(OFILES) $(AFILES) $(LDFLAGS)
.PHONY: all clean
all: clean $(TARGET).elf
clean:
rm -f $(OFILES) $(MAPFILE) $(TARGET).elf $(GFXtoclean) $(othercleans)
# ../$(TARGET).ap3
# --- ROM compilation ---
%.o : %.c
$(CC) $(CFLAGS) -c $< -o $@
%.o : %.cpp
$(CC) $(CFLAGS) -c $< -o $@
# --- Assembling ---
%.o : %.s
$(AS) $(ASFLAGS) -c $< -o $@
# --- Graphics ---
%.c : %.png %.grit
$(GRIT) $< $(GRITFLAGS) -ff
%.c : %.png
$(GRIT) $< $(GRITFLAGS) -ff dir.grit
$(GFXAPI:.png=.c) : %.c : %.png
$(IMG2ASS) $< $@
$(HDMA:.png=.s) : %.s : %.png
$(HDMA2ASS) $< $@
$(TILED:.json=.s) : %.s : %.json
$(TILED2ASS) $< $@