Mercurial > repos > blastem
comparison Makefile @ 1692:5dacaef602a7 segacd
Merge from default
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 05 Jan 2019 00:58:08 -0800 |
parents | 2564b6ba2e12 fa9ae059e4d3 |
children | 3414a4423de1 |
comparison
equal
deleted
inserted
replaced
1504:95b3a1a8b26c | 1692:5dacaef602a7 |
---|---|
14 GLEW32S_LIB:=$(GLEW_PREFIX)/lib/Release/Win32/glew32s.lib | 14 GLEW32S_LIB:=$(GLEW_PREFIX)/lib/Release/Win32/glew32s.lib |
15 endif | 15 endif |
16 | 16 |
17 MEM:=mem_win.o | 17 MEM:=mem_win.o |
18 TERMINAL:=terminal_win.o | 18 TERMINAL:=terminal_win.o |
19 FONT:=nuklear_ui/font_win.o | |
20 NET:=net_win.o | |
19 EXE:=.exe | 21 EXE:=.exe |
20 CC:=i686-w64-mingw32-gcc-win32 | 22 CC:=i686-w64-mingw32-gcc-win32 |
21 CFLAGS:=-std=gnu99 -Wreturn-type -Werror=return-type -Werror=implicit-function-declaration -I"$(SDL2_PREFIX)/include/SDL2" -I"$(GLEW_PREFIX)/include" -DGLEW_STATIC | 23 CFLAGS:=-std=gnu99 -Wreturn-type -Werror=return-type -Werror=implicit-function-declaration -I"$(SDL2_PREFIX)/include/SDL2" -I"$(GLEW_PREFIX)/include" -DGLEW_STATIC |
22 LDFLAGS:= $(GLEW32S_LIB) -L"$(SDL2_PREFIX)/lib" -lm -lmingw32 -lSDL2main -lSDL2 -lws2_32 -lopengl32 -lglu32 -mwindows | 24 LDFLAGS:= $(GLEW32S_LIB) -L"$(SDL2_PREFIX)/lib" -lm -lmingw32 -lSDL2main -lSDL2 -lws2_32 -lopengl32 -lglu32 -mwindows |
23 CPU:=i686 | 25 CPU:=i686 |
24 | 26 |
25 else | 27 else |
26 | 28 |
27 MEM:=mem.o | 29 MEM:=mem.o |
28 TERMINAL:=terminal.o | 30 TERMINAL:=terminal.o |
31 NET:=net.o | |
29 EXE:= | 32 EXE:= |
33 | |
34 HAS_PROC:=$(shell if [ -d /proc ]; then /bin/echo -e -DHAS_PROC; fi) | |
35 CFLAGS:=-std=gnu99 -Wreturn-type -Werror=return-type -Werror=implicit-function-declaration -Wno-unused-value $(HAS_PROC) -DHAVE_UNISTD_H | |
30 | 36 |
31 ifeq ($(OS),Darwin) | 37 ifeq ($(OS),Darwin) |
32 LIBS=sdl2 glew | 38 LIBS=sdl2 glew |
39 FONT:=nuklear_ui/font_mac.o | |
40 else | |
41 ifdef USE_GLES | |
42 LIBS=sdl2 glesv2 | |
43 CFLAGS+= -DUSE_GLES | |
33 else | 44 else |
34 LIBS=sdl2 glew gl | 45 LIBS=sdl2 glew gl |
46 endif #USE_GLES | |
47 FONT:=nuklear_ui/font.o | |
35 endif #Darwin | 48 endif #Darwin |
36 | 49 |
37 HAS_PROC:=$(shell if [ -d /proc ]; then /bin/echo -e -DHAS_PROC; fi) | |
38 CFLAGS:=-std=gnu99 -Wreturn-type -Werror=return-type -Werror=implicit-function-declaration -Wno-unused-value $(HAS_PROC) | |
39 ifeq ($(OS),Darwin) | 50 ifeq ($(OS),Darwin) |
40 #This should really be based on whether or not the C compiler is clang rather than based on the OS | 51 #This should really be based on whether or not the C compiler is clang rather than based on the OS |
41 CFLAGS+= -Wno-logical-op-parentheses | 52 CFLAGS+= -Wno-logical-op-parentheses |
42 endif | 53 endif |
43 ifdef PORTABLE | 54 ifdef PORTABLE |
55 ifdef USE_GLES | |
56 ifndef GLES_LIB | |
57 GLES_LIB:=$(shell pkg-config --libs glesv2) | |
58 endif | |
59 LDFLAGS:=-lm $(GLES_LIB) | |
60 else | |
44 CFLAGS+= -DGLEW_STATIC -Iglew/include | 61 CFLAGS+= -DGLEW_STATIC -Iglew/include |
45 LDFLAGS:=-lm glew/lib/libGLEW.a | 62 LDFLAGS:=-lm glew/lib/libGLEW.a |
63 endif | |
46 | 64 |
47 ifeq ($(OS),Darwin) | 65 ifeq ($(OS),Darwin) |
48 CFLAGS+= -IFrameworks/SDL2.framework/Headers | 66 CFLAGS+= -IFrameworks/SDL2.framework/Headers |
49 LDFLAGS+= -FFrameworks -framework SDL2 -framework OpenGL | 67 LDFLAGS+= -FFrameworks -framework SDL2 -framework OpenGL -framework AppKit |
50 FIXUP:=install_name_tool -change @rpath/SDL2.framework/Versions/A/SDL2 @executable_path/Frameworks/SDL2.framework/Versions/A/SDL2 | 68 FIXUP:=install_name_tool -change @rpath/SDL2.framework/Versions/A/SDL2 @executable_path/Frameworks/SDL2.framework/Versions/A/SDL2 |
51 else | 69 else |
52 CFLAGS+= -Isdl/include | 70 CFLAGS+= -Isdl/include |
53 LDFLAGS+= -Wl,-rpath='$$ORIGIN/lib' -Llib -lSDL2 $(shell pkg-config --libs gl) | 71 LDFLAGS+= -Wl,-rpath='$$ORIGIN/lib' -Llib -lSDL2 |
72 ifndef USE_GLES | |
73 LDFLAGS+= $(shell pkg-config --libs gl) | |
74 endif | |
54 endif #Darwin | 75 endif #Darwin |
55 | 76 |
56 else | 77 else |
57 CFLAGS:=$(shell pkg-config --cflags-only-I $(LIBS)) $(CFLAGS) | 78 CFLAGS:=$(shell pkg-config --cflags-only-I $(LIBS)) $(CFLAGS) |
58 LDFLAGS:=-lm $(shell pkg-config --libs $(LIBS)) | 79 LDFLAGS:=-lm $(shell pkg-config --libs $(LIBS)) |
59 | 80 |
60 ifeq ($(OS),Darwin) | 81 ifeq ($(OS),Darwin) |
61 LDFLAGS+= -framework OpenGL | 82 LDFLAGS+= -framework OpenGL -framework AppKit |
62 endif | 83 endif |
63 | 84 |
64 endif #PORTABLE | 85 endif #PORTABLE |
65 endif #Windows | 86 endif #Windows |
66 | 87 |
88 ifndef OPT | |
67 ifdef DEBUG | 89 ifdef DEBUG |
68 CFLAGS:=-ggdb $(CFLAGS) | 90 OPT:=-g3 -O0 |
69 LDFLAGS:=-ggdb $(LDFLAGS) | |
70 else | 91 else |
71 ifdef NOLTO | 92 ifdef NOLTO |
72 CFLAGS:=-O2 $(CFLAGS) | 93 OPT:=-O2 |
73 LDFLAGS:=-O2 $(LDFLAGS) | 94 else |
74 else | 95 OPT:=-O2 -flto |
75 CFLAGS:=-O2 -flto $(CFLAGS) | |
76 LDFLAGS:=-O2 -flto $(LDFLAGS) | |
77 endif #NOLTO | 96 endif #NOLTO |
78 endif #DEBUG | 97 endif #DEBUG |
98 endif #OPT | |
99 | |
100 CFLAGS:=$(OPT) $(CFLAGS) | |
101 LDFLAGS:=$(OPT) $(LDFLAGS) | |
79 | 102 |
80 ifdef Z80_LOG_ADDRESS | 103 ifdef Z80_LOG_ADDRESS |
81 CFLAGS+= -DZ80_LOG_ADDRESS | 104 CFLAGS+= -DZ80_LOG_ADDRESS |
82 endif | 105 endif |
83 | 106 |
84 ifdef PROFILE | 107 ifdef PROFILE |
85 LDFLAGS+= -Wl,--no-as-needed -lprofiler -Wl,--as-needed | 108 LDFLAGS+= -Wl,--no-as-needed -lprofiler -Wl,--as-needed |
86 endif | 109 endif |
87 ifdef NOGL | 110 ifdef NOGL |
88 CFLAGS+= -DDISABLE_OPENGL | 111 CFLAGS+= -DDISABLE_OPENGL |
112 NONUKLEAR:=1 | |
89 endif | 113 endif |
90 | 114 |
91 ifdef M68030 | 115 ifdef M68030 |
92 CFLAGS+= -DM68030 | 116 CFLAGS+= -DM68030 |
93 endif | 117 endif |
123 endif | 147 endif |
124 endif | 148 endif |
125 | 149 |
126 Z80OBJS=z80inst.o z80_to_x86.o | 150 Z80OBJS=z80inst.o z80_to_x86.o |
127 AUDIOOBJS=ym2612.o psg.o wave.o | 151 AUDIOOBJS=ym2612.o psg.o wave.o |
128 CONFIGOBJS=config.o tern.o util.o | 152 CONFIGOBJS=config.o tern.o util.o paths.o |
129 | 153 NUKLEAROBJS=$(FONT) nuklear_ui/blastem_nuklear.o nuklear_ui/sfnt.o controller_info.o |
130 MAINOBJS=blastem.o system.o genesis.o segacd.o debug.o gdb_remote.o vdp.o render_sdl.o ppm.o io.o romdb.o hash.o menu.o xband.o realtec.o i2c.o nor.o sega_mapper.o multi_game.o serialize.o $(TERMINAL) $(CONFIGOBJS) gst.o $(M68KOBJS) $(TRANSOBJS) $(AUDIOOBJS) | 154 RENDEROBJS=render_sdl.o ppm.o |
155 LIBZOBJS=zlib/adler32.o zlib/compress.o zlib/crc32.o zlib/deflate.o zlib/gzclose.o zlib/gzlib.o zlib/gzread.o\ | |
156 zlib/gzwrite.o zlib/infback.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o zlib/trees.o zlib/uncompr.o zlib/zutil.o | |
157 | |
158 ifdef NOZLIB | |
159 CFLAGS+= -DDISABLE_ZLIB | |
160 else | |
161 RENDEROBJS+= $(LIBZOBJS) png.o | |
162 endif | |
163 | |
164 MAINOBJS=blastem.o system.o genesis.o debug.o gdb_remote.o vdp.o $(RENDEROBJS) io.o romdb.o hash.o menu.o xband.o \ | |
165 realtec.o i2c.o nor.o sega_mapper.o multi_game.o megawifi.o $(NET) serialize.o $(TERMINAL) $(CONFIGOBJS) gst.o \ | |
166 $(M68KOBJS) $(TRANSOBJS) $(AUDIOOBJS) saves.o zip.o bindings.o jcart.o segacd.o | |
167 | |
168 ifdef NONUKLEAR | |
169 CFLAGS+= -DDISABLE_NUKLEAR | |
170 else | |
171 MAINOBJS+= $(NUKLEAROBJS) | |
172 endif | |
131 | 173 |
132 ifeq ($(CPU),x86_64) | 174 ifeq ($(CPU),x86_64) |
133 CFLAGS+=-DX86_64 -m64 | 175 CFLAGS+=-DX86_64 -m64 |
134 LDFLAGS+=-m64 | 176 LDFLAGS+=-m64 |
135 else | 177 else |
160 | 202 |
161 blastem$(EXE) : $(MAINOBJS) | 203 blastem$(EXE) : $(MAINOBJS) |
162 $(CC) -o $@ $^ $(LDFLAGS) | 204 $(CC) -o $@ $^ $(LDFLAGS) |
163 $(FIXUP) ./$@ | 205 $(FIXUP) ./$@ |
164 | 206 |
165 blastjag$(EXE) : jaguar.o jag_video.o render_sdl.o serialize.o $(M68KOBJS) $(TRANSOBJS) $(CONFIGOBJS) | 207 blastjag$(EXE) : jaguar.o jag_video.o $(RENDEROBJS) serialize.o $(M68KOBJS) $(TRANSOBJS) $(CONFIGOBJS) |
166 $(CC) -o $@ $^ $(LDFLAGS) | 208 $(CC) -o $@ $^ $(LDFLAGS) |
167 | 209 |
168 dis$(EXE) : dis.o 68kinst.o tern.o vos_program_module.o | 210 dis$(EXE) : dis.o 68kinst.o tern.o vos_program_module.o |
169 $(CC) -o $@ $^ | 211 $(CC) -o $@ $^ $(OPT) |
170 | 212 |
171 jagdis : jagdis.o jagcpu.o tern.o | 213 jagdis : jagdis.o jagcpu.o tern.o |
172 $(CC) -o $@ $^ | 214 $(CC) -o $@ $^ |
173 | 215 |
174 zdis$(EXE) : zdis.o z80inst.o | 216 zdis$(EXE) : zdis.o z80inst.o |
176 | 218 |
177 libemu68k.a : $(M68KOBJS) $(TRANSOBJS) | 219 libemu68k.a : $(M68KOBJS) $(TRANSOBJS) |
178 ar rcs libemu68k.a $(M68KOBJS) $(TRANSOBJS) | 220 ar rcs libemu68k.a $(M68KOBJS) $(TRANSOBJS) |
179 | 221 |
180 trans : trans.o serialize.o $(M68KOBJS) $(TRANSOBJS) util.o | 222 trans : trans.o serialize.o $(M68KOBJS) $(TRANSOBJS) util.o |
181 $(CC) -o trans trans.o $(M68KOBJS) $(TRANSOBJS) util.o | 223 $(CC) -o trans trans.o $(M68KOBJS) $(TRANSOBJS) util.o $(OPT) |
182 | 224 |
183 transz80 : transz80.o $(Z80OBJS) $(TRANSOBJS) | 225 transz80 : transz80.o $(Z80OBJS) $(TRANSOBJS) |
184 $(CC) -o transz80 transz80.o $(Z80OBJS) $(TRANSOBJS) | 226 $(CC) -o transz80 transz80.o $(Z80OBJS) $(TRANSOBJS) |
185 | 227 |
186 ztestrun : ztestrun.o serialize.o $(Z80OBJS) $(TRANSOBJS) | 228 ztestrun : ztestrun.o serialize.o $(Z80OBJS) $(TRANSOBJS) |
187 $(CC) -o ztestrun ztestrun.o $(Z80OBJS) $(TRANSOBJS) | 229 $(CC) -o ztestrun ztestrun.o $(Z80OBJS) $(TRANSOBJS) $(OPT) |
188 | 230 |
189 ztestgen : ztestgen.o z80inst.o | 231 ztestgen : ztestgen.o z80inst.o |
190 $(CC) -ggdb -o ztestgen ztestgen.o z80inst.o | 232 $(CC) -ggdb -o ztestgen ztestgen.o z80inst.o |
191 | 233 |
192 stateview$(EXE) : stateview.o vdp.o render_sdl.o ppm.o serialize.o $(CONFIGOBJS) gst.o | 234 stateview$(EXE) : stateview.o vdp.o $(RENDEROBJS) serialize.o $(CONFIGOBJS) gst.o |
193 $(CC) -o $@ $^ $(LDFLAGS) | 235 $(CC) -o $@ $^ $(LDFLAGS) |
194 $(FIXUP) ./$@ | 236 $(FIXUP) ./$@ |
195 | 237 |
196 vgmplay$(EXE) : vgmplay.o render_sdl.o ppm.o serialize.o $(CONFIGOBJS) $(AUDIOOBJS) | 238 vgmplay$(EXE) : vgmplay.o $(RENDEROBJS) serialize.o $(CONFIGOBJS) $(AUDIOOBJS) |
197 $(CC) -o $@ $^ $(LDFLAGS) | 239 $(CC) -o $@ $^ $(LDFLAGS) |
198 $(FIXUP) ./$@ | 240 $(FIXUP) ./$@ |
199 | 241 |
200 blastcpm : blastcpm.o util.o serialize.o $(Z80OBJS) $(TRANSOBJS) | 242 blastcpm : blastcpm.o util.o serialize.o $(Z80OBJS) $(TRANSOBJS) |
201 $(CC) -o $@ $^ | 243 $(CC) -o $@ $^ $(OPT) |
202 | 244 |
203 test : test.o vdp.o | 245 test : test.o vdp.o |
204 $(CC) -o test test.o vdp.o | 246 $(CC) -o test test.o vdp.o |
205 | 247 |
206 testgst : testgst.o gst.o | 248 testgst : testgst.o gst.o |
227 %.o : %.S | 269 %.o : %.S |
228 $(CC) -c -o $@ $< | 270 $(CC) -c -o $@ $< |
229 | 271 |
230 %.o : %.c | 272 %.o : %.c |
231 $(CC) $(CFLAGS) -c -o $@ $< | 273 $(CC) $(CFLAGS) -c -o $@ $< |
274 | |
275 %.o : %.m | |
276 $(CC) $(CFLAGS) -c -o $@ $< | |
277 | |
232 %.png : %.xcf | 278 %.png : %.xcf |
233 xcf2png $< > $@ | 279 xcf2png $< > $@ |
234 | 280 |
235 %.tiles : %.spec | 281 %.tiles : %.spec |
236 ./img2tiles.py -s $< $@ | 282 ./img2tiles.py -s $< $@ |
250 font.tiles : font.png | 296 font.tiles : font.png |
251 | 297 |
252 menu.bin : font_interlace_variable.tiles arrow.tiles cursor.tiles button.tiles font.tiles | 298 menu.bin : font_interlace_variable.tiles arrow.tiles cursor.tiles button.tiles font.tiles |
253 | 299 |
254 clean : | 300 clean : |
255 rm -rf $(ALL) trans ztestrun ztestgen *.o | 301 rm -rf $(ALL) trans ztestrun ztestgen *.o nuklear_ui/*.o zlib/*.o |