NAME := sshca-cli VERSION := $(shell sed -nr '/^version =/s/version = "(.*)"/\1/p' Cargo.toml) RELEASE := $(shell rpm --eval "$$(sed -nr '/^Release:/s/Release:\s*(.*)/\1/p' sshca-cli.spec)") ARCH := $(shell uname -m) MOCK_CONFIG = fedora-$(shell rpm --eval %fedora)-$(ARCH) debug: target/debug/$(NAME) release: target/release/$(NAME) target/debug/$(NAME): $(find src) $(wildcard Cargo.*) cargo build target/release/$(NAME): $(find src) $(wildcard Cargo.*) cargo build --release rpm: $(NAME)-$(VERSION)-$(RELEASE).$(ARCH).rpm $(NAME)-$(VERSION)-$(RELEASE).$(ARCH).rpm: \ $(NAME)-$(VERSION)-$(RELEASE).src.rpm mkdir -p rpmbuild rpmbuild --rebuild \ -D "_topdir ${PWD}/rpmbuild" \ $< mv rpmbuild/RPMS/$(ARCH)/*.rpm . rm -rf rpmbuild srpm: $(NAME)-$(VERSION)-$(RELEASE).src.rpm $(NAME)-$(VERSION)-$(RELEASE).src.rpm: \ $(NAME).spec \ $(NAME)-$(VERSION).tar.xz \ $(NAME)-$(VERSION)-vendor.tar.xz rpmbuild -bs \ -D "_topdir ${PWD}" \ -D '_builddir %{_topdir}' \ -D '_buildrootdir %{_topdir}' \ -D '_rpmdir %{_topdir}' \ -D '_sourcedir %{_topdir}' \ -D '_specdir %{_topdir}' \ -D '_srcrpmdir %{_topdir}' \ $< $(NAME)-$(VERSION).tar.xz: \ $(shell find src -type f) \ Cargo.toml \ Cargo.lock \ $(wildcard LICENSE-*.txt) tar -czf $@ \ --transform 's/^/$(NAME)-$(VERSION)\//' \ src \ Cargo.lock \ Cargo.toml \ LICENSE-*.txt $(NAME)-$(VERSION)-vendor.tar.xz: Cargo.lock cargo vendor tar -czf $@ vendor mockbuild: $(NAME)-$(VERSION)-$(RELEASE).src.rpm mock -r $(MOCK_CONFIG) --resultdir $(PWD) $< clean: rm -f $(NAME)*-$(VERSION)-$(RELEASE).*.rpm rm -f $(NAME)-$(VERSION).tar.xz rm -f $(NAME)-$(VERSION)-vendor.tar.xz rm -f build.log hw_info.log installed_pkgs.log root.log state.log fullclean: clean rm -rf target .PHONY: \ clean \ debug \ mockbuild \ release \ rpm \ srpm