# TODO
VENDORING = yes
OFFLINE_OPTION = --offline

TARGET_DIR = ./rust/target
LIBDIR = $(TARGET_DIR)/release
STATLIB = $(LIBDIR)/liborbweaver.a
PKG_LIBS = -L$(LIBDIR) -lorbweaver
CARGOTMP = ./rust/.cargo/tmp

all: C_clean

$(SHLIB): $(STATLIB)

$(STATLIB):
	if [ "$(VENDORING)" = "yes" ]; then \
	  $(TAR) --extract --xz -f ./rust/vendor.tar.xz -C ./rust && \
		mkdir -p ./rust/.cargo && \
		cp ./config/cargo_vendor_config.toml ./rust/.cargo/config.toml; \
	fi && \
    export CARGO_HOME=$(CARGOTMP); \
    export PATH="$(PATH):$(HOME)/.cargo/bin" && \
    cd ./rust && \
    cargo build --lib --release \
        $(OFFLINE_OPTION) \
        --jobs 1; \
    rm -Rf $(CARGOTMP) && \
    rm -Rf $(LIBDIR)/build; \

C_clean:
	rm -Rf $(SHLIB) $(OBJECTS) ./rust/.cargo $(STATLIB)

clean:
	rm -Rf $(SHLIB) $(OBJECTS) $(STATLIB) ./rust/.cargo ./rust/vendor ./rust/target

.PHONY: all C_clean clean
