chiark / gitweb /
stamp files to avoid rerunning cargo
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 10 Oct 2020 18:51:35 +0000 (19:51 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 10 Oct 2020 18:51:35 +0000 (19:51 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
.gitignore
Makefile

index 3cd8f27b158313b0a027be77d34f34de4d19ae9d..5518ee022bb9fe11e2df2fbc8874ed746699e432 100644 (file)
@@ -9,3 +9,4 @@ save/lock
 /library/*/*.usvg
 *.tmp
 .tsconfig.*.json
+cargo/*
index 86f65be624ab343ce69283085da385704141da57..8837069ec050a87640d6dd8fa7d6b7cf803f757b 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -13,6 +13,8 @@ default: debug
 #---------- funky macros etc. ----------
 
 cr = $(addprefix --,$(filter-out debug,$1))
+rsrcs = $(shell \
+    find $1 \( -name Cargo.toml -o -name Cargo.lock -o -name \*.rs \) )
 
 #---------- programs and config variables ----------
 
@@ -87,24 +89,38 @@ extra-release: bundled-sources
 
 DR=debug release
 CARGOES=$(foreach t,/ /wasm-,$(addprefix $t,check $(DR)))
+rstamp:=@mkdir -p cargo; touch $@
 
-X := $(shell echo >&2 PHONY $(addprefix cargo, $(CARGOES)))
+$(addprefix cargo/,$(DR)):: cargo/%: $(call rsrcs,. ! -path './wasm/*')
+       $(CARGO) build $(call cr,$*)
+       $(rstamp)
 
-.PHONY: $(addprefix cargo, $(CARGOES))
+cargo/check: $(call $(csrcs,.))
+       $(CARGO) test
+       $(rstamp)
 
-$(addprefix cargo/,$(DR)):: cargo/%:
-       $(CARGO) test $(call cr,$*)
-
-$(addprefix cargo/wasm-,$(DR)):: cargo/wasm-%:
+$(addprefix cargo/wasm-,$(DR)):: cargo/wasm-%: $(call rsrcs, zcoord wasm)
+       : $@ out of date $?
        $(CARGO) -TWASM build -p otter-wasm $(call cr,$*)
+       $(rstamp)
 
-cargo/deploy-build:
+cargo/deploy-build: $(call rsrcs,.)
        $(CARGO) -T$(DEPLOY_ARCH) build $(call cr,$(DEPLOY_RELEASE))
+       $(rstamp)
 
 #---------- wasm ----------
 
-#WASM_ASSETS := $(addprefix otter_wasm,.js _bg.wasm)
-#WASM_OUTPUTS := $(addprefix otter_wasm,.d.ts 
+WASM_ASSETS := $(addprefix otter_wasm,.js _bg.wasm)
+WASM_OUTPUTS := $(addprefix otter_wasm,.d.ts)
+
+$(WASM_ASSETS) $(WASM_OUTPUTS): wasm-pack
+.PHONY: wasm-pack
+wasm-pack: cargo/wasm-release
+
+real/wasm-pack: 
+
+wasm-pack:
+       $(MAKE) real/$@
 
 #---------- bundle-sources ----------