comparison Makefile @ 1648:b7ecd0d6a77b mame_interp

Merge from default
author Michael Pavone <pavone@retrodev.com>
date Tue, 25 Dec 2018 11:12:26 -0800
parents 36732f5c2281 c206a422d466
children 956c1cce05e2
comparison
equal deleted inserted replaced
1509:36732f5c2281 1648:b7ecd0d6a77b
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:=
30 33
31 ifeq ($(OS),Darwin) 34 ifeq ($(OS),Darwin)
32 LIBS=sdl2 glew 35 LIBS=sdl2 glew
36 FONT:=nuklear_ui/font_mac.o
33 else 37 else
34 LIBS=sdl2 glew gl 38 LIBS=sdl2 glew gl
39 FONT:=nuklear_ui/font.o
35 endif #Darwin 40 endif #Darwin
36 41
37 HAS_PROC:=$(shell if [ -d /proc ]; then /bin/echo -e -DHAS_PROC; fi) 42 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) 43 CFLAGS:=-std=gnu99 -Wreturn-type -Werror=return-type -Werror=implicit-function-declaration -Wno-unused-value $(HAS_PROC) -DHAVE_UNISTD_H
39 ifeq ($(OS),Darwin) 44 ifeq ($(OS),Darwin)
40 #This should really be based on whether or not the C compiler is clang rather than based on the OS 45 #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 46 CFLAGS+= -Wno-logical-op-parentheses
42 endif 47 endif
43 ifdef PORTABLE 48 ifdef PORTABLE
44 CFLAGS+= -DGLEW_STATIC -Iglew/include 49 CFLAGS+= -DGLEW_STATIC -Iglew/include
45 LDFLAGS:=-lm glew/lib/libGLEW.a 50 LDFLAGS:=-lm glew/lib/libGLEW.a
46 51
47 ifeq ($(OS),Darwin) 52 ifeq ($(OS),Darwin)
48 CFLAGS+= -IFrameworks/SDL2.framework/Headers 53 CFLAGS+= -IFrameworks/SDL2.framework/Headers
49 LDFLAGS+= -FFrameworks -framework SDL2 -framework OpenGL 54 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 55 FIXUP:=install_name_tool -change @rpath/SDL2.framework/Versions/A/SDL2 @executable_path/Frameworks/SDL2.framework/Versions/A/SDL2
51 else 56 else
52 CFLAGS+= -Isdl/include 57 CFLAGS+= -Isdl/include
53 LDFLAGS+= -Wl,-rpath='$$ORIGIN/lib' -Llib -lSDL2 $(shell pkg-config --libs gl) 58 LDFLAGS+= -Wl,-rpath='$$ORIGIN/lib' -Llib -lSDL2 $(shell pkg-config --libs gl)
54 endif #Darwin 59 endif #Darwin
56 else 61 else
57 CFLAGS:=$(shell pkg-config --cflags-only-I $(LIBS)) $(CFLAGS) 62 CFLAGS:=$(shell pkg-config --cflags-only-I $(LIBS)) $(CFLAGS)
58 LDFLAGS:=-lm $(shell pkg-config --libs $(LIBS)) 63 LDFLAGS:=-lm $(shell pkg-config --libs $(LIBS))
59 64
60 ifeq ($(OS),Darwin) 65 ifeq ($(OS),Darwin)
61 LDFLAGS+= -framework OpenGL 66 LDFLAGS+= -framework OpenGL -framework AppKit
62 endif 67 endif
63 68
64 endif #PORTABLE 69 endif #PORTABLE
65 endif #Windows 70 endif #Windows
66 71
67 ifdef DEBUG 72 ifdef DEBUG
68 OPT:=-ggdb -Og 73 OPT:=-g3 -O0
69 else 74 else
70 ifdef NOLTO 75 ifdef NOLTO
71 OPT:=-O2 76 OPT:=-O2
72 else 77 else
73 OPT:=-O2 -flto 78 OPT:=-O2 -flto
84 ifdef PROFILE 89 ifdef PROFILE
85 LDFLAGS+= -Wl,--no-as-needed -lprofiler -Wl,--as-needed 90 LDFLAGS+= -Wl,--no-as-needed -lprofiler -Wl,--as-needed
86 endif 91 endif
87 ifdef NOGL 92 ifdef NOGL
88 CFLAGS+= -DDISABLE_OPENGL 93 CFLAGS+= -DDISABLE_OPENGL
94 NONUKLEAR:=1
89 endif 95 endif
90 96
91 ifdef M68030 97 ifdef M68030
92 CFLAGS+= -DM68030 98 CFLAGS+= -DM68030
93 endif 99 endif
125 endif 131 endif
126 132
127 #Z80OBJS=z80inst.o z80_to_x86.o 133 #Z80OBJS=z80inst.o z80_to_x86.o
128 Z80OBJS=z80inst.o mame_z80/z80.o 134 Z80OBJS=z80inst.o mame_z80/z80.o
129 AUDIOOBJS=ym2612.o psg.o wave.o 135 AUDIOOBJS=ym2612.o psg.o wave.o
130 CONFIGOBJS=config.o tern.o util.o 136 CONFIGOBJS=config.o tern.o util.o paths.o
131 137 NUKLEAROBJS=$(FONT) nuklear_ui/blastem_nuklear.o nuklear_ui/sfnt.o controller_info.o
132 #MAINOBJS=blastem.o system.o genesis.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) 138 RENDEROBJS=render_sdl.o ppm.o
133 MAINOBJS=blastem.o system.o genesis.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) $(M68KOBJS) $(TRANSOBJS) $(AUDIOOBJS) 139 LIBZOBJS=zlib/adler32.o zlib/compress.o zlib/crc32.o zlib/deflate.o zlib/gzclose.o zlib/gzlib.o zlib/gzread.o\
140 zlib/gzwrite.o zlib/infback.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o zlib/trees.o zlib/uncompr.o zlib/zutil.o
141
142 ifdef NOZLIB
143 CFLAGS+= -DDISABLE_ZLIB
144 else
145 RENDEROBJS+= $(LIBZOBJS) png.o
146 endif
147
148 #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
149 MAINOBJS=blastem.o system.o genesis.o vdp.o $(RENDEROBJS) io.o romdb.o hash.o menu.o xband.o \
150 realtec.o i2c.o nor.o sega_mapper.o multi_game.o megawifi.o $(NET) serialize.o $(TERMINAL) $(CONFIGOBJS) \
151 $(M68KOBJS) $(TRANSOBJS) $(AUDIOOBJS) saves.o zip.o bindings.o jcart.o
152
153 ifdef NONUKLEAR
154 CFLAGS+= -DDISABLE_NUKLEAR
155 else
156 MAINOBJS+= $(NUKLEAROBJS)
157 endif
134 158
135 ifeq ($(CPU),x86_64) 159 ifeq ($(CPU),x86_64)
136 CFLAGS+=-DX86_64 -m64 160 CFLAGS+=-DX86_64 -m64
137 LDFLAGS+=-m64 161 LDFLAGS+=-m64
138 else 162 else
139 ifeq ($(CPU),i686) 163 ifeq ($(CPU),i686)
140 CFLAGS+=-DX86_32 -m32 164 CFLAGS+=-DX86_32 -m32
141 LDFLAGS+=-m32 165 LDFLAGS+=-m32
142 else 166 else
143 $(error $(CPU) is not a supported architecture) 167 #$(error $(CPU) is not a supported architecture)
144 endif 168 endif
145 endif 169 endif
146 170
147 ifdef NOZ80 171 ifdef NOZ80
148 CFLAGS+=-DNO_Z80 172 CFLAGS+=-DNO_Z80
163 187
164 blastem$(EXE) : $(MAINOBJS) 188 blastem$(EXE) : $(MAINOBJS)
165 $(CC) -o $@ $^ $(LDFLAGS) 189 $(CC) -o $@ $^ $(LDFLAGS)
166 $(FIXUP) ./$@ 190 $(FIXUP) ./$@
167 191
168 blastjag$(EXE) : jaguar.o jag_video.o render_sdl.o serialize.o $(M68KOBJS) $(TRANSOBJS) $(CONFIGOBJS) 192 blastjag$(EXE) : jaguar.o jag_video.o $(RENDEROBJS) serialize.o $(M68KOBJS) $(TRANSOBJS) $(CONFIGOBJS)
169 $(CC) -o $@ $^ $(LDFLAGS) 193 $(CC) -o $@ $^ $(LDFLAGS)
170 194
171 dis$(EXE) : dis.o 68kinst.o tern.o vos_program_module.o 195 dis$(EXE) : dis.o 68kinst.o tern.o vos_program_module.o
172 $(CC) -o $@ $^ $(OPT) 196 $(CC) -o $@ $^ $(OPT)
173 197
190 $(CC) -o ztestrun ztestrun.o $(Z80OBJS) $(TRANSOBJS) $(OPT) 214 $(CC) -o ztestrun ztestrun.o $(Z80OBJS) $(TRANSOBJS) $(OPT)
191 215
192 ztestgen : ztestgen.o z80inst.o 216 ztestgen : ztestgen.o z80inst.o
193 $(CC) -ggdb -o ztestgen ztestgen.o z80inst.o 217 $(CC) -ggdb -o ztestgen ztestgen.o z80inst.o
194 218
195 stateview$(EXE) : stateview.o vdp.o render_sdl.o ppm.o serialize.o $(CONFIGOBJS) gst.o 219 stateview$(EXE) : stateview.o vdp.o $(RENDEROBJS) serialize.o $(CONFIGOBJS) gst.o
196 $(CC) -o $@ $^ $(LDFLAGS) 220 $(CC) -o $@ $^ $(LDFLAGS)
197 $(FIXUP) ./$@ 221 $(FIXUP) ./$@
198 222
199 vgmplay$(EXE) : vgmplay.o render_sdl.o ppm.o serialize.o $(CONFIGOBJS) $(AUDIOOBJS) 223 vgmplay$(EXE) : vgmplay.o $(RENDEROBJS) serialize.o $(CONFIGOBJS) $(AUDIOOBJS)
200 $(CC) -o $@ $^ $(LDFLAGS) 224 $(CC) -o $@ $^ $(LDFLAGS)
201 $(FIXUP) ./$@ 225 $(FIXUP) ./$@
202 226
203 blastcpm : blastcpm.o util.o serialize.o $(Z80OBJS) $(TRANSOBJS) 227 blastcpm : blastcpm.o util.o serialize.o $(Z80OBJS) $(TRANSOBJS)
204 $(CC) -o $@ $^ $(OPT) 228 $(CC) -o $@ $^ $(OPT)
230 %.o : %.S 254 %.o : %.S
231 $(CC) -c -o $@ $< 255 $(CC) -c -o $@ $<
232 256
233 %.o : %.c 257 %.o : %.c
234 $(CC) $(CFLAGS) -c -o $@ $< 258 $(CC) $(CFLAGS) -c -o $@ $<
259
260 %.o : %.m
261 $(CC) $(CFLAGS) -c -o $@ $<
262
235 %.png : %.xcf 263 %.png : %.xcf
236 xcf2png $< > $@ 264 xcf2png $< > $@
237 265
238 %.tiles : %.spec 266 %.tiles : %.spec
239 ./img2tiles.py -s $< $@ 267 ./img2tiles.py -s $< $@
253 font.tiles : font.png 281 font.tiles : font.png
254 282
255 menu.bin : font_interlace_variable.tiles arrow.tiles cursor.tiles button.tiles font.tiles 283 menu.bin : font_interlace_variable.tiles arrow.tiles cursor.tiles button.tiles font.tiles
256 284
257 clean : 285 clean :
258 rm -rf $(ALL) trans ztestrun ztestgen *.o musashi/*.o 286 rm -rf $(ALL) trans ztestrun ztestgen *.o nuklear_ui/*.o zlib/*.o