ROOT_DIR := $(dir $(realpath $(lastword $(MAKEFILE_LIST)))) # PHONY means that it doesn't correspond to a file; it always runs the build commands. .PHONY: build-all build-all: build-shared build-static .PHONY: run-all run-all: run-shared run-static .PHONY: build-shared build-shared: cd lib && cargo build --release && cd - cp ./target/release/libruster.so lib/ go build -ldflags="-r $(ROOT_DIR)lib" main_shared.go .PHONY: build-static build-static: cd lib && cargo build --release && cd - cp ./target/release/libruster.a lib/ go build main_static.go .PHONY: run-shared run-shared: RUST_LOG=trace ./main_shared .PHONY: run-static run-static: RUST_LOG=trace ./main_static # This is just for running the Rust lib tests natively via cargo. .PHONY: test-rust-lib test-rust-lib: cd lib && RUST_LOG=trace cargo test -- --nocapture .PHONY: clean clean: rm -rf main_shared main_static lib/libruster.so lib/libruster.a && cargo clean