diff options
author | Renato Botelho do Couto <renato@netgate.com> | 2017-11-30 15:41:22 -0600 |
---|---|---|
committer | Damjan Marion <dmarion.lists@gmail.com> | 2017-12-04 11:36:28 +0000 |
commit | e266ea3795747910127e189c5d341b93bb778091 (patch) | |
tree | 38f56730e808802e7e6cb2ccc63cc5bec5545885 /extras | |
parent | 37eba0db4262eb5cb63be8911f1af845b845739b (diff) |
Optimize RPM build process
* Remove unused variable OS_VERSION_ID
* Do all RPM building in build-root/rpmbuild
* Add build-root/rpmbuild to .gitignore
* Move redundant code to a target called 'spec'
* Copy spec file to SPECS instead of SOURCES
* Only set %{_topdir} macro when it's undefined, and because of that
remove sed call to delete definition on spec file
* Pass _version and _release using --define parameter instead of using
sed to add them to .spec
* Move rpm files to build-root after build finishes
* Add dist tarball to .gitignore
Change-Id: I230d60b62914056b353f7f8701d14754b0bf7f8c
Signed-off-by: Renato Botelho do Couto <renato@netgate.com>
Diffstat (limited to 'extras')
-rw-r--r-- | extras/rpm/Makefile | 37 | ||||
-rw-r--r-- | extras/rpm/vpp.spec | 2 |
2 files changed, 18 insertions, 21 deletions
diff --git a/extras/rpm/Makefile b/extras/rpm/Makefile index 5d965f95c21..4bbeab55e60 100644 --- a/extras/rpm/Makefile +++ b/extras/rpm/Makefile @@ -13,7 +13,6 @@ ifneq ($(shell uname),Darwin) OS_ID = $(shell grep '^ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g') -OS_VERSION_ID= $(shell grep '^VERSION_ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g') endif TARBALL=$(shell realpath ../../build-root/vpp-latest.tar.xz) @@ -21,38 +20,36 @@ TARBALL=$(shell realpath ../../build-root/vpp-latest.tar.xz) BASENAME=$(shell basename $(TARBALL) | sed -e s/.tar.\*//) VERSION=$(shell echo $(BASENAME) | cut -f2 -d-) RELEASE=$(shell echo $(BASENAME) | cut -f3- -d- | sed -e s/-/_/g) +BR=$(shell realpath $(CURDIR)/../../build-root) +RPMBUILD=$(BR)/rpmbuild PC=% all: RPM ifeq ($(filter opensuse,$(OS_ID)),$(OS_ID)) -TOPDIR=$(CURDIR) SPEC_FILE='vpp-suse.spec' else -TOPDIR=$(PWD) SPEC_FILE='vpp.spec' endif -srpm: +spec: @echo $(TARBALL) - mkdir -p rpmbuild/{RPMS,SRPMS,BUILD,SOURCES,SPECS} - cp $(TARBALL) rpmbuild/SOURCES/vpp-$(VERSION)-$(RELEASE).tar.xz - cp $(SPEC_FILE) rpmbuild/SOURCES - sed -i '1s/^/$(PC)define _version $(VERSION)\n/' rpmbuild/SOURCES/$(SPEC_FILE) - sed -i '1s/^/$(PC)define _release $(RELEASE)\n/' rpmbuild/SOURCES/$(SPEC_FILE) - sed -i '/define _topdir/d' rpmbuild/SOURCES/$(SPEC_FILE) + mkdir -p $(RPMBUILD)/{RPMS,SRPMS,BUILD,SOURCES,SPECS} + cp $(TARBALL) $(RPMBUILD)/SOURCES/vpp-$(VERSION)-$(RELEASE).tar.xz + cp $(SPEC_FILE) $(RPMBUILD)/SPECS + +srpm: spec rpmbuild -bs \ - --define "_topdir rpmbuild" \ - rpmbuild/SOURCES/$(SPEC_FILE) - mv $$(find rpmbuild/SRPMS -name \*.src.rpm -type f) . + --define "_topdir $(RPMBUILD)" \ + --define "_version $(VERSION)" \ + --define "_release $(RELEASE)" \ + $(RPMBUILD)/SPECS/$(SPEC_FILE) + mv $$(find $(RPMBUILD)/SRPMS -name \*.src.rpm -type f) $(BR) -RPM: - @echo $(TARBALL) - mkdir -p RPMS SOURCES - cp $(TARBALL) SOURCES/vpp-$(VERSION)-$(RELEASE).tar.xz +RPM: spec rpmbuild -bb \ - --define "_topdir $(TOPDIR)" \ + --define "_topdir $(RPMBUILD)" \ --define "_version $(VERSION)" \ --define "_release $(RELEASE)" \ - $(SPEC_FILE) - mv $$(find RPMS -name \*.rpm -type f) . + $(RPMBUILD)/SPECS/$(SPEC_FILE) + mv $$(find $(RPMBUILD)/RPMS -name \*.rpm -type f) $(BR) diff --git a/extras/rpm/vpp.spec b/extras/rpm/vpp.spec index b200df7ee82..6bdecb4de43 100644 --- a/extras/rpm/vpp.spec +++ b/extras/rpm/vpp.spec @@ -1,7 +1,7 @@ %bcond_without aesni +%{!?_topdir:%define _topdir %(pwd)} %define _vpp_build_dir build-tool-native %define _unitdir /lib/systemd/system -%define _topdir %(pwd) %define _builddir %{_topdir} %define _tmp_build_dir %{name}-%{_version}.0 %define _mu_build_dir %{_topdir}/%{_tmp_build_dir}/build-root |