forked from mzxrules/Beta-Quest
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMakefile
47 lines (35 loc) · 1.05 KB
/
Makefile
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
CC = mips64-gcc
LD = mips64-ld
OBJDUMP = mips64-objdump
CFLAGS = -O1 -fno-reorder-blocks -march=vr4300 -mtune=vr4300 -mabi=32 -mno-gpopt -mdivide-breaks \
-mexplicit-relocs
CPPFLAGS = -DF3DEX_GBI_2
OUTDIR := build
OBJDIR := build/bin
SRCDIR := c
vpath %.c c
vpath %.h c
OBJECTS = $(patsubst $(SRCDIR)/%.c,$(OBJDIR)/%.o,$(sort $(wildcard $(SRCDIR)/*.c)))
.PHONY: all clean bundle symbols makesrc
all: clean bundle symbols makesrc
$(OBJDIR)/%.o: %.c
$(CC) -o $@ -c $< $(CFLAGS) $(CPPFLAGS)
ifdef RUN_OBJDUMP
$(OBJDUMP) -d $@ | tr -d '\015' > $@_d.txt
$(OBJDUMP) -r $@ | tr -d '\015' > $@_r.txt
endif
$(OBJDIR):
mkdir -p $@
$(OBJECTS): | $(OBJDIR)
bundle: $(OBJECTS)
$(LD) -o $(OUTDIR)/bundle.o -i -L. $(patsubst %.o,-l:%.o,$(OBJECTS))
symbols: bundle
$(OBJDUMP) -t $(OUTDIR)/bundle.o | tr -d '\015' > $(OUTDIR)/c_symbols.txt
ifdef RUN_OBJDUMP
$(OBJDUMP) -d $(OUTDIR)/bundle.o | tr -d '\015' > $(OUTDIR)/bundle_d.txt
$(OBJDUMP) -r $(OUTDIR)/bundle.o | tr -d '\015' > $(OUTDIR)/bundle_r.txt
endif
makesrc:
$(MAKE) -C src
clean:
rm -f $(OBJDIR)/*.o