Mercurial > repos > blastem
comparison Makefile @ 1696:956c1cce05e2 mame_interp
Merge from default
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Thu, 24 Jan 2019 19:15:59 -0800 |
parents | b7ecd0d6a77b ba3fb7a3be6b |
children | 95e387e1d63c |
comparison
equal
deleted
inserted
replaced
1648:b7ecd0d6a77b | 1696:956c1cce05e2 |
---|---|
29 MEM:=mem.o | 29 MEM:=mem.o |
30 TERMINAL:=terminal.o | 30 TERMINAL:=terminal.o |
31 NET:=net.o | 31 NET:=net.o |
32 EXE:= | 32 EXE:= |
33 | 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 | |
36 | |
34 ifeq ($(OS),Darwin) | 37 ifeq ($(OS),Darwin) |
35 LIBS=sdl2 glew | 38 LIBS=sdl2 glew |
36 FONT:=nuklear_ui/font_mac.o | 39 FONT:=nuklear_ui/font_mac.o |
37 else | 40 else |
41 ifdef USE_GLES | |
42 LIBS=sdl2 glesv2 | |
43 CFLAGS+= -DUSE_GLES | |
44 else | |
38 LIBS=sdl2 glew gl | 45 LIBS=sdl2 glew gl |
46 endif #USE_GLES | |
39 FONT:=nuklear_ui/font.o | 47 FONT:=nuklear_ui/font.o |
40 endif #Darwin | 48 endif #Darwin |
41 | 49 |
42 HAS_PROC:=$(shell if [ -d /proc ]; then /bin/echo -e -DHAS_PROC; fi) | 50 ifdef HOST_ZLIB |
43 CFLAGS:=-std=gnu99 -Wreturn-type -Werror=return-type -Werror=implicit-function-declaration -Wno-unused-value $(HAS_PROC) -DHAVE_UNISTD_H | 51 LIBS+= zlib |
52 LIBZOBJS= | |
53 else | |
54 LIBZOBJS=zlib/adler32.o zlib/compress.o zlib/crc32.o zlib/deflate.o zlib/gzclose.o zlib/gzlib.o zlib/gzread.o\ | |
55 zlib/gzwrite.o zlib/infback.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o zlib/trees.o zlib/uncompr.o zlib/zutil.o | |
56 endif | |
57 | |
44 ifeq ($(OS),Darwin) | 58 ifeq ($(OS),Darwin) |
45 #This should really be based on whether or not the C compiler is clang rather than based on the OS | 59 #This should really be based on whether or not the C compiler is clang rather than based on the OS |
46 CFLAGS+= -Wno-logical-op-parentheses | 60 CFLAGS+= -Wno-logical-op-parentheses |
47 endif | 61 endif |
48 ifdef PORTABLE | 62 ifdef PORTABLE |
63 ifdef USE_GLES | |
64 ifndef GLES_LIB | |
65 GLES_LIB:=$(shell pkg-config --libs glesv2) | |
66 endif | |
67 LDFLAGS:=-lm $(GLES_LIB) | |
68 else | |
49 CFLAGS+= -DGLEW_STATIC -Iglew/include | 69 CFLAGS+= -DGLEW_STATIC -Iglew/include |
50 LDFLAGS:=-lm glew/lib/libGLEW.a | 70 LDFLAGS:=-lm glew/lib/libGLEW.a |
71 endif | |
51 | 72 |
52 ifeq ($(OS),Darwin) | 73 ifeq ($(OS),Darwin) |
53 CFLAGS+= -IFrameworks/SDL2.framework/Headers | 74 CFLAGS+= -IFrameworks/SDL2.framework/Headers |
54 LDFLAGS+= -FFrameworks -framework SDL2 -framework OpenGL -framework AppKit | 75 LDFLAGS+= -FFrameworks -framework SDL2 -framework OpenGL -framework AppKit |
55 FIXUP:=install_name_tool -change @rpath/SDL2.framework/Versions/A/SDL2 @executable_path/Frameworks/SDL2.framework/Versions/A/SDL2 | 76 FIXUP:=install_name_tool -change @rpath/SDL2.framework/Versions/A/SDL2 @executable_path/Frameworks/SDL2.framework/Versions/A/SDL2 |
56 else | 77 else |
57 CFLAGS+= -Isdl/include | 78 CFLAGS+= -Isdl/include |
58 LDFLAGS+= -Wl,-rpath='$$ORIGIN/lib' -Llib -lSDL2 $(shell pkg-config --libs gl) | 79 LDFLAGS+= -Wl,-rpath='$$ORIGIN/lib' -Llib -lSDL2 |
80 ifndef USE_GLES | |
81 LDFLAGS+= $(shell pkg-config --libs gl) | |
82 endif | |
59 endif #Darwin | 83 endif #Darwin |
60 | 84 |
85 else | |
86 ifeq ($(MAKECMDGOALS),libblastem.so) | |
87 LDFLAGS:=-lm | |
61 else | 88 else |
62 CFLAGS:=$(shell pkg-config --cflags-only-I $(LIBS)) $(CFLAGS) | 89 CFLAGS:=$(shell pkg-config --cflags-only-I $(LIBS)) $(CFLAGS) |
63 LDFLAGS:=-lm $(shell pkg-config --libs $(LIBS)) | 90 LDFLAGS:=-lm $(shell pkg-config --libs $(LIBS)) |
91 endif #libblastem.so | |
64 | 92 |
65 ifeq ($(OS),Darwin) | 93 ifeq ($(OS),Darwin) |
66 LDFLAGS+= -framework OpenGL -framework AppKit | 94 LDFLAGS+= -framework OpenGL -framework AppKit |
67 endif | 95 endif |
68 | 96 |
69 endif #PORTABLE | 97 endif #PORTABLE |
70 endif #Windows | 98 endif #Windows |
71 | 99 |
100 ifndef OPT | |
72 ifdef DEBUG | 101 ifdef DEBUG |
73 OPT:=-g3 -O0 | 102 OPT:=-g3 -O0 |
74 else | 103 else |
75 ifdef NOLTO | 104 ifdef NOLTO |
76 OPT:=-O2 | 105 OPT:=-O2 |
77 else | 106 else |
78 OPT:=-O2 -flto | 107 OPT:=-O2 -flto |
79 endif #NOLTO | 108 endif #NOLTO |
80 endif #DEBUG | 109 endif #DEBUG |
110 endif #OPT | |
81 | 111 |
82 CFLAGS:=$(OPT) $(CFLAGS) | 112 CFLAGS:=$(OPT) $(CFLAGS) |
83 LDFLAGS:=$(OPT) $(LDFLAGS) | 113 LDFLAGS:=$(OPT) $(LDFLAGS) |
84 | 114 |
85 ifdef Z80_LOG_ADDRESS | 115 ifdef Z80_LOG_ADDRESS |
134 Z80OBJS=z80inst.o mame_z80/z80.o | 164 Z80OBJS=z80inst.o mame_z80/z80.o |
135 AUDIOOBJS=ym2612.o psg.o wave.o | 165 AUDIOOBJS=ym2612.o psg.o wave.o |
136 CONFIGOBJS=config.o tern.o util.o paths.o | 166 CONFIGOBJS=config.o tern.o util.o paths.o |
137 NUKLEAROBJS=$(FONT) nuklear_ui/blastem_nuklear.o nuklear_ui/sfnt.o controller_info.o | 167 NUKLEAROBJS=$(FONT) nuklear_ui/blastem_nuklear.o nuklear_ui/sfnt.o controller_info.o |
138 RENDEROBJS=render_sdl.o ppm.o | 168 RENDEROBJS=render_sdl.o ppm.o |
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 | 169 |
142 ifdef NOZLIB | 170 ifdef NOZLIB |
143 CFLAGS+= -DDISABLE_ZLIB | 171 CFLAGS+= -DDISABLE_ZLIB |
144 else | 172 else |
145 RENDEROBJS+= $(LIBZOBJS) png.o | 173 RENDEROBJS+= $(LIBZOBJS) png.o |
147 | 175 |
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 | 176 #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 \ | 177 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) \ | 178 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 | 179 $(M68KOBJS) $(TRANSOBJS) $(AUDIOOBJS) saves.o zip.o bindings.o jcart.o |
180 | |
181 LIBOBJS=libblastem.o system.o genesis.o debug.o gdb_remote.o vdp.o io.o romdb.o hash.o menu.o xband.o realtec.o \ | |
182 i2c.o nor.o sega_mapper.o multi_game.o megawifi.o $(NET) serialize.o $(TERMINAL) $(CONFIGOBJS) gst.o \ | |
183 $(M68KOBJS) $(TRANSOBJS) $(AUDIOOBJS) saves.o jcart.o | |
152 | 184 |
153 ifdef NONUKLEAR | 185 ifdef NONUKLEAR |
154 CFLAGS+= -DDISABLE_NUKLEAR | 186 CFLAGS+= -DDISABLE_NUKLEAR |
155 else | 187 else |
156 MAINOBJS+= $(NUKLEAROBJS) | 188 MAINOBJS+= $(NUKLEAROBJS) |
170 | 202 |
171 ifdef NOZ80 | 203 ifdef NOZ80 |
172 CFLAGS+=-DNO_Z80 | 204 CFLAGS+=-DNO_Z80 |
173 else | 205 else |
174 MAINOBJS+= sms.o $(Z80OBJS) | 206 MAINOBJS+= sms.o $(Z80OBJS) |
207 LIBOBJS+= sms.o $(Z80OBJS) | |
175 endif | 208 endif |
176 | 209 |
177 ifeq ($(OS),Windows) | 210 ifeq ($(OS),Windows) |
178 MAINOBJS+= res.o | 211 MAINOBJS+= res.o |
212 endif | |
213 | |
214 ifdef CONFIG_PATH | |
215 CFLAGS+= -DCONFIG_PATH='"'$(CONFIG_PATH)'"' | |
216 endif | |
217 | |
218 ifdef DATA_PATH | |
219 CFLAGS+= -DDATA_PATH='"'$(DATA_PATH)'"' | |
179 endif | 220 endif |
180 | 221 |
181 ALL=dis$(EXE) zdis$(EXE) stateview$(EXE) vgmplay$(EXE) blastem$(EXE) | 222 ALL=dis$(EXE) zdis$(EXE) stateview$(EXE) vgmplay$(EXE) blastem$(EXE) |
182 ifneq ($(OS),Windows) | 223 ifneq ($(OS),Windows) |
183 ALL+= termhelper | 224 ALL+= termhelper |
184 endif | 225 endif |
185 | 226 |
227 ifeq ($(MAKECMDGOALS),libblastem.so) | |
228 CFLAGS+= -fpic -DIS_LIB | |
229 endif | |
230 | |
186 all : $(ALL) | 231 all : $(ALL) |
232 | |
233 libblastem.so : $(LIBOBJS) | |
234 $(CC) -shared -o $@ $^ $(LDFLAGS) | |
187 | 235 |
188 blastem$(EXE) : $(MAINOBJS) | 236 blastem$(EXE) : $(MAINOBJS) |
189 $(CC) -o $@ $^ $(LDFLAGS) | 237 $(CC) -o $@ $^ $(LDFLAGS) |
190 $(FIXUP) ./$@ | 238 $(FIXUP) ./$@ |
191 | 239 |