X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=docs%2Fdeveloper%2Fcorearchitecture%2Fbuildsystem%2Fbuildrootmakefile.rst;fp=docs%2Fgettingstarted%2Fdevelopers%2Fbuildsystem%2Fbuildrootmakefile.rst;h=1eb4e6b5301fe181fc122d6268bcbd7677554ec9;hb=9ad39c026c8a3c945a7003c4aa4f5cb1d4c80160;hp=84647d04b5a7b5526bd43528b567d36714afd39b;hpb=f47122e07e1ecd0151902a3cabe46c60a99bee8e;p=vpp.git diff --git a/docs/gettingstarted/developers/buildsystem/buildrootmakefile.rst b/docs/developer/corearchitecture/buildsystem/buildrootmakefile.rst similarity index 98% rename from docs/gettingstarted/developers/buildsystem/buildrootmakefile.rst rename to docs/developer/corearchitecture/buildsystem/buildrootmakefile.rst index 84647d04b5a..1eb4e6b5301 100644 --- a/docs/gettingstarted/developers/buildsystem/buildrootmakefile.rst +++ b/docs/developer/corearchitecture/buildsystem/buildrootmakefile.rst @@ -147,20 +147,20 @@ Here are the contents of .../build-data/platforms/vpp.mk: :: 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 @@ -168,17 +168,17 @@ Here are the contents of .../build-data/platforms/vpp.mk: # 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 \ @@ -234,18 +234,18 @@ following user-visible targets: +------------------+----------------------+--------------------------------------------------------------------------------------+ | 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 . 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 _root_packages, | | | | using compile / link options defined by TAG. | -+------------------+----------------------+--------------------------------------------------------------------------------------+ ++------------------+----------------------+--------------------------------------------------------------------------------------+ | install-rpm | PLATFORM and TAG | Build RPMs comprising components listed in _root_packages, | | | | using compile / link options defined by TAG. | -+------------------+----------------------+--------------------------------------------------------------------------------------+ ++------------------+----------------------+--------------------------------------------------------------------------------------+ Additional build-root/Makefile environment variable settings ------------------------------------------------------------ @@ -257,11 +257,11 @@ These variable settings may be of use: +======================+======================+=====================================================================================+ | 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 -------------------------- @@ -272,7 +272,7 @@ building a full toolchain: :: - # 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 @@ -320,25 +320,25 @@ Here are some of the important variable settings in per-component makefile fragm | | 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 @@ -350,4 +350,4 @@ dpdk_configure variable copies source code into $(PACKAGE_BUILD_DIR), 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.