sshca-cli/Makefile

80 lines
1.8 KiB
Makefile

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