summaryrefslogtreecommitdiff
path: root/1_hello_world/Makefile
blob: 0a4b3a2d758b2c59af21b414f9abb1725cdbb960 (plain)
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
WARNFLAGS = -Wall -Wextra -pedantic -Wshadow -Wlogical-op
OPTFLAGS = -Os
ARCHFLAGS = -m68000
_CFLAGS = $(CFLAGS) $(WARNFLAGS) $(ARCHFLAGS) $(OPTFLAGS) -g3 -ffunction-sections -fdata-sections
LDSCRIPTS = m68k.ld _sram.ld _rom.ld
_LDFLAGS = $(LDFLAGS) $(ARCHFLAGS) $(OPTFLAGS) $(addprefix -T,$(LDSCRIPTS)) -Wl,--gc-sections -Wl,--build-id=none -nostartfiles

OBJECTS=startup.o main.o

.PHONY: all
all: hellorom.bin

%.bin: %.elf Makefile
	m68k-none-elf-objcopy -O binary $< $@

hellorom.elf: $(OBJECTS) $(LDSCRIPTS) Makefile
	m68k-none-elf-gcc -o $@ $(OBJECTS) $(_LDFLAGS)

OBJECTS: Makefile

%.o: %.c Makefile
	m68k-none-elf-gcc -c $< -o $@ $(_CFLAGS)

clean:
	rm -rfv hellorom.elf hellorom.bin $(OBJECTS)