f-stack/dpdk/doc/guides/sample_app_ug/compiling.rst

109 lines
2.4 KiB
ReStructuredText

.. SPDX-License-Identifier: BSD-3-Clause
Copyright(c) 2015 Intel Corporation.
Compiling the Sample Applications
=================================
This section explains how to compile the DPDK sample applications.
To compile all the sample applications
--------------------------------------
Set the path to DPDK source code if its not set:
.. code-block:: console
export RTE_SDK=/path/to/rte_sdk
Go to DPDK source:
.. code-block:: console
cd $RTE_SDK
Build DPDK:
.. code-block:: console
make defconfig
make
Build the sample applications:
.. code-block:: console
export RTE_TARGET=build
make -C examples
For other possible ``RTE_TARGET`` values and additional information on
compiling see
:ref:`Compiling DPDK on Linux <linux_gsg_compiling_dpdk>` or
:ref:`Compiling DPDK on FreeBSD <building_from_source>`.
Applications are output to: ``$RTE_SDK/examples/app-dir/build`` or
``$RTE_SDK/examples/app-dir/$RTE_TARGET``.
In the example above the compiled application is written to the ``build`` subdirectory.
To have the applications written to a different location,
the ``O=/path/to/build/directory`` option may be specified in the make command.
.. code-block:: console
make O=/tmp
To build the applications for debugging use the ``DEBUG`` option.
This option adds some extra flags, disables compiler optimizations and
sets verbose output.
.. code-block:: console
make DEBUG=1
To compile a single application
-------------------------------
Set the path to DPDK source code:
.. code-block:: console
export RTE_SDK=/path/to/rte_sdk
Go to DPDK source:
.. code-block:: console
cd $RTE_SDK
Build DPDK:
.. code-block:: console
make defconfig
make
Go to the sample application directory. Unless otherwise specified the sample
applications are located in ``$RTE_SDK/examples/``.
Build the application:
.. code-block:: console
export RTE_TARGET=build
make
To cross compile the sample application(s)
------------------------------------------
For cross compiling the sample application(s), please append 'CROSS=$(CROSS_COMPILER_PREFIX)' to the 'make' command.
In example of AARCH64 cross compiling:
.. code-block:: console
export RTE_TARGET=build
export RTE_SDK=/path/to/rte_sdk
make -C examples CROSS=aarch64-linux-gnu-
or
make CROSS=aarch64-linux-gnu-