btm 2.0.0

Blockchain Time Machine
Documentation
all: pack

BUILD_DIR = target
PACKAGE = btm_package
PACKAGE_TARGET= $(PACKAGE).tar.gz

export CARGO_NET_GIT_FETCH_WITH_CLI = true

release:
	@ cargo build --release --bins --target-dir=$(BUILD_DIR)

release_musl:
	@ cargo build --release --bins --target=x86_64-unknown-linux-musl --target-dir=$(BUILD_DIR)

build:
	@ cargo build --release --bins --target-dir=$(BUILD_DIR)

build_musl:
	@ cargo build --release --bins --target=x86_64-unknown-linux-musl --target-dir=$(BUILD_DIR)

lint:
	cargo fmt
	cargo clippy

test:
	cargo test -- --test-threads=1

fmt:
	cargo fmt

fmtall:
	bash tools/fmt.sh 2>/dev/null

pack:
	if [ "Linux" = `uname -s` ]; then \
		if [ 0 -eq `rustup target list --installed | grep -c 'musl'` ]; \
			then rustup target add x86_64-unknown-linux-musl; \
		fi; \
		$(MAKE) release_musl; \
	else \
		$(MAKE) release; \
	fi
	@ rm -rf $(PACKAGE)
	@ mkdir -p $(PACKAGE)
	@ cp tools/install.sh $(PACKAGE)/
	@ cp tools/btm-daemon.service $(PACKAGE)/
	if [ "Linux" = `uname -s` ]; then \
		cp $(BUILD_DIR)/x86_64-unknown-linux-musl/release/btm $(PACKAGE)/; \
	else \
		cp $(BUILD_DIR)/release/btm $(PACKAGE)/; \
	fi
	cp $(PACKAGE)/btm ~/.cargo/bin/
	@ tar -zcpf $(PACKAGE_TARGET) $(PACKAGE)
	@ printf "\n\033[31;01mbuild path:\033[0m $(BUILD_DIR)\n"
	@ printf "\033[31;01mpackage path:\033[0m $(PACKAGE_TARGET)\n"

update:
	cargo update --verbose

clean:
	cargo clean
	rm -rf $(BUILD_DIR) $(PACKAGE) $(PACKAGE_TARGET)

cleanall: clean
	git clean -fdx