diff options
author | sreejith <sreejith.surendrannair@linaro.org> | 2017-03-29 01:15:02 -0400 |
---|---|---|
committer | sreejith <sreejith.surendrannair@linaro.org> | 2017-03-29 02:23:59 -0400 |
commit | a23197980e40d4d9414bcfaf59005a1dc2a89251 (patch) | |
tree | da3fc5410a9cda99e05d2e0f6dae06072a0c50b8 /vpp/build-data | |
parent | 746b57564deede624261ab8a96c94f562f24d22c (diff) |
Added vpp intial source code from master branch 17.01.1
Change-Id: I81bdace6f330825a1746a853766779dfb24765fd
Signed-off-by: sreejith <sreejith.surendrannair@linaro.org>
Diffstat (limited to 'vpp/build-data')
28 files changed, 887 insertions, 0 deletions
diff --git a/vpp/build-data/packages/cavium-dpdk.mk b/vpp/build-data/packages/cavium-dpdk.mk new file mode 100644 index 00000000..ce8ee228 --- /dev/null +++ b/vpp/build-data/packages/cavium-dpdk.mk @@ -0,0 +1,55 @@ +# Temporary until Cavium upstreams their work + +cavium-dpdk_configure = \ + src_dir=$(call find_source_fn,$(PACKAGE_SOURCE)) ; \ + dst_dir=$(PACKAGE_BUILD_DIR) ; \ + tar -C $${src_dir} -cf - . | tar -C $${dst_dir} -xf - ; \ + cd $${dst_dir} ; \ + : colossal hemorrhoid to configure headroom ; \ + if [ x$($(PACKAGE)_configure_args_$(PLATFORM)) = "x" ] ; then \ + HR=256 ; \ + else \ + dpdk_configure_args=$($(PACKAGE)_configure_args_$(PLATFORM)) ; \ + if [ $$dpdk_configure_args = "--with-headroom=256" ] ; then \ + HR=256 ; \ + elif [ $$dpdk_configure_args = "--with-headroom=384" ] ; then \ + HR=384 ; \ + else \ + HR=256 ; \ + fi ; \ + fi ; \ + env HR=$$HR \ + spp -o \ + $(PACKAGE_BUILD_DIR)/config/common_linuxapp \ + $(PACKAGE_BUILD_DIR)/config/common_linuxapp.spp \ + ; \ + env $(CONFIGURE_ENV) \ + make config T=arm64-thunderx-linuxapp-gcc RTE_ARCH=arm64 \ + CC=aarch64-thunderx-linux-gnu-gcc V=0 \ + RTE_SDK=$(PACKAGE_BUILD_DIR) \ + RTE_TARGET=arm-default-linuxapp-gcc + +# Note: add e.g. "-O0" to EXTRA_CFLAGS if desired: EXTRA_CFLAGS='-g -O0' + +cavium-dpdk_make_args = install T=arm64-thunderx-linuxapp-gcc RTE_ARCH=arm64 \ + CC=aarch64-thunderx-linux-gnu-gcc V=0 \ + RTE_SDK=$(PACKAGE_BUILD_DIR) \ + RTE_TARGET=arm-default-linuxapp-gcc + +cavium-dpdk_install = \ + src_dir=$(PACKAGE_BUILD_DIR) ; \ + dst_dir=$(PACKAGE_INSTALL_DIR) ; \ + tar -h -C $${src_dir}/arm64-thunderx-linuxapp-gcc -cf - . \ + | tar -C $${dst_dir} -xf - + +# dpdk libraries end up in .../lib not .../lib64. Fix it. +cavium-dpdk_post_install = \ + if [ "$(arch_lib_dir)" != "lib" ] ; then \ + mkdir -p $(PACKAGE_INSTALL_DIR)/$(arch_lib_dir) ; \ + cd $(PACKAGE_INSTALL_DIR)/lib ; \ + tar cf - . | ( cd $(PACKAGE_INSTALL_DIR)/$(arch_lib_dir); tar xf - ) ; \ + fi + +# nothing to install, all static libraries +cavium-dpdk_image_include = echo + diff --git a/vpp/build-data/packages/dpdk.mk b/vpp/build-data/packages/dpdk.mk new file mode 100644 index 00000000..a529e365 --- /dev/null +++ b/vpp/build-data/packages/dpdk.mk @@ -0,0 +1,44 @@ + +DPDK_MARCH = $(strip $($(PLATFORM)_dpdk_arch)) +ifeq ($(DPDK_MARCH),) + DPDK_MARCH="native" +endif + +DPDK_TUNE = $(strip $($(PLATFORM)_mtune)) +ifeq ($(DPDK_TUNE),) + DPDK_TUNE="generic" +endif + +ifneq (,$(findstring debug,$(TAG))) + DPDK_DEBUG=y +else + DPDK_DEBUG=n +endif + +DPDK_MAKE_ARGS = -C $(call find_source_fn,$(PACKAGE_SOURCE)) \ + DPDK_BUILD_DIR=$(PACKAGE_BUILD_DIR) \ + DPDK_INSTALL_DIR=$(PACKAGE_INSTALL_DIR) \ + DPDK_MARCH=$(DPDK_MARCH) \ + DPDK_TUNE=$(DPDK_TUNE) \ + DPDK_DEBUG=$(DPDK_DEBUG) + +DPDK_CRYPTO_PMD=$(strip $($(PLATFORM)_uses_dpdk_cryptodev)) +ifneq ($(DPDK_CRYPTO_PMD),) +DPDK_MAKE_ARGS += DPDK_CRYPTO_PMD=y +endif + +DPDK_PLATFORM_TARGET=$(strip $($(PLATFORM)_dpdk_target)) +ifneq ($(DPDK_PLATFORM_TARGET),) +DPDK_MAKE_ARGS += DPDK_TARGET=$(DPDK_PLATFORM_TARGET) +endif + +DPDK_MAKE_EXTRA_ARGS = $(strip $($(PLATFORM)_dpdk_make_extra_args)) +ifneq ($(DPDK_MAKE_EXTRA_ARGS),) +DPDK_MAKE_ARGS += DPDK_MAKE_EXTRA_ARGS="$(DPDK_MAKE_EXTRA_ARGS)" +endif + +dpdk_configure = echo + +dpdk_make_args = $(DPDK_MAKE_ARGS) config + +dpdk_install = make $(DPDK_MAKE_ARGS) build diff --git a/vpp/build-data/packages/g2.mk b/vpp/build-data/packages/g2.mk new file mode 100644 index 00000000..258eff1d --- /dev/null +++ b/vpp/build-data/packages/g2.mk @@ -0,0 +1,5 @@ +g2_configure_depend = vppinfra-install + +g2_CPPFLAGS = $(call installed_includes_fn, vppinfra) + +g2_LDFLAGS = $(call installed_libs_fn, vppinfra) diff --git a/vpp/build-data/packages/gmod.mk b/vpp/build-data/packages/gmod.mk new file mode 100644 index 00000000..a6ba42d0 --- /dev/null +++ b/vpp/build-data/packages/gmod.mk @@ -0,0 +1,9 @@ +gmod_configure_depend = vppinfra-install svm-install + +gmod_configure_args = --libdir=$(PACKAGE_INSTALL_DIR)/$(arch_lib_dir)/ganglia + +gmod_CPPFLAGS = $(call installed_includes_fn, vppinfra svm) +gmod_CPPFLAGS += -I/usr/include/apr-1.0 -I/usr/include/apr-1 -I/usr/include +gmod_LDFLAGS = $(call installed_libs_fn, vppinfra svm) + +gmod_image_include = echo $(arch_lib_dir)/ganglia/libgmodvpp.so etc diff --git a/vpp/build-data/packages/perftool.mk b/vpp/build-data/packages/perftool.mk new file mode 100644 index 00000000..300f902b --- /dev/null +++ b/vpp/build-data/packages/perftool.mk @@ -0,0 +1,5 @@ +perftool_configure_depend = vppinfra-install + +perftool_CPPFLAGS = $(call installed_includes_fn, vppinfra) + +perftool_LDFLAGS = $(call installed_libs_fn, vppinfra) diff --git a/vpp/build-data/packages/plugins.mk b/vpp/build-data/packages/plugins.mk new file mode 100644 index 00000000..44a8e2bd --- /dev/null +++ b/vpp/build-data/packages/plugins.mk @@ -0,0 +1,45 @@ +plugins_configure_depend = \ + vppinfra-install \ + vlib-api-install \ + vpp-api-test-install \ + vnet-install \ + vlib-install \ + vpp-api-install + +plugins_CPPFLAGS = $(call installed_includes_fn, \ + vppinfra \ + vlib \ + vnet \ + svm \ + vpp-api-test \ + vlib-api \ + vpp-api) + +plugins_LDFLAGS = $(call installed_libs_fn, \ + vppinfra \ + vlib \ + vlib-api) + +ifeq ($($(PLATFORM)_enable_tests),yes) +plugins_configure_args += --enable-tests +endif + +# Platform dependent configure flags +plugins_configure_args += $(plugins_configure_args_$(PLATFORM)) + +# include & link with openssl only if needed +ifneq ($($(PLATFORM)_uses_openssl),no) +plugins_CPPFLAGS += $(call installed_includes_fn, openssl) +plugins_LDFLAGS += $(call installed_libs_fn, openssl) +endif + +ifneq ($($(PLATFORM)_uses_dpdk),no) +ifeq ($($(PLATFORM)_uses_external_dpdk),yes) +plugins_CPPFLAGS += -I$($(PLATFORM)_dpdk_inc_dir) +plugins_LDFLAGS += -L$($(PLATFORM)_dpdk_lib_dir) +else +plugins_configure_depend += dpdk-install +plugins_CPPFLAGS += $(call installed_includes_fn, dpdk) +plugins_LDFLAGS += $(call installed_libs_fn, dpdk) +endif +endif diff --git a/vpp/build-data/packages/svm.mk b/vpp/build-data/packages/svm.mk new file mode 100644 index 00000000..3971fe82 --- /dev/null +++ b/vpp/build-data/packages/svm.mk @@ -0,0 +1,5 @@ +svm_top_srcdir = $(call find_source_fn,svm) +svm_configure_depend = vppinfra-install + +svm_CPPFLAGS = $(call installed_includes_fn, vppinfra) +svm_LDFLAGS = $(call installed_libs_fn, vppinfra) diff --git a/vpp/build-data/packages/vlib-api-cavium-dpdk.mk b/vpp/build-data/packages/vlib-api-cavium-dpdk.mk new file mode 100644 index 00000000..7a4fe2cd --- /dev/null +++ b/vpp/build-data/packages/vlib-api-cavium-dpdk.mk @@ -0,0 +1,6 @@ +vlib-api-cavium-dpdk_source = vlib-api + +vlib-api-cavium-dpdk_configure_depend = vppinfra-install svm-install vlib-cavium-dpdk-install + +vlib-api-cavium-dpdk_CPPFLAGS = $(call installed_includes_fn, vppinfra svm vlib-cavium-dpdk) +vlib-api-cavium-dpdk_LDFLAGS = $(call installed_libs_fn, vppinfra svm vlib-cavium-dpdk) diff --git a/vpp/build-data/packages/vlib-api.mk b/vpp/build-data/packages/vlib-api.mk new file mode 100644 index 00000000..29b0d17d --- /dev/null +++ b/vpp/build-data/packages/vlib-api.mk @@ -0,0 +1,4 @@ +vlib-api_configure_depend = vppinfra-install svm-install vlib-install + +vlib-api_CPPFLAGS = $(call installed_includes_fn, vppinfra svm vlib) +vlib-api_LDFLAGS = $(call installed_libs_fn, vppinfra svm vlib) diff --git a/vpp/build-data/packages/vlib-cavium-dpdk.mk b/vpp/build-data/packages/vlib-cavium-dpdk.mk new file mode 100644 index 00000000..0f2f132d --- /dev/null +++ b/vpp/build-data/packages/vlib-cavium-dpdk.mk @@ -0,0 +1,7 @@ +vlib-cavium-dpdk_source = vlib +vlib-cavium-dpdk_configure_depend = vppinfra-install cavium-dpdk-install + +vlib-cavium-dpdk_configure_args += --with-dpdk + +vlib-cavium-dpdk_CPPFLAGS = $(call installed_includes_fn, vppinfra cavium-dpdk) +vlib-cavium-dpdk_LDFLAGS = $(call installed_libs_fn, vppinfra cavium-dpdk) diff --git a/vpp/build-data/packages/vlib.mk b/vpp/build-data/packages/vlib.mk new file mode 100644 index 00000000..2172708d --- /dev/null +++ b/vpp/build-data/packages/vlib.mk @@ -0,0 +1,16 @@ +vlib_configure_depend = vppinfra-install + +vlib_CPPFLAGS = $(call installed_includes_fn, vppinfra) +vlib_LDFLAGS = $(call installed_libs_fn, vppinfra) + +ifneq ($($(PLATFORM)_uses_dpdk),no) +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/vpp/build-data/packages/vnet-cavium-dpdk.mk b/vpp/build-data/packages/vnet-cavium-dpdk.mk new file mode 100644 index 00000000..4c35b04d --- /dev/null +++ b/vpp/build-data/packages/vnet-cavium-dpdk.mk @@ -0,0 +1,29 @@ +vnet-cavium-dpdk_source = vnet + +vnet-cavium-dpdk_configure_depend = \ + vppinfra-install \ + cavium-dpdk-install \ + svm-install \ + vlib-api-cavium-dpdk-install \ + vlib-cavium-dpdk-install + + +vnet-cavium-dpdk_CPPFLAGS = $(call installed_includes_fn, \ + vppinfra \ + cavium-dpdk \ + openssl \ + svm \ + vlib-cavium-dpdk \ + vlib-api-cavium-dpdk) + +vnet-cavium-dpdk_LDFLAGS = $(call installed_libs_fn, \ + vppinfra \ + cavium-dpdk \ + openssl \ + svm \ + vlib-cavium-dpdk \ + vlib-api-cavium-dpdk) + +# Platform dependent configure flags +vnet-cavium-dpdk_configure_args += $(vnet-cavium-dpdk_configure_args_$(PLATFORM)) + diff --git a/vpp/build-data/packages/vnet.mk b/vpp/build-data/packages/vnet.mk new file mode 100644 index 00000000..399ca1b4 --- /dev/null +++ b/vpp/build-data/packages/vnet.mk @@ -0,0 +1,44 @@ +vnet_configure_depend = \ + vppinfra-install \ + svm-install \ + vlib-api-install \ + vlib-install + +vnet_CPPFLAGS = $(call installed_includes_fn, \ + vppinfra \ + svm \ + vlib \ + vlib-api) + +vnet_LDFLAGS = $(call installed_libs_fn, \ + vppinfra \ + svm \ + vlib \ + vlib-api) + +ifeq ($($(PLATFORM)_enable_tests),yes) +vnet_configure_args += --enable-tests +endif + +# Platform dependent configure flags +vnet_configure_args += $(vnet_configure_args_$(PLATFORM)) + +# include & link with openssl only if needed +ifneq ($($(PLATFORM)_uses_openssl),no) +vnet_CPPFLAGS += $(call installed_includes_fn, openssl) +vnet_LDFLAGS += $(call installed_libs_fn, openssl) +endif + +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 +ifeq ($($(PLATFORM)_uses_dpdk_cryptodev),yes) +vnet_configure_args += --with-dpdk-crypto +endif +endif diff --git a/vpp/build-data/packages/vpp-api-test-cavium-dpdk.mk b/vpp/build-data/packages/vpp-api-test-cavium-dpdk.mk new file mode 100644 index 00000000..e352317f --- /dev/null +++ b/vpp/build-data/packages/vpp-api-test-cavium-dpdk.mk @@ -0,0 +1,32 @@ +vpp-api-test-cavium-dpdk_source = vpp-api-test + +vpp-api-test-cavium-dpdk_configure_depend = \ + vppinfra-install \ + cavium-dpdk-install \ + svm-install \ + vlib-api-cavium-dpdk-install \ + vlib-cavium-dpdk-install \ + vnet-cavium-dpdk-install \ + vpp-cavium-dpdk-install + +# +vpp-api-test-cavium-dpdk_configure_args = --with-dpdk + +vpp-api-test-cavium-dpdk_CPPFLAGS = $(call installed_includes_fn, \ + vppinfra \ + cavium-dpdk \ + svm \ + vlib-cavium-dpdk \ + vlib-api-cavium-dpdk \ + vnet-cavium-dpdk \ + vpp-cavium-dpdk) + +vpp-api-test-cavium-dpdk_LDFLAGS = $(call installed_libs_fn, \ + vppinfra \ + cavium-dpdk \ + svm \ + vlib-cavium-dpdk \ + vlib-api-cavium-dpdk \ + vnet-cavium-dpdk \ + vpp-cavium-dpdk) + diff --git a/vpp/build-data/packages/vpp-api-test.mk b/vpp/build-data/packages/vpp-api-test.mk new file mode 100644 index 00000000..c9eae367 --- /dev/null +++ b/vpp/build-data/packages/vpp-api-test.mk @@ -0,0 +1,39 @@ +vpp-api-test_configure_depend = \ + vppinfra-install \ + svm-install \ + vlib-api-install \ + vlib-install \ + vnet-install \ + vpp-install + +vpp-api-test_CPPFLAGS = $(call installed_includes_fn, \ + vppinfra \ + svm \ + vlib \ + vlib-api \ + vnet \ + vpp) + +vpp-api-test_LDFLAGS = $(call installed_libs_fn, \ + vppinfra \ + svm \ + vlib \ + vlib-api \ + vnet \ + vpp) + +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 +ifeq ($($(PLATFORM)_uses_dpdk_cryptodev),yes) +vpp-api-test_configure_args += --with-dpdk-crypto +endif + diff --git a/vpp/build-data/packages/vpp-api.mk b/vpp/build-data/packages/vpp-api.mk new file mode 100644 index 00000000..4937023a --- /dev/null +++ b/vpp/build-data/packages/vpp-api.mk @@ -0,0 +1,23 @@ +vpp-api_configure_depend = \ + vppinfra-install \ + svm-install \ + vlib-api-install \ + vlib-install \ + vnet-install \ + vpp-install + +vpp-api_CPPFLAGS = $(call installed_includes_fn, \ + vppinfra \ + svm \ + vlib \ + vlib-api \ + vnet \ + vpp) + +vpp-api_LDFLAGS = $(call installed_libs_fn, \ + vppinfra \ + svm \ + vlib \ + vlib-api) + +vpp-api_CPPFLAGS += -I/usr/lib/jvm/java-8-openjdk-amd64/include diff --git a/vpp/build-data/packages/vpp-cavium-dpdk.mk b/vpp/build-data/packages/vpp-cavium-dpdk.mk new file mode 100644 index 00000000..704e3a95 --- /dev/null +++ b/vpp/build-data/packages/vpp-cavium-dpdk.mk @@ -0,0 +1,30 @@ +vpp-cavium-dpdk_source = vpp + +vpp-cavium-dpdk_configure_depend = \ + vppinfra-install \ + cavium-dpdk-install \ + svm-install \ + vlib-api-cavium-dpdk-install \ + vlib-cavium-dpdk-install \ + vnet-cavium-dpdk-install + +# Platform dependent configure flags +vpp-cavium-dpdk_configure_args += $(vpp-cavium-dpdk_configure_args_$(PLATFORM)) + +vpp-cavium-dpdk_CPPFLAGS = $(call installed_includes_fn, \ + vppinfra \ + cavium-dpdk \ + openssl \ + svm \ + vlib-cavium-dpdk \ + vlib-api-cavium-dpdk \ + vnet-cavium-dpdk) + +vpp-cavium-dpdk_LDFLAGS = $(call installed_libs_fn, \ + vppinfra \ + cavium-dpdk \ + openssl \ + svm \ + vlib-cavium-dpdk \ + vlib-api-cavium-dpdk \ + vnet-cavium-dpdk) diff --git a/vpp/build-data/packages/vpp-platform-scripts.mk b/vpp/build-data/packages/vpp-platform-scripts.mk new file mode 100644 index 00000000..792d6005 --- /dev/null +++ b/vpp/build-data/packages/vpp-platform-scripts.mk @@ -0,0 +1 @@ +# diff --git a/vpp/build-data/packages/vpp.mk b/vpp/build-data/packages/vpp.mk new file mode 100644 index 00000000..6831c6b8 --- /dev/null +++ b/vpp/build-data/packages/vpp.mk @@ -0,0 +1,51 @@ +vpp_configure_depend = \ + vppinfra-install \ + svm-install \ + vlib-api-install \ + vlib-install \ + vnet-install \ + +# +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)) + + +vpp_CPPFLAGS = $(call installed_includes_fn, \ + vppinfra \ + svm \ + vlib \ + vlib-api \ + vnet) + +vpp_LDFLAGS = $(call installed_libs_fn, \ + vppinfra \ + svm \ + vlib \ + vlib-api \ + vnet) + +# include & link with openssl only if needed +ifneq ($($(PLATFORM)_uses_openssl),no) +vpp_CPPFLAGS += $(call installed_includes_fn, openssl) +vpp_LDFLAGS += $(call installed_libs_fn, openssl) +endif + +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 +ifeq ($($(PLATFORM)_uses_dpdk_cryptodev),yes) +vpp_configure_args += --with-dpdk-crypto +endif +endif diff --git a/vpp/build-data/packages/vppinfra.mk b/vpp/build-data/packages/vppinfra.mk new file mode 100644 index 00000000..6ca6eb24 --- /dev/null +++ b/vpp/build-data/packages/vppinfra.mk @@ -0,0 +1,5 @@ + +ifeq ($($(PLATFORM)_enable_tests),yes) +vppinfra_configure_args += --enable-tests +endif + diff --git a/vpp/build-data/platforms.mk b/vpp/build-data/platforms.mk new file mode 100644 index 00000000..a568c7a0 --- /dev/null +++ b/vpp/build-data/platforms.mk @@ -0,0 +1,105 @@ +# 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 ; \ + \ + : core api definitions ; \ + ./scripts/find-api-core-contents $(INSTALL_PREFIX)$(ARCH) \ + 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 ; \ + \ + : vnet api definitions ; \ + ./scripts/find-api-lib-contents $(INSTALL_PREFIX)$(ARCH) \ + 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 ../../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) .. + diff --git a/vpp/build-data/platforms/arm32.mk b/vpp/build-data/platforms/arm32.mk new file mode 100644 index 00000000..7b80061b --- /dev/null +++ b/vpp/build-data/platforms/arm32.mk @@ -0,0 +1,45 @@ +# Copyright (c) 2016 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. + +# vector packet processor +arm32_arch = native +arm32_native_tools = vppapigen + +arm32_uses_dpdk = yes +arm32_uses_openssl = no + +arm32_root_packages = vpp vlib vlib-api vnet svm vpp-api-test \ + jvpp gmod + +vlib_configure_args_arm32 = --with-pre-data=128 +vnet_configure_args_arm32 = --with-dpdk --without-ipsec --without-ipv6sr +vpp_configure_args_arm32 = --with-dpdk --without-ipsec --without-ipv6sr + +arm32_dpdk_arch = "armv7a" +arm32_dpdk_target = "arm-armv7a-linuxapp-gcc" +arm32_dpdk_make_extra_args = "CPU_CFLAGS='-mfloat-abi=hard' \ + CONFIG_RTE_EAL_IGB_UIO=y \ + CONFIG_RTE_LIBRTE_E1000_PMD=y \ + CONFIG_RTE_MAX_LCORE=4 \ + CONFIG_RTE_MAX_NUMA_NODES=1" + + +arm32_debug_TAG_CFLAGS = -g -O0 -DCLIB_DEBUG -DFORTIFY_SOURCE=2 -DVLIB_MAX_CPUS=4 -march=armv7-a \ + -fstack-protector-all -fPIC -Werror +arm32_debug_TAG_LDFLAGS = -g -O0 -DCLIB_DEBUG -DFORTIFY_SOURCE=2 -DVLIB_MAX_CPUS=4 -march=armv7-a \ + -fstack-protector-all -fPIC -Werror + +arm32_TAG_CFLAGS = -g -O2 -DFORTIFY_SOURCE=2 -DVLIB_MAX_CPUS=4 -march=armv7-a \ + -fstack-protector -fPIC -Werror +arm32_TAG_LDFLAGS = -g -O2 -DFORTIFY_SOURCE=2 -DVLIB_MAX_CPUS=4 -march=armv7-a \ + -fstack-protector -fPIC -Werror diff --git a/vpp/build-data/platforms/dpaa2.mk b/vpp/build-data/platforms/dpaa2.mk new file mode 100644 index 00000000..0ec627a4 --- /dev/null +++ b/vpp/build-data/platforms/dpaa2.mk @@ -0,0 +1,66 @@ +# Copyright (c) 2016 Freescale Semiconductor, Inc. All rights reserved. +# 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. + +# Configuration for NXP DPAA2 ARM64 based platform +dpaa2_arch = aarch64 +dpaa2_os = linux-gnu +dpaa2_target = aarch64-linux-gnu +dpaa2_mtune = cortex-A57 +dpaa2_march = "armv8-a+fp+simd+crc+crypto" +dpaa2_cross_ldflags = \ + -Wl,--dynamic-linker=/lib/ld-linux-aarch64.so.1 \ + -Wl,-rpath=/usr/lib64 + +dpaa2_native_tools = vppapigen +dpaa2_root_packages = vpp vlib vlib-api vnet svm vpp-api-test + +# DPDK configuration parameters +dpaa2_uses_dpdk = yes +# Compile with external DPDK only if "DPDK_PATH" variable is defined where we have +# installed DPDK libraries and headers. +ifeq ($(PLATFORM),dpaa2) +ifneq ($(DPDK_PATH),) +dpaa2_uses_dpdk = yes +dpaa2_uses_external_dpdk = yes +dpaa2_dpdk_inc_dir = $(DPDK_PATH)/include/dpdk +dpaa2_dpdk_lib_dir = $(DPDK_PATH)/lib +else +# compile using internal DPDK + NXP DPAA2 Driver patch +dpaa2_dpdk_arch = "armv8a" +dpaa2_dpdk_target = "arm64-dpaa2-linuxapp-gcc" +dpaa2_dpdk_make_extra_args = "CROSS=$(dpaa2_target)- DPDK_PKTMBUF_HEADROOM=256" +endif +endif + +vpp_configure_args_dpaa2 = --with-dpdk --without-ipsec \ + --without-ipv6sr --with-sysroot=$(SYSROOT) +vnet_configure_args_dpaa2 = --with-dpdk --without-ipsec \ + --without-ipv6sr --with-sysroot=$(SYSROOT) + +# Set these parameters carefully. The vlib_buffer_t is 256 bytes, i.e. +vlib_configure_args_dpaa2 = --with-pre-data=256 + + +dpaa2_debug_TAG_CFLAGS = -g -O2 -DCLIB_DEBUG -fPIC -fstack-protector-all \ + -march=$(MARCH) -Werror -DCLIB_LOG2_CACHE_LINE_BYTES=6 +dpaa2_debug_TAG_LDFLAGS = -g -O2 -DCLIB_DEBUG -fstack-protector-all \ + -march=$(MARCH) -Werror -DCLIB_LOG2_CACHE_LINE_BYTES=6 + +# Use -rdynamic is for stack tracing, O0 for debugging....default is O2 +# Use -DCLIB_LOG2_CACHE_LINE_BYTES to change cache line size +dpaa2_TAG_CFLAGS = -g -O2 -fPIC -march=$(MARCH) -mcpu=$(dpaa2_mtune) \ + -mtune=$(dpaa2_mtune) -funroll-all-loops -Werror -DCLIB_LOG2_CACHE_LINE_BYTES=6 +dpaa2_TAG_LDFLAGS = -g -O2 -fPIC -march=$(MARCH) -mcpu=$(dpaa2_mtune) \ + -mtune=$(dpaa2_mtune) -funroll-all-loops -Werror -DCLIB_LOG2_CACHE_LINE_BYTES=6 + + diff --git a/vpp/build-data/platforms/qppc.mk b/vpp/build-data/platforms/qppc.mk new file mode 100644 index 00000000..244747e7 --- /dev/null +++ b/vpp/build-data/platforms/qppc.mk @@ -0,0 +1,34 @@ +# Qemu "p-series" powerpc64 + +qppc_os = linux-gnu + +qppc_cross_ldflags = \ + -Wl,--dynamic-linker=/lib64/ld64.so.1 + +qppc_arch = powerpc + +qppc_root_packages = vppinfra vlib vlib-api vnet svm \ + vpp vpp-api-test + +vnet_configure_args_qppc = \ + --without-ipsec --without-ipv6sr + +vpp_configure_args_qppc = \ + --without-ipsec --without-ipv6sr + +vlib_configure_args_qppc = --with-pre-data=128 + +qppc_march=powerpc64 + +# native tool chain additions for this platform +qppc_native_tools = vppapigen + +qppc_uses_dpdk = no + +qppc_debug_TAG_CFLAGS = -m64 -g -O0 -DCLIB_DEBUG -DCLIB_LOG2_CACHE_LINE_BYTES=6 -maltivec +qppc_debug_TAG_LDFLAGS = -m64 -g -O0 -DCLIB_DEBUG -DCLIB_LOG2_CACHE_LINE_BYTES=6 -maltivec + +qppc_TAG_CFLAGS = -m64 -g -O2 -DCLIB_LOG2_CACHE_LINE_BYTES=6 -maltivec +qppc_TAG_LDFLAGS = -m64 -g -O2 -DCLIB_LOG2_CACHE_LINE_BYTES=6 -maltivec + + diff --git a/vpp/build-data/platforms/thunder.mk b/vpp/build-data/platforms/thunder.mk new file mode 100644 index 00000000..f891f4a1 --- /dev/null +++ b/vpp/build-data/platforms/thunder.mk @@ -0,0 +1,36 @@ +# Override OS so we can use the sdk toolchain instead of building one +thunder_os = thunderx-linux-gnu + +# Override CROSS_LDFLAGS so we can use +# /lib/aarch64-linux-gnu/ld-linux-aarch64.so.1 instead of building glibc +thunder_cross_ldflags = \ + -Wl,--dynamic-linker=/lib/aarch64-linux-gnu/ld-linux-aarch64.so.1 \ + -Wl,-rpath -Wl,$(lots_of_slashes_to_pad_names)$(TOOL_INSTALL_LIB_DIR) + +thunder_arch = aarch64 +# suppress -march=foo, the cross compiler doesn't understand it +thunder_march = " " + +thunder_root_packages = vppinfra vlib-cavium-dpdk vnet-cavium-dpdk cavium-dpdk \ + vpp-cavium-dpdk vpp-api-test-cavium-dpdk + +vnet-cavium-dpdk_configure_args_thunder = \ + --with-dpdk --without-ipsec --without-ipv6sr + +vpp-cavium-dpdk_configure_args_thunder = \ + --with-dpdk --without-ipsec --without-ipv6sr + +cavium-dpdk_configure_args_thunder = --with-headroom=256 + +vlib-cavium-dpdk_configure_args_thunder = --with-pre-data=128 + +# native tool chain additions for this platform +thunder_native_tools = vppapigen + +thunder_debug_TAG_CFLAGS = -g -O0 -DCLIB_DEBUG +thunder_debug_TAG_LDFLAGS = -g -O0 -DCLIB_DEBUG + +thunder_TAG_CFLAGS = -g -O2 +thunder_TAG_LDFLAGS = -g -O2 + + diff --git a/vpp/build-data/platforms/vpp.mk b/vpp/build-data/platforms/vpp.mk new file mode 100644 index 00000000..15d4dc39 --- /dev/null +++ b/vpp/build-data/platforms/vpp.mk @@ -0,0 +1,68 @@ +# 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. + +# vector packet processor +vpp_arch = native +ifeq ($(shell uname -m),x86_64) +vpp_march = corei7 # Nehalem Instruction set +vpp_mtune = corei7-avx # Optimize for Sandy Bridge +vpp_dpdk_arch = corei7 +else +vpp_march = native +vpp_mtune = generic +vpp_dpdk_arch = native +endif +vpp_native_tools = vppapigen + +vpp_uses_dpdk = yes + +# Uncoment to enable building unit tests +# vpp_enable_tests = yes + +vpp_root_packages = vpp vlib vlib-api vnet svm vpp-api-test \ + vpp-api gmod plugins + +vpp_configure_args_vpp = --with-dpdk +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 + +plugins_configure_args_vpp = --with-dpdk + +# DPDK configuration parameters +# vpp_uses_dpdk_cryptodev = yes +# 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 +vpp_debug_TAG_LDFLAGS = -g -O0 -DCLIB_DEBUG -DFORTIFY_SOURCE=2 -march=$(MARCH) \ + -fstack-protector-all -fPIC -Werror + +vpp_TAG_CFLAGS = -g -O2 -DFORTIFY_SOURCE=2 -march=$(MARCH) -mtune=$(MTUNE) \ + -fstack-protector -fPIC -Werror +vpp_TAG_LDFLAGS = -g -O2 -DFORTIFY_SOURCE=2 -march=$(MARCH) -mtune=$(MTUNE) \ + -fstack-protector -fPIC -Werror + +vpp_clang_TAG_CFLAGS = -g -O2 -DFORTIFY_SOURCE=2 -march=$(MARCH) -mtune=$(MTUNE) \ + -fstack-protector -fPIC -Werror +vpp_clang_TAG_LDFLAGS = -g -O2 -DFORTIFY_SOURCE=2 -march=$(MARCH) -mtune=$(MTUNE) \ + -fstack-protector -fPIC -Werror + +vpp_gcov_TAG_CFLAGS = -g -O0 -DCLIB_DEBUG -march=$(MARCH) \ + -fPIC -Werror -fprofile-arcs -ftest-coverage +vpp_gcov_TAG_LDFLAGS = -g -O0 -DCLIB_DEBUG -march=$(MARCH) \ + -fPIC -Werror -coverage diff --git a/vpp/build-data/platforms/vpp_lite.mk b/vpp/build-data/platforms/vpp_lite.mk new file mode 100644 index 00000000..ef2ec444 --- /dev/null +++ b/vpp/build-data/platforms/vpp_lite.mk @@ -0,0 +1,51 @@ +# Copyright (c) 2016 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. + +# vector packet processor +vpp_lite_arch = native +ifeq ($(shell uname -m),x86_64) +vpp_lite_march = corei7 # Nehalem Instruction set +vpp_lite_mtune = corei7-avx # Optimize for Sandy Bridge +else +vpp_lite_march = native +vpp_lite_mtune = generic +endif +vpp_lite_native_tools = vppapigen + +vpp_lite_uses_dpdk = no + +# Uncoment to enable building unit tests +#vpp_lite_enable_tests = yes + +vpp_lite_root_packages = vpp vlib vlib-api vnet svm vpp-api-test \ + vpp-api gmod + +vlib_configure_args_vpp_lite = --with-pre-data=128 + +vnet_configure_args_vpp_lite = +vpp_configure_args_vpp_lite = + +vpp_lite_debug_TAG_CFLAGS = -g -O0 -DCLIB_DEBUG -DFORTIFY_SOURCE=2 -march=$(MARCH) \ + -fstack-protector-all -fPIC -Werror +vpp_lite_debug_TAG_LDFLAGS = -g -O0 -DCLIB_DEBUG -DFORTIFY_SOURCE=2 -march=$(MARCH) \ + -fstack-protector-all -fPIC -Werror + +vpp_lite_TAG_CFLAGS = -g -O2 -DFORTIFY_SOURCE=2 -march=$(MARCH) -mtune=$(MTUNE) \ + -fstack-protector -fPIC -Werror +vpp_lite_TAG_LDFLAGS = -g -O2 -DFORTIFY_SOURCE=2 -march=$(MARCH) -mtune=$(MTUNE) \ + -fstack-protector -fPIC -Werror + +vpp_lite_gcov_TAG_CFLAGS = -g -O0 -DCLIB_DEBUG -march=$(MARCH) \ + -fPIC -Werror -fprofile-arcs -ftest-coverage +vpp_lite_gcov_TAG_LDFLAGS = -g -O0 -DCLIB_DEBUG -march=$(MARCH) \ + -fPIC -Werror -coverage diff --git a/vpp/build-data/suffix-rules.mk b/vpp/build-data/suffix-rules.mk new file mode 100644 index 00000000..e3eeb922 --- /dev/null +++ b/vpp/build-data/suffix-rules.mk @@ -0,0 +1,27 @@ +# Copyright (c) 2016 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. + +# Shared suffix rules +# Please do not set "SUFFIXES = .api.h .api" here + +%.api.h: %.api + @echo " APIGEN " $@ ; \ + mkdir -p `dirname $@` ; \ + $(CC) $(CPPFLAGS) -E -P -C -x c $^ \ + | vppapigen --input - --output $@ --show-name $@ + +%.api.json: %.api + @echo " JSON APIGEN " $@ ; \ + mkdir -p `dirname $@` ; \ + $(CC) $(CPPFLAGS) -E -P -C -x c $^ \ + | vppapigen --input - --json $@ |