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