@@ -170,7 +170,7 @@ SUPPORT_SRCS += src/supportpsx/adpcm.cc src/supportpsx/binloader.cc src/supportp
170
170
SUPPORT_SRCS += third_party/fmt/src/os.cc third_party/fmt/src/format.cc
171
171
SUPPORT_SRCS += third_party/ucl/src/n2e_99.c third_party/ucl/src/alloc.c
172
172
SUPPORT_SRCS += $(wildcard third_party/iec-60908b/* .c)
173
- OBJECTS := third_party/luajit/src/libluajit.a
173
+ LIBS := third_party/luajit/src/libluajit.a
174
174
175
175
TOOLS = exe2elf exe2iso modconv ps1-packer psyq-obj-parser
176
176
@@ -189,7 +189,7 @@ endif
189
189
endef
190
190
191
191
define CHECK_LIB
192
- ifeq ($(shell echo "int main() {}" | gcc -x c - -l$(1 ) -Wl,--no-as-needed -Wl,--unresolved-symbols=ignore-all -Wl,--no-undefined -o /dev/null >& /dev/null && echo true || echo false),true)
192
+ ifeq ($(shell echo "int main() {}" | gcc -x c - -l$(1 ) -Wl,--no-as-needed -Wl,--unresolved-symbols=ignore-all -Wl,--no-undefined -o /dev/null 1> /dev/null 2> /dev/null && echo true || echo false),true)
193
193
LDFLAGS += -l$(1 )
194
194
else
195
195
CPPFLAGS += $(CPPFLAGS_lib_$(1 ) )
@@ -207,27 +207,32 @@ LDFLAGS_PKGCONFIG := $(shell pkg-config --libs $(PACKAGES))
207
207
CPPFLAGS += $(CPPFLAGS_PKGCONFIG )
208
208
LDFLAGS += $(LDFLAGS_PKGCONFIG )
209
209
210
- OBJECTS += $(patsubst % .c,% .o,$(filter % .c,$(SRCS ) ) )
211
- OBJECTS += $(patsubst % .cc,% .o,$(filter % .cc,$(SRCS ) ) )
212
- OBJECTS += $(patsubst % .cpp,% .o,$(filter % .cpp,$(SRCS ) ) )
213
- OBJECTS += $(patsubst % .mm,% .o,$(filter % .mm,$(SRCS ) ) )
214
- SUPPORT_OBJECTS := $(patsubst % .c,% .o,$(filter % .c,$(SUPPORT_SRCS ) ) )
215
- SUPPORT_OBJECTS += $(patsubst % .cc,% .o,$(filter % .cc,$(SUPPORT_SRCS ) ) )
216
- NONMAIN_OBJECTS := $(filter-out src/main/mainthunk.o,$(OBJECTS ) )
217
- IMGUI_OBJECTS := $(patsubst % .cpp,% .o,$(filter % .cpp,$(IMGUI_SRCS ) ) )
218
- VIXL_OBJECTS := $(patsubst % .cc,% .o,$(filter % .cc,$(VIXL_SRCS ) ) )
210
+ OBJECTS += $(addprefix objs/ $( BUILD ) /, $( patsubst % .c,% .o,$(filter % .c,$(SRCS ) ) ) )
211
+ OBJECTS += $(addprefix objs/ $( BUILD ) /, $( patsubst % .cc,% .o,$(filter % .cc,$(SRCS ) ) ) )
212
+ OBJECTS += $(addprefix objs/ $( BUILD ) /, $( patsubst % .cpp,% .o,$(filter % .cpp,$(SRCS ) ) ) )
213
+ OBJECTS += $(addprefix objs/ $( BUILD ) /, $( patsubst % .mm,% .o,$(filter % .mm,$(SRCS ) ) ) )
214
+ SUPPORT_OBJECTS := $(addprefix objs/ $( BUILD ) /, $( patsubst % .c,% .o,$(filter % .c,$(SUPPORT_SRCS ) ) ) )
215
+ SUPPORT_OBJECTS += $(addprefix objs/ $( BUILD ) /, $( patsubst % .cc,% .o,$(filter % .cc,$(SUPPORT_SRCS ) ) ) )
216
+ NONMAIN_OBJECTS := $(filter-out objs/ $( BUILD ) / src/main/mainthunk.o,$(OBJECTS ) )
217
+ IMGUI_OBJECTS := $(addprefix objs/ $( BUILD ) /, $( patsubst % .cpp,% .o,$(filter % .cpp,$(IMGUI_SRCS ) ) ) )
218
+ VIXL_OBJECTS := $(addprefix objs/ $( BUILD ) /, $( patsubst % .cc,% .o,$(filter % .cc,$(VIXL_SRCS ) ) ) )
219
219
$(IMGUI_OBJECTS ) : EXTRA_CPPFLAGS := $(IMGUI_CPPFLAGS )
220
220
221
221
TESTS_SRC := $(call rwildcard,tests/,* .cc)
222
222
TESTS := $(patsubst % .cc,% ,$(TESTS_SRC ) )
223
223
224
+ DEPS += $(addprefix deps/$(BUILD ) /,$(patsubst % .c,% .dep,$(filter % .c,$(SRCS ) ) ) )
225
+ DEPS += $(addprefix deps/$(BUILD ) /,$(patsubst % .cc,% .dep,$(filter % .cc,$(SRCS ) ) ) )
226
+ DEPS += $(addprefix deps/$(BUILD ) /,$(patsubst % .cpp,% .dep,$(filter % .cpp,$(SRCS ) ) ) )
227
+
224
228
CP ?= cp
225
229
MKDIRP ?= mkdir -p
226
230
227
231
all : check_submodules dep $(TARGET )
228
232
229
233
ifeq ($(HAS_SUBMODULES ) ,true)
230
234
check_submodules :
235
+ @true
231
236
232
237
else
233
238
check_submodules :
@@ -275,39 +280,56 @@ third_party/luajit/src/libluajit.a:
275
280
$(MAKE ) $(MAKEOPTS ) -C third_party/luajit/src amalg CC=$(CC ) BUILDMODE=static CFLAGS=$(LUAJIT_CFLAGS ) LDFLAGS=$(LUAJIT_LDFLAGS ) XCFLAGS=" -DLUAJIT_ENABLE_GC64 -DLUAJIT_ENABLE_LUA52COMPAT" MACOSX_DEPLOYMENT_TARGET=10.15
276
281
endif
277
282
278
- $(TARGET ) : $(OBJECTS )
279
- $(LD ) -o $@ $(OBJECTS ) $(LDFLAGS )
283
+ bins/$(BUILD ) /$(TARGET ) : $(OBJECTS ) $(LIBS )
284
+ @$(MKDIRP ) $(dir $@ )
285
+ $(LD ) -o $@ $(OBJECTS ) $(LIBS ) $(LDFLAGS )
286
+
287
+ $(TARGET ) : bins/$(BUILD ) /$(TARGET )
288
+ $(CP ) $< $@
280
289
281
- % .o : % .c
290
+ objs/$(BUILD ) /% .o : % .c
291
+ @$(MKDIRP ) $(dir $@ )
282
292
$(CC ) -c -o $@ $< $(CPPFLAGS ) $(EXTRA_CPPFLAGS ) $(CFLAGS )
283
293
284
- % .o : % .cc
294
+ objs/$(BUILD ) /% .o : % .cc
295
+ @$(MKDIRP ) $(dir $@ )
285
296
$(CXX ) -c -o $@ $< $(CPPFLAGS ) $(EXTRA_CPPFLAGS ) $(CXXFLAGS )
286
297
287
- % .o : % .cpp
298
+ objs/$(BUILD ) /% .o : % .cpp
299
+ @$(MKDIRP ) $(dir $@ )
288
300
$(CXX ) -c -o $@ $< $(CPPFLAGS ) $(EXTRA_CPPFLAGS ) $(CXXFLAGS )
289
301
290
- % .o : % .mm
302
+ objs/$(BUILD ) /% .o : % .mm
303
+ @$(MKDIRP ) $(dir $@ )
291
304
$(CC ) -c -o $@ $< $(CPPFLAGS ) $(EXTRA_CPPFLAGS ) $(CFLAGS )
292
305
293
- % .dep : third_party/luajit/src/luajit.h % .c
294
- $(CC ) $(CPPFLAGS ) $(EXTRA_CPPFLAGS ) $(CFLAGS ) -M -MT $(addsuffix .o, $(basename $@ ) ) -MF $@ $<
306
+ deps/$(BUILD ) /% .dep : third_party/luajit/src/luajit.h % .c
307
+ @$(MKDIRP ) $(dir $@ )
308
+ $(CC ) $(CPPFLAGS ) $(EXTRA_CPPFLAGS ) $(CFLAGS ) -M -MT $(addprefix objs/$(BUILD ) /,$(addsuffix .o,$(basename $@ ) ) ) -MF $@ $<
309
+
310
+ deps/$(BUILD ) /% .dep : third_party/luajit/src/luajit.h % .cc
311
+ @$(MKDIRP ) $(dir $@ )
312
+ $(CXX ) $(CPPFLAGS ) $(EXTRA_CPPFLAGS ) $(CXXFLAGS ) -M -MT $(addprefix objs/$(BUILD ) /,$(addsuffix .o,$(basename $@ ) ) ) -MF $@ $<
295
313
296
- % .dep : third_party/luajit/src/luajit.h % .cc
297
- $(CXX ) $(CPPFLAGS ) $(EXTRA_CPPFLAGS ) $(CXXFLAGS ) -M -MT $(addsuffix .o, $(basename $@ ) ) -MF $@ $<
314
+ deps/$(BUILD ) /% .dep : third_party/luajit/src/luajit.h % .cpp
315
+ @$(MKDIRP ) $(dir $@ )
316
+ $(CXX ) $(CPPFLAGS ) $(EXTRA_CPPFLAGS ) $(CXXFLAGS ) -M -MT $(addprefix objs/$(BUILD ) /,$(addsuffix .o,$(basename $@ ) ) ) -MF $@ $<
298
317
299
- % .dep : third_party/luajit/src/luajit.h % .cpp
300
- $(CXX ) $(CPPFLAGS ) $(EXTRA_CPPFLAGS ) $(CXXFLAGS ) -M -MT $(addsuffix .o, $(basename $@ ) ) -MF $@ $<
318
+ objs/$(BUILD ) /gtest-all.o : $(wildcard third_party/googletest/googletest/src/* .cc)
319
+ @$(MKDIRP ) $(dir $@ )
320
+ $(CXX ) -O3 -g $(CXXFLAGS ) -Ithird_party/googletest/googletest -Ithird_party/googletest/googletest/include -c third_party/googletest/googletest/src/gtest-all.cc -o objs/$(BUILD ) /gtest-all.o
321
+
322
+ objs/$(BUILD ) /gtest_main.o : third_party/googletest/googletest/src/gtest_main.cc
323
+ @$(MKDIRP ) $(dir $@ )
324
+ $(CXX ) -O3 -g $(CXXFLAGS ) -Ithird_party/googletest/googletest -Ithird_party/googletest/googletest/include -c third_party/googletest/googletest/src/gtest_main.cc -o objs/$(BUILD ) /gtest_main.o
301
325
302
326
clean :
303
- rm -f $(OBJECTS ) $(TARGET ) $( DEPS ) gtest-all.o gtest_main.o
327
+ rm -f $(OBJECTS ) $(TOOLS ) $( TARGET ) bins/ $( BUILD ) / $( TARGET ) $( addprefix bins/ $( BUILD ) /, $( TOOLS ) ) $( DEPS ) objs/ $( BUILD ) / gtest-all.o objs/ $( BUILD ) / gtest_main.o
304
328
$(MAKE ) -C third_party/luajit clean MACOSX_DEPLOYMENT_TARGET=10.15
305
329
306
- gtest-all.o : $(wildcard third_party/googletest/googletest/src/* .cc)
307
- $(CXX ) -O3 -g $(CXXFLAGS ) -Ithird_party/googletest/googletest -Ithird_party/googletest/googletest/include -c third_party/googletest/googletest/src/gtest-all.cc
308
-
309
- gtest_main.o : third_party/googletest/googletest/src/gtest_main.cc
310
- $(CXX ) -O3 -g $(CXXFLAGS ) -Ithird_party/googletest/googletest -Ithird_party/googletest/googletest/include -c third_party/googletest/googletest/src/gtest_main.cc
330
+ cleanall :
331
+ rm -rf bins objs deps $(TOOLS ) $(TARGET )
332
+ $(MAKE ) -C third_party/luajit clean MACOSX_DEPLOYMENT_TARGET=10.15
311
333
312
334
gitclean :
313
335
git clean -f -d -x
@@ -327,39 +349,45 @@ regen-i18n:
327
349
rm pcsx-src-list.txt
328
350
$(foreach l,$(LOCALES ) ,$(call msgmerge,$(l ) ) )
329
351
330
- pcsx-redux-tests : $(foreach t,$(TESTS ) ,$(t ) .o) $(NONMAIN_OBJECTS ) gtest-all.o gtest_main.o
331
- $(LD ) -o pcsx-redux-tests $(NONMAIN_OBJECTS ) gtest-all.o gtest_main.o $(foreach t,$(TESTS ) ,$(t ) .o) -Ithird_party/googletest/googletest/include $(LDFLAGS )
352
+ bins/$(BUILD ) /pcsx-redux-tests : $(foreach t,$(TESTS ) ,$(t ) .o) $(NONMAIN_OBJECTS ) $(LIBS ) objs/$(BUILD ) /gtest-all.o objs/$(BUILD ) /gtest_main.o
353
+ @$(MKDIRP ) $(dir $@ )
354
+ $(LD ) -o bins/$(BUILD ) /pcsx-redux-tests $(NONMAIN_OBJECTS ) $(LIBS ) objs/$(BUILD ) /gtest-all.o objs/$(BUILD ) /gtest_main.o $(foreach t,$(TESTS ) ,$(t ) .o) -Ithird_party/googletest/googletest/include $(LDFLAGS )
355
+
356
+ pcsx-redux-tests : check_submodules bins/$(BUILD ) /pcsx-redux-tests
357
+ $(CP ) bins/$(BUILD ) /pcsx-redux-tests pcsx-redux-tests
332
358
333
359
runtests : pcsx-redux-tests
334
360
./pcsx-redux-tests
335
361
336
362
define TOOLDEF
337
- $(1 ) : $(SUPPORT_OBJECTS ) tools/$(1 ) /$(1 ) .o
338
- $(LD ) -o $(1 ) $(CPPFLAGS ) $(CXXFLAGS ) $(SUPPORT_OBJECTS ) tools/$(1 ) /$(1 ) .o -static -lz
363
+ bins/$(BUILD ) /$(1 ) : $(SUPPORT_OBJECTS ) objs/$(BUILD ) /tools/$(1 ) /$(1 ) .o
364
+ @$(MKDIRP ) $(dir bins/$(BUILD ) /$(1 ) )
365
+ $(LD ) -o bins/$(BUILD ) /$(1 ) $(CPPFLAGS ) $(CXXFLAGS ) $(SUPPORT_OBJECTS ) objs/$(BUILD ) /tools/$(1 ) /$(1 ) .o -static -lz
366
+
367
+ $(1 ) : check_submodules bins/$(BUILD ) /$(1 )
368
+ $(CP ) bins/$(BUILD ) /$(1 ) $(1 )
339
369
340
370
endef
341
371
342
372
$(foreach tool,$(TOOLS),$(eval $(call TOOLDEF,$(tool))))
343
373
344
- tools : $(TOOLS )
374
+ tools : check_submodules dep $(TOOLS )
345
375
346
- .PHONY : all dep clean gitclean regen-i18n runtests openbios install strip appimage tools
376
+ dep : check_submodules $( DEPS )
347
377
348
- DEPS += $(patsubst % .c,% .dep,$(filter % .c,$(SRCS ) ) )
349
- DEPS += $(patsubst % .cc,% .dep,$(filter % .cc,$(SRCS ) ) )
350
- DEPS += $(patsubst % .cpp,% .dep,$(filter % .cpp,$(SRCS ) ) )
351
-
352
- dep : $(DEPS )
378
+ .PHONY : all dep clean gitclean regen-i18n runtests openbios install strip appimage tools $(TOOLS ) $(TARGET )
353
379
354
380
ifneq ($(MAKECMDGOALS ) , regen-i18n)
355
381
ifneq ($(MAKECMDGOALS ) , clean)
382
+ ifneq ($(MAKECMDGOALS ) , cleanall)
356
383
ifneq ($(MAKECMDGOALS ) , gitclean)
357
384
ifeq ($(HAS_SUBMODULES ) , true)
358
385
-include $(DEPS )
359
386
endif
360
387
endif
361
388
endif
362
389
endif
390
+ endif
363
391
364
392
third_party/luajit/src/lua.hpp : third_party/luajit/src/luajit.h
365
393
0 commit comments