vpp/build-data/platforms.mk
Thomas F Herbert 20a29c7b4d VPP-498: Prepare vpp RPM packaging for use by downstream distros.
Change spec to add new macros to get rid of relative dir reference and
use vpp version. Store version string in .version to store metadata in
dist archive. New script to create dist archive.
Add dist and wipedist targets to Makefile for builds of source RPMs.

Change-Id: I7cf0164f0cb094ec70f3dc323ed7fa2ee82bd902
Signed-off-by: Thomas F Herbert <therbert@redhat.com>
2016-11-04 22:22:53 +00:00

100 lines
3.6 KiB
Makefile

# Copyright (c) 2015 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Pick up per-platform makefile fragments
$(foreach d,$(SOURCE_PATH_BUILD_DATA_DIRS), \
$(eval -include $(d)/platforms/*.mk))
.PHONY: install-deb
install-deb: $(patsubst %,%-find-source,$(ROOT_PACKAGES))
@$(BUILD_ENV) ; \
set -eu$(BUILD_DEBUG) ; \
$(MAKE) -C $(MU_BUILD_ROOT_DIR) \
$(patsubst %,%-install, \
$(ROOT_PACKAGES)) || exit 1; \
\
: generate file manifests ; \
find $(INSTALL_PREFIX)$(ARCH)/*/bin -type f -print \
| sed -e 's:.*:../& /usr/bin:' \
> deb/debian/vpp.install ; \
\
: need symbolic links in the lib pkg ; \
find $(INSTALL_PREFIX)$(ARCH)/*/lib* \( -type f -o -type l \) \
-print | egrep -e '*\.so\.*\.*\.*' \
| grep -v plugins\/ \
| sed -e 's:.*:../& /usr/lib/x86_64-linux-gnu:' \
> deb/debian/vpp-lib.install ; \
\
: dev package ; \
./scripts/find-dev-contents $(INSTALL_PREFIX)$(ARCH) \
deb/debian/vpp-dev.install ; \
\
: plugins package ; \
./scripts/find-plugins-contents $(INSTALL_PREFIX)$(ARCH) \
deb/debian/vpp-plugins.install ; \
\
: python-api package ; \
./scripts/find-python-api-contents $(INSTALL_PREFIX)$(ARCH) \
deb/debian/vpp-python-api.install ; \
\
: dpdk headers ; \
./scripts/find-dpdk-contents $(INSTALL_PREFIX)$(ARCH) \
deb/debian/vpp-dpdk-dev.install ; \
\
: bin package needs startup config ; \
echo ../../vpp/conf/startup.conf /etc/vpp \
>> deb/debian/vpp.install ; \
\
: and sysctl config ; \
echo ../../vpp/conf/80-vpp.conf /etc/sysctl.d \
>> deb/debian/vpp.install ; \
\
: dev package needs a couple of additions ; \
echo ../build-tool-native/vppapigen/vppapigen /usr/bin \
>> deb/debian/vpp-dev.install ; \
echo ../../vppapigen/pyvppapigen.py /usr/bin \
>> deb/debian/vpp-dev.install ; \
echo ../../vpp-api/java/jvpp/gen/jvpp_gen.py /usr/bin \
>> deb/debian/vpp-dev.install ; \
for i in $$(ls ../vpp-api/java/jvpp/gen/jvppgen/*.py); do \
echo ../$${i} /usr/lib/python2.7/dist-packages/jvppgen \
>> deb/debian/vpp-dev.install; \
done; \
\
: generate changelog; \
./scripts/generate-deb-changelog \
\
: Go fabricate the actual Debian packages ; \
( \
cd deb && \
dpkg-buildpackage -us -uc -b \
)
.PHONY: install-rpm
install-rpm: $(patsubst %,%-find-source,$(ROOT_PACKAGES))
@$(BUILD_ENV) ; \
set -eu$(BUILD_DEBUG) ; \
$(MAKE) -C $(MU_BUILD_ROOT_DIR) \
$(patsubst %,%-install, \
$(ROOT_PACKAGES)) || exit 1; \
\
cd rpm ; \
mkdir -p SOURCES ; \
if test -f *.tar.gz ; then mv *.tar.gz SOURCES ; fi ; \
rpmbuild -bb --define "_topdir $$PWD" --define \
"_install_dir $(INSTALL_PREFIX)$(ARCH)" \
--define "_mu_build_root_dir $(MU_BUILD_ROOT_DIR)" \
vpp.spec ; \
mv $$(find RPMS -name \*.rpm -type f) ..