OBJS := obj/libexpr.rlib
DEPS := obj/libvec_map.rlib

RC := rustc
RFLAGS := -O
RLINKS := -L obj

all: derive_test

debug: RFLAGS := -g
debug: derive_test

derive_test: examples/main.rs $(OBJS) $(DEPS) obj
	$(RC) $(RFLAGS) $(RLINKS) $< -o $@

obj/libvec_map.rlib: src/vec_map/src/lib.rs obj
	$(RC) $(RFLAGS) $(RLINKS) $< -o $@

obj/lib%.rlib: src/%.rs obj $(DEPS)
	$(RC) $(RFLAGS) $(RLINKS) $< -o $@

obj:
	mkdir -p obj

clean:
	rm -f derive_test
	rm -fr obj
	cargo clean
	cd src/vec_map && cargo clean