testpico: adjust for irixxxx's PD, 32x disable
[megadrive.git] / testpico / Makefile
1 CROSS = m68k-elf-
2 HOSTCC = gcc
3 CC = $(CROSS)gcc
4 AS = $(CROSS)as
5 LD = $(CROSS)ld
6 OBJCOPY = $(CROSS)objcopy
7
8 CROSS_SH = sh-elf-
9 CC_SH = $(CROSS_SH)gcc
10 LD_SH = $(CROSS_SH)ld
11 OBJCOPY_SH = $(CROSS_SH)objcopy
12
13 ASFLAGS += -m68000 --register-prefix-optional --bitwise-or -pic
14 ASFLAGS_CC += -Wa,-m68000 -Wa,--register-prefix-optional -Wa,--bitwise-or -Wa,-pic
15 CFLAGS += -Wall -g -O2 -m68000 -fomit-frame-pointer
16 LDLIBS_LIBGCC := $(shell $(CC) -print-file-name=libgcc.a)
17 LDLIBS += $(LDLIBS_LIBGCC)
18
19 SUFFIX := $(shell git describe --always --dirty)
20 ifdef PICO
21 CFLAGS += -DPICO
22 SUFFIX := $(SUFFIX)-for-pd
23 endif
24 TARGET_BASE = testpico
25 TARGET = $(TARGET_BASE)-$(SUFFIX)
26 OBJS = sega_gcc.o main.o asmtools.o
27
28 all: $(TARGET).bin
29
30 $(TARGET).elf: $(OBJS)
31         $(LD) -o $@ -Tsega.ld -Map $(TARGET_BASE).map $^ $(LDLIBS)
32
33 clean:
34         $(RM) $(TARGET_BASE)*.bin $(OBJS) *.elf *.map fill
35         $(RM) *.lst *.bin80 *.osh *.binsh
36
37 $(TARGET).bin: $(TARGET).elf fill
38         $(OBJCOPY) -I elf32-m68k -O binary $< $@
39         ./fill $@
40
41 fill: fill.c
42         $(HOSTCC) -o $@ $^ -Wall -O2
43
44 %.o: %.S
45         $(CC) -c -o $@ $^ $(CFLAGS) $(ASFLAGS_CC)
46
47 %.bin80: %.s80
48         sjasm $< $@
49
50 # sh2
51 TARGET_SH = sh2_test
52 OBJS_SH = sh2_test.osh sh2_main.osh
53
54 CFLAGS_SH = -m2 -mb -O2 -Wall
55
56 %.binsh: %.elf
57         $(OBJCOPY_SH) -O binary $< $@
58
59 $(TARGET_SH).elf: $(OBJS_SH)
60         $(LD_SH) -o $@ $^ -Tmars.ld -Map $(TARGET_SH).map -nostdlib
61
62 %.osh: %.sh2
63         $(CC_SH) -o $@ -c -x assembler $< $(CFLAGS_SH)
64
65 %.osh: %.c
66         $(CC_SH) -o $@ -c $< $(CFLAGS_SH)
67
68 # manual deps
69 sega_gcc.o: z80_test.bin80
70 sega_gcc.o: sh2_test.binsh
71
72 up: $(TARGET).bin
73         scp $< root@router:/tmp/
74
75 .PHONY: all clean