80 lines
1.8 KiB
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
|