summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile180
1 files changed, 96 insertions, 84 deletions
diff --git a/Makefile b/Makefile
index f7b4542..f730467 100644
--- a/Makefile
+++ b/Makefile
@@ -22,43 +22,12 @@ FLG_PKE = -Isub/imgui -Isub/stb -Isub/cgltf -Isub/bullet3/src
FLG_EDT = $(FLG_PKE) -Isrc -I/home/pikum/build/msdfgen -I/home/pikum/build/msdf-atlas-gen
FLG_MPL = $(FLG_PKE) -Isrc
FLG_RUN = $(FLG_PKE) -Isrc
+FLG_TST = $(FLG_PKE) -Isrc
DIR_OBJ=obj
DIR_BIN=bin
DIR_DBG=dbg
-SRC = \
- src/vendor-pkh-include.cpp \
- src/arg-handler.cpp \
- src/camera.cpp \
- src/ecs.cpp \
- src/entities.cpp \
- src/event.cpp \
- src/font.cpp \
- src/game.cpp \
- src/game-settings.cpp \
- src/helpers.cpp \
- src/level-types.cpp \
- src/level.cpp \
- src/math-helpers.cpp \
- src/dynamic-array.cpp \
- src/asset-manager.cpp \
- src/physics.cpp \
- src/player-input.cpp \
- src/plugins.cpp \
- src/project.cpp \
- src/project-settings.cpp \
- src/static-cube.cpp \
- src/static-plane.cpp \
- src/static-ui.cpp \
- src/thread-pool.cpp \
- src/vendor-cgltf-include.cpp \
- src/vendor-stb-image-include.c \
- src/vendor-tinyfiledialogs.c \
- src/window.cpp \
- tests/pke-test.c \
- tests/pke-test-dummy.c \
-
DST_SHADERS = \
$(DIR_OBJ)/shaders/vertex.vert.spv \
$(DIR_OBJ)/shaders/present.vert.spv \
@@ -69,20 +38,8 @@ DST_SHADERS = \
$(DIR_OBJ)/shaders/ui-base.vert.spv \
$(DIR_OBJ)/shaders/ui-base.frag.spv \
-SRC_C = $(filter %.c,$(SRC))
-SRC_CXX = $(filter %.cpp,$(SRC))
-OBJ = $(SRC_C:%.c=%.o)
-SOBJ = $(SRC_C:%.c=%.so)
-CXXOBJ = $(SRC_CXX:%.cpp=%.o)
-CXXSOBJ = $(SRC_CXX:%.cpp=%.so)
-TMP_OUT_OBJ = $(notdir $(OBJ))
-TMP_OUT_SOBJ = $(notdir $(SOBJ))
-TMP_OUT_CXXOBJ = $(notdir $(CXXOBJ))
-TMP_OUT_CXXSOBJ = $(notdir $(CXXSOBJ))
-OUT_OBJ = $(TMP_OUT_OBJ:%.o=$(DIR_OBJ)/%.o)
-OUT_SOBJ = $(TMP_OUT_SOBJ:%.so=$(DIR_OBJ)/%.so)
-OUT_CXXOBJ = $(TMP_OUT_CXXOBJ:%.o=$(DIR_OBJ)/%.o)
-OUT_CXXSOBJ = $(TMP_OUT_CXXSOBJ:%.so=$(DIR_OBJ)/%.so)
+MAINS_OBJ = obj/editor-main.o obj/pke-runtime.o obj/test-pke.o
+MAINS_SOBJ = $(MAINS_OBJ:%.o=%.so)
.PHONY: default
default: options $(DIR_BIN)/pke-editor $(DIR_BIN)/libpke-example.a $(DIR_BIN)/pke-runtime ;
@@ -110,20 +67,22 @@ config.h:
%.h: ;
-$(SRC_C): config.h config.mk
-$(SRC_CXX): config.h config.mk
+%.hpp: ;
+
+$(DIR_OBJ)/%.o : config.h config.mk
+$(DIR_OBJ)/%.so : config.h config.mk
-$(DIR_OBJ)/%.o: sub/imgui/%.cpp
+$(DIR_OBJ)/%.o : sub/imgui/%.cpp
$(cxx-bin-command) -Isub/imgui
-$(DIR_OBJ)/%.so: sub/imgui/%.cpp
+$(DIR_OBJ)/%.so : sub/imgui/%.cpp
$(cxx-dbg-command) -Isub/imgui
-$(DIR_OBJ)/%.o: sub/imgui/backends/%.cpp
+$(DIR_OBJ)/%.o : sub/imgui/backends/%.cpp
$(cxx-bin-command) -Isub/imgui
-$(DIR_OBJ)/%.so: sub/imgui/backends/%.cpp
+$(DIR_OBJ)/%.so : sub/imgui/backends/%.cpp
$(cxx-dbg-command) -Isub/imgui
-$(DIR_OBJ)/%.o: sub/imgui/misc/cpp/%.cpp
+$(DIR_OBJ)/%.o : sub/imgui/misc/cpp/%.cpp
$(cxx-bin-command) -Isub/imgui
-$(DIR_OBJ)/%.so: sub/imgui/misc/cpp/%.cpp
+$(DIR_OBJ)/%.so : sub/imgui/misc/cpp/%.cpp
$(cxx-dbg-command) -Isub/imgui
$(DIR_OBJ)/shaders/%.vert.spv: assets/shaders/%.vert
@@ -131,39 +90,39 @@ $(DIR_OBJ)/shaders/%.vert.spv: assets/shaders/%.vert
$(DIR_OBJ)/shaders/%.frag.spv: assets/shaders/%.frag
$(GLSLC) $^ -o $@
-$(DIR_OBJ)/%.o : src/%.c
+$(DIR_OBJ)/%.o : src/%.c
$(cc-bin-command) $(FLG_PKE)
$(DIR_OBJ)/%.so : src/%.c
$(cc-dbg-command) $(FLG_PKE)
-$(DIR_OBJ)/%.o : src/vendor/tinyfiledialogs/%.c
+$(DIR_OBJ)/%.o : src/vendor/tinyfiledialogs/%.c
$(cc-bin-command) $(FLG_PKE)
$(DIR_OBJ)/%.so : src/vendor/tinyfiledialogs/%.c
$(cc-dbg-command) $(FLG_PKE)
+$(DIR_OBJ)/%.o : tests/%.c
+ $(cc-bin-command) $(FLG_TST)
+$(DIR_OBJ)/%.so : tests/%.c
+ $(cc-dbg-command) $(FLG_TST)
-$(DIR_OBJ)/%.o : src/%.cpp
+$(DIR_OBJ)/%.o : src/%.cpp
$(cxx-bin-command) $(FLG_PKE)
$(DIR_OBJ)/%.so : src/%.cpp
$(cxx-dbg-command) $(FLG_PKE)
-$(DIR_OBJ)/%.o : tests/%.c
- $(cc-bin-command) $(FLG_PKE)
-$(DIR_OBJ)/%.so : tests/%.c
- $(cc-dbg-command) $(FLG_PKE)
-$(DIR_OBJ)/%.o : tests/%.cpp
- $(cxx-bin-command) $(FLG_PKE)
-$(DIR_OBJ)/%.so : tests/%.cpp
- $(cxx-dbg-command) $(FLG_PKE)
-$(DIR_OBJ)/%.o : editor/%.cpp
+$(DIR_OBJ)/%.o : editor/%.cpp
$(cxx-bin-command) $(FLG_EDT)
$(DIR_OBJ)/%.so : editor/%.cpp
$(cxx-dbg-command) $(FLG_EDT)
-$(DIR_OBJ)/%.o : example/%.cpp
+$(DIR_OBJ)/%.o : example/%.cpp
$(cxx-bin-command) $(FLG_MPL)
$(DIR_OBJ)/%.so : example/%.cpp
$(cxx-dbg-command) $(FLG_MPL)
-$(DIR_OBJ)/%.o : runtime/%.cpp
+$(DIR_OBJ)/%.o : runtime/%.cpp
$(cxx-bin-command) $(FLG_RUN)
$(DIR_OBJ)/%.so : runtime/%.cpp
$(cxx-dbg-command) $(FLG_RUN)
+$(DIR_OBJ)/%.o : tests/%.cpp
+ $(cxx-bin-command) $(FLG_TST)
+$(DIR_OBJ)/%.so : tests/%.cpp
+ $(cxx-dbg-command) $(FLG_TST)
$(DIR_BIN)/libImgui.a: $(DIR_OBJ)/imgui.o
$(DIR_BIN)/libImgui.a: $(DIR_OBJ)/imgui_demo.o
@@ -204,13 +163,67 @@ $(DIR_DBG)/libBullet3.a:
ranlib $@
$(DIR_BIN)/libpke.a: $(DST_SHADERS)
-$(DIR_BIN)/libpke.a: $(OUT_OBJ) $(OUT_CXXOBJ)
+$(DIR_BIN)/libpke.a: $(DIR_OBJ)/arg-handler.o
+$(DIR_BIN)/libpke.a: $(DIR_OBJ)/asset-manager.o
+$(DIR_BIN)/libpke.a: $(DIR_OBJ)/camera.o
+$(DIR_BIN)/libpke.a: $(DIR_OBJ)/dynamic-array.o
+$(DIR_BIN)/libpke.a: $(DIR_OBJ)/ecs.o
+$(DIR_BIN)/libpke.a: $(DIR_OBJ)/entities.o
+$(DIR_BIN)/libpke.a: $(DIR_OBJ)/event.o
+$(DIR_BIN)/libpke.a: $(DIR_OBJ)/font.o
+$(DIR_BIN)/libpke.a: $(DIR_OBJ)/game-settings.o
+$(DIR_BIN)/libpke.a: $(DIR_OBJ)/game.o
+$(DIR_BIN)/libpke.a: $(DIR_OBJ)/helpers.o
+$(DIR_BIN)/libpke.a: $(DIR_OBJ)/level-types.o
+$(DIR_BIN)/libpke.a: $(DIR_OBJ)/level.o
+$(DIR_BIN)/libpke.a: $(DIR_OBJ)/math-helpers.o
+$(DIR_BIN)/libpke.a: $(DIR_OBJ)/physics.o
+$(DIR_BIN)/libpke.a: $(DIR_OBJ)/player-input.o
+$(DIR_BIN)/libpke.a: $(DIR_OBJ)/plugins.o
+$(DIR_BIN)/libpke.a: $(DIR_OBJ)/project-settings.o
+$(DIR_BIN)/libpke.a: $(DIR_OBJ)/project.o
+$(DIR_BIN)/libpke.a: $(DIR_OBJ)/static-cube.o
+$(DIR_BIN)/libpke.a: $(DIR_OBJ)/static-plane.o
+$(DIR_BIN)/libpke.a: $(DIR_OBJ)/static-ui.o
+$(DIR_BIN)/libpke.a: $(DIR_OBJ)/thread-pool.o
+$(DIR_BIN)/libpke.a: $(DIR_OBJ)/vendor-cgltf-include.o
+$(DIR_BIN)/libpke.a: $(DIR_OBJ)/vendor-pkh-include.o
+$(DIR_BIN)/libpke.a: $(DIR_OBJ)/vendor-stb-image-include.o
+$(DIR_BIN)/libpke.a: $(DIR_OBJ)/vendor-tinyfiledialogs.o
+$(DIR_BIN)/libpke.a: $(DIR_OBJ)/window.o
$(DIR_BIN)/libpke.a:
ar rc $@ $(filter %.o,$^)
ranlib $@
$(DIR_DBG)/libpke.a: $(DST_SHADERS)
-$(DIR_DBG)/libpke.a: $(OUT_SOBJ) $(OUT_CXXSOBJ)
+$(DIR_DBG)/libpke.a: $(DIR_OBJ)/arg-handler.so
+$(DIR_DBG)/libpke.a: $(DIR_OBJ)/asset-manager.so
+$(DIR_DBG)/libpke.a: $(DIR_OBJ)/camera.so
+$(DIR_DBG)/libpke.a: $(DIR_OBJ)/dynamic-array.so
+$(DIR_DBG)/libpke.a: $(DIR_OBJ)/ecs.so
+$(DIR_DBG)/libpke.a: $(DIR_OBJ)/entities.so
+$(DIR_DBG)/libpke.a: $(DIR_OBJ)/event.so
+$(DIR_DBG)/libpke.a: $(DIR_OBJ)/font.so
+$(DIR_DBG)/libpke.a: $(DIR_OBJ)/game-settings.so
+$(DIR_DBG)/libpke.a: $(DIR_OBJ)/game.so
+$(DIR_DBG)/libpke.a: $(DIR_OBJ)/helpers.so
+$(DIR_DBG)/libpke.a: $(DIR_OBJ)/level-types.so
+$(DIR_DBG)/libpke.a: $(DIR_OBJ)/level.so
+$(DIR_DBG)/libpke.a: $(DIR_OBJ)/math-helpers.so
+$(DIR_DBG)/libpke.a: $(DIR_OBJ)/physics.so
+$(DIR_DBG)/libpke.a: $(DIR_OBJ)/player-input.so
+$(DIR_DBG)/libpke.a: $(DIR_OBJ)/plugins.so
+$(DIR_DBG)/libpke.a: $(DIR_OBJ)/project-settings.so
+$(DIR_DBG)/libpke.a: $(DIR_OBJ)/project.so
+$(DIR_DBG)/libpke.a: $(DIR_OBJ)/static-cube.so
+$(DIR_DBG)/libpke.a: $(DIR_OBJ)/static-plane.so
+$(DIR_DBG)/libpke.a: $(DIR_OBJ)/static-ui.so
+$(DIR_DBG)/libpke.a: $(DIR_OBJ)/thread-pool.so
+$(DIR_DBG)/libpke.a: $(DIR_OBJ)/vendor-cgltf-include.so
+$(DIR_DBG)/libpke.a: $(DIR_OBJ)/vendor-pkh-include.so
+$(DIR_DBG)/libpke.a: $(DIR_OBJ)/vendor-stb-image-include.so
+$(DIR_DBG)/libpke.a: $(DIR_OBJ)/vendor-tinyfiledialogs.so
+$(DIR_DBG)/libpke.a: $(DIR_OBJ)/window.so
$(DIR_DBG)/libpke.a:
ar rc $@ $(filter %.so,$^)
ranlib $@
@@ -224,12 +237,12 @@ $(DIR_DBG)/libpke-example.a: $(DIR_OBJ)/example.so
ranlib $@
$(DIR_BIN)/libpke-test.a: $(DIR_OBJ)/pke-test-dummy.o
- ar rc $@ $(filter %.o,$^)
- ranlib $@
+$(DIR_BIN)/libpke-test.a: $(DIR_OBJ)/pke-test-static-ui.o
+ ar rcs $@ $(filter %.o,$^)
$(DIR_DBG)/libpke-test.a: $(DIR_OBJ)/pke-test-dummy.so
- ar rc $@ $(filter %.so,$^)
- ranlib $@
+$(DIR_DBG)/libpke-test.a: $(DIR_OBJ)/pke-test-static-ui.so
+ ar rcs $@ $(filter %.so,$^)
$(DIR_BIN)/pke-editor: $(DIR_BIN)/libpke.a $(DIR_BIN)/libImgui.a $(DIR_BIN)/libBullet3.a
$(DIR_BIN)/pke-editor: $(DIR_OBJ)/editor-main.o $(DIR_OBJ)/editor.o
@@ -250,22 +263,21 @@ $(DIR_DBG)/pke-runtime: $(DIR_OBJ)/runtime.so
@echo $^
$(CXX) -v -std=c++23 $(INCS) $^ $(LDFLAGS) $(CXXFLAGS) -g -O0 -o $@
-$(DIR_BIN)/test-pke: $(DIR_BIN)/libpke.a $(DIR_BIN)/libImgui.a $(DIR_BIN)/libBullet3.a
-$(DIR_DBG)/test-pke: $(DIR_BIN)/libpke-test.a
-$(DIR_BIN)/test-pke: $(DIR_OBJ)/pke-test.o
-$(DIR_BIN)/test-pke:
+$(DIR_BIN)/pke-test: $(DIR_BIN)/libpke-test.a $(DIR_BIN)/libpke.a $(DIR_BIN)/libImgui.a $(DIR_BIN)/libBullet3.a
+$(DIR_BIN)/pke-test: $(DIR_OBJ)/pke-test.o
@echo $^
- $(CC) -std=c2x -v $(INCS) $^ $(LDFLAGS) $(CXXFLAGS) -g -O0 -o $@
+ $(CXX) -v -std=c++23 $(INCS) $^ $(LDFLAGS) $(CXXFLAGS) -g -O0 -o $@
-$(DIR_DBG)/test-pke: $(DIR_DBG)/libpke.a $(DIR_DBG)/libImgui.a $(DIR_DBG)/libBullet3.a
-$(DIR_DBG)/test-pke: $(DIR_DBG)/libpke-test.a
-$(DIR_DBG)/test-pke: $(DIR_OBJ)/pke-test.so
+$(DIR_DBG)/pke-test: $(DIR_DBG)/libpke-test.a $(DIR_DBG)/libpke.a $(DIR_DBG)/libImgui.a $(DIR_DBG)/libBullet3.a
+$(DIR_DBG)/pke-test: $(DIR_OBJ)/pke-test.so
@echo $^
- $(CC) -std=c2x -v $(INCS) $^ $(LDFLAGS) $(CXXFLAGS) -g -O0 -o $@
+ $(CXX) -v -std=c++23 $(INCS) $^ $(LDFLAGS) $(CXXFLAGS) -g -O0 -o $@
.PHONY: print
print:
- @echo $(DST_SHADERS)
+ @echo $(OUT_OBJ)
+ @echo $(MAINS_OBJ)
+ @echo $(MAINS_SOBJ)
.PHONY: clean
clean: