Group the WASM & JS targets so they're built once

https://www.gnu.org/software/make/manual/html_node/Multiple-Targets.html

The previous recipe told Make that each file could be produced by
running wasm-bindgen. The more correct expression is that *both* files
will be produced at the same time.

Now Make knows to only invoke the command one time to get both files if
either is out of date. Previously, multi-job builds (`-j2`) could build
the files twice -- one invocation for each out-of-date file.
This commit is contained in:
2025-10-28 15:04:45 -05:00
parent 7408f056f6
commit 0358935bf6

View File

@@ -18,7 +18,7 @@ out:
# Both the JS and WASM files are generated by the wasm-bindgen call, so both
# get to be on the target half of this recipe.
out/boids.js out/boids_bg.wasm: target/wasm32-unknown-unknown/wasm-release/another-boids-in-rust.wasm | out
out/boids.js out/boids_bg.wasm &: target/wasm32-unknown-unknown/wasm-release/another-boids-in-rust.wasm | out
wasm-bindgen --no-typescript --target web --out-dir ./out/ --out-name boids target/wasm32-unknown-unknown/wasm-release/another-boids-in-rust.wasm
out/index.html: www/index.html