comparison Makefile @ 0:826a1cb3f873

Copied SGDK project skeleton
author Mike Pavone <pavone@retrodev.com>
date Sun, 12 Jan 2014 11:24:36 -0800
parents
children b4d360d2e66c
comparison
equal deleted inserted replaced
-1:000000000000 0:826a1cb3f873
1 CC = m68k-elf-gcc
2 AS = m68k-elf-as
3 OBJC = m68k-elf-objcopy
4 LD = m68k-elf-ld
5 RM = rm -f
6 ASMZ80 = zasm
7 BINTOS = bintos
8 PCMTORAW = pcmtoraw
9 WAVTORAW = wavtoraw
10 NM = nm
11 NM2WCH = nm2wch
12 SIZEBND = sizebnd
13 MKISOFS = mkisofs
14
15 SCD_LOADER = scd/LukeProjectCD
16
17 OPTION =
18 INCS = -I. -I$(GENDEV)/m68k-elf/include -I$(GENDEV)/m68k-elf/m68k-elf/include -Isrc -Ires
19 CCFLAGS = $(OPTION) -m68000 -Wall -O2 -c -fomit-frame-pointer
20 HWCCFLAGS = $(OPTION) -m68000 -Wall -O1 -c -fomit-frame-pointer
21 Z80FLAGS = -vb2
22 ASFLAGS = -m68000 --register-prefix-optional
23 #LIBS = -L$(GENDEV)/m68k-elf/lib -L$(GENDEV)/m68k-elf/lib/gcc/m68k-elf/4.5.2 -L$(GENDEV)/m68k-elf/m68k-elf/lib -lmd -lc -lgcc -lnosys -lm
24 LIBS = -L$(GENDEV)/m68k-elf/lib -L$(GENDEV)/m68k-elf/lib/gcc/m68k-elf/4.5.2 -L$(GENDEV)/m68k-elf/m68k-elf/lib -lmd -lnosys
25 LINKFLAGS = -T $(GENDEV)/ldscripts/sgdk.ld -nostdlib
26 SCDLINKFLAGS = -T scd/mdcd.ld -nostdlib
27 ARCHIVES = $(GENDEV)/m68k-elf/lib/libmd.a $(GENDEV)/m68k-elf/lib/gcc/m68k-elf/4.5.2/libgcc.a
28
29 RESOURCES=
30 BOOT_RESOURCES=
31
32 BOOTSS=$(wildcard boot/*.s)
33 BOOTSS+=$(wildcard src/boot/*.s)
34 BOOT_RESOURCES+=$(BOOTSS:.s=.o)
35
36 SCDBOOTSS=$(wildcard scd/*.s)
37 SCDBOOTSS+=$(wildcard src/scd/*.s)
38 SCDBOOT_RESOURCES=$(SCDBOOTSS:.s=.o)
39
40 BMPS=$(wildcard res/*.bmp)
41 VGMS=$(wildcard res/*.vgm)
42 RAWS=$(wildcard res/*.raw)
43 PCMS=$(wildcard res/*.pcm)
44 MVSS=$(wildcard res/*.mvs)
45 TFDS=$(wildcard res/*.tfd)
46 WAVS=$(wildcard res/*.wav)
47 WAVPCMS=$(wildcard res/*.wavpcm)
48 BMPS+=$(wildcard *.bmp)
49 VGMS+=$(wildcard *.vgm)
50 RAWS+=$(wildcard *.raw)
51 PCMS+=$(wildcard *.pcm)
52 MVSS+=$(wildcard *.mvs)
53 TFDS+=$(wildcard *.tfd)
54 WAVS+=$(wildcard *.wav)
55 WAVPCMS+=$(wildcard *.wavpcm)
56 RESOURCES+=$(BMPS:.bmp=.o)
57 RESOURCES+=$(VGMS:.vgm=.o)
58 RESOURCES+=$(RAWS:.raw=.o)
59 RESOURCES+=$(PCMS:.pcm=.o)
60 RESOURCES+=$(MVSS:.mvs=.o)
61 RESOURCES+=$(TFDS:.tfd=.o)
62 RESOURCES+=$(WAVS:.wav=.o)
63 RESOURCES+=$(WAVPCMS:.wavpcm=.o)
64
65 CS=$(wildcard src/*.c)
66 SS=$(wildcard src/*.s)
67 S80S=$(wildcard src/*.s80)
68 CS+=$(wildcard *.c)
69 SS+=$(wildcard *.s)
70 S80S+=$(wildcard *.s80)
71 RESOURCES+=$(CS:.c=.o)
72 RESOURCES+=$(SS:.s=.o)
73 RESOURCES+=$(S80S:.s80=.o)
74
75 OBJS = $(RESOURCES)
76
77 all: out.bin
78
79 boot/sega.o: boot/rom_head.bin
80 $(AS) $(ASFLAGS) boot/sega.s -o $@
81
82 scd/segacd.o:
83 $(AS) $(ASFLAGS) scd/segacd.s -o $@
84
85
86 out.iso: out.elf_scd
87 #
88 # Create a sega cd image. Limited to 256K or smaller Roms
89 #
90 $(NM) -n -S -t x out.elf_scd > out.nm
91 $(OBJC) -O binary out.elf_scd out.bin
92 $(SIZEBND) out.bin -sizealign 131072
93 $(OBJC) -O binary out.elf_scd $(SCD_LOADER)/_filesystem/M_INIT.PRG
94 $(SIZEBND) $(SCD_LOADER)/_filesystem/M_INIT.PRG -sizealign 131072
95 $(MKISOFS) -iso-level 1 -o $(SCD_LOADER)/filesystem.img -pad $(SCD_LOADER)/_filesystem
96 tail -c +32769 $(SCD_LOADER)/filesystem.img > $(SCD_LOADER)/filesystem.bin
97 $(RM) -f $(SCD_LOADER)/filesystem.img
98 cd $(SCD_LOADER) && $(AS) $(ASFLAGS) -M -ahlsm=listing.asm main-us-as.asm -o out.iso
99 tail -c +53 $(SCD_LOADER)/out.iso > out.iso
100 $(RM) -f $(SCD_LOADER)/filesystem.bin
101
102 %.bin: %.elf
103 $(OBJC) -O binary $< temp.bin
104 dd if=temp.bin of=$@ bs=8K conv=sync
105
106 %.elf: $(OBJS) $(BOOT_RESOURCES)
107 $(CC) -o $@ $(LINKFLAGS) $(BOOT_RESOURCES) $(ARCHIVES) $(OBJS) $(LIBS)
108
109 %.elf_scd: $(OBJS) $(SCDBOOT_RESOURCES)
110 $(CC) -o $@ $(SCDLINKFLAGS) $(SCDBOOT_RESOURCES) $(ARCHIVES) $(OBJS) $(LIBS)
111
112 %.o80: %.s80
113 $(ASMZ80) $(Z80FLAGS) -o $@ $<
114
115 %.c: %.o80
116 $(BINTOS) $<
117
118 %.o: %.c
119 $(CC) $(CCFLAGS) $(INCS) -c $< -o $@
120
121 %.o: %.s
122 $(AS) $(ASFLAGS) $< -o $@
123
124 %.s: %.bmp
125 bintos -bmp $<
126
127 %.rawpcm: %.pcm
128 $(PCMTORAW) $< $@
129
130 %.raw: %.wav
131 $(WAVTORAW) $< $@ 16000
132
133 %.pcm: %.wavpcm
134 $(WAVTORAW) $< $@ 22050
135
136 #%.tfc: %.tfd
137 # $(TFMCOM) $<
138
139 #%.o80: %.s80
140 # $(ASMZ80) $(FLAGSZ80) $< $@ out.lst
141
142 %.s: %.tfd
143 $(BINTOS) -align 32768 $<
144
145 %.s: %.mvs
146 $(BINTOS) -align 256 $<
147
148 %.s: %.esf
149 $(BINTOS) -align 32768 $<
150
151 %.s: %.eif
152 $(BINTOS) -align 256 $<
153
154 %.s: %.vgm
155 $(BINTOS) -align 256 $<
156
157 %.s: %.raw
158 $(BINTOS) -align 256 -sizealign 256 $<
159
160 %.s: %.rawpcm
161 $(BINTOS) -align 128 -sizealign 128 -nullfill 136 $<
162
163 %.s: %.rawpcm
164 $(BINTOS) -align 128 -sizealign 128 -nullfill 136 $<
165
166 boot/rom_head.bin: boot/rom_head.o
167 $(LD) $(LINKFLAGS) --oformat binary -o $@ $<
168
169
170 clean:
171 $(RM) $(RESOURCES)
172 $(RM) *.o *.bin *.elf *.elf_scd *.map *.iso
173 $(RM) boot/*.o boot/*.bin