Skip to content

Commit 5d610e5

Browse files
committed
Add example Makefile.legacy with gcc flags for historical projects
1 parent 253f22b commit 5d610e5

File tree

1 file changed

+86
-0
lines changed

1 file changed

+86
-0
lines changed

Makefile.legacy

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
PRODUCT_NAME = my_project
2+
3+
# You probably won't need to touch anything below here!!!
4+
# The one exception is the cleanup stuff.
5+
6+
SOURCES = $(wildcard *.c)
7+
ASMSOURCES = $(wildcard *.asm)
8+
AUDIOSOURCES = $(wildcard *.wav)
9+
DKPATH = /opt/devkitpro
10+
FIND = find
11+
COPY = cp -r
12+
13+
# --- File Names
14+
ELF_NAME = $(PRODUCT_NAME).elf
15+
ROM_NAME = $(PRODUCT_NAME).gba
16+
BIN_NAME = $(PRODUCT_NAME)
17+
18+
#MODEL = -mthumb-interwork -mthumb
19+
MODEL = -mthumb-interwork -marm -mlong-calls #This makes interrupts work
20+
SPECS = -specs=gba.specs
21+
22+
# --- Archiver
23+
AS = $(DKPATH)/devkitARM/bin/arm-none-eabi-as
24+
ASFLAGS = -mthumb-interwork
25+
26+
# --- Compiler
27+
CC = $(DKPATH)/devkitARM/bin/arm-none-eabi-gcc
28+
CFLAGS = $(MODEL) -O2 -Wall -pedantic -Wextra -std=c99 -fpermissive -fcommon -save-temps -D_ROM=$(ROM_NAME)
29+
30+
# --- Linker
31+
LD = $(DKPATH)/devkitARM/bin/arm-none-eabi-gcc
32+
LDFLAGS = $(SPECS) $(MODEL) -lm
33+
34+
# --- Object/Executable Packager
35+
OBJCOPY = $(DKPATH)/devkitARM/bin/arm-none-eabi-objcopy
36+
OBJCOPYFLAGS = -O binary
37+
38+
# --- ROM Fixer
39+
GBAFIX = $(DKPATH)/tools/bin/gbafix
40+
41+
# --- Delete
42+
RM = rm -f
43+
44+
ASMOBJECTS = $(ASMSOURCES:.asm=.o)
45+
AUDIOOBJECTS = $(AUDIOSOURCES:.wav=.c)
46+
AUDIOHEADERS = $(AUDIOSOURCES:.wav=.h)
47+
COBJECTS = $(SOURCES:.c=.o) $(AUDIOSOURCES:.wav=.o)
48+
OBJECTS = $(COBJECTS) $(ASMOBJECTS)
49+
50+
51+
# --- Main build target
52+
53+
all : audio build
54+
55+
build : $(ROM_NAME)
56+
57+
# --- Build .elf file into .gba ROM file
58+
$(ROM_NAME) : $(ELF_NAME)
59+
$(OBJCOPY) $(OBJCOPYFLAGS) $(ELF_NAME) $(ROM_NAME)
60+
$(GBAFIX) $(ROM_NAME)
61+
62+
# --- Build .o files into .elf file
63+
$(ELF_NAME) : $(OBJECTS)
64+
$(LD) $^ $(LDFLAGS) -o $@
65+
66+
# -- Build .asm files into .o files
67+
$(ASMOBJECTS) : %.o : %.asm
68+
$(AS) $(ASFLAGS) $< -o $@
69+
70+
# -- Build .c files into .o files
71+
$(COBJECTS) : %.o : %.c
72+
$(CC) $(CFLAGS) -c $< -o $@
73+
74+
# -- Build .wav files into .c and .h files
75+
$(AUDIOOBJECTS) : %.c : %.wav
76+
wav2c $< $@ $*
77+
78+
$(AUDIOHEADERS) : %.h : %.c
79+
80+
81+
clean:
82+
$(RM) $(ROM_NAME) $(ELF_NAME) $(BIN_NAME)
83+
$(RM) $(AUDIOOBJECTS) $(AUDIOHEADERS)
84+
$(RM) *.o *.i *.s *.sav
85+
86+
audio: $(AUDIOOBJECTS)

0 commit comments

Comments
 (0)