Using $(CURDIR) to fix the absolute path issue
[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 srpm:
30         @echo $(TARBALL)
31         mkdir -p rpmbuild/{RPMS,SRPMS,BUILD,SOURCES,SPECS}
32         cp $(TARBALL) rpmbuild/SOURCES/vpp-$(VERSION)-$(RELEASE).tar.xz
33         cp vpp.spec rpmbuild/SOURCES
34         sed -i '1s/^/$(PC)define _version $(VERSION)\n/' rpmbuild/SOURCES/vpp-suse.spec
35         sed -i '1s/^/$(PC)define _release $(RELEASE)\n/' rpmbuild/SOURCES/vpp-suse.spec
36         sed -i '/define _topdir/d' rpmbuild/SOURCES/vpp-suse.spec
37         rpmbuild -bs \
38           --define "_topdir rpmbuild" \
39           rpmbuild/SOURCES/vpp-suse.spec
40         mv $$(find rpmbuild/SRPMS -name \*.src.rpm -type f) .
41
42 RPM:
43         @echo $(TARBALL)
44         mkdir -p RPMS SOURCES
45         cp $(TARBALL) SOURCES/vpp-$(VERSION)-$(RELEASE).tar.xz
46         rpmbuild -bb \
47           --define "_topdir $(CURDIR)" \
48           --define "_version $(VERSION)" \
49           --define "_release $(RELEASE)" \
50           vpp-suse.spec
51         mv $$(find RPMS -name \*.rpm -type f) .
52 else
53 srpm:
54         @echo $(TARBALL)
55         mkdir -p rpmbuild/{RPMS,SRPMS,BUILD,SOURCES,SPECS}
56         cp $(TARBALL) rpmbuild/SOURCES/vpp-$(VERSION)-$(RELEASE).tar.xz
57         cp vpp.spec rpmbuild/SOURCES
58         sed -i '1s/^/$(PC)define _version $(VERSION)\n/' rpmbuild/SOURCES/vpp.spec
59         sed -i '1s/^/$(PC)define _release $(RELEASE)\n/' rpmbuild/SOURCES/vpp.spec
60         sed -i '/define _topdir/d' rpmbuild/SOURCES/vpp.spec
61         rpmbuild -bs \
62           --define "_topdir rpmbuild" \
63           rpmbuild/SOURCES/vpp.spec
64         mv $$(find rpmbuild/SRPMS -name \*.src.rpm -type f) .
65
66 RPM:
67         @echo $(TARBALL)
68         mkdir -p RPMS SOURCES
69         cp $(TARBALL) SOURCES/vpp-$(VERSION)-$(RELEASE).tar.xz
70         rpmbuild -bb \
71           --define "_topdir $(PWD)" \
72           --define "_version $(VERSION)" \
73           --define "_release $(RELEASE)" \
74           vpp.spec
75         mv $$(find RPMS -name \*.rpm -type f) .
76 endif