Mercurial > repos > blastem
comparison Makefile @ 2355:94cf5cc89227
Add an option to use the system file picker on Linux and Windows
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 21 Oct 2023 19:22:01 -0700 |
parents | 06d5e9b08bdb |
children | 64cf80e683aa |
comparison
equal
deleted
inserted
replaced
2354:a773b8f09292 | 2355:94cf5cc89227 |
---|---|
13 | 13 |
14 GLEW_PREFIX:=glew | 14 GLEW_PREFIX:=glew |
15 MEM:=mem_win.o | 15 MEM:=mem_win.o |
16 TERMINAL:=terminal_win.o | 16 TERMINAL:=terminal_win.o |
17 FONT:=nuklear_ui/font_win.o | 17 FONT:=nuklear_ui/font_win.o |
18 CHOOSER:=nuklear_ui/filechooser_win.o | |
18 NET:=net_win.o | 19 NET:=net_win.o |
19 EXE:=.exe | 20 EXE:=.exe |
20 SO:=dll | 21 SO:=dll |
21 CPU:=i686 | 22 CPU:=i686 |
22 ifeq ($(CPU),i686) | 23 ifeq ($(CPU),i686) |
30 SDL2_PREFIX:="sdl/x86_64-w64-mingw32" | 31 SDL2_PREFIX:="sdl/x86_64-w64-mingw32" |
31 GLUDIR:=x64 | 32 GLUDIR:=x64 |
32 endif | 33 endif |
33 GLEW32S_LIB:=$(GLEW_PREFIX)/lib/Release/$(GLUDIR)/glew32s.lib | 34 GLEW32S_LIB:=$(GLEW_PREFIX)/lib/Release/$(GLUDIR)/glew32s.lib |
34 CFLAGS:=-std=gnu99 -Wreturn-type -Werror=return-type -Werror=implicit-function-declaration -Wpointer-arith -Werror=pointer-arith | 35 CFLAGS:=-std=gnu99 -Wreturn-type -Werror=return-type -Werror=implicit-function-declaration -Wpointer-arith -Werror=pointer-arith |
35 LDFLAGS:=-lm -lmingw32 -lws2_32 -mwindows | 36 LDFLAGS:=-lm -lmingw32 -lws2_32 -lcomdlg32 -mwindows |
36 ifneq ($(MAKECMDGOALS),libblastem.dll) | 37 ifneq ($(MAKECMDGOALS),libblastem.dll) |
37 CFLAGS+= -I"$(SDL2_PREFIX)/include/SDL2" -I"$(GLEW_PREFIX)/include" -DGLEW_STATIC | 38 CFLAGS+= -I"$(SDL2_PREFIX)/include/SDL2" -I"$(GLEW_PREFIX)/include" -DGLEW_STATIC |
38 LDFLAGS+= $(GLEW32S_LIB) -L"$(SDL2_PREFIX)/lib" -lSDL2main -lSDL2 -lopengl32 -lglu32 | 39 LDFLAGS+= $(GLEW32S_LIB) -L"$(SDL2_PREFIX)/lib" -lSDL2main -lSDL2 -lopengl32 -lglu32 |
39 endif | 40 endif |
40 LIBZOBJS=$(BUNDLED_LIBZ) | 41 LIBZOBJS=$(BUNDLED_LIBZ) |
50 CFLAGS:=-std=gnu99 -Wreturn-type -Werror=return-type -Werror=implicit-function-declaration -Wno-unused-value -Wpointer-arith -Werror=pointer-arith $(HAS_PROC) -DHAVE_UNISTD_H | 51 CFLAGS:=-std=gnu99 -Wreturn-type -Werror=return-type -Werror=implicit-function-declaration -Wno-unused-value -Wpointer-arith -Werror=pointer-arith $(HAS_PROC) -DHAVE_UNISTD_H |
51 | 52 |
52 ifeq ($(OS),Darwin) | 53 ifeq ($(OS),Darwin) |
53 LIBS=sdl2 glew | 54 LIBS=sdl2 glew |
54 FONT:=nuklear_ui/font_mac.o | 55 FONT:=nuklear_ui/font_mac.o |
56 CHOOSER:=nuklear_ui/filechooser_null.o | |
55 SO:=dylib | 57 SO:=dylib |
56 else | 58 else |
57 SO:=so | 59 SO:=so |
58 | 60 |
59 ifdef USE_FBDEV | 61 ifdef USE_FBDEV |
69 else | 71 else |
70 LIBS=sdl2 glew gl | 72 LIBS=sdl2 glew gl |
71 endif #USE_GLES | 73 endif #USE_GLES |
72 endif #USE_FBDEV | 74 endif #USE_FBDEV |
73 FONT:=nuklear_ui/font.o | 75 FONT:=nuklear_ui/font.o |
76 CHOOSER:=nuklear_ui/filechooser_gtk.o | |
77 GTKFLAGS:=$(shell pkg-config --cflags gtk+-3.0 2>/dev/null) | |
78 ifeq ($(GTKFLAGS),) | |
79 GTKFLAGS:=$(shell pkg-config --cflags gtk+-2.0 2>/dev/null) | |
80 ifeq ($(GTKFLAGS),) | |
81 CHOOSER:=nuklear_ui/filechooser_null.o | |
82 endif | |
83 endif | |
84 ifeq ($(GTKFLAGS),) | |
85 else | |
86 EXTRA_NUKLEAR_LDFLAGS:=-ldl | |
87 endif | |
88 CFLAGS+= $(GTKFLAGS) | |
74 endif #Darwin | 89 endif #Darwin |
75 | 90 |
76 ifdef HOST_ZLIB | 91 ifdef HOST_ZLIB |
77 LIBS+= zlib | 92 LIBS+= zlib |
78 LIBZOBJS= | 93 LIBZOBJS= |
82 | 97 |
83 ifeq ($(OS),Darwin) | 98 ifeq ($(OS),Darwin) |
84 #This should really be based on whether or not the C compiler is clang rather than based on the OS | 99 #This should really be based on whether or not the C compiler is clang rather than based on the OS |
85 CFLAGS+= -Wno-logical-op-parentheses | 100 CFLAGS+= -Wno-logical-op-parentheses |
86 endif | 101 endif |
102 | |
87 ifdef PORTABLE | 103 ifdef PORTABLE |
88 ifdef USE_GLES | 104 ifdef USE_GLES |
89 ifndef GLES_LIB | 105 ifndef GLES_LIB |
90 GLES_LIB:=$(shell pkg-config --libs glesv2) | 106 GLES_LIB:=$(shell pkg-config --libs glesv2) |
91 endif | 107 endif |
92 LDFLAGS:=-lm $(GLES_LIB) | 108 LDFLAGS:=-lm $(GLES_LIB) |
93 else | 109 else #USE_GLES |
94 CFLAGS+= -DGLEW_STATIC -Iglew/include | 110 CFLAGS+= -DGLEW_STATIC -Iglew/include |
95 LDFLAGS:=-lm glew/lib/libGLEW.a -lEGL | 111 LDFLAGS:=-lm glew/lib/libGLEW.a -lEGL |
96 endif | 112 endif #USE_GLES |
97 | 113 |
98 ifeq ($(OS),Darwin) | 114 ifeq ($(OS),Darwin) |
99 SDL_INCLUDE_PATH:=Frameworks/SDL2.framework/Headers | 115 SDL_INCLUDE_PATH:=Frameworks/SDL2.framework/Headers |
100 CFLAGS+= -mmacosx-version-min=10.10 | 116 CFLAGS+= -mmacosx-version-min=10.10 |
101 LDFLAGS+= -FFrameworks -framework SDL2 -framework OpenGL -framework AppKit -mmacosx-version-min=10.10 | 117 LDFLAGS+= -FFrameworks -framework SDL2 -framework OpenGL -framework AppKit -mmacosx-version-min=10.10 |
102 FIXUP:=install_name_tool -change @rpath/SDL2.framework/Versions/A/SDL2 @executable_path/Frameworks/SDL2.framework/Versions/A/SDL2 | 118 FIXUP:=install_name_tool -change @rpath/SDL2.framework/Versions/A/SDL2 @executable_path/Frameworks/SDL2.framework/Versions/A/SDL2 |
103 else | 119 else #Darwin |
104 SDL_INCLUDE_PATH:=sdl/include | 120 SDL_INCLUDE_PATH:=sdl/include |
105 LDFLAGS+= -Wl,-rpath='$$ORIGIN/lib' -Llib -lSDL2 | 121 LDFLAGS+= -Wl,-rpath='$$ORIGIN/lib' -Llib -lSDL2 |
106 ifndef USE_GLES | 122 ifndef USE_GLES |
107 LDFLAGS+= $(shell pkg-config --libs gl) | 123 LDFLAGS+= $(shell pkg-config --libs gl) |
108 endif | 124 endif |
109 endif #Darwin | 125 endif #Darwin |
110 CFLAGS+= -I$(SDL_INCLUDE_PATH) | 126 CFLAGS+= -I$(SDL_INCLUDE_PATH) |
111 | 127 |
112 else | 128 else #PORTABLE |
113 ifeq ($(MAKECMDGOALS),libblastem.$(SO)) | 129 ifeq ($(MAKECMDGOALS),libblastem.$(SO)) |
114 LDFLAGS:=-lm | 130 LDFLAGS:=-lm |
115 else | 131 else |
116 CFLAGS:=$(shell pkg-config --cflags-only-I $(LIBS)) $(CFLAGS) | 132 CFLAGS:=$(shell pkg-config --cflags-only-I $(LIBS)) $(CFLAGS) |
117 LDFLAGS:=-lm $(shell pkg-config --libs $(LIBS)) | 133 LDFLAGS:=-lm $(shell pkg-config --libs $(LIBS)) |
178 endif | 194 endif |
179 | 195 |
180 TRANSOBJS=gen.o backend.o $(MEM) arena.o tern.o | 196 TRANSOBJS=gen.o backend.o $(MEM) arena.o tern.o |
181 M68KOBJS=68kinst.o disasm.o | 197 M68KOBJS=68kinst.o disasm.o |
182 | 198 |
199 ifdef NO_FILE_CHOOSER | |
200 CHOOSER:=nuklear_ui/filechooser_nulll.o | |
201 endif | |
202 | |
183 ifdef NEW_CORE | 203 ifdef NEW_CORE |
184 Z80OBJS=z80.o z80inst.o | 204 Z80OBJS=z80.o z80inst.o |
185 M68KOBJS+= m68k.o | 205 M68KOBJS+= m68k.o |
186 CFLAGS+= -DNEW_CORE | 206 CFLAGS+= -DNEW_CORE |
187 else | 207 else |
196 endif | 216 endif |
197 endif | 217 endif |
198 endif | 218 endif |
199 AUDIOOBJS=ym2612.o psg.o wave.o flac.o vgm.o event_log.o render_audio.o rf5c164.o | 219 AUDIOOBJS=ym2612.o psg.o wave.o flac.o vgm.o event_log.o render_audio.o rf5c164.o |
200 CONFIGOBJS=config.o tern.o util.o paths.o | 220 CONFIGOBJS=config.o tern.o util.o paths.o |
201 NUKLEAROBJS=$(FONT) nuklear_ui/blastem_nuklear.o nuklear_ui/sfnt.o | 221 NUKLEAROBJS=$(FONT) $(CHOOSER) nuklear_ui/blastem_nuklear.o nuklear_ui/sfnt.o |
202 RENDEROBJS=ppm.o controller_info.o | 222 RENDEROBJS=ppm.o controller_info.o |
203 ifdef USE_FBDEV | 223 ifdef USE_FBDEV |
204 RENDEROBJS+= render_fbdev.o | 224 RENDEROBJS+= render_fbdev.o |
205 else | 225 else |
206 RENDEROBJS+= render_sdl.o | 226 RENDEROBJS+= render_sdl.o |
224 | 244 |
225 ifdef NONUKLEAR | 245 ifdef NONUKLEAR |
226 CFLAGS+= -DDISABLE_NUKLEAR | 246 CFLAGS+= -DDISABLE_NUKLEAR |
227 else | 247 else |
228 MAINOBJS+= $(NUKLEAROBJS) | 248 MAINOBJS+= $(NUKLEAROBJS) |
249 LDFLAGS+=$(EXTRA_NUKLEAR_LDFLAGS) | |
229 endif | 250 endif |
230 | 251 |
231 ifeq ($(CPU),x86_64) | 252 ifeq ($(CPU),x86_64) |
232 CFLAGS+=-DX86_64 -m64 | 253 CFLAGS+=-DX86_64 -m64 |
233 LDFLAGS+=-m64 | 254 LDFLAGS+=-m64 |