Add options to link with external DPDK tree 61/661/2
authorDamjan Marion <damarion@cisco.com>
Fri, 1 Apr 2016 10:35:17 +0000 (12:35 +0200)
committerGerrit Code Review <gerrit@fd.io>
Fri, 1 Apr 2016 15:22:15 +0000 (15:22 +0000)
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>
build-data/packages/sample-plugin.mk
build-data/packages/vlib.mk
build-data/packages/vnet.mk
build-data/packages/vpp-api-test.mk
build-data/packages/vpp.mk
build-data/platforms/vpp.mk

index 58d4632..047a26f 100644 (file)
@@ -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
index 9c36128..2172708 100644 (file)
@@ -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
index 0486b4e..2ff9034 100644 (file)
@@ -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
index e26c2e7..38edb5b 100644 (file)
@@ -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
index 9ccf690..f96235f 100644 (file)
@@ -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
index 50c85dc..9b4a78c 100644 (file)
@@ -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