-.. BSD LICENSE
- Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
- * Neither the name of Intel Corporation nor the names of its
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.. SPDX-License-Identifier: BSD-3-Clause
+ Copyright(c) 2010-2014 Intel Corporation.
.. _Development_Kit_Build_System:
A build directory is specific to a configuration that includes architecture + execution environment + toolchain.
It is possible to have several build directories sharing the same sources with different configurations.
-For instance, to create a new build directory called my_sdk_build_dir using the default configuration template config/defconfig_x86_64-linuxapp,
+For instance, to create a new build directory called my_sdk_build_dir using the default configuration template config/defconfig_x86_64-linux,
we use:
.. code-block:: console
cd ${RTE_SDK}
- make config T=x86_64-native-linuxapp-gcc O=my_sdk_build_dir
+ make config T=x86_64-native-linux-gcc O=my_sdk_build_dir
This creates a new my_sdk_build_dir directory. After that, we can compile by doing:
make O=my_sdk_build_dir
-The content of the my_sdk_build_dir is then:
-
-::
-
- -- .config # used configuration
-
- -- Makefile # wrapper that calls head Makefile
- # with $PWD as build directory
-
-
- -- build #All temporary files used during build
- +--app # process, including . o, .d, and .cmd files.
- | +-- test # For libraries, we have the .a file.
- | +-- test.o # For applications, we have the elf file.
- | `-- ...
- +-- lib
- +-- librte_eal
- | `-- ...
- +-- librte_mempool
- | +-- mempool-file1.o
- | +-- .mempool-file1.o.cmd
- | +-- .mempool-file1.o.d
- | +-- mempool-file2.o
- | +-- .mempool-file2.o.cmd
- | +-- .mempool-file2.o.d
- | `-- mempool.a
- `-- ...
-
- -- include # All include files installed by libraries
- +-- librte_mempool.h # and applications are located in this
- +-- rte_eal.h # directory. The installed files can depend
- +-- rte_spinlock.h # on configuration if needed (environment,
- +-- rte_atomic.h # architecture, ..)
- `-- \*.h ...
-
- -- lib # all compiled libraries are copied in this
- +-- librte_eal.a # directory
- +-- librte_mempool.a
- `-- \*.a ...
-
- -- app # All compiled applications are installed
- + --test # here. It includes the binary in elf format
-
Refer to
:ref:`Development Kit Root Makefile Help <Development_Kit_Root_Makefile_Help>`
for details about make commands that can be used from the root of DPDK.
.. code-block:: console
export RTE_SDK=/opt/DPDK
- export RTE_TARGET=x86_64-native-linuxapp-gcc
+ export RTE_TARGET=x86_64-native-linux-gcc
cd /path/to/my_app
For a new application, the user must create their own Makefile that includes some .mk files, such as
Misc
^^^^
-* rte.doc.mk: Documentation in the development kit framework
-
* rte.gnuconfigure.mk: Build an application that is configure-based.
* rte.subdir.mk: Build several directories in the development kit framework.
* RTE_TOOLCHAIN: Defines the toolchain (gcc , icc).
It is the same value as CONFIG_RTE_TOOLCHAIN but without the double-quotes around the string.
-* RTE_EXEC_ENV: Defines the executive environment (linuxapp).
+* RTE_EXEC_ENV: Defines the executive environment (linux).
It is the same value as CONFIG_RTE_EXEC_ENV but without the double-quotes around the string.
* RTE_KERNELDIR: This variable contains the absolute path to the kernel sources that will be used to compile the kernel modules.