summaryrefslogtreecommitdiffstats
path: root/src/spdk/dpdk/doc/guides/windows_gsg
diff options
context:
space:
mode:
Diffstat (limited to 'src/spdk/dpdk/doc/guides/windows_gsg')
-rw-r--r--src/spdk/dpdk/doc/guides/windows_gsg/build_dpdk.rst133
-rw-r--r--src/spdk/dpdk/doc/guides/windows_gsg/index.rst14
-rw-r--r--src/spdk/dpdk/doc/guides/windows_gsg/intro.rst20
3 files changed, 167 insertions, 0 deletions
diff --git a/src/spdk/dpdk/doc/guides/windows_gsg/build_dpdk.rst b/src/spdk/dpdk/doc/guides/windows_gsg/build_dpdk.rst
new file mode 100644
index 000000000..d46e84e3f
--- /dev/null
+++ b/src/spdk/dpdk/doc/guides/windows_gsg/build_dpdk.rst
@@ -0,0 +1,133 @@
+.. SPDX-License-Identifier: BSD-3-Clause
+ Copyright(c) 2019 Intel Corporation.
+
+Compiling the DPDK Target from Source
+=====================================
+
+System Requirements
+-------------------
+
+Building the DPDK and its applications requires one of the following
+environments:
+
+* The Clang-LLVM C compiler and Microsoft MSVC linker.
+* The MinGW-w64 toolchain (either native or cross).
+
+The Meson Build system is used to prepare the sources for compilation
+with the Ninja backend.
+The installation of these tools is covered in this section.
+
+
+Option 1. Clang-LLVM C Compiler and Microsoft MSVC Linker
+---------------------------------------------------------
+
+Install the Compiler
+~~~~~~~~~~~~~~~~~~~~
+
+Download and install the clang compiler from
+`LLVM website <http://releases.llvm.org/download.html>`_.
+For example, Clang-LLVM direct download link::
+
+ http://releases.llvm.org/7.0.1/LLVM-7.0.1-win64.exe
+
+
+Install the Linker
+~~~~~~~~~~~~~~~~~~
+
+Download and install the Build Tools for Visual Studio to link and build the
+files on windows,
+from `Microsoft website <https://visualstudio.microsoft.com/downloads>`_.
+When installing build tools, select the "Visual C++ build tools" option
+and ensure the Windows SDK is selected.
+
+
+Option 2. MinGW-w64 Toolchain
+-----------------------------
+
+Obtain the latest version from
+`MinGW-w64 website <http://mingw-w64.org/doku.php/download>`_.
+On Windows, install to a folder without spaces in its name, like ``C:\MinGW``.
+This path is assumed for the rest of this guide.
+
+Version 4.0.4 for Ubuntu 16.04 cannot be used due to a
+`MinGW-w64 bug <https://sourceforge.net/p/mingw-w64/bugs/562/>`_.
+
+
+Install the Build System
+------------------------
+
+Download and install the build system from
+`Meson website <http://mesonbuild.com/Getting-meson.html>`_.
+A good option to choose is the MSI installer for both meson and ninja together::
+
+ http://mesonbuild.com/Getting-meson.html#installing-meson-and-ninja-with-the-msi-installer%22
+
+Recommended version is either Meson 0.47.1 (baseline) or the latest release.
+
+Install the Backend
+-------------------
+
+If using Ninja, download and install the backend from
+`Ninja website <https://ninja-build.org/>`_ or
+install along with the meson build system.
+
+Build the code
+--------------
+
+The build environment is setup to build the EAL and the helloworld example by
+default.
+
+Option 1. Native Build on Windows
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+When using Clang-LLVM, specifying the compiler might be required to complete
+the meson command:
+
+.. code-block:: console
+
+ set CC=clang
+
+When using MinGW-w64, it is sufficient to have toolchain executables in PATH:
+
+.. code-block:: console
+
+ set PATH=C:\MinGW\mingw64\bin;%PATH%
+
+To compile the examples, the flag ``-Dexamples`` is required.
+
+.. code-block:: console
+
+ cd C:\Users\me\dpdk
+ meson -Dexamples=helloworld build
+ ninja -C build
+
+Option 2. Cross-Compile with MinGW-w64
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The cross-file option must be specified for Meson.
+Depending on the distribution, paths in this file may need adjustments.
+
+.. code-block:: console
+
+ meson --cross-file config/x86/meson_mingw.txt -Dexamples=helloworld build
+ ninja -C build
+
+
+Run the helloworld example
+==========================
+
+Navigate to the examples in the build directory and run `dpdk-helloworld.exe`.
+
+.. code-block:: console
+
+ cd C:\Users\me\dpdk\build\examples
+ dpdk-helloworld.exe
+ hello from core 1
+ hello from core 3
+ hello from core 0
+ hello from core 2
+
+Note for MinGW-w64: applications are linked to ``libwinpthread-1.dll``
+by default. To run the example, either add toolchain executables directory
+to the PATH or copy the library to the working directory.
+Alternatively, static linking may be used (mind the LGPLv2.1 license).
diff --git a/src/spdk/dpdk/doc/guides/windows_gsg/index.rst b/src/spdk/dpdk/doc/guides/windows_gsg/index.rst
new file mode 100644
index 000000000..d9b7990a8
--- /dev/null
+++ b/src/spdk/dpdk/doc/guides/windows_gsg/index.rst
@@ -0,0 +1,14 @@
+.. SPDX-License-Identifier: BSD-3-Clause
+ Copyright(c) 2019 Intel Corporation.
+
+.. _windows_gsg:
+
+Getting Started Guide for Windows
+=================================
+
+.. toctree::
+ :maxdepth: 2
+ :numbered:
+
+ intro
+ build_dpdk
diff --git a/src/spdk/dpdk/doc/guides/windows_gsg/intro.rst b/src/spdk/dpdk/doc/guides/windows_gsg/intro.rst
new file mode 100644
index 000000000..a0285732d
--- /dev/null
+++ b/src/spdk/dpdk/doc/guides/windows_gsg/intro.rst
@@ -0,0 +1,20 @@
+.. SPDX-License-Identifier: BSD-3-Clause
+ Copyright(c) 2019 Intel Corporation.
+
+Introduction
+============
+
+This document contains instructions for installing and configuring the Data
+Plane Development Kit (DPDK) software. The document describes how to compile
+and run a DPDK application in a Windows* OS application environment, without
+going deeply into detail.
+
+\*Other names and brands may be claimed as the property of others.
+
+Limitations
+===========
+
+DPDK for Windows is currently a work in progress. Not all DPDK source files
+compile. Support is being added in pieces so as to limit the overall scope
+of any individual patch series. The goal is to be able to run any DPDK
+application natively on Windows.