]> git.seodisparate.com - jumpartifact.com_demo_0/commitdiff
wasm_build/Makefile: build objects seperately
authorStephen Seo <seo.disparate@gmail.com>
Fri, 18 Aug 2023 06:13:47 +0000 (15:13 +0900)
committerStephen Seo <seo.disparate@gmail.com>
Fri, 18 Aug 2023 06:13:47 +0000 (15:13 +0900)
wasm_build/.gitignore
wasm_build/Makefile

index 3a3e077f1b5d17231ee6c6d3a7ae17a3dd89c60b..913a1190c9f241d5294e6c6d09a3bc18c5b3cec6 100644 (file)
@@ -2,3 +2,4 @@
 /jumpartifact.com_demo_0.js
 /jumpartifact.com_demo_0.wasm
 /jumpartifact.com_demo_0.data
+/objdir/
index 261aeec9c6866fc9c6af7e423afd66a3b9b86213..df315f1d474f750c1722b4bcbb918ea5b9ad4ec0 100644 (file)
@@ -4,6 +4,8 @@ else
        OTHER_FLAGS = -Og
 endif
 
+OBJDIR = objdir
+
 SOURCES = \
                ../src/main.cc \
                ../src/ems.cc \
@@ -24,11 +26,13 @@ HEADERS = \
                ../src/3d_helpers.h \
                ../src/walker.h
 
+OBJECTS = $(addprefix ${OBJDIR}/,$(subst ..,PREVDIR,$(subst .cc,.cc.o,${SOURCES})))
+
 CXX = source ${HOME}/git/emsdk/emsdk_env.sh && em++
 
 all: | format jumpartifact.com_demo_0.html
 
-jumpartifact.com_demo_0.html: ${SOURCES} ${HEADERS}
+jumpartifact.com_demo_0.html: ${OBJECTS} ${HEADERS}
        ${CXX} -std=c++20 -o jumpartifact.com_demo_0.html \
                -s USE_GLFW=3 -I../wasm_include -L../wasm_lib -lraylib \
                --shell-file custom_shell.html \
@@ -36,7 +40,7 @@ jumpartifact.com_demo_0.html: ${SOURCES} ${HEADERS}
                -sEXPORTED_RUNTIME_METHODS=ccall \
                --preload-file ../res \
                ${OTHER_FLAGS} \
-               ${SOURCES}
+               ${OBJECTS}
 
 .PHONY: clean format
 
@@ -45,6 +49,13 @@ clean:
        rm -f jumpartifact.com_demo_0.js
        rm -f jumpartifact.com_demo_0.wasm
        rm -f jumpartifact.com_demo_0.data
+       rm -rf "${OBJDIR}"
 
 format:
        clang-format -i --style=google ${SOURCES} ${HEADERS}
+
+.SECONDEXPANSION:
+
+${OBJDIR}/%.cc.o: $$(subst PREVDIR,..,%.cc) ${HEADERS}
+       @mkdir -p "${OBJDIR}/$(dir $(subst ..,PREVDIR,$<))"
+       ${CXX} -std=c++20 -I../wasm_include -c ${OTHER_FLAGS} -o $@ $<