5d965f95c21fea30bcd8ad4bbb1d514dcdf098ff
[vpp.git] / extras / rpm / Makefile
1 # Copyright (c) 2017 Cisco and/or its affiliates.
2 # Licensed under the Apache License, Version 2.0 (the "License");
3 # you may not use this file except in compliance with the License.
4 # You may obtain a copy of the License at:
5 #
6 #     http://www.apache.org/licenses/LICENSE-2.0
7 #
8 # Unless required by applicable law or agreed to in writing, software
9 # distributed under the License is distributed on an "AS IS" BASIS,
10 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 # See the License for the specific language governing permissions and
12 # limitations under the License.
13
14 ifneq ($(shell uname),Darwin)
15 OS_ID        = $(shell grep '^ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g')
16 OS_VERSION_ID= $(shell grep '^VERSION_ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g')
17 endif
18
19 TARBALL=$(shell realpath ../../build-root/vpp-latest.tar.xz)
20
21 BASENAME=$(shell basename $(TARBALL) | sed -e s/.tar.\*//)
22 VERSION=$(shell echo $(BASENAME) | cut -f2 -d-)
23 RELEASE=$(shell echo $(BASENAME) | cut -f3- -d- | sed -e s/-/_/g)
24 PC=%
25
26 all: RPM
27
28 ifeq ($(filter opensuse,$(OS_ID)),$(OS_ID))
29 TOPDIR=$(CURDIR)
30 SPEC_FILE='vpp-suse.spec'
31 else
32 TOPDIR=$(PWD)
33 SPEC_FILE='vpp.spec'
34 endif
35
36 srpm:
37         @echo $(TARBALL)
38         mkdir -p rpmbuild/{RPMS,SRPMS,BUILD,SOURCES,SPECS}
39         cp $(TARBALL) rpmbuild/SOURCES/vpp-$(VERSION)-$(RELEASE).tar.xz
40         cp $(SPEC_FILE) rpmbuild/SOURCES
41         sed -i '1s/^/$(PC)define _version $(VERSION)\n/' rpmbuild/SOURCES/$(SPEC_FILE)
42         sed -i '1s/^/$(PC)define _release $(RELEASE)\n/' rpmbuild/SOURCES/$(SPEC_FILE)
43         sed -i '/define _topdir/d' rpmbuild/SOURCES/$(SPEC_FILE)
44         rpmbuild -bs \
45           --define "_topdir rpmbuild" \
46           rpmbuild/SOURCES/$(SPEC_FILE)
47         mv $$(find rpmbuild/SRPMS -name \*.src.rpm -type f) .
48
49 RPM:
50         @echo $(TARBALL)
51         mkdir -p RPMS SOURCES
52         cp $(TARBALL) SOURCES/vpp-$(VERSION)-$(RELEASE).tar.xz
53         rpmbuild -bb \
54           --define "_topdir $(TOPDIR)" \
55           --define "_version $(VERSION)" \
56           --define "_release $(RELEASE)" \
57           $(SPEC_FILE)
58         mv $$(find RPMS -name \*.rpm -type f) .