Mercurial > repos > genjam1
comparison Makefile.win @ 5:11fbaecc6c5e
copied the windows makefile straight from SGDK.
author | William Morgan <bill@mrgn.org> |
---|---|
date | Sun, 12 Jan 2014 13:43:51 -0800 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
2:8f23be2db808 | 5:11fbaecc6c5e |
---|---|
1 BIN= $(GDK)/bin | |
2 LIB= $(GDK)/lib | |
3 | |
4 LIBSRC= $(GDK)/src | |
5 LIBINCLUDE= $(GDK)/include | |
6 | |
7 SRC= src | |
8 RES= res | |
9 INCLUDE= include | |
10 | |
11 SHELL=$(BIN)/sh | |
12 RM= $(BIN)/rm | |
13 AR= $(BIN)/ar | |
14 CC= $(BIN)/gcc | |
15 LD= $(BIN)/ld | |
16 ECHO=echo | |
17 OBJCPY= $(BIN)/objcopy | |
18 ASMZ80= $(BIN)/sjasm | |
19 MACCER= $(BIN)/mac68k | |
20 SIZEBND= $(BIN)/sizebnd | |
21 BINTOS= $(BIN)/bintos | |
22 WAVTORAW= $(BIN)/wavtoraw | |
23 PCMTORAW= $(BIN)/pcmtoraw | |
24 GENRES= $(BIN)/genres | |
25 TFMCOM= $(BIN)/tfmcom | |
26 NM= $(BIN)/nm | |
27 MKDIR= $(BIN)/mkdir | |
28 NM2WCH= $(BIN)/nm2wch | |
29 ADDR2LINE=$(BIN)/addr2line | |
30 OUT2GSRC=$(BIN)/out2gsrc | |
31 | |
32 OPTION= | |
33 | |
34 SRC_C= $(wildcard *.c) | |
35 SRC_C+= $(wildcard $(SRC)/*.c) | |
36 SRC_S= $(wildcard *.s) | |
37 SRC_S+= $(wildcard $(SRC)/*.s) | |
38 SRC_SZ80= $(wildcard *.s80) | |
39 SRC_SZ80+= $(wildcard $(SRC)/*.s80) | |
40 | |
41 RES_C= $(wildcard $(RES)/*.c) | |
42 RES_S= $(wildcard $(RES)/*.s) | |
43 RES_BMP= $(wildcard *.bmp) | |
44 RES_BMP+= $(wildcard $(RES)/*.bmp) | |
45 RES_WAV= $(wildcard *.wav) | |
46 RES_WAV+= $(wildcard $(RES)/*.wav) | |
47 RES_WAVPCM= $(wildcard *.wavpcm) | |
48 RES_WAVPCM+= $(wildcard $(RES)/*.wavpcm) | |
49 RES_DAT= $(wildcard *.dat) | |
50 RES_DAT+= $(wildcard $(RES)/*.dat) | |
51 RES_RAW= $(wildcard *.raw) | |
52 RES_RAW+= $(wildcard $(RES)/*.raw) | |
53 RES_PCM= $(wildcard *.pcm) | |
54 RES_PCM+= $(wildcard $(RES)/*.pcm) | |
55 RES_TFD= $(wildcard *.tfd) | |
56 RES_TFD+= $(wildcard $(RES)/*.tfd) | |
57 RES_TFC= $(wildcard *.tfc) | |
58 RES_TFC+= $(wildcard $(RES)/*.tfc) | |
59 RES_MVS= $(wildcard *.mvs) | |
60 RES_MVS+= $(wildcard $(RES)/*.mvs) | |
61 RES_EIF= $(wildcard *.eif) | |
62 RES_EIF+= $(wildcard $(RES)/*.eif) | |
63 RES_ESF= $(wildcard *.esf) | |
64 RES_ESF+= $(wildcard $(RES)/*.esf) | |
65 RES_VGM= $(wildcard *.vgm) | |
66 RES_VGM+= $(wildcard $(RES)/*.vgm) | |
67 RES_RC= $(wildcard *.rc) | |
68 RES_RC+= $(wildcard $(RES)/*.rc) | |
69 RES_ASM= $(wildcard *.asm) | |
70 RES_ASM+= $(wildcard $(RES)/*.asm) | |
71 | |
72 OBJ= $(RES_BMP:.bmp=.o) | |
73 OBJ+= $(RES_WAV:.wav=.o) | |
74 OBJ+= $(RES_WAVPCM:.wavpcm=.o) | |
75 OBJ+= $(RES_RC:.rc=.o) | |
76 OBJ+= $(RES_ASM:.asm=.o) | |
77 OBJ+= $(RES_DAT:.dat=.o) | |
78 OBJ+= $(RES_RAW:.raw=.o) | |
79 OBJ+= $(RES_PCM:.pcm=.o) | |
80 OBJ+= $(RES_TFD:.tfd=.o) | |
81 OBJ+= $(RES_TFC:.tfc=.o) | |
82 OBJ+= $(RES_MVS:.mvs=.o) | |
83 OBJ+= $(RES_VGM:.vgm=.o) | |
84 OBJ+= $(RES_EIF:.eif=.o) | |
85 OBJ+= $(RES_ESF:.esf=.o) | |
86 OBJ+= $(RES_S:.s=.o) | |
87 OBJ+= $(RES_C:.c=.o) | |
88 OBJ+= $(SRC_SZ80:.s80=.o) | |
89 OBJ+= $(SRC_S:.s=.o) | |
90 OBJ+= $(SRC_C:.c=.o) | |
91 | |
92 OBJS = $(addprefix out/, $(OBJ)) | |
93 | |
94 INCS= -I$(LIBINCLUDE) -I$(INCLUDE) -I$(SRC) -I$(RES) | |
95 #FLAGS= $(OPTION) -g3 -m68000 -Wall -O1 -fomit-frame-pointer -fno-builtin-memset -fno-builtin-memcpy $(INCS) | |
96 FLAGS= $(OPTION) -m68000 -Wall -O1 -fomit-frame-pointer -fno-builtin-memset -fno-builtin-memcpy $(INCS) | |
97 #FLAGS= $(OPTION) -m68000 -Wall -O3 -fno-web -fno-gcse -fno-unit-at-a-time -fomit-frame-pointer -fno-builtin-memset -fno-builtin-memcpy $(INCS) | |
98 FLAGSZ80= -i$(LIBSRC) -i$(LIBINCLUDE) -i$(SRC) -i$(INCLUDE) -i$(RES) | |
99 | |
100 | |
101 release: out/rom.bin | |
102 debug: out/rom.bin out/rom.wch | |
103 debugall: out/rom.bin out/rom.wch out/rom.gsrc | |
104 | |
105 all: release | |
106 default: release | |
107 | |
108 .PHONY: clean | |
109 | |
110 clean: | |
111 $(RM) -f $(OBJS) out.lst out/cmd_ out/sega.o out/rom_head.bin out/rom_head.o out/rom.nm out/rom.wch out/rom.out out/rom.bin | |
112 | |
113 cleanobj: | |
114 $(RM) -f $(OBJS) out/sega.o out/rom_head.bin out/rom_head.o out/rom.out | |
115 | |
116 out/rom.bin: out/rom.out | |
117 $(OBJCPY) -O binary out/rom.out out/rom.bin | |
118 $(SIZEBND) out/rom.bin -sizealign 131072 | |
119 | |
120 out/rom.wch: out/rom.out | |
121 $(NM) -n -S -t x out/rom.out >out/rom.nm | |
122 $(NM2WCH) out/rom.nm out/rom.wch | |
123 | |
124 out/rom.gsrc: out/rom.bin | |
125 $(OUT2GSRC) i out/rom.bin out/rom.addr | |
126 $(ADDR2LINE) -e out/rom.out < out/rom.addr > out/rom.gsrc | |
127 | |
128 out/rom.out: out/sega.o out/cmd_ $(LIB)/libmd.a | |
129 $(CC) -n -T $(GDK)/md.ld -nostdlib out/sega.o @out/cmd_ $(LIB)/libmd.a $(LIB)/libgcc.a -o out/rom.out | |
130 $(RM) out/cmd_ | |
131 | |
132 out/cmd_: $(OBJS) | |
133 $(ECHO) "$(OBJS)" > out/cmd_ | |
134 | |
135 out/sega.o: $(LIBSRC)/boot/sega.s out/rom_head.bin | |
136 $(MKDIR) -p out | |
137 $(CC) $(FLAGS) -c $(LIBSRC)/boot/sega.s -o $@ | |
138 | |
139 out/rom_head.bin: out/rom_head.o | |
140 $(LD) -T $(GDK)/md.ld -nostdlib --oformat binary -o $@ $< | |
141 | |
142 out/rom_head.o: $(LIBSRC)/boot/rom_head.c | |
143 $(MKDIR) -p out | |
144 $(CC) $(FLAGS) -c $< -o $@ | |
145 | |
146 | |
147 out/%.o: %.c | |
148 $(MKDIR) -p out | |
149 $(MKDIR) -p out/src | |
150 $(MKDIR) -p out/res | |
151 $(CC) $(FLAGS) -c $< -o $@ | |
152 | |
153 out/%.o: %.s | |
154 $(MKDIR) -p out | |
155 $(MKDIR) -p out/src | |
156 $(MKDIR) -p out/res | |
157 $(CC) $(FLAGS) -c $< -o $@ | |
158 | |
159 | |
160 %.asm: %.rc | |
161 $(GENRES) $< $@ | |
162 | |
163 %.s: %.asm | |
164 $(MACCER) -o $@ $< | |
165 | |
166 %.s: %.bmp | |
167 $(BINTOS) -bmp $< | |
168 | |
169 %.raw: %.wav | |
170 $(WAVTORAW) $< $@ 16000 | |
171 | |
172 %.pcm: %.wavpcm | |
173 $(WAVTORAW) $< $@ 22050 | |
174 | |
175 %.rawpcm: %.pcm | |
176 $(PCMTORAW) $< $@ | |
177 | |
178 %.tfc: %.tfd | |
179 $(TFMCOM) $< | |
180 | |
181 %.o80: %.s80 | |
182 $(ASMZ80) $(FLAGSZ80) $< $@ out.lst | |
183 | |
184 %.s: %.tfc | |
185 $(BINTOS) -align 32768 $< | |
186 | |
187 %.s: %.mvs | |
188 $(BINTOS) -align 256 $< | |
189 | |
190 %.s: %.esf | |
191 $(BINTOS) -align 32768 $< | |
192 | |
193 %.s: %.eif | |
194 $(BINTOS) -align 256 $< | |
195 | |
196 %.s: %.vgm | |
197 $(BINTOS) -align 256 $< | |
198 | |
199 %.s: %.raw | |
200 $(BINTOS) -align 256 -sizealign 256 $< | |
201 | |
202 %.s: %.rawpcm | |
203 $(BINTOS) -align 128 -sizealign 128 -nullfill 136 $< | |
204 | |
205 %.s: %.dat | |
206 $(BINTOS) -align 256 -sizealign 256 $< | |
207 | |
208 %.s: %.o80 | |
209 $(BINTOS) $< |