CARGO_TARGET_DIR = $(CURDIR)/rust-target
CARGO_HOME = $(CURDIR)/.cargo
RUST_MANIFEST = ../inst/hobbs/Cargo.toml
RUST_EXE = $(CARGO_TARGET_DIR)/release/hobbs
INST_RUST_EXE = ../inst/hobbs/bin/hobbs
CRANFLAGS = -j 2

.PHONY: rust-sampler cleanup

all: cleanup

cleanup: $(SHLIB) rust-sampler
	rm -Rf $(CARGO_HOME) $(CARGO_TARGET_DIR) || true

rust-sampler:
	mkdir -p ../inst/hobbs/bin $(CARGO_HOME)
	PATH="$${PATH}:$${HOME}/.cargo/bin" rustc --version
	CARGO_HOME="$(CARGO_HOME)" CARGO_TARGET_DIR="$(CARGO_TARGET_DIR)" PATH="$${PATH}:$${HOME}/.cargo/bin" cargo build $(CRANFLAGS) --release --locked --bin hobbs --manifest-path=$(RUST_MANIFEST); status=$$?; rm -Rf $(CARGO_HOME); exit $$status
	cp $(RUST_EXE) $(INST_RUST_EXE)
	chmod 755 $(INST_RUST_EXE)
