::
MACHINE=$(shell uname -m)
-
+
vpp_arch = native
ifeq ($(TARGET_PLATFORM),thunderx)
vpp_dpdk_target = arm64-thunderx-linuxapp-gcc
endif
vpp_native_tools = vppapigen
-
+
vpp_uses_dpdk = yes
-
+
# Uncomment to enable building unit tests
# vpp_enable_tests = yes
-
+
vpp_root_packages = vpp
-
+
# DPDK configuration parameters
# vpp_uses_dpdk_mlx4_pmd = yes
# vpp_uses_dpdk_mlx5_pmd = yes
# vpp_dpdk_inc_dir = /usr/include/dpdk
# vpp_dpdk_lib_dir = /usr/lib
# vpp_dpdk_shared_lib = yes
-
+
# Use '--without-libnuma' for non-numa aware architecture
# Use '--enable-dlmalloc' to use dlmalloc instead of mheap
vpp_configure_args_vpp = --enable-dlmalloc
sample-plugin_configure_args_vpp = --enable-dlmalloc
-
+
# load balancer plugin is not portable on 32 bit platform
ifeq ($(MACHINE),i686)
vpp_configure_args_vpp += --disable-lb-plugin
endif
-
+
vpp_debug_TAG_CFLAGS = -g -O0 -DCLIB_DEBUG \
-fstack-protector-all -fPIC -Werror
vpp_debug_TAG_CXXFLAGS = -g -O0 -DCLIB_DEBUG \
+------------------+----------------------+--------------------------------------------------------------------------------------+
| bootstrap-tools | none | Builds the set of native tools needed by the vpp build system to |
| | | build images. Example: vppapigen. In a full cross compilation case might include |
-| | | include "make", "git", "find", and "tar |
-+------------------+----------------------+--------------------------------------------------------------------------------------+
+| | | include "make", "git", "find", and "tar |
++------------------+----------------------+--------------------------------------------------------------------------------------+
| install-tools | PLATFORM | Builds the tool chain for the indicated <platform>. Not used in vpp builds |
-+------------------+----------------------+--------------------------------------------------------------------------------------+
++------------------+----------------------+--------------------------------------------------------------------------------------+
| distclean | none | Roto-rooters everything in sight: toolchains, images, and so forth. |
-+------------------+----------------------+--------------------------------------------------------------------------------------+
++------------------+----------------------+--------------------------------------------------------------------------------------+
| install-deb | PLATFORM and TAG | Build Debian packages comprising components listed in <platform>_root_packages, |
| | | using compile / link options defined by TAG. |
-+------------------+----------------------+--------------------------------------------------------------------------------------+
++------------------+----------------------+--------------------------------------------------------------------------------------+
| install-rpm | PLATFORM and TAG | Build RPMs comprising components listed in <platform>_root_packages, |
| | | using compile / link options defined by TAG. |
-+------------------+----------------------+--------------------------------------------------------------------------------------+
++------------------+----------------------+--------------------------------------------------------------------------------------+
Additional build-root/Makefile environment variable settings
------------------------------------------------------------
+======================+======================+=====================================================================================+
| BUILD_DEBUG=vx | Directs Makefile et al. to make a good-faith effort to show what's going on in excruciating detail. |
| | Use it as follows: "make ... BUILD_DEBUG=vx". Fairly effective in Makefile debug situations. |
-+----------------------+------------------------------------------------------------------------------------------------------------+
++----------------------+------------------------------------------------------------------------------------------------------------+
| V=1 | print detailed cc / ld command lines. Useful for discovering if -DFOO=11 is in the command line or not |
-+----------------------+------------------------------------------------------------------------------------------------------------+
++----------------------+------------------------------------------------------------------------------------------------------------+
| CC=mygcc | Override the configured C-compiler |
-+----------------------+------------------------------------------------------------------------------------------------------------+
++----------------------+------------------------------------------------------------------------------------------------------------+
.../build-root/config.site
--------------------------
::
- # glibc needs these setting for cross compiling
+ # glibc needs these setting for cross compiling
libc_cv_forced_unwind=yes
libc_cv_c_cleanup=yes
libc_cv_ssp=no
| | configure this component until you've successfully built the indicated targets. Almost always, |
| | xxx_configure_depend will list a set of "yyy-install" targets. Note the pattern: |
| | "variable names contain underscores, make target names contain hyphens" |
-+----------------------+------------------------------------------------------------------------------------------------------------+
++----------------------+------------------------------------------------------------------------------------------------------------+
| xxx_configure_args | (optional) Lists any additional arguments to pass to the xxx component "configure" script. |
| | The main Makefile %-configure rule adds the required settings for --libdir, --prefix, and |
| | --host (when cross-compiling) |
-+----------------------+------------------------------------------------------------------------------------------------------------+
++----------------------+------------------------------------------------------------------------------------------------------------+
| xxx_CPPFLAGS | Adds -I stanzas to CPPFLAGS for components upon which xxx depends. |
| | Almost invariably "xxx_CPPFLAGS = $(call installed_includes_fn, dep1 dep2 dep3)", where dep1, dep2, and |
| | dep3 are listed in xxx_configure_depend. It is bad practice to set "-g -O3" here. Those settings |
| | belong in a TAG. |
-+----------------------+------------------------------------------------------------------------------------------------------------+
++----------------------+------------------------------------------------------------------------------------------------------------+
| xxx_LDFLAGS | Adds -Wl,-rpath -Wl,depN stanzas to LDFLAGS for components upon which xxx depends. |
| | Almost invariably "xxx_LDFLAGS = $(call installed_lib_fn, dep1 dep2 dep3)", where dep1, dep2, and |
| | dep3 are listed in xxx_configure_depend. It is bad manners to set "-liberty-or-death" here. |
| | Those settings belong in Makefile.am. |
-+----------------------+------------------------------------------------------------------------------------------------------------+
++----------------------+------------------------------------------------------------------------------------------------------------+
When dealing with "irritating" components built with raw Makefiles
which only work when building in the source tree, we use a specific
-strategy in the xxx.mk file.
+strategy in the xxx.mk file.
The strategy is simple for those components: We copy the source tree
into .../vpp/build-root/build-xxx. This works, but completely defeats
and performs the BSD equivalent of "autoreconf -i -f" to configure the
build area. The rest of the file is similar: a bunch of hand-rolled
glue code which manages to make the dpdk act like a good vpp build
-citizen even though it is not.
+citizen even though it is not.