/build-root/vapi_test/
/build-root/vom_test/
/build-config.mk
-/dpdk/*.tar.gz
-/dpdk/*.tar.xz
-/dpdk/vpp-dpdk*.deb
-/dpdk/vpp-dpdk*.changes
+/build/external/*.tar.gz
+/build/external/*.tar.xz
+/build/external/vpp-*.deb
+/build/external/vpp-*.changes
/path_setup
/tools/
# start autotools ignore
.PHONY: test test-debug retest retest-debug test-doc test-wipe-doc test-help test-wipe
.PHONY: test-cov test-wipe-cov
+define banner
+ @echo "========================================================================"
+ @echo " $(1)"
+ @echo "========================================================================"
+ @echo " "
+endef
+
help:
@echo "Make Targets:"
@echo " install-dep - install software dependencies"
@echo " run-vat - run vpp-api-test tool"
@echo " pkg-deb - build DEB packages"
@echo " pkg-rpm - build RPM packages"
- @echo " dpdk-install-dev - install DPDK development packages"
+ @echo " install-ext-deps - install external development dependencies"
@echo " ctags - (re)generate ctags database"
@echo " gtags - (re)generate gtags database"
@echo " cscope - (re)generate cscope database"
make -C extras/rpm srpm
dpdk-install-dev:
- make -C dpdk install-$(PKG)
+ $(call banner,"This command is deprecated. Please use 'make install-ext-libs'")
+ make -C build/external install-$(PKG)
+
+install-ext-deps:
+ make -C build/external install-$(PKG)
ctags: ctags.files
@ctags --totals --tag-relative -L $<
wipe-doxygen:
$(call make-doxy)
-define banner
- @echo "========================================================================"
- @echo " $(1)"
- @echo "========================================================================"
- @echo " "
-endef
-
-verify: install-dep $(BR)/.deps.ok dpdk-install-dev
+verify: install-dep $(BR)/.deps.ok install-ext-deps
$(call banner,"Building for PLATFORM=vpp using gcc")
@make -C build-root PLATFORM=vpp TAG=vpp wipe-all install-packages
$(call banner,"Building sample-plugin")
--- /dev/null
+# 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.
# See the License for the specific language governing permissions and
# limitations under the License.
+external_source = build
+
ifneq (,$(findstring debug,$(TAG)))
DPDK_DEBUG=y
else
DPDK_MAKE_ARGS += DPDK_MAKE_EXTRA_ARGS="$(DPDK_MAKE_EXTRA_ARGS)"
endif
-dpdk_configure = echo
+external_configure = echo
-dpdk_make_args = $(DPDK_MAKE_ARGS) ebuild-build
+external_make_args = $(DPDK_MAKE_ARGS) -C external ebuild-build
-dpdk_install = make $(DPDK_MAKE_ARGS) ebuild-install
+external_install = make $(DPDK_MAKE_ARGS) -C external ebuild-install
CMAKE?=cmake
endif
+vpp_cmake_prefix_path = /opt/vpp/external/$(shell uname -m)
+vpp_cmake_prefix_path += $(PACKAGE_INSTALL_DIR)external
+vpp_cmake_prefix_path := $(subst $() $(),;,$(vpp_cmake_prefix_path))
+
vpp_cmake_args ?=
vpp_cmake_args += -DCMAKE_INSTALL_PREFIX:PATH=$(PACKAGE_INSTALL_DIR)
vpp_cmake_args += -DCMAKE_C_FLAGS="$($(TAG)_TAG_CFLAGS)"
vpp_cmake_args += -DCMAKE_LINKER_FLAGS="$($(TAG)_TAG_LDFLAGS)"
-vpp_cmake_args += -DCMAKE_PREFIX_PATH:PATH="$(PACKAGE_INSTALL_DIR)/../dpdk"
+vpp_cmake_args += -DCMAKE_PREFIX_PATH:PATH="$(vpp_cmake_prefix_path)"
# Use devtoolset on centos 7
ifneq ($(wildcard /opt/rh/devtoolset-7/enable),)
vpp_cmake_args += -DCMAKE_PROGRAM_PATH:PATH="/opt/rh/devtoolset-7/root/bin"
endif
-vpp_configure_depend += dpdk-install
+vpp_configure_depend += external-install
vpp_configure = \
cd $(PACKAGE_BUILD_DIR) && \
$(CMAKE) -G Ninja $(vpp_cmake_args) $(call find_source_fn,$(PACKAGE_SOURCE))
B := $(DPDK_BUILD_DIR)
I := $(DPDK_INSTALL_DIR)
DPDK_VERSION ?= 18.08
-PKG_SUFFIX ?= vpp3
+PKG_VERSION ?= $(shell git describe --abbrev=0 | cut -d- -f1 | cut -dv -f2)
+PKG_SUFFIX ?= $(shell git log --oneline $$(git describe --abbrev=0).. . | wc -l)
DPDK_BASE_URL ?= http://fast.dpdk.org/rel
DPDK_TARBALL := dpdk-$(DPDK_VERSION).tar.xz
DPDK_TAR_URL := $(DPDK_BASE_URL)/$(DPDK_TARBALL)
# .deb packaging
##############################################################################
+DEB_VER := $(PKG_VERSION)
DEB_ARCH=$(shell dpkg --print-architecture 2> /dev/null)
-DEV_DEB=vpp-dpdk-dev_$(DPDK_VERSION)-$(PKG_SUFFIX)_$(DEB_ARCH).deb
-INSTALLED_DEB_VER=$(shell dpkg-query --showformat='$${Version}' --show vpp-dpdk-dev 2> /dev/null)
+DEV_DEB=vpp-ext-deps_$(DEB_VER)-$(PKG_SUFFIX)_$(DEB_ARCH).deb
+INSTALLED_VER=$(shell dpkg-query --showformat='$${Version}' --show vpp-ext-deps 2> /dev/null)
.PHONY: build-deb install-deb check-deb
deb/debian/changelog: Makefile
- @echo "vpp-dpdk ($(DPDK_VERSION)-$(PKG_SUFFIX)) unstable; urgency=low" > $@
+ @echo "vpp-ext-deps ($(DEB_VER)-$(PKG_SUFFIX)) unstable; urgency=low" > $@
@echo "" >> $@
- @echo " * DPDK Release $(DPDK_VERSION)" >> $@
+ @echo " * Version $(DEB_VER)" >> $@
@echo "" >> $@
build-deb: $(DEV_DEB)
install-deb:
-ifneq ($(INSTALLED_DEB_VER),$(DPDK_VERSION)-$(PKG_SUFFIX))
+ifneq ($(INSTALLED_VER),$(DEB_VER)-$(PKG_SUFFIX))
@echo "=========================================================="
- @echo " Out of date DPDK package installed."
- @echo " Installed: $(INSTALLED_DEB_VER)"
- @echo " Needed: $(DPDK_VERSION)-$(PKG_SUFFIX)"
+ @echo " Out of date vpp-ext-deps package installed."
+ @echo " Installed: $(INSTALLED_VER)"
+ @echo " Needed: $(DEB_VER)-$(PKG_SUFFIX)"
@echo "=========================================================="
@make $(DEV_DEB)
@sudo dpkg -i $(DEV_DEB)
else
@echo "=========================================================="
- @echo " Up-to-date DPDK package already installed"
+ @echo " Up-to-date vpp-ext-deps package already installed"
@echo "=========================================================="
endif
check-deb:
-ifneq ($(INSTALLED_DEB_VER),$(DPDK_VERSION)-$(PKG_SUFFIX))
+ifneq ($(INSTALLED_VER),$(DEB_VER)-$(PKG_SUFFIX))
@echo "=========================================================="
@echo " Outdated DPDK package detected:"
- @echo " Installed: vpp-dpdk-dev $(INSTALLED_DEB_VER)"
- @echo " Current: vpp-dpdk-dev $(DPDK_VERSION)-$(PKG_SUFFIX)"
+ @echo " Installed: vpp-ext-deps $(INSTALLED_VER)"
+ @echo " Current: vpp-ext-deps $(DEB_VER)-$(PKG_SUFFIX)"
@echo ""
- @echo " Please upgrade by invoking 'make dpdk-install-dev'"
+ @echo " Please upgrade by invoking 'make install-ext-deps'"
@echo " from the top level directory."
@echo "=========================================================="
endif
# .rpm packaging
##############################################################################
+RPM_VER := $(PKG_VERSION)
RPM_ARCH=$(shell rpm --eval "%{_arch}" 2> /dev/null)
-DEV_RPM=vpp-dpdk-devel-$(DPDK_VERSION)-$(PKG_SUFFIX).$(RPM_ARCH).rpm
-INSTALLED_RPM_VER=$(shell rpm -q --queryformat '%{VERSION}-%{RELEASE}' vpp-dpdk-devel 2> /dev/null | grep -v "not inst")
+DEV_RPM=vpp-ext-deps-$(RPM_VER)-$(PKG_SUFFIX).$(RPM_ARCH).rpm
+INSTALLED_RPM_VER=$(shell rpm -q --queryformat '%{VERSION}-%{RELEASE}' vpp-ext-deps 2> /dev/null | grep -v "not inst")
.PHONY: build-rpm install-rpm check-rpm
-$(DEV_RPM): Makefile rpm/vpp-dpdk.spec
+$(DEV_RPM): Makefile rpm/vpp-ext-deps.spec
@rpmbuild -bb \
--define "_topdir $(CURDIR)/rpm" \
- --define "_version $(DPDK_VERSION)" \
+ --define "_version $(RPM_VER)" \
--define "_release $(PKG_SUFFIX)" \
- $(CURDIR)/rpm/vpp-dpdk.spec
+ $(CURDIR)/rpm/vpp-ext-deps.spec
mv rpm/RPMS/$(RPM_ARCH)/*.rpm .
git clean -fdx rpm
build-rpm: $(DEV_RPM)
install-rpm:
-ifneq ($(INSTALLED_RPM_VER),$(DPDK_VERSION)-$(PKG_SUFFIX))
+ifneq ($(INSTALLED_RPM_VER),$(PRM_VER)-$(PKG_SUFFIX))
@$(MAKE) $(DEV_RPM)
sudo rpm -Uih $(DEV_RPM)
else
endif
check-rpm:
-ifneq ($(INSTALLED_RPM_VER),$(DPDK_VERSION)-$(PKG_SUFFIX))
+ifneq ($(INSTALLED_RPM_VER),$(RPM_VER)-$(PKG_SUFFIX))
@echo "=========================================================="
@echo " Outdated DPDK package detected:"
- @echo " Installed: vpp-dpdk-devel $(INSTALLED_RPM_VER)"
- @echo " Current: vpp-dpdk-devel $(DPDK_VERSION)-$(PKG_SUFFIX)"
+ @echo " Installed: vpp-ext-deps $(INSTALLED_RPM_VER)"
+ @echo " Current: vpp-ext-deps $(RPM_VER)-$(PKG_SUFFIX)"
@echo ""
- @echo " Please upgrade by invoking 'make dpdk-install-dev'"
+ @echo " Please upgrade by invoking 'make install-ext-deps'"
@echo " from the top level directory."
@echo "=========================================================="
endif
.PHONY: ebuild-build ebuild-install
ebuild-build:
-ifeq ($(INSTALLED_DEB_VER)$(INSTALLED_RPM_VER),)
+ifeq ($(INSTALLED_VER)$(INSTALLED_RPM_VER),)
@echo "=========================================================="
@echo "Building DPDK from source. Consider installing development"
- @echo "package by invoking 'make dpdk-install-dev' from the"
+ @echo "package by invoking 'make install-ext-deps' from the"
@echo "top level directory"
@echo "=========================================================="
make config
else
-ifneq ($(INSTALLED_DEB_VER),)
+ifneq ($(INSTALLED_VER),)
make check-deb
endif
ifneq ($(INSTALLED_RPM_VER),)
endif
ebuild-install:
-ifeq ($(INSTALLED_DEB_VER)$(INSTALLED_RPM_VER),)
+ifeq ($(INSTALLED_VER)$(INSTALLED_RPM_VER),)
make install
endif
--- /dev/null
+Source: vpp-ext-deps
+Section: net
+Priority: extra
+Build-Depends: debhelper (>= 9), dkms
+Standards-Version: 3.9.4
+
+Package: vpp-ext-deps
+Architecture: any
+Depends: ${shlibs:Depends}
+Description: VPP developer package containing dependencies
+Replaces: vpp-dpdk-dev
+Conflicts: vpp-dpdk-dev
--- /dev/null
+#!/usr/bin/make -f
+DH_VERBOSE = 1
+PKG=vpp-ext-deps
+
+VERSION = $(shell dpkg-parsechangelog | sed -nr '/^Version:/s/Version: //p')
+BASE_VER = $(word 1, $(subst -, ,$(VERSION)))
+
+export DPDK_BUILD_DIR=$(CURDIR)/_build
+export DPDK_INSTALL_DIR=$(CURDIR)/debian/tmp/opt/vpp/external/$(shell uname -m)/
+
+MAKE_ARGS=-C ..
+
+include /usr/share/dpkg/default.mk
+
+%:
+ dh $@
+
+override_dh_clean:
+ make $(MAKE_ARGS) clean
+
+override_dh_auto_configure:
+ make $(MAKE_ARGS) config
+
+override_dh_install:
+ make $(MAKE_ARGS) install
+ dh_install -p$(PKG) --autodest /opt
+
--- /dev/null
+%define _install_dir /opt/vpp/external/%(uname -m)
+%define _make_args -C ../.. DPDK_BUILD_DIR=%{_topdir}/tmp DPDK_INSTALL_DIR=%{buildroot}/%{_install_dir}
+
+Name: vpp-ext-deps
+Version: %{_version}
+Release: %{_release}
+Summary: VPP development package with external dependencies
+License: BSD
+
+%description
+VPP development package with external dependencies
+
+%install
+make %{_make_args} config
+make %{_make_args} install
+
+%files
+%{_install_dir}
+++ /dev/null
-Source: vpp-dpdk
-Section: net
-Priority: extra
-Build-Depends: debhelper (>= 9), dkms
-Standards-Version: 3.9.4
-
-Package: vpp-dpdk-dev
-Architecture: any
-Depends: ${shlibs:Depends}
-Description: DPDK Development Package for VPP
-Conflicts: dpdk, dpdk-dev, libdpdk-dev
-
-Package: vpp-dpdk-dkms
-Architecture: any
-Depends: ${misc:Depends}
-Description: DPDK Development Package for VPP - Kernel Modules
-Conflicts: dpdk-igb-uio-dkms
+++ /dev/null
-#!/usr/bin/make -f
-DH_VERBOSE = 1
-PKG=vpp-dpdk
-
-VERSION = $(shell dpkg-parsechangelog | sed -nr '/^Version:/s/Version: //p')
-BASE_VER = $(word 1, $(subst -, ,$(VERSION)))
-
-export DPDK_BUILD_DIR=$(CURDIR)/_build
-export DPDK_INSTALL_DIR=$(CURDIR)/debian/tmp/usr
-
-SRC=$(wildcard _build/dpdk*$(BASE_VER))
-
-MAKE_ARGS=-C ..
-
-include /usr/share/dpkg/default.mk
-
-%:
- dh $@ --with dkms
-
-override_dh_clean:
- make $(MAKE_ARGS) clean
-
-override_dh_auto_configure:
- make $(MAKE_ARGS) config
-
-override_dh_install:
- make $(MAKE_ARGS) install
- dh_install -p$(PKG)-dkms \
- $(SRC)/lib/librte_eal/common/include/rte_pci_dev_feature_defs.h \
- $(SRC)/lib/librte_eal/common/include/rte_pci_dev_features.h \
- $(wildcard $(SRC)/*/*/*/igb_uio/igb_uio.c) \
- $(wildcard $(SRC)/*/*/*/igb_uio/compat.h) \
- $(wildcard $(SRC)/*/*/igb_uio/igb_uio.c) \
- $(wildcard $(SRC)/*/*/igb_uio/compat.h) \
- debian/dkms/Makefile \
- /usr/src/$(PKG)-dkms-$(VERSION)
- dh_install -p$(PKG)-dev --autodest /usr
-
-override_dh_dkms:
- dh_dkms -p$(PKG)-dkms -V $(VERSION)
+++ /dev/null
-PACKAGE_VERSION=#MODULE_VERSION#
-PACKAGE_NAME="vpp-dpdk-dkms"
-CLEAN="make clean"
-BUILT_MODULE_NAME[0]="igb_uio"
-BUILT_MODULE_LOCATION[0]="./"
-DEST_MODULE_LOCATION[0]="/kernel/net"
-MAKE[1]="make"
-AUTOINSTALL="yes"
+++ /dev/null
-%define _make_args -C ../.. DPDK_BUILD_DIR=%{_topdir}/tmp DPDK_INSTALL_DIR=%{buildroot}/usr
-
-Name: vpp-dpdk
-Version: %{_version}
-Release: %{_release}
-Summary: DPDK development packages for VPP
-License: BSD
-
-%description
-
-%package devel
-Summary: DPDK development package for VPP
-Group: Development/Libraries
-
-%description devel
-
-%install
-make %{_make_args} config
-make %{_make_args} install
-
-%files devel
-/usr/bin/*
-/usr/include/dpdk/*
-/usr/lib/*
-/usr/sbin/*
-/usr/share/dpdk
echo 'Building VCL test apps'
cd $VPP_DIR
$SUDOCMD perl -pi -e 's/noinst_PROGRAMS/bin_PROGRAMS/g' $VPP_DIR/src/vcl.am
-$SUDOCMD make dpdk-install-dev build-release
+$SUDOCMD make install-ext-deps build-release
sudo sysctl -p$VPP_DIR/src/vpp/conf/80-vpp.conf
sudo modprobe uio_pci_generic
pr("Linker flags" "${CMAKE_LINKER_FLAGS}")
pr("Target processor" "${CMAKE_SYSTEM_PROCESSOR}")
pr("Build type" "${CMAKE_BUILD_TYPE}")
+pr("Prefix path" "${CMAKE_PREFIX_PATH}")
pr("Install prefix" "${CMAKE_INSTALL_PREFIX}")
if [ -n "$multi_host"] && [ ! -f "$dpdk_devbind" ] ; then
echo "ERROR: Can't find dpdk-devbind.py!"
- echo " Run \"cd \$WS_ROOT; make dpdk-install-dev\" to install it."
+ echo " Run \"cd \$WS_ROOT; make install-ext-deps\" to install it."
echo
env_test_failed="true"
fi