X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Fwindows_gsg%2Fbuild_dpdk.rst;h=8083227ea465aeecef8c3b423758bd18e4ab16c6;hb=0f5ee447f5c5bc98d1ce9010ad7d22a270b0dd7e;hp=f48805236626e4d6f286a26e76d1ddc55d478793;hpb=196c650b8b63fc74f3c30d9be35fc0c8108abe8e;p=dpdk.git diff --git a/doc/guides/windows_gsg/build_dpdk.rst b/doc/guides/windows_gsg/build_dpdk.rst index f488052366..8083227ea4 100644 --- a/doc/guides/windows_gsg/build_dpdk.rst +++ b/doc/guides/windows_gsg/build_dpdk.rst @@ -7,15 +7,22 @@ Compiling the DPDK Target from Source System Requirements ------------------- -The DPDK and its applications require the Clang-LLVM C compiler -and Microsoft MSVC linker. +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 `_. @@ -25,7 +32,7 @@ For example, Clang-LLVM direct download link:: Install the Linker ------------------- +~~~~~~~~~~~~~~~~~~ Download and install the Build Tools for Visual Studio to link and build the files on windows, @@ -34,6 +41,20 @@ When installing build tools, select the "Visual C++ build tools" option and ensure the Windows SDK is selected. +Option 2. MinGW-w64 Toolchain +----------------------------- + +On Linux, i.e. for cross-compilation, install MinGW-w64 via a package manager. +Version 4.0.4 for Ubuntu 16.04 cannot be used due to a +`MinGW-w64 bug `_. + +On Windows, obtain the latest version installer from +`MinGW-w64 repository `_. +Any thread model (POSIX or Win32) can be chosen, DPDK does not rely on it. +Install to a folder without spaces in its name, like ``C:\MinGW``. +This path is assumed for the rest of this guide. + + Install the Build System ------------------------ @@ -43,6 +64,8 @@ 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.57.0 (baseline) or the latest release. + Install the Backend ------------------- @@ -56,26 +79,37 @@ Build the code The build environment is setup to build the EAL and the helloworld example by default. -Using the ninja backend -~~~~~~~~~~~~~~~~~~~~~~~~ +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 build - cd build - ninja + meson -Dexamples=helloworld build + ninja -C build -Run the helloworld example -========================== +Option 2. Cross-Compile with MinGW-w64 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Navigate to the build directory and run `dpdk-helloworld.exe`. +The cross-file option must be specified for Meson. +Depending on the distribution, paths in this file may need adjustments. .. code-block:: console - cd C:\Users\me\dpdk\build - helloworld.exe - hello from core 1 - hello from core 3 - hello from core 0 - hello from core 2 + meson --cross-file config/x86/cross-mingw -Dexamples=helloworld build + ninja -C build