.POSIX:

# Path to the zkas compiler (or just `zkas` if it's in your $PATH)
ZKAS = ../darkfi/zkas

# Path to cargo
CARGO = cargo

# List of zkas circuits to compile
PROOFS_SRC = $(shell find proof -type f -name '*.zk')
PROOFS_BIN = $(PROOFS_SRC:=.bin)

# Source files
SRC = \
	Cargo.toml \
	$(PROOFS_SRC) \
	$(shell find src -type f -name '*.rs')

all: membership.wasm membership

membership.wasm: $(PROOFS_BIN) $(SRC)
	$(CARGO) build --target=wasm32-unknown-unknown --release --lib
	cp -f target/wasm32-unknown-unknown/release/$@ $@

membership: $(PROOFS_BIN)
	$(CARGO) build --release --features=client --bin membership
	cp -f target/release/$@ $@
	
$(PROOFS_BIN): $(PROOFS_SRC)
	$(ZKAS) $(basename $@) -o $@

clean:
	$(CARGO) clean
	rm -f $(PROOFS_BIN) membership membership.wasm

.PHONY: all clean
