summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-01-09 13:27:16 -0500
committerJonathan Bradley <jcb@pikum.xyz>2025-01-09 13:27:16 -0500
commitb04fefe8ee0086bc1404c06b8351ecb4e942f151 (patch)
treeadbb6fecfc17f781c16e9150a80124936040d8e3 /Makefile
parent5845642965a1eebaec3a1d1126445ecb459688b8 (diff)
deprecate cmake + fixes
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile103
1 files changed, 36 insertions, 67 deletions
diff --git a/Makefile b/Makefile
index cfef1ea..93c95fb 100644
--- a/Makefile
+++ b/Makefile
@@ -12,7 +12,7 @@ define cc-dbg-command
$(CC) -std=c2x -c -o $@ -DDEBUG -g -O0 $(CFLAGS) $(INCS) $<
endef
define cxx-bin-command
- $(CXX) -std=c++23 -c -o $@ -DNDEBUG -O0 $(CXXFLAGS) $(INCS) $<
+ $(CXX) -std=c++23 -c -o $@ -DNDEBUG -O0 $(CXXFLAGS) $(INCS) $<
endef
define cxx-dbg-command
$(CXX) -std=c++23 -c -o $@ -DDEBUG -g -O0 $(CXXFLAGS) $(INCS) $<
@@ -20,11 +20,12 @@ endef
FLG_PKE = -Isub/imgui -Isub/stb -Isub/cgltf -Isub/bullet3/src
FLG_EDT = $(FLG_PKE) -Isrc
+FLG_MPL = $(FLG_PKE) -Isrc
+FLG_RUN = $(FLG_PKE) -Isrc
DIR_OBJ=obj
DIR_BIN=bin
DIR_DBG=dbg
-DIR_SCR=scratch
SRC = \
src/vendor/pkh_include.cpp \
@@ -59,33 +60,6 @@ DST_SHADERS = \
$(DIR_OBJ)/texture.frag.spv \
$(DIR_OBJ)/present.frag.spv \
-# Bullet3Collision/libBullet3Collision.a \
- Bullet3Dynamics/libBullet3Dynamics.a \
- Bullet3Geometry/libBullet3Geometry.a \
- Bullet3OpenCL/libBullet3OpenCL_clew.a \
- Bullet3Serialize/Bullet2FileLoader/libBullet2FileLoader.a \
- BulletInverseDynamics/libBulletInverseDynamics.a \
- BulletSoftBody/libBulletSoftBody.a \
-
-# DST_BULLET = \
- BulletDynamics/libBulletDynamics.so.3.25 \
- BulletCollision/libBulletCollision.so.3.25 \
- LinearMath/libLinearMath.so.3.25 \
- Bullet3Common/libBullet3Common.so.3.25 \
-
-# TMP_BULLET = $(notdir $(DST_BULLET))
-# DST_BULLET_BIN = $(TMP_BULLET:%.so.3.25=$(DIR_BIN)/%.so.3.25)
-# DST_BULLET_DBG = $(TMP_BULLET:%.so.3.25=$(DIR_DBG)/%.so.3.25)
-
-DST_BULLET = \
- BulletDynamics/libBulletDynamics.a \
- BulletCollision/libBulletCollision.a \
- LinearMath/libLinearMath.a \
- Bullet3Common/libBullet3Common.a \
-
-DST_BULLET_BIN = $(TMP_BULLET:%.a=$(DIR_BIN)/src/bullet3/%.a)
-DST_BULLET_DBG = $(TMP_BULLET:%.a=$(DIR_DBG)/src/bullet3/%.a)
-
SRC_C = $(filter %.c,$(SRC))
SRC_CXX = $(filter %.cpp,$(SRC))
OBJ = $(SRC_C:%.c=%.o)
@@ -139,12 +113,8 @@ $(DIR_OBJ)/%.so: sub/imgui/misc/cpp/%.cpp
$(DIR_OBJ)/%.vert.spv: assets/shaders/%.vert
$(GLSLC) $^ -o $@
- cp $@ $(DIR_BIN)/assets/shaders
- cp $@ $(DIR_DBG)/assets/shaders
$(DIR_OBJ)/%.frag.spv: assets/shaders/%.frag
$(GLSLC) $^ -o $@
- cp $@ $(DIR_BIN)/assets/shaders
- cp $@ $(DIR_DBG)/assets/shaders
$(DIR_OBJ)/%.o : src/%.c
$(cc-bin-command) $(FLG_PKE)
@@ -171,6 +141,14 @@ $(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
+ $(cxx-bin-command) $(FLG_MPL)
+$(DIR_OBJ)/%.so : example/%.cpp
+ $(cxx-dbg-command) $(FLG_MPL)
+$(DIR_OBJ)/%.o : runtime/%.cpp
+ $(cxx-bin-command) $(FLG_RUN)
+$(DIR_OBJ)/%.so : runtime/%.cpp
+ $(cxx-dbg-command) $(FLG_RUN)
$(DIR_BIN)/libImgui.a: $(DIR_OBJ)/imgui.o
$(DIR_BIN)/libImgui.a: $(DIR_OBJ)/imgui_demo.o
@@ -194,38 +172,19 @@ $(DIR_DBG)/libImgui.a: $(DIR_OBJ)/imgui_stdlib.so
ar rc $@ $^
ranlib $@
+# -j$$((`nproc`-1))
$(DIR_BIN)/libBullet3.a:
- $(CMAKE) \
- -DCMAKE_C_FLAGS:STRING="" \
- -DCMAKE_CXX_FLAGS:STRING="" \
- -DCMAKE_BUILD_TYPE:STRING=Release \
- -DBUILD_BULLET2_DEMOS:BOOL=0 \
- -DBUILD_CPU_DEMOS:BOOL=0 \
- -DBUILD_UNIT_TESTS:BOOL=0 \
- -DBUILD_OPENGL3_DEMOS:BOOL=0 \
- -DBUILD_EXTRAS:BOOL=0 \
- -DINSTALL_EXTRA_LIBS:BOOL=0 \
- -DINSTALL_LIBS:BOOL=1 \
- -DINSTALL_CMAKE_FILES:BOOL=0 \
- -DPOSITION_INDEPENDENT_CODE:BOOL=0 \
- -Hsub/bullet3 -B$(DIR_BIN)/bullet3 -G "Unix Makefiles"
- $(CMAKE) --build $(DIR_BIN)/bullet3 --target BulletDynamics BulletCollision LinearMath Bullet3Common
- ar rc $@ $(DST_BULLET_BIN)
- # touch $@
-
-
-# -LAH to show all cmake variables
+ (cd sub/bullet3/build3 && ./premake4_linux64 gmake)
+ ${MAKE} no-demos=1 no-extras=1 no-test=1 config=release64 -C sub/bullet3/build3/gmake \
+ BulletDynamics BulletCollision LinearMath Bullet3Common
+ ar r $@ sub/bullet3/build3/gmake/obj/x64/Release/*/*.o
+ ranlib $@
-#
-# ar rc $@ sub/bullet3/build3/gmake/obj/x64/Debug/Bullet3Collision/*.o
-# ar r $@ sub/bullet3/build3/gmake/obj/x64/Debug/Bullet3Common/*.o
-# ar r $@ sub/bullet3/build3/gmake/obj/x64/Debug/BulletCollision/*.o
-# ar r $@ sub/bullet3/build3/gmake/obj/x64/Debug/BulletDynamics/*.o
-# ar r $@ sub/bullet3/build3/gmake/obj/x64/Debug/LinearMath/*.o
+# -j$$((`nproc`-1))
$(DIR_DBG)/libBullet3.a:
(cd sub/bullet3/build3 && ./premake4_linux64 gmake)
- ${MAKE} no-demos=1 no-extras=1 no-test=1 config=debug64 -j$$((`nproc`-1)) -C sub/bullet3/build3/gmake \
- BulletCollision Bullet3Collision BulletDynamics LinearMath Bullet3Common
+ ${MAKE} no-demos=1 no-extras=1 no-test=1 config=debug64 -C sub/bullet3/build3/gmake \
+ BulletDynamics BulletCollision LinearMath Bullet3Common
ar r $@ sub/bullet3/build3/gmake/obj/x64/Debug/*/*.o
ranlib $@
@@ -241,18 +200,28 @@ $(DIR_DBG)/libpke.a:
ar rc $@ $(filter %.so,$^)
ranlib $@
-# $(DST_BULLET_BIN) -L$(PWD)/bin -L$(PWD)/obj
-# $(DIR_BIN)/pke-editor: $(DIR_OBJ)/main.o $(DIR_OBJ)/editor.o
+$(DIR_DBG)/libpke-example.a: $(DIR_OBJ)/example.so
+ ar rc $@ $(filter %.so,$^)
+ ranlib $@
+
+$(DIR_BIN)/pke-editor: $(DIR_BIN)/libpke.a $(DIR_BIN)/libImgui.a $(DIR_BIN)/libBullet3.a
$(DIR_BIN)/pke-editor: $(DIR_OBJ)/main.o $(DIR_OBJ)/editor.o
-$(DIR_BIN)/pke-editor: $(DIR_BIN)/libpke.a
- $(CXX) -v -o $@ -O3 $(CXXFLAGS) $(LDFLAGS) $(FLG_EDT) $^ -Wl,-v
+ $(CXX) -v -std=c++23 $(INCS) $^ $(LDFLAGS) $(CXXFLAGS) -g -O0 -o $@
$(DIR_DBG)/pke-editor: $(DIR_DBG)/libpke.a $(DIR_DBG)/libImgui.a $(DIR_DBG)/libBullet3.a
$(DIR_DBG)/pke-editor: $(DIR_OBJ)/main.so $(DIR_OBJ)/editor.so
@echo $^
- $(CXX) -v -std=c++23 $(INCS) $^ $(LDFLAGS) $(CXXFLAGS) -g -Os $(FLG_EDT) -o $@
+ $(CXX) -v -std=c++23 $(INCS) $^ $(LDFLAGS) $(CXXFLAGS) -g -O0 -o $@
-# pke-dbg:
+$(DIR_BIN)/pke-runtime: $(DIR_BIN)/libpke.a $(DIR_BIN)/libImgui.a $(DIR_BIN)/libBullet3.a
+$(DIR_BIN)/pke-runtime: $(DIR_OBJ)/runtime.o
+ @echo $^
+ $(CXX) -v -std=c++23 $(INCS) $^ $(LDFLAGS) $(CXXFLAGS) -g -O0 -o $@
+
+$(DIR_DBG)/pke-runtime: $(DIR_DBG)/libpke.a $(DIR_DBG)/libImgui.a $(DIR_DBG)/libBullet3.a
+$(DIR_DBG)/pke-runtime: $(DIR_OBJ)/runtime.so
+ @echo $^
+ $(CXX) -v -std=c++23 $(INCS) $^ $(LDFLAGS) $(CXXFLAGS) -g -O0 -o $@
.PHONY: print
print: