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