0
|
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
|