summaryrefslogtreecommitdiff
path: root/doc/guides/sample_app_ug/compiling.rst
blob: 6f04743c822092aa032bfc8c9058d5638a3ae2f7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
..  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-