summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDamjan Marion <damarion@cisco.com>2016-04-01 12:35:17 +0200
committerGerrit Code Review <gerrit@fd.io>2016-04-01 15:22:15 +0000
commit28e3db9dd617324a3196f369788d62cc72b5903b (patch)
tree269e5356bf01e5565d7ac2006778dbad1be5edad
parentaa04a0ff8ee9aa7779b30e936f7fe1304c613d57 (diff)
Add options to link with external DPDK tree
By uncommenting following lines in the build-data/platforms/vpp.mk VPP links nicely with packaged DPDK 2.2 distributed with Ubuntu 16.04 LTS. vpp_uses_external_dpdk = yes vpp_dpdk_inc_dir = /usr/include/dpdk vpp_dpdk_lib_dir = /usr/lib vpp_dpdk_shared_lib = yes Change-Id: Id5b7d95bac6aa60341933b92e86d949a9abf1a5d Signed-off-by: Damjan Marion <damarion@cisco.com>
-rw-r--r--build-data/packages/sample-plugin.mk5
-rw-r--r--build-data/packages/vlib.mk7
-rw-r--r--build-data/packages/vnet.mk5
-rw-r--r--build-data/packages/vpp-api-test.mk5
-rw-r--r--build-data/packages/vpp.mk11
-rw-r--r--build-data/platforms/vpp.mk7
6 files changed, 37 insertions, 3 deletions
diff --git a/build-data/packages/sample-plugin.mk b/build-data/packages/sample-plugin.mk
index 58d46325441..047a26f551c 100644
--- a/build-data/packages/sample-plugin.mk
+++ b/build-data/packages/sample-plugin.mk
@@ -36,7 +36,12 @@ sample-plugin_image_include = echo $(arch_lib_dir)/vlib_plugins
ifneq ($($(PLATFORM)_uses_dpdk),no)
sample-plugin_configure_args = --with-dpdk
+ifeq ($($(PLATFORM)_uses_external_dpdk),yes)
+sample-plugin_CPPFLAGS += -I$($(PLATFORM)_dpdk_inc_dir)
+sample-plugin_LDFLAGS += -L$($(PLATFORM)_dpdk_lib_dir)
+else
sample-plugin_configure_depend += dpdk-install
sample-plugin_CPPFLAGS += $(call installed_includes_fn, dpdk)
sample-plugin_LDFLAGS += $(call installed_libs_fn, dpdk)
endif
+endif
diff --git a/build-data/packages/vlib.mk b/build-data/packages/vlib.mk
index 9c361282a4b..2172708d07e 100644
--- a/build-data/packages/vlib.mk
+++ b/build-data/packages/vlib.mk
@@ -4,8 +4,13 @@ vlib_CPPFLAGS = $(call installed_includes_fn, vppinfra)
vlib_LDFLAGS = $(call installed_libs_fn, vppinfra)
ifneq ($($(PLATFORM)_uses_dpdk),no)
-vlib_configure_depend += dpdk-install
vlib_configure_args += --with-dpdk
+ifeq ($($(PLATFORM)_uses_external_dpdk),yes)
+vlib_CPPFLAGS += -I$($(PLATFORM)_dpdk_inc_dir)
+vlib_LDFLAGS += -L$($(PLATFORM)_dpdk_lib_dir)
+else
+vlib_configure_depend += dpdk-install
vlib_CPPFLAGS += $(call installed_includes_fn, dpdk)
vlib_LDFLAGS += $(call installed_libs_fn, dpdk)
endif
+endif
diff --git a/build-data/packages/vnet.mk b/build-data/packages/vnet.mk
index 0486b4e8e8d..2ff9034a045 100644
--- a/build-data/packages/vnet.mk
+++ b/build-data/packages/vnet.mk
@@ -22,7 +22,12 @@ vnet_LDFLAGS = $(call installed_libs_fn, \
vnet_configure_args += $(vnet_configure_args_$(PLATFORM))
ifneq ($($(PLATFORM)_uses_dpdk),no)
+ifeq ($($(PLATFORM)_uses_external_dpdk),yes)
+vnet_CPPFLAGS += -I$($(PLATFORM)_dpdk_inc_dir)
+vnet_LDFLAGS += -L$($(PLATFORM)_dpdk_lib_dir)
+else
vnet_configure_depend += dpdk-install
vnet_CPPFLAGS += $(call installed_includes_fn, dpdk)
vnet_LDFLAGS += $(call installed_libs_fn, dpdk)
endif
+endif
diff --git a/build-data/packages/vpp-api-test.mk b/build-data/packages/vpp-api-test.mk
index e26c2e76461..38edb5bc50a 100644
--- a/build-data/packages/vpp-api-test.mk
+++ b/build-data/packages/vpp-api-test.mk
@@ -24,7 +24,12 @@ vpp-api-test_LDFLAGS = $(call installed_libs_fn, \
ifneq ($($(PLATFORM)_uses_dpdk),no)
vpp-api-test_configure_args = --with-dpdk
+ifeq ($($(PLATFORM)_uses_external_dpdk),yes)
+vpp-api-test_CPPFLAGS += -I$($(PLATFORM)_dpdk_inc_dir)
+vpp-api-test_LDFLAGS += -L$($(PLATFORM)_dpdk_lib_dir)
+else
vpp-api-test_configure_depend += dpdk-install
vpp-api-test_CPPFLAGS += $(call installed_includes_fn, dpdk)
vpp-api-test_LDFLAGS += $(call installed_libs_fn, dpdk)
endif
+endif
diff --git a/build-data/packages/vpp.mk b/build-data/packages/vpp.mk
index 9ccf6901dd7..f96235f4f0c 100644
--- a/build-data/packages/vpp.mk
+++ b/build-data/packages/vpp.mk
@@ -6,7 +6,11 @@ vpp_configure_depend = \
vnet-install \
#
-vpp_configure_args =
+ifeq ($($(PLATFORM)_dpdk_shared_lib),yes)
+vpp_configure_args = --enable-dpdk-shared
+else
+vpp_configure_args =
+endif
# Platform dependent configure flags
vpp_configure_args += $(vpp_configure_args_$(PLATFORM))
@@ -29,7 +33,12 @@ vpp_LDFLAGS = $(call installed_libs_fn, \
vnet)
ifneq ($($(PLATFORM)_uses_dpdk),no)
+ifeq ($($(PLATFORM)_uses_external_dpdk),yes)
+vpp_CPPFLAGS += -I$($(PLATFORM)_dpdk_inc_dir)
+vpp_LDFLAGS += -L$($(PLATFORM)_dpdk_lib_dir)
+else
vpp_configure_depend += dpdk-install
vpp_CPPFLAGS += $(call installed_includes_fn, dpdk)
vpp_LDFLAGS += $(call installed_libs_fn, dpdk)
endif
+endif
diff --git a/build-data/platforms/vpp.mk b/build-data/platforms/vpp.mk
index 50c85dcc7c1..9b4a78c89e7 100644
--- a/build-data/platforms/vpp.mk
+++ b/build-data/platforms/vpp.mk
@@ -17,7 +17,7 @@ vpp_native_tools = vppapigen
vpp_uses_dpdk = yes
-vpp_root_packages = vpp vlib vlib-api vnet svm dpdk vpp-api-test \
+vpp_root_packages = vpp vlib vlib-api vnet svm vpp-api-test \
vpp-japi gmod
vpp_configure_args_vpp = --with-dpdk
@@ -26,6 +26,11 @@ vnet_configure_args_vpp = --with-dpdk
# Set these parameters carefully. The vlib_buffer_t is 128 bytes, i.e.
vlib_configure_args_vpp = --with-pre-data=128
+# DPDK configuration parameters
+# vpp_uses_external_dpdk = yes
+# vpp_dpdk_inc_dir = /usr/include/dpdk
+# vpp_dpdk_lib_dir = /usr/lib
+# vpp_dpdk_shared_lib = yes
vpp_debug_TAG_CFLAGS = -g -O0 -DCLIB_DEBUG -DFORTIFY_SOURCE=2 -march=$(MARCH) \
-fstack-protector-all -fPIC -Werror