INSTALLING DPDK USING THE MESON BUILD SYSTEM
---------------------------------------------
-NOTE: Compiling and installing DPDK using ``meson`` and ``ninja``, rather
-than using ``make`` (GNU make) is EXPERIMENTAL. Official builds of DPDK
-should always be done using ``make``, as described in the ``Getting Started
-Guide`` documentation, and at "http://dpdk.org/doc/quick-start".
-
Summary
--------
For many platforms, compiling and installing DPDK should work using the
distributions this can be got using the local package management system,
e.g. ``dnf install meson`` or ``apt-get install meson``. If meson is not
available as a suitable package, it can also be installed using the Python
-3 ``pip`` tool, e.g. ``pip3 install meson``. Version 0.42 of meson is
-recommended - if the version packaged is too old, the latest version is
+3 ``pip`` tool, e.g. ``pip3 install meson``. Version 0.47.1 of meson is
+required - if the version packaged is too old, the latest version is
generally available from "pip".
The other dependency for building is the ``ninja`` tool, which acts similar
meson -Dmax_lcores=8 smallbuild # scale build for smaller systems
-Examples of setting the same options using meson configure::
+ meson -Denable_docs=true fullbuild # build and install docs
+
+ meson -Dmachine=default # use builder-independent baseline -march
+
+ meson -Ddisable_drivers=event/*,net/tap # disable tap driver and all
+ # eventdev PMDs for a smaller build
+
+Examples of setting some of the same options using meson configure::
meson configure -Dwerror=true
``ninja`` is called to do the build itself, it will trigger the necessary
re-scan from meson.
+NOTE: machine=default uses a config that works on all supported architectures
+regardless of the capabilities of the machine where the build is happening.
+
As well as those settings taken from ``meson configure``, other options
such as the compiler to use can be passed via environment variables. For
example::
Use ``ninja install`` to install the required DPDK files onto the system.
The install prefix defaults to ``/usr/local`` but can be used as with other
-options above. The environment variable ``DEST_DIR`` can be used to adjust
+options above. The environment variable ``DESTDIR`` can be used to adjust
the root directory for the install, for example when packaging.
With the base install directory, the individual directories for libraries
having to pass in ``-d /path/to/driver`` options for standard drivers.
+Cross Compiling DPDK
+--------------------
+
+To cross-compile DPDK on a desired target machine we can use the following
+command::
+
+ meson cross-build --cross-file <target_machine_configuration>
+
+For example if the target machine is arm64 we can use the following
+command::
+ meson arm-build --cross-file config/arm/arm64_armv8_linux_gcc
+
+where config/arm/arm64_armv8_linux_gcc contains settings for the compilers
+and other build tools to be used, as well as characteristics of the target
+machine.
+
Using the DPDK within an Application
-------------------------------------