forgot romhdr.S
[megatris] / Makefile
1 csrc = $(wildcard src/*.c) $(wildcard src/libc/*.c)
2 asrc = $(wildcard src/*.s)
3 aSsrc = $(wildcard src/*.S)
4 obj = $(asrc:.s=.o) $(aSsrc:.S=.o) $(csrc:.c=.o)
5 dep = $(csrc:.c=.d)
6
7 name = megatris
8 elf = $(name).elf
9 bin = $(name).bin
10
11 warn = -pedantic -Wall
12 dbg = -g
13 opt = -O2
14 def = -DGAMENAME=\"megatris\" -DVERSTR=\"01\" -D__NO_CTYPE
15 inc = -I. -Isrc -Isrc/libc
16
17 tool_prefix = m68k-linux-gnu-
18
19 CC = $(tool_prefix)gcc
20 AS = $(tool_prefix)as
21 LD = $(tool_prefix)ld
22 OBJCOPY = $(tool_prefix)objcopy
23
24 CFLAGS = -m68000 -ffreestanding -fno-builtin $(warn) $(dbg) $(opt) $(def) $(inc)
25 CPPFLAGS = $(def)
26 ASFLAGS = -m68000 $(inc)
27 LDFLAGS = -T megadrive.ld -print-gc-sections -L/usr/lib/gcc-cross/m68k-linux-gnu/6 -lgcc
28
29 $(bin): $(elf)
30         $(OBJCOPY) -O binary $< $@
31
32 $(elf): $(obj)
33         $(LD) -o $@ $(obj) -Map link.map $(LDFLAGS)
34
35 #tun_data.h: tunnel.ppm
36 #       cat $< | tools/ppm2md tun_ >$@
37
38 -include $(dep)
39
40 %.d: %.c
41         @$(CPP) $(CFLAGS) $< -MM -MT $(@:.d=.o) >$@
42
43 .PHONY: clean
44 clean:
45         rm -f $(obj) $(elf) $(bin)
46
47 .PHONY: cleandep
48 cleandep:
49         rm -f $(dep)
50
51 .PHONY: run
52 run: $(bin)
53         gens-sdl $<
54
55 .PHONY: copy
56 copy: $(bin)
57         mount /media/usbmass && cp $(bin) /media/usbmass/$(bin)
58         umount /media/usbmass
59
60 .PHONY: install
61 install: $(bin)
62         mount /media/usbmass
63         [ -f /media/usbmass/MEGA/MEGA.RBF ] || cp $(bin) /media/usbmass/MEGA/MEGA.BIN
64         umount /media/usbmass