Some "make" usages are cleaned up in the documentation, and an inevitable deprecation warning is printed when using "make". ********************************************* NOTE: Lots of docs must be converted to meson build, configuration and installation layout, as soon as possible. Please HELP! A trick to find some affected docs: git grep -- -linux- doc ********************************************* It should be the final step before complete removal of the "make" build system in DPDK 20.11. Thomas Monjalon (4): doc: remove outdated guidelines for library addition doc: remove build instructions where unneeded doc: update build instructions in the Linux guide mk: add a paused deprecation warning before each build doc/guides/bbdevs/fpga_5gnr_fec.rst | 7 +- doc/guides/bbdevs/fpga_lte_fec.rst | 7 +- doc/guides/cryptodevs/virtio.rst | 9 +- .../virtio_user_for_container_networking.rst | 6 - doc/guides/linux_gsg/build_dpdk.rst | 66 +++-------- .../linux_gsg/nic_perf_intel_platform.rst | 8 +- doc/guides/nics/bnxt.rst | 30 +---- doc/guides/nics/build_and_test.rst | 43 +------ doc/guides/prog_guide/extend_dpdk.rst | 109 ------------------ doc/guides/testpmd_app_ug/build_app.rst | 26 ----- mk/rte.sdkconfig.mk | 5 - mk/rte.sdkroot.mk | 16 +++ 12 files changed, 49 insertions(+), 283 deletions(-) delete mode 100644 doc/guides/prog_guide/extend_dpdk.rst -- 2.26.2
There was a doc about how to extend DPDK by adding a library. It could have been useful but was never updated, so it is lacking a lot of explanations about doxygen, meson, versioning, maintainership, etc. Anyway such guidelines should fit in the contributors guide. Better to completely remove this obsolete document. Signed-off-by: Thomas Monjalon <thomas@monjalon.net> --- doc/guides/prog_guide/extend_dpdk.rst | 109 -------------------------- 1 file changed, 109 deletions(-) delete mode 100644 doc/guides/prog_guide/extend_dpdk.rst diff --git a/doc/guides/prog_guide/extend_dpdk.rst b/doc/guides/prog_guide/extend_dpdk.rst deleted file mode 100644 index a3b3d300b0..0000000000 --- a/doc/guides/prog_guide/extend_dpdk.rst +++ /dev/null @@ -1,109 +0,0 @@ -.. SPDX-License-Identifier: BSD-3-Clause - Copyright(c) 2010-2014 Intel Corporation. - -Extending the DPDK -========================= - -This chapter describes how a developer can extend the DPDK to provide a new library, -a new target, or support a new target. - -Example: Adding a New Library libfoo ------------------------------------- - -To add a new library to the DPDK, proceed as follows: - -#. Add a new configuration option: - - .. code-block:: bash - - for f in config/\*; do \ - echo CONFIG_RTE_LIBFOO=y >> $f; done - -#. Create a new directory with sources: - - .. code-block:: console - - mkdir ${RTE_SDK}/lib/libfoo - touch ${RTE_SDK}/lib/libfoo/foo.c - touch ${RTE_SDK}/lib/libfoo/foo.h - -#. Add a foo() function in libfoo. - - Definition is in foo.c: - - .. code-block:: c - - void foo(void) - { - } - - Declaration is in foo.h: - - .. code-block:: c - - extern void foo(void); - - -#. Update lib/Makefile: - - .. code-block:: console - - vi ${RTE_SDK}/lib/Makefile - # add: - # DIRS-$(CONFIG_RTE_LIBFOO) += libfoo - -#. Create a new Makefile for this library, for example, derived from mempool Makefile: - - .. code-block:: console - - cp ${RTE_SDK}/lib/librte_mempool/Makefile ${RTE_SDK}/lib/libfoo/ - - vi ${RTE_SDK}/lib/libfoo/Makefile - # replace: - # librte_mempool -> libfoo - # rte_mempool -> foo - - -#. Update mk/DPDK.app.mk, and add -lfoo in LDLIBS variable when the option is enabled. - This will automatically add this flag when linking a DPDK application. - - -#. Build the DPDK with the new library (we only show a specific target here): - - .. code-block:: console - - cd ${RTE_SDK} - make config T=x86_64-native-linux-gcc - make - - -#. Check that the library is installed: - - .. code-block:: console - - ls build/lib - ls build/include - -Example: Using libfoo in the Test Application -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The test application is used to validate all functionality of the DPDK. -Once you have added a library, a new test case should be added in the test application. - -* A new test_foo.c file should be added, that includes foo.h and calls the foo() function from test_foo(). - When the test passes, the test_foo() function should return 0. - -* Makefile, test.h and commands.c must be updated also, to handle the new test case. - -* Test report generation: autotest.py is a script that is used to generate the test report that is available in the - ${RTE_SDK}/doc/rst/test_report/autotests directory. This script must be updated also. - If libfoo is in a new test family, the links in ${RTE_SDK}/doc/rst/test_report/test_report.rst must be updated. - -* Build the DPDK with the updated test application (we only show a specific target here): - - - .. code-block:: console - - cd ${RTE_SDK} - make config T=x86_64-native-linux-gcc - make -- 2.26.2
The build should be described only in few places, in order to maintain up-to-date, accurate and detailed instructions. This change is removing some of the unneeded repetitions. Signed-off-by: Thomas Monjalon <thomas@monjalon.net> --- doc/guides/bbdevs/fpga_5gnr_fec.rst | 7 +-- doc/guides/bbdevs/fpga_lte_fec.rst | 7 +-- doc/guides/cryptodevs/virtio.rst | 9 +--- .../virtio_user_for_container_networking.rst | 6 --- .../linux_gsg/nic_perf_intel_platform.rst | 8 +--- doc/guides/nics/bnxt.rst | 30 +++---------- doc/guides/nics/build_and_test.rst | 43 +++---------------- doc/guides/testpmd_app_ug/build_app.rst | 26 ----------- 8 files changed, 15 insertions(+), 121 deletions(-) diff --git a/doc/guides/bbdevs/fpga_5gnr_fec.rst b/doc/guides/bbdevs/fpga_5gnr_fec.rst index 19bba3661f..d5dcd3d765 100644 --- a/doc/guides/bbdevs/fpga_5gnr_fec.rst +++ b/doc/guides/bbdevs/fpga_5gnr_fec.rst @@ -54,12 +54,7 @@ Installation Section 3 of the DPDK manual provides instuctions on installing and compiling DPDK. The default set of bbdev compile flags may be found in config/common_base, where for example the flag to build the FPGA 5GNR FEC device, ``CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_5GNR_FEC``, -is already set. It is assumed DPDK has been compiled using for instance: - -.. code-block:: console - - make install T=x86_64-native-linuxapp-gcc - +is already set. DPDK requires hugepages to be configured as detailed in section 2 of the DPDK manual. The bbdev test application has been tested with a configuration 40 x 1GB hugepages. The diff --git a/doc/guides/bbdevs/fpga_lte_fec.rst b/doc/guides/bbdevs/fpga_lte_fec.rst index 206b6f4f9b..191e89fcef 100644 --- a/doc/guides/bbdevs/fpga_lte_fec.rst +++ b/doc/guides/bbdevs/fpga_lte_fec.rst @@ -53,12 +53,7 @@ Installation Section 3 of the DPDK manual provides instuctions on installing and compiling DPDK. The default set of bbdev compile flags may be found in config/common_base, where for example the flag to build the FPGA LTE FEC device, ``CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_LTE_FEC``, is already -set. It is assumed DPDK has been compiled using for instance: - -.. code-block:: console - - make install T=x86_64-native-linuxapp-gcc - +set. DPDK requires hugepages to be configured as detailed in section 2 of the DPDK manual. The bbdev test application has been tested with a configuration 40 x 1GB hugepages. The diff --git a/doc/guides/cryptodevs/virtio.rst b/doc/guides/cryptodevs/virtio.rst index 1496ec9208..2c46bda866 100644 --- a/doc/guides/cryptodevs/virtio.rst +++ b/doc/guides/cryptodevs/virtio.rst @@ -73,14 +73,7 @@ number of the virtio-crypto device: echo -n 0000:00:04.0 > /sys/bus/pci/drivers/virtio-pci/unbind echo "1af4 1054" > /sys/bus/pci/drivers/uio_pci_generic/new_id -Finally the front-end virtio crypto PMD driver can be installed: - -.. code-block:: console - - cd to the top-level DPDK directory - sed -i 's,\(CONFIG_RTE_LIBRTE_PMD_VIRTIO_CRYPTO\)=n,\1=y,' config/common_base - make config T=x86_64-native-linux-gcc - make install T=x86_64-native-linux-gcc +Finally the front-end virtio crypto PMD driver can be installed. Tests ----- diff --git a/doc/guides/howto/virtio_user_for_container_networking.rst b/doc/guides/howto/virtio_user_for_container_networking.rst index f31d918bcd..412b29664b 100644 --- a/doc/guides/howto/virtio_user_for_container_networking.rst +++ b/doc/guides/howto/virtio_user_for_container_networking.rst @@ -56,12 +56,6 @@ Sample Usage Here we use Docker as container engine. It also applies to LXC, Rocket with some minor changes. -#. Compile DPDK. - - .. code-block:: console - - make install RTE_SDK=`pwd` T=x86_64-native-linux-gcc - #. Write a Dockerfile like below. .. code-block:: console diff --git a/doc/guides/linux_gsg/nic_perf_intel_platform.rst b/doc/guides/linux_gsg/nic_perf_intel_platform.rst index 1dabbce244..08be5d58b9 100644 --- a/doc/guides/linux_gsg/nic_perf_intel_platform.rst +++ b/doc/guides/linux_gsg/nic_perf_intel_platform.rst @@ -124,17 +124,11 @@ The following are some recommendations on GRUB boot settings: Configurations before running DPDK ---------------------------------- -1. Build the DPDK target and reserve huge pages. +1. Reserve huge pages. See the earlier section on :ref:`linux_gsg_hugepages` for more details. - The following shell commands may help with building and configuration: - .. code-block:: console - # Build DPDK target. - cd dpdk_folder - make install T=x86_64-native-linux-gcc -j - # Get the hugepage size. awk '/Hugepagesize/ {print $2}' /proc/meminfo diff --git a/doc/guides/nics/bnxt.rst b/doc/guides/nics/bnxt.rst index ed650187e0..a53cdad21d 100644 --- a/doc/guides/nics/bnxt.rst +++ b/doc/guides/nics/bnxt.rst @@ -56,33 +56,15 @@ The BNXT PMD supports operating with: * Linux igb_uio * BSD nic_uio -Compiling BNXT PMD ------------------- - -To compile the BNXT PMD: - -.. code-block:: console - - make config T=x86_64-native-linux-gcc && make // for x86-64 - make config T=x86_32-native-linux-gcc && make // for x86-32 - make config T=armv8a-linux-gcc && make // for ARMv8 - -Bind the device to one of the kernel modules listed above - -.. code-block:: console - - ./dpdk-devbind.py -b vfio-pci|igb_uio|uio_pci_generic bus_id:device_id.function_id - -Load an application (e.g. testpmd) with a default configuration (e.g. a single -TX /RX queue): - -.. code-block:: console - - ./testpmd -c 0xF -n 4 -- -i --portmask=0x1 --nb-cores=2 - Running BNXT PMD ---------------- +Bind the device to one of the kernel modules listed above + +.. code-block:: console + + ./dpdk-devbind.py -b vfio-pci|igb_uio|uio_pci_generic bus_id:device_id.function_id + The BNXT PMD can run on PF or VF. PCI-SIG Single Root I/O Virtualization (SR-IOV) involves the direct assignment diff --git a/doc/guides/nics/build_and_test.rst b/doc/guides/nics/build_and_test.rst index f99e019ff3..3138c0f880 100644 --- a/doc/guides/nics/build_and_test.rst +++ b/doc/guides/nics/build_and_test.rst @@ -19,45 +19,12 @@ information on how to build and run testpmd. Driver Compilation ------------------ -To compile a PMD for a platform, run make with appropriate target as shown below. -Use "make" command in Linux and "gmake" in FreeBSD. This will also build testpmd. +To compile a PMD for a platform, build DPDK +as described in the "Getting Started Guide" for your platform. +This will also build testpmd. -To check available targets: - -.. code-block:: console - - cd <DPDK-source-directory> - make showconfigs - -Example output: - -.. code-block:: console - - arm-armv7a-linux-gcc - arm64-armv8a-linux-gcc - arm64-dpaa-linux-gcc - arm64-thunderx-linux-gcc - arm64-xgene1-linux-gcc - i686-native-linux-gcc - i686-native-linux-icc - ppc_64-power8-linux-gcc - x86_64-native-freebsd-clang - x86_64-native-freebsd-gcc - x86_64-native-linux-clang - x86_64-native-linux-gcc - x86_64-native-linux-icc - x86_x32-native-linux-gcc - -To compile a PMD for Linux x86_64 gcc target, run the following "make" command: - -.. code-block:: console - - make install T=x86_64-native-linux-gcc - -Use ARM (ThunderX, DPAA, X-Gene) or PowerPC target for respective platform. - -For more information, refer to the :ref:`Getting Started Guide for Linux <linux_gsg>` -or :ref:`Getting Started Guide for FreeBSD <freebsd_gsg>` depending on your platform. +Detailed instructions are available +in the :doc:`meson build guide <../prog_guide/build-sdk-meson>`. Running testpmd in Linux ------------------------ diff --git a/doc/guides/testpmd_app_ug/build_app.rst b/doc/guides/testpmd_app_ug/build_app.rst index d1ca9f3d19..4d08db75b5 100644 --- a/doc/guides/testpmd_app_ug/build_app.rst +++ b/doc/guides/testpmd_app_ug/build_app.rst @@ -6,29 +6,3 @@ Compiling the Application The ``testpmd`` application is compiled as part of the main compilation of the DPDK libraries and tools. Refer to the DPDK Getting Started Guides for details. -The basic compilation steps are: - -#. Set the required environmental variables and go to the source directory: - - .. code-block:: console - - export RTE_SDK=/path/to/rte_sdk - cd $RTE_SDK - -#. Set the compilation target. For example: - - .. code-block:: console - - export RTE_TARGET=x86_64-native-linux-gcc - -#. Build the application: - - .. code-block:: console - - make install T=$RTE_TARGET - - The compiled application will be located at: - - .. code-block:: console - - $RTE_SDK/$RTE_TARGET/app/testpmd -- 2.26.2
Before removing the "make" build system completely, the Linux guide instructions are made more concise and accurate. Some detailed explanations are also available in doc/guides/prog_guide/dev_kit_root_make_help.rst This is the swan song for makefile system, in order to have accurate information backported in LTS. Cc: stable@dpdk.org Signed-off-by: Thomas Monjalon <thomas@monjalon.net> --- doc/guides/linux_gsg/build_dpdk.rst | 66 ++++++++--------------------- 1 file changed, 18 insertions(+), 48 deletions(-) diff --git a/doc/guides/linux_gsg/build_dpdk.rst b/doc/guides/linux_gsg/build_dpdk.rst index 4aeb4697d9..c536e354ef 100644 --- a/doc/guides/linux_gsg/build_dpdk.rst +++ b/doc/guides/linux_gsg/build_dpdk.rst @@ -167,60 +167,32 @@ Installation of DPDK Target Environment using Make is therefore recommended that DPDK installation is done using meson and ninja as described above. -The format of a DPDK target is:: +Get a native target environment automatically:: - ARCH-MACHINE-EXECENV-TOOLCHAIN - -where: - -* ``ARCH`` can be: ``i686``, ``x86_64``, ``ppc_64``, ``arm64`` - -* ``MACHINE`` can be: ``native``, ``power8``, ``armv8a`` - -* ``EXECENV`` can be: ``linux``, ``freebsd`` - -* ``TOOLCHAIN`` can be: ``gcc``, ``icc`` - -The targets to be installed depend on the 32-bit and/or 64-bit packages and compilers installed on the host. -Available targets can be found in the DPDK/config directory. -The defconfig\_ prefix should not be used. + make defconfig O=mybuild .. note:: - Configuration files are provided with the ``RTE_MACHINE`` optimization level set. Within the configuration files, the ``RTE_MACHINE`` configuration value is set to native, which means that the compiled software is tuned for the platform on which it is built. - For more information on this setting, and its possible values, see the *DPDK Programmers Guide*. -When using the Intel® C++ Compiler (icc), one of the following commands should be invoked for 64-bit or 32-bit use respectively. -Notice that the shell scripts update the ``$PATH`` variable and therefore should not be performed in the same session. -Also, verify the compiler's installation directory since the path may be different: +Or get a specific target environment:: -.. code-block:: console + make config T=x86_64-native-linux-gcc O=mybuild - source /opt/intel/bin/iccvars.sh intel64 - source /opt/intel/bin/iccvars.sh ia32 +The format of a DPDK target is "ARCH-MACHINE-EXECENV-TOOLCHAIN". +Available targets can be found with:: -To install and make targets, use the ``make install T=<target>`` command in the top-level DPDK directory. + make help -For example, to compile a 64-bit target using icc, run: +Customize the target configuration in the generated ``.config`` file. +Example for enabling the pcap PMD:: -.. code-block:: console + sed -ri 's,(PMD_PCAP=).*,\1y,' mybuild/.config - make install T=x86_64-native-linux-icc +Compile the target:: -To compile a 32-bit build using gcc, the make command should be: - -.. code-block:: console - - make install T=i686-native-linux-gcc - -To prepare a target without building it, for example, if the configuration changes need to be made before compilation, -use the ``make config T=<target>`` command: - -.. code-block:: console - - make config T=x86_64-native-linux-gcc + make -j4 O=mybuild .. warning:: @@ -229,15 +201,13 @@ use the ``make config T=<target>`` command: If the DPDK is not being built on the target machine, the ``RTE_KERNELDIR`` environment variable should be used to point the compilation at a copy of the kernel version to be used on the target machine. -Once the target environment is created, the user may move to the target environment directory and continue to make code changes and re-compile. -The user may also make modifications to the compile-time DPDK configuration by editing the .config file in the build directory. -(This is a build-local copy of the defconfig file from the top- level config directory). +Install the target in a separate directory:: -.. code-block:: console + make install O=mybuild DESTDIR=myinstall prefix= - cd x86_64-native-linux-gcc - vi .config - make +The environment is ready to build a DPDK application:: + + RTE_SDK=$(pwd)/myinstall/share/dpdk RTE_TARGET=x86_64-native-linux-gcc make -C myapp In addition, the make clean command can be used to remove any existing compiled files for a subsequent full, clean rebuild of the code. @@ -245,5 +215,5 @@ Browsing the Installed DPDK Environment Target ---------------------------------------------- Once a target is created it contains all libraries, including poll-mode drivers, and header files for the DPDK environment that are required to build customer applications. -In addition, the test and testpmd applications are built under the build/app directory, which may be used for testing. +In addition, the test applications are built under the app directory, which may be used for testing. A kmod directory is also present that contains kernel modules which may be loaded if needed. -- 2.26.2
DPDK 20.05 had some deprecation notes after "make config" and after the build. For DPDK 20.08, the config note is replaced with a warning before the config and before the build. After the warning, there is a pause which can be skipped with the variable MAKE_PAUSE. This deprecation process was discussed in the Technical Board: http://mails.dpdk.org/archives/dev/2020-April/162839.html Signed-off-by: Thomas Monjalon <thomas@monjalon.net> --- mk/rte.sdkconfig.mk | 5 ----- mk/rte.sdkroot.mk | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/mk/rte.sdkconfig.mk b/mk/rte.sdkconfig.mk index 2ea85e4643..f538649f22 100644 --- a/mk/rte.sdkconfig.mk +++ b/mk/rte.sdkconfig.mk @@ -62,11 +62,6 @@ else config: $(RTE_OUTPUT)/include/rte_config.h $(RTE_OUTPUT)/Makefile @echo "Configuration done using" \ $(patsubst defconfig_%,%,$(notdir $(RTE_CONFIG_TEMPLATE))) - @echo "==== NOTE ====" - @echo "It is recommended to build DPDK using 'meson' and 'ninja'" - @echo "See https://doc.dpdk.org/guides/linux_gsg/build_dpdk.html for instructions" - @echo "Building DPDK with 'make' will be deprecated in a future release" - @echo "==============" endif $(RTE_OUTPUT): diff --git a/mk/rte.sdkroot.mk b/mk/rte.sdkroot.mk index 4043a9d4e8..d3b9cdd048 100644 --- a/mk/rte.sdkroot.mk +++ b/mk/rte.sdkroot.mk @@ -60,7 +60,22 @@ export ROOTDIRS-y ROOTDIRS- ROOTDIRS-n .PHONY: default test-build default test-build: all +.PHONY: warning +warning: + @echo + @echo "=========================== WARNING ============================" + @echo "It is recommended to build DPDK using 'meson' and 'ninja'" + @echo "See https://doc.dpdk.org/guides/linux_gsg/build_dpdk.html" + @echo "Building DPDK with 'make' will be deprecated in a future release" + @echo "================================================================" + @echo + @test "$(MAKE_PAUSE)" = n || ( \ + echo "This deprecation warning can be passed by adding MAKE_PAUSE=n"; \ + echo "to 'make' command line or as an exported environment variable."; \ + echo "Press enter to continue..."; read) + .PHONY: config defconfig showconfigs showversion showversionum +config: warning config defconfig showconfigs showversion showversionum: $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkconfig.mk $@ @@ -96,4 +111,5 @@ examples examples_clean: # all other build targets %: $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkconfig.mk checkconfig + $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkroot.mk warning $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkbuild.mk $@ -- 2.26.2
On Wed, Jun 17, 2020 at 5:42 PM Thomas Monjalon <thomas@monjalon.net> wrote: > The build should be described only in few places, > in order to maintain up-to-date, accurate and detailed instructions. > This change is removing some of the unneeded repetitions. > > Signed-off-by: Thomas Monjalon <thomas@monjalon.net> > For the Broadcom PMD part - Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com> > --- > doc/guides/bbdevs/fpga_5gnr_fec.rst | 7 +-- > doc/guides/bbdevs/fpga_lte_fec.rst | 7 +-- > doc/guides/cryptodevs/virtio.rst | 9 +--- > .../virtio_user_for_container_networking.rst | 6 --- > .../linux_gsg/nic_perf_intel_platform.rst | 8 +--- > doc/guides/nics/bnxt.rst | 30 +++---------- > doc/guides/nics/build_and_test.rst | 43 +++---------------- > doc/guides/testpmd_app_ug/build_app.rst | 26 ----------- > 8 files changed, 15 insertions(+), 121 deletions(-) > > diff --git a/doc/guides/bbdevs/fpga_5gnr_fec.rst > b/doc/guides/bbdevs/fpga_5gnr_fec.rst > index 19bba3661f..d5dcd3d765 100644 > --- a/doc/guides/bbdevs/fpga_5gnr_fec.rst > +++ b/doc/guides/bbdevs/fpga_5gnr_fec.rst > @@ -54,12 +54,7 @@ Installation > Section 3 of the DPDK manual provides instuctions on installing and > compiling DPDK. The > default set of bbdev compile flags may be found in config/common_base, > where for example > the flag to build the FPGA 5GNR FEC device, > ``CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_5GNR_FEC``, > -is already set. It is assumed DPDK has been compiled using for instance: > - > -.. code-block:: console > - > - make install T=x86_64-native-linuxapp-gcc > - > +is already set. > > DPDK requires hugepages to be configured as detailed in section 2 of the > DPDK manual. > The bbdev test application has been tested with a configuration 40 x 1GB > hugepages. The > diff --git a/doc/guides/bbdevs/fpga_lte_fec.rst > b/doc/guides/bbdevs/fpga_lte_fec.rst > index 206b6f4f9b..191e89fcef 100644 > --- a/doc/guides/bbdevs/fpga_lte_fec.rst > +++ b/doc/guides/bbdevs/fpga_lte_fec.rst > @@ -53,12 +53,7 @@ Installation > Section 3 of the DPDK manual provides instuctions on installing and > compiling DPDK. The > default set of bbdev compile flags may be found in config/common_base, > where for example > the flag to build the FPGA LTE FEC device, > ``CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_LTE_FEC``, is already > -set. It is assumed DPDK has been compiled using for instance: > - > -.. code-block:: console > - > - make install T=x86_64-native-linuxapp-gcc > - > +set. > > DPDK requires hugepages to be configured as detailed in section 2 of the > DPDK manual. > The bbdev test application has been tested with a configuration 40 x 1GB > hugepages. The > diff --git a/doc/guides/cryptodevs/virtio.rst > b/doc/guides/cryptodevs/virtio.rst > index 1496ec9208..2c46bda866 100644 > --- a/doc/guides/cryptodevs/virtio.rst > +++ b/doc/guides/cryptodevs/virtio.rst > @@ -73,14 +73,7 @@ number of the virtio-crypto device: > echo -n 0000:00:04.0 > /sys/bus/pci/drivers/virtio-pci/unbind > echo "1af4 1054" > /sys/bus/pci/drivers/uio_pci_generic/new_id > > -Finally the front-end virtio crypto PMD driver can be installed: > - > -.. code-block:: console > - > - cd to the top-level DPDK directory > - sed -i 's,\(CONFIG_RTE_LIBRTE_PMD_VIRTIO_CRYPTO\)=n,\1=y,' > config/common_base > - make config T=x86_64-native-linux-gcc > - make install T=x86_64-native-linux-gcc > +Finally the front-end virtio crypto PMD driver can be installed. > > Tests > ----- > diff --git a/doc/guides/howto/virtio_user_for_container_networking.rst > b/doc/guides/howto/virtio_user_for_container_networking.rst > index f31d918bcd..412b29664b 100644 > --- a/doc/guides/howto/virtio_user_for_container_networking.rst > +++ b/doc/guides/howto/virtio_user_for_container_networking.rst > @@ -56,12 +56,6 @@ Sample Usage > Here we use Docker as container engine. It also applies to LXC, Rocket > with > some minor changes. > > -#. Compile DPDK. > - > - .. code-block:: console > - > - make install RTE_SDK=`pwd` T=x86_64-native-linux-gcc > - > #. Write a Dockerfile like below. > > .. code-block:: console > diff --git a/doc/guides/linux_gsg/nic_perf_intel_platform.rst > b/doc/guides/linux_gsg/nic_perf_intel_platform.rst > index 1dabbce244..08be5d58b9 100644 > --- a/doc/guides/linux_gsg/nic_perf_intel_platform.rst > +++ b/doc/guides/linux_gsg/nic_perf_intel_platform.rst > @@ -124,17 +124,11 @@ The following are some recommendations on GRUB boot > settings: > Configurations before running DPDK > ---------------------------------- > > -1. Build the DPDK target and reserve huge pages. > +1. Reserve huge pages. > See the earlier section on :ref:`linux_gsg_hugepages` for more details. > > - The following shell commands may help with building and configuration: > - > .. code-block:: console > > - # Build DPDK target. > - cd dpdk_folder > - make install T=x86_64-native-linux-gcc -j > - > # Get the hugepage size. > awk '/Hugepagesize/ {print $2}' /proc/meminfo > > diff --git a/doc/guides/nics/bnxt.rst b/doc/guides/nics/bnxt.rst > index ed650187e0..a53cdad21d 100644 > --- a/doc/guides/nics/bnxt.rst > +++ b/doc/guides/nics/bnxt.rst > @@ -56,33 +56,15 @@ The BNXT PMD supports operating with: > * Linux igb_uio > * BSD nic_uio > > -Compiling BNXT PMD > ------------------- > - > -To compile the BNXT PMD: > - > -.. code-block:: console > - > - make config T=x86_64-native-linux-gcc && make // for x86-64 > - make config T=x86_32-native-linux-gcc && make // for x86-32 > - make config T=armv8a-linux-gcc && make // for ARMv8 > - > -Bind the device to one of the kernel modules listed above > - > -.. code-block:: console > - > - ./dpdk-devbind.py -b vfio-pci|igb_uio|uio_pci_generic > bus_id:device_id.function_id > - > -Load an application (e.g. testpmd) with a default configuration (e.g. a > single > -TX /RX queue): > - > -.. code-block:: console > - > - ./testpmd -c 0xF -n 4 -- -i --portmask=0x1 --nb-cores=2 > - > Running BNXT PMD > ---------------- > > +Bind the device to one of the kernel modules listed above > + > +.. code-block:: console > + > + ./dpdk-devbind.py -b vfio-pci|igb_uio|uio_pci_generic > bus_id:device_id.function_id > + > The BNXT PMD can run on PF or VF. > > PCI-SIG Single Root I/O Virtualization (SR-IOV) involves the direct > assignment > diff --git a/doc/guides/nics/build_and_test.rst > b/doc/guides/nics/build_and_test.rst > index f99e019ff3..3138c0f880 100644 > --- a/doc/guides/nics/build_and_test.rst > +++ b/doc/guides/nics/build_and_test.rst > @@ -19,45 +19,12 @@ information on how to build and run testpmd. > Driver Compilation > ------------------ > > -To compile a PMD for a platform, run make with appropriate target as > shown below. > -Use "make" command in Linux and "gmake" in FreeBSD. This will also build > testpmd. > +To compile a PMD for a platform, build DPDK > +as described in the "Getting Started Guide" for your platform. > +This will also build testpmd. > > -To check available targets: > - > -.. code-block:: console > - > - cd <DPDK-source-directory> > - make showconfigs > - > -Example output: > - > -.. code-block:: console > - > - arm-armv7a-linux-gcc > - arm64-armv8a-linux-gcc > - arm64-dpaa-linux-gcc > - arm64-thunderx-linux-gcc > - arm64-xgene1-linux-gcc > - i686-native-linux-gcc > - i686-native-linux-icc > - ppc_64-power8-linux-gcc > - x86_64-native-freebsd-clang > - x86_64-native-freebsd-gcc > - x86_64-native-linux-clang > - x86_64-native-linux-gcc > - x86_64-native-linux-icc > - x86_x32-native-linux-gcc > - > -To compile a PMD for Linux x86_64 gcc target, run the following "make" > command: > - > -.. code-block:: console > - > - make install T=x86_64-native-linux-gcc > - > -Use ARM (ThunderX, DPAA, X-Gene) or PowerPC target for respective > platform. > - > -For more information, refer to the :ref:`Getting Started Guide for Linux > <linux_gsg>` > -or :ref:`Getting Started Guide for FreeBSD <freebsd_gsg>` depending on > your platform. > +Detailed instructions are available > +in the :doc:`meson build guide <../prog_guide/build-sdk-meson>`. > > Running testpmd in Linux > ------------------------ > diff --git a/doc/guides/testpmd_app_ug/build_app.rst > b/doc/guides/testpmd_app_ug/build_app.rst > index d1ca9f3d19..4d08db75b5 100644 > --- a/doc/guides/testpmd_app_ug/build_app.rst > +++ b/doc/guides/testpmd_app_ug/build_app.rst > @@ -6,29 +6,3 @@ Compiling the Application > > The ``testpmd`` application is compiled as part of the main compilation > of the DPDK libraries and tools. > Refer to the DPDK Getting Started Guides for details. > -The basic compilation steps are: > - > -#. Set the required environmental variables and go to the source > directory: > - > - .. code-block:: console > - > - export RTE_SDK=/path/to/rte_sdk > - cd $RTE_SDK > - > -#. Set the compilation target. For example: > - > - .. code-block:: console > - > - export RTE_TARGET=x86_64-native-linux-gcc > - > -#. Build the application: > - > - .. code-block:: console > - > - make install T=$RTE_TARGET > - > - The compiled application will be located at: > - > - .. code-block:: console > - > - $RTE_SDK/$RTE_TARGET/app/testpmd > -- > 2.26.2 > >
On Thu, 18 Jun 2020 02:42:14 +0200
Thomas Monjalon <thomas@monjalon.net> wrote:
> Some "make" usages are cleaned up in the documentation,
> and an inevitable deprecation warning is printed when using "make".
>
>
> *********************************************
> NOTE: Lots of docs must be converted to meson
> build, configuration and installation layout,
> as soon as possible. Please HELP!
>
> A trick to find some affected docs:
> git grep -- -linux- doc
> *********************************************
>
>
> It should be the final step before complete removal
> of the "make" build system in DPDK 20.11.
>
>
> Thomas Monjalon (4):
> doc: remove outdated guidelines for library addition
> doc: remove build instructions where unneeded
> doc: update build instructions in the Linux guide
> mk: add a paused deprecation warning before each build
>
> doc/guides/bbdevs/fpga_5gnr_fec.rst | 7 +-
> doc/guides/bbdevs/fpga_lte_fec.rst | 7 +-
> doc/guides/cryptodevs/virtio.rst | 9 +-
> .../virtio_user_for_container_networking.rst | 6 -
> doc/guides/linux_gsg/build_dpdk.rst | 66 +++--------
> .../linux_gsg/nic_perf_intel_platform.rst | 8 +-
> doc/guides/nics/bnxt.rst | 30 +----
> doc/guides/nics/build_and_test.rst | 43 +------
> doc/guides/prog_guide/extend_dpdk.rst | 109 ------------------
> doc/guides/testpmd_app_ug/build_app.rst | 26 -----
> mk/rte.sdkconfig.mk | 5 -
> mk/rte.sdkroot.mk | 16 +++
> 12 files changed, 49 insertions(+), 283 deletions(-)
> delete mode 100644 doc/guides/prog_guide/extend_dpdk.rst
>
It would help if a document described how application using old mk
files could be converted. Maybe using some standard open source project
that is stuck on mk.
From: Thomas Monjalon > The build should be described only in few places, in order to maintain up-to- > date, accurate and detailed instructions. > This change is removing some of the unneeded repetitions. > > Signed-off-by: Thomas Monjalon <thomas@monjalon.net> > --- > doc/guides/bbdevs/fpga_5gnr_fec.rst | 7 +-- > doc/guides/bbdevs/fpga_lte_fec.rst | 7 +-- Ok in principle to remove from these BBDEV drivers doc. Should we include link to actual new build steps instead to help with transition? <../prog_guide/build-sdk-meson> Also I see a typo in same paragraph "instuctions" instead of "instructions" in case you can fix in same commit. > doc/guides/cryptodevs/virtio.rst | 9 +--- > .../virtio_user_for_container_networking.rst | 6 --- > .../linux_gsg/nic_perf_intel_platform.rst | 8 +--- > doc/guides/nics/bnxt.rst | 30 +++---------- > doc/guides/nics/build_and_test.rst | 43 +++---------------- > doc/guides/testpmd_app_ug/build_app.rst | 26 ----------- > 8 files changed, 15 insertions(+), 121 deletions(-) > > diff --git a/doc/guides/bbdevs/fpga_5gnr_fec.rst > b/doc/guides/bbdevs/fpga_5gnr_fec.rst > index 19bba3661f..d5dcd3d765 100644 > --- a/doc/guides/bbdevs/fpga_5gnr_fec.rst > +++ b/doc/guides/bbdevs/fpga_5gnr_fec.rst > @@ -54,12 +54,7 @@ Installation > Section 3 of the DPDK manual provides instuctions on installing and > compiling DPDK. The default set of bbdev compile flags may be found in > config/common_base, where for example the flag to build the FPGA 5GNR > FEC device, ``CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_5GNR_FEC``, > -is already set. It is assumed DPDK has been compiled using for instance: > - > -.. code-block:: console > - > - make install T=x86_64-native-linuxapp-gcc > - > +is already set. > > DPDK requires hugepages to be configured as detailed in section 2 of the > DPDK manual. > The bbdev test application has been tested with a configuration 40 x 1GB > hugepages. The diff --git a/doc/guides/bbdevs/fpga_lte_fec.rst > b/doc/guides/bbdevs/fpga_lte_fec.rst > index 206b6f4f9b..191e89fcef 100644 > --- a/doc/guides/bbdevs/fpga_lte_fec.rst > +++ b/doc/guides/bbdevs/fpga_lte_fec.rst > @@ -53,12 +53,7 @@ Installation > Section 3 of the DPDK manual provides instuctions on installing and > compiling DPDK. The default set of bbdev compile flags may be found in > config/common_base, where for example the flag to build the FPGA LTE FEC > device, ``CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_LTE_FEC``, is already -set. It > is assumed DPDK has been compiled using for instance: > - > -.. code-block:: console > - > - make install T=x86_64-native-linuxapp-gcc > - > +set. > > DPDK requires hugepages to be configured as detailed in section 2 of the > DPDK manual. > The bbdev test application has been tested with a configuration 40 x 1GB > hugepages. The diff --git a/doc/guides/cryptodevs/virtio.rst > b/doc/guides/cryptodevs/virtio.rst > index 1496ec9208..2c46bda866 100644 > --- a/doc/guides/cryptodevs/virtio.rst > +++ b/doc/guides/cryptodevs/virtio.rst > @@ -73,14 +73,7 @@ number of the virtio-crypto device: > echo -n 0000:00:04.0 > /sys/bus/pci/drivers/virtio-pci/unbind > echo "1af4 1054" > /sys/bus/pci/drivers/uio_pci_generic/new_id > > -Finally the front-end virtio crypto PMD driver can be installed: > - > -.. code-block:: console > - > - cd to the top-level DPDK directory > - sed -i 's,\(CONFIG_RTE_LIBRTE_PMD_VIRTIO_CRYPTO\)=n,\1=y,' > config/common_base > - make config T=x86_64-native-linux-gcc > - make install T=x86_64-native-linux-gcc > +Finally the front-end virtio crypto PMD driver can be installed. > > Tests > ----- > diff --git a/doc/guides/howto/virtio_user_for_container_networking.rst > b/doc/guides/howto/virtio_user_for_container_networking.rst > index f31d918bcd..412b29664b 100644 > --- a/doc/guides/howto/virtio_user_for_container_networking.rst > +++ b/doc/guides/howto/virtio_user_for_container_networking.rst > @@ -56,12 +56,6 @@ Sample Usage > Here we use Docker as container engine. It also applies to LXC, Rocket with > some minor changes. > > -#. Compile DPDK. > - > - .. code-block:: console > - > - make install RTE_SDK=`pwd` T=x86_64-native-linux-gcc > - > #. Write a Dockerfile like below. > > .. code-block:: console > diff --git a/doc/guides/linux_gsg/nic_perf_intel_platform.rst > b/doc/guides/linux_gsg/nic_perf_intel_platform.rst > index 1dabbce244..08be5d58b9 100644 > --- a/doc/guides/linux_gsg/nic_perf_intel_platform.rst > +++ b/doc/guides/linux_gsg/nic_perf_intel_platform.rst > @@ -124,17 +124,11 @@ The following are some recommendations on GRUB > boot settings: > Configurations before running DPDK > ---------------------------------- > > -1. Build the DPDK target and reserve huge pages. > +1. Reserve huge pages. > See the earlier section on :ref:`linux_gsg_hugepages` for more details. > > - The following shell commands may help with building and configuration: > - > .. code-block:: console > > - # Build DPDK target. > - cd dpdk_folder > - make install T=x86_64-native-linux-gcc -j > - > # Get the hugepage size. > awk '/Hugepagesize/ {print $2}' /proc/meminfo > > diff --git a/doc/guides/nics/bnxt.rst b/doc/guides/nics/bnxt.rst index > ed650187e0..a53cdad21d 100644 > --- a/doc/guides/nics/bnxt.rst > +++ b/doc/guides/nics/bnxt.rst > @@ -56,33 +56,15 @@ The BNXT PMD supports operating with: > * Linux igb_uio > * BSD nic_uio > > -Compiling BNXT PMD > ------------------- > - > -To compile the BNXT PMD: > - > -.. code-block:: console > - > - make config T=x86_64-native-linux-gcc && make // for x86-64 > - make config T=x86_32-native-linux-gcc && make // for x86-32 > - make config T=armv8a-linux-gcc && make // for ARMv8 > - > -Bind the device to one of the kernel modules listed above > - > -.. code-block:: console > - > - ./dpdk-devbind.py -b vfio-pci|igb_uio|uio_pci_generic > bus_id:device_id.function_id > - > -Load an application (e.g. testpmd) with a default configuration (e.g. a single - > TX /RX queue): > - > -.. code-block:: console > - > - ./testpmd -c 0xF -n 4 -- -i --portmask=0x1 --nb-cores=2 > - > Running BNXT PMD > ---------------- > > +Bind the device to one of the kernel modules listed above > + > +.. code-block:: console > + > + ./dpdk-devbind.py -b vfio-pci|igb_uio|uio_pci_generic > + bus_id:device_id.function_id > + > The BNXT PMD can run on PF or VF. > > PCI-SIG Single Root I/O Virtualization (SR-IOV) involves the direct assignment > diff --git a/doc/guides/nics/build_and_test.rst > b/doc/guides/nics/build_and_test.rst > index f99e019ff3..3138c0f880 100644 > --- a/doc/guides/nics/build_and_test.rst > +++ b/doc/guides/nics/build_and_test.rst > @@ -19,45 +19,12 @@ information on how to build and run testpmd. > Driver Compilation > ------------------ > > -To compile a PMD for a platform, run make with appropriate target as shown > below. > -Use "make" command in Linux and "gmake" in FreeBSD. This will also build > testpmd. > +To compile a PMD for a platform, build DPDK as described in the > +"Getting Started Guide" for your platform. > +This will also build testpmd. > > -To check available targets: > - > -.. code-block:: console > - > - cd <DPDK-source-directory> > - make showconfigs > - > -Example output: > - > -.. code-block:: console > - > - arm-armv7a-linux-gcc > - arm64-armv8a-linux-gcc > - arm64-dpaa-linux-gcc > - arm64-thunderx-linux-gcc > - arm64-xgene1-linux-gcc > - i686-native-linux-gcc > - i686-native-linux-icc > - ppc_64-power8-linux-gcc > - x86_64-native-freebsd-clang > - x86_64-native-freebsd-gcc > - x86_64-native-linux-clang > - x86_64-native-linux-gcc > - x86_64-native-linux-icc > - x86_x32-native-linux-gcc > - > -To compile a PMD for Linux x86_64 gcc target, run the following "make" > command: > - > -.. code-block:: console > - > - make install T=x86_64-native-linux-gcc > - > -Use ARM (ThunderX, DPAA, X-Gene) or PowerPC target for respective > platform. > - > -For more information, refer to the :ref:`Getting Started Guide for Linux > <linux_gsg>` -or :ref:`Getting Started Guide for FreeBSD <freebsd_gsg>` > depending on your platform. > +Detailed instructions are available > +in the :doc:`meson build guide <../prog_guide/build-sdk-meson>`. > > Running testpmd in Linux > ------------------------ > diff --git a/doc/guides/testpmd_app_ug/build_app.rst > b/doc/guides/testpmd_app_ug/build_app.rst > index d1ca9f3d19..4d08db75b5 100644 > --- a/doc/guides/testpmd_app_ug/build_app.rst > +++ b/doc/guides/testpmd_app_ug/build_app.rst > @@ -6,29 +6,3 @@ Compiling the Application > > The ``testpmd`` application is compiled as part of the main compilation of > the DPDK libraries and tools. > Refer to the DPDK Getting Started Guides for details. > -The basic compilation steps are: > - > -#. Set the required environmental variables and go to the source directory: > - > - .. code-block:: console > - > - export RTE_SDK=/path/to/rte_sdk > - cd $RTE_SDK > - > -#. Set the compilation target. For example: > - > - .. code-block:: console > - > - export RTE_TARGET=x86_64-native-linux-gcc > - > -#. Build the application: > - > - .. code-block:: console > - > - make install T=$RTE_TARGET > - > - The compiled application will be located at: > - > - .. code-block:: console > - > - $RTE_SDK/$RTE_TARGET/app/testpmd > -- > 2.26.2
> -----Original Message----- > From: Thomas Monjalon [mailto:thomas@monjalon.net] > Sent: Thursday, June 18, 2020 8:42 AM > To: dev@dpdk.org > Cc: david.marchand@redhat.com; bruce.richardson@intel.com; Nicolas Chautru > <nicolas.chautru@intel.com>; John McNamara <john.mcnamara@intel.com>; > Marko Kovacevic <marko.kovacevic@intel.com>; Zhoujian (jay) > <jianjay.zhou@huawei.com>; Ajit Khaparde <ajit.khaparde@broadcom.com>; > Somnath Kotur <somnath.kotur@broadcom.com>; Wenzhuo Lu > <wenzhuo.lu@intel.com>; Beilei Xing <beilei.xing@intel.com>; Bernard > Iremonger <bernard.iremonger@intel.com> > Subject: [PATCH 2/4] doc: remove build instructions where unneeded > > The build should be described only in few places, in order to maintain up-to-date, > accurate and detailed instructions. > This change is removing some of the unneeded repetitions. > > Signed-off-by: Thomas Monjalon <thomas@monjalon.net> The virtio-crypto PMD is compiled as default now, so there's no need to enable it manually. For the virtio-crypto PMD part: Acked-by: Jay Zhou <jianjay.zhou@huawei.com> > --- > doc/guides/bbdevs/fpga_5gnr_fec.rst | 7 +-- > doc/guides/bbdevs/fpga_lte_fec.rst | 7 +-- > doc/guides/cryptodevs/virtio.rst | 9 +--- > .../virtio_user_for_container_networking.rst | 6 --- > .../linux_gsg/nic_perf_intel_platform.rst | 8 +--- > doc/guides/nics/bnxt.rst | 30 +++---------- > doc/guides/nics/build_and_test.rst | 43 +++---------------- > doc/guides/testpmd_app_ug/build_app.rst | 26 ----------- > 8 files changed, 15 insertions(+), 121 deletions(-) > > diff --git a/doc/guides/bbdevs/fpga_5gnr_fec.rst > b/doc/guides/bbdevs/fpga_5gnr_fec.rst > index 19bba3661f..d5dcd3d765 100644 > --- a/doc/guides/bbdevs/fpga_5gnr_fec.rst > +++ b/doc/guides/bbdevs/fpga_5gnr_fec.rst > @@ -54,12 +54,7 @@ Installation > Section 3 of the DPDK manual provides instuctions on installing and compiling > DPDK. The default set of bbdev compile flags may be found in > config/common_base, where for example the flag to build the FPGA 5GNR FEC > device, ``CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_5GNR_FEC``, > -is already set. It is assumed DPDK has been compiled using for instance: > - > -.. code-block:: console > - > - make install T=x86_64-native-linuxapp-gcc > - > +is already set. > > DPDK requires hugepages to be configured as detailed in section 2 of the DPDK > manual. > The bbdev test application has been tested with a configuration 40 x 1GB > hugepages. The diff --git a/doc/guides/bbdevs/fpga_lte_fec.rst > b/doc/guides/bbdevs/fpga_lte_fec.rst > index 206b6f4f9b..191e89fcef 100644 > --- a/doc/guides/bbdevs/fpga_lte_fec.rst > +++ b/doc/guides/bbdevs/fpga_lte_fec.rst > @@ -53,12 +53,7 @@ Installation > Section 3 of the DPDK manual provides instuctions on installing and compiling > DPDK. The default set of bbdev compile flags may be found in > config/common_base, where for example the flag to build the FPGA LTE FEC > device, ``CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_LTE_FEC``, is already -set. It > is assumed DPDK has been compiled using for instance: > - > -.. code-block:: console > - > - make install T=x86_64-native-linuxapp-gcc > - > +set. > > DPDK requires hugepages to be configured as detailed in section 2 of the DPDK > manual. > The bbdev test application has been tested with a configuration 40 x 1GB > hugepages. The diff --git a/doc/guides/cryptodevs/virtio.rst > b/doc/guides/cryptodevs/virtio.rst > index 1496ec9208..2c46bda866 100644 > --- a/doc/guides/cryptodevs/virtio.rst > +++ b/doc/guides/cryptodevs/virtio.rst > @@ -73,14 +73,7 @@ number of the virtio-crypto device: > echo -n 0000:00:04.0 > /sys/bus/pci/drivers/virtio-pci/unbind > echo "1af4 1054" > /sys/bus/pci/drivers/uio_pci_generic/new_id > > -Finally the front-end virtio crypto PMD driver can be installed: > - > -.. code-block:: console > - > - cd to the top-level DPDK directory > - sed -i 's,\(CONFIG_RTE_LIBRTE_PMD_VIRTIO_CRYPTO\)=n,\1=y,' > config/common_base > - make config T=x86_64-native-linux-gcc > - make install T=x86_64-native-linux-gcc > +Finally the front-end virtio crypto PMD driver can be installed. > > Tests > ----- > diff --git a/doc/guides/howto/virtio_user_for_container_networking.rst > b/doc/guides/howto/virtio_user_for_container_networking.rst > index f31d918bcd..412b29664b 100644 > --- a/doc/guides/howto/virtio_user_for_container_networking.rst > +++ b/doc/guides/howto/virtio_user_for_container_networking.rst > @@ -56,12 +56,6 @@ Sample Usage > Here we use Docker as container engine. It also applies to LXC, Rocket with > some minor changes. > > -#. Compile DPDK. > - > - .. code-block:: console > - > - make install RTE_SDK=`pwd` T=x86_64-native-linux-gcc > - > #. Write a Dockerfile like below. > > .. code-block:: console > diff --git a/doc/guides/linux_gsg/nic_perf_intel_platform.rst > b/doc/guides/linux_gsg/nic_perf_intel_platform.rst > index 1dabbce244..08be5d58b9 100644 > --- a/doc/guides/linux_gsg/nic_perf_intel_platform.rst > +++ b/doc/guides/linux_gsg/nic_perf_intel_platform.rst > @@ -124,17 +124,11 @@ The following are some recommendations on GRUB > boot settings: > Configurations before running DPDK > ---------------------------------- > > -1. Build the DPDK target and reserve huge pages. > +1. Reserve huge pages. > See the earlier section on :ref:`linux_gsg_hugepages` for more details. > > - The following shell commands may help with building and configuration: > - > .. code-block:: console > > - # Build DPDK target. > - cd dpdk_folder > - make install T=x86_64-native-linux-gcc -j > - > # Get the hugepage size. > awk '/Hugepagesize/ {print $2}' /proc/meminfo > > diff --git a/doc/guides/nics/bnxt.rst b/doc/guides/nics/bnxt.rst index > ed650187e0..a53cdad21d 100644 > --- a/doc/guides/nics/bnxt.rst > +++ b/doc/guides/nics/bnxt.rst > @@ -56,33 +56,15 @@ The BNXT PMD supports operating with: > * Linux igb_uio > * BSD nic_uio > > -Compiling BNXT PMD > ------------------- > - > -To compile the BNXT PMD: > - > -.. code-block:: console > - > - make config T=x86_64-native-linux-gcc && make // for x86-64 > - make config T=x86_32-native-linux-gcc && make // for x86-32 > - make config T=armv8a-linux-gcc && make // for ARMv8 > - > -Bind the device to one of the kernel modules listed above > - > -.. code-block:: console > - > - ./dpdk-devbind.py -b vfio-pci|igb_uio|uio_pci_generic > bus_id:device_id.function_id > - > -Load an application (e.g. testpmd) with a default configuration (e.g. a single -TX > /RX queue): > - > -.. code-block:: console > - > - ./testpmd -c 0xF -n 4 -- -i --portmask=0x1 --nb-cores=2 > - > Running BNXT PMD > ---------------- > > +Bind the device to one of the kernel modules listed above > + > +.. code-block:: console > + > + ./dpdk-devbind.py -b vfio-pci|igb_uio|uio_pci_generic > + bus_id:device_id.function_id > + > The BNXT PMD can run on PF or VF. > > PCI-SIG Single Root I/O Virtualization (SR-IOV) involves the direct assignment diff > --git a/doc/guides/nics/build_and_test.rst b/doc/guides/nics/build_and_test.rst > index f99e019ff3..3138c0f880 100644 > --- a/doc/guides/nics/build_and_test.rst > +++ b/doc/guides/nics/build_and_test.rst > @@ -19,45 +19,12 @@ information on how to build and run testpmd. > Driver Compilation > ------------------ > > -To compile a PMD for a platform, run make with appropriate target as shown > below. > -Use "make" command in Linux and "gmake" in FreeBSD. This will also build > testpmd. > +To compile a PMD for a platform, build DPDK as described in the > +"Getting Started Guide" for your platform. > +This will also build testpmd. > > -To check available targets: > - > -.. code-block:: console > - > - cd <DPDK-source-directory> > - make showconfigs > - > -Example output: > - > -.. code-block:: console > - > - arm-armv7a-linux-gcc > - arm64-armv8a-linux-gcc > - arm64-dpaa-linux-gcc > - arm64-thunderx-linux-gcc > - arm64-xgene1-linux-gcc > - i686-native-linux-gcc > - i686-native-linux-icc > - ppc_64-power8-linux-gcc > - x86_64-native-freebsd-clang > - x86_64-native-freebsd-gcc > - x86_64-native-linux-clang > - x86_64-native-linux-gcc > - x86_64-native-linux-icc > - x86_x32-native-linux-gcc > - > -To compile a PMD for Linux x86_64 gcc target, run the following "make" > command: > - > -.. code-block:: console > - > - make install T=x86_64-native-linux-gcc > - > -Use ARM (ThunderX, DPAA, X-Gene) or PowerPC target for respective platform. > - > -For more information, refer to the :ref:`Getting Started Guide for Linux > <linux_gsg>` -or :ref:`Getting Started Guide for FreeBSD <freebsd_gsg>` > depending on your platform. > +Detailed instructions are available > +in the :doc:`meson build guide <../prog_guide/build-sdk-meson>`. > > Running testpmd in Linux > ------------------------ > diff --git a/doc/guides/testpmd_app_ug/build_app.rst > b/doc/guides/testpmd_app_ug/build_app.rst > index d1ca9f3d19..4d08db75b5 100644 > --- a/doc/guides/testpmd_app_ug/build_app.rst > +++ b/doc/guides/testpmd_app_ug/build_app.rst > @@ -6,29 +6,3 @@ Compiling the Application > > The ``testpmd`` application is compiled as part of the main compilation of the > DPDK libraries and tools. > Refer to the DPDK Getting Started Guides for details. > -The basic compilation steps are: > - > -#. Set the required environmental variables and go to the source directory: > - > - .. code-block:: console > - > - export RTE_SDK=/path/to/rte_sdk > - cd $RTE_SDK > - > -#. Set the compilation target. For example: > - > - .. code-block:: console > - > - export RTE_TARGET=x86_64-native-linux-gcc > - > -#. Build the application: > - > - .. code-block:: console > - > - make install T=$RTE_TARGET > - > - The compiled application will be located at: > - > - .. code-block:: console > - > - $RTE_SDK/$RTE_TARGET/app/testpmd > -- > 2.26.2
18/06/2020 04:02, Chautru, Nicolas: > From: Thomas Monjalon > > The build should be described only in few places, in order to maintain up-to- > > date, accurate and detailed instructions. > > This change is removing some of the unneeded repetitions. > > > > Signed-off-by: Thomas Monjalon <thomas@monjalon.net> > > --- > > doc/guides/bbdevs/fpga_5gnr_fec.rst | 7 +-- > > doc/guides/bbdevs/fpga_lte_fec.rst | 7 +-- > > Ok in principle to remove from these BBDEV drivers doc. > Should we include link to actual new build steps instead to help with transition? <../prog_guide/build-sdk-meson> There are also some guides per platform. I think it is not needed to add all the links for general build inside a driver doc. > Also I see a typo in same paragraph "instuctions" instead of "instructions" in case you can fix in same commit. I will check
On Thu, Jun 18, 2020 at 02:42:15AM +0200, Thomas Monjalon wrote:
> There was a doc about how to extend DPDK by adding a library.
> It could have been useful but was never updated,
> so it is lacking a lot of explanations about doxygen,
> meson, versioning, maintainership, etc.
>
> Anyway such guidelines should fit in the contributors guide.
> Better to completely remove this obsolete document.
>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
> doc/guides/prog_guide/extend_dpdk.rst | 109 --------------------------
> 1 file changed, 109 deletions(-)
> delete mode 100644 doc/guides/prog_guide/extend_dpdk.rst
>
Missing a change to remove the file reference from index.rst
With that fixed:
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
On Thu, Jun 18, 2020 at 02:42:16AM +0200, Thomas Monjalon wrote:
> The build should be described only in few places,
> in order to maintain up-to-date, accurate and detailed instructions.
> This change is removing some of the unneeded repetitions.
>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
Good cleanup.
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
On Thu, Jun 18, 2020 at 02:42:18AM +0200, Thomas Monjalon wrote:
> DPDK 20.05 had some deprecation notes after "make config"
> and after the build.
> For DPDK 20.08, the config note is replaced with a warning
> before the config and before the build.
> After the warning, there is a pause which can be skipped
> with the variable MAKE_PAUSE.
>
> This deprecation process was discussed in the Technical Board:
> http://mails.dpdk.org/archives/dev/2020-April/162839.html
>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Some "make" usages are cleaned up in the documentation, and an inevitable deprecation warning is printed when using "make". ********************************************* NOTE: Lots of docs must be converted to meson build, configuration and installation layout, as soon as possible. Please HELP! A trick to find some affected docs: git grep -- -linux- doc ********************************************* It should be the final step before complete removal of the "make" build system in DPDK 20.11. Thomas Monjalon (4): doc: remove outdated guidelines for library addition doc: remove build instructions where unneeded doc: update build instructions in the Linux guide mk: add a paused deprecation warning before each build doc/guides/bbdevs/fpga_5gnr_fec.rst | 9 +- doc/guides/bbdevs/fpga_lte_fec.rst | 9 +- doc/guides/cryptodevs/virtio.rst | 9 +- .../virtio_user_for_container_networking.rst | 6 - doc/guides/linux_gsg/build_dpdk.rst | 66 +++-------- .../linux_gsg/nic_perf_intel_platform.rst | 8 +- doc/guides/nics/bnxt.rst | 30 +---- doc/guides/nics/build_and_test.rst | 43 +------ doc/guides/prog_guide/extend_dpdk.rst | 109 ------------------ doc/guides/prog_guide/index.rst | 1 - doc/guides/testpmd_app_ug/build_app.rst | 26 ----- mk/rte.sdkconfig.mk | 5 - mk/rte.sdkroot.mk | 16 +++ 13 files changed, 51 insertions(+), 286 deletions(-) delete mode 100644 doc/guides/prog_guide/extend_dpdk.rst -- 2.26.2
There was a doc about how to extend DPDK by adding a library. It could have been useful but was never updated, so it is lacking a lot of explanations about doxygen, meson, versioning, maintainership, etc. Anyway such guidelines should fit in the contributors guide. Better to completely remove this obsolete document. Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Bruce Richardson <bruce.richardson@intel.com> --- v2: update index --- doc/guides/prog_guide/extend_dpdk.rst | 109 -------------------------- doc/guides/prog_guide/index.rst | 1 - 2 files changed, 110 deletions(-) delete mode 100644 doc/guides/prog_guide/extend_dpdk.rst diff --git a/doc/guides/prog_guide/extend_dpdk.rst b/doc/guides/prog_guide/extend_dpdk.rst deleted file mode 100644 index a3b3d300b0..0000000000 --- a/doc/guides/prog_guide/extend_dpdk.rst +++ /dev/null @@ -1,109 +0,0 @@ -.. SPDX-License-Identifier: BSD-3-Clause - Copyright(c) 2010-2014 Intel Corporation. - -Extending the DPDK -========================= - -This chapter describes how a developer can extend the DPDK to provide a new library, -a new target, or support a new target. - -Example: Adding a New Library libfoo ------------------------------------- - -To add a new library to the DPDK, proceed as follows: - -#. Add a new configuration option: - - .. code-block:: bash - - for f in config/\*; do \ - echo CONFIG_RTE_LIBFOO=y >> $f; done - -#. Create a new directory with sources: - - .. code-block:: console - - mkdir ${RTE_SDK}/lib/libfoo - touch ${RTE_SDK}/lib/libfoo/foo.c - touch ${RTE_SDK}/lib/libfoo/foo.h - -#. Add a foo() function in libfoo. - - Definition is in foo.c: - - .. code-block:: c - - void foo(void) - { - } - - Declaration is in foo.h: - - .. code-block:: c - - extern void foo(void); - - -#. Update lib/Makefile: - - .. code-block:: console - - vi ${RTE_SDK}/lib/Makefile - # add: - # DIRS-$(CONFIG_RTE_LIBFOO) += libfoo - -#. Create a new Makefile for this library, for example, derived from mempool Makefile: - - .. code-block:: console - - cp ${RTE_SDK}/lib/librte_mempool/Makefile ${RTE_SDK}/lib/libfoo/ - - vi ${RTE_SDK}/lib/libfoo/Makefile - # replace: - # librte_mempool -> libfoo - # rte_mempool -> foo - - -#. Update mk/DPDK.app.mk, and add -lfoo in LDLIBS variable when the option is enabled. - This will automatically add this flag when linking a DPDK application. - - -#. Build the DPDK with the new library (we only show a specific target here): - - .. code-block:: console - - cd ${RTE_SDK} - make config T=x86_64-native-linux-gcc - make - - -#. Check that the library is installed: - - .. code-block:: console - - ls build/lib - ls build/include - -Example: Using libfoo in the Test Application -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The test application is used to validate all functionality of the DPDK. -Once you have added a library, a new test case should be added in the test application. - -* A new test_foo.c file should be added, that includes foo.h and calls the foo() function from test_foo(). - When the test passes, the test_foo() function should return 0. - -* Makefile, test.h and commands.c must be updated also, to handle the new test case. - -* Test report generation: autotest.py is a script that is used to generate the test report that is available in the - ${RTE_SDK}/doc/rst/test_report/autotests directory. This script must be updated also. - If libfoo is in a new test family, the links in ${RTE_SDK}/doc/rst/test_report/test_report.rst must be updated. - -* Build the DPDK with the updated test application (we only show a specific target here): - - - .. code-block:: console - - cd ${RTE_SDK} - make config T=x86_64-native-linux-gcc - make diff --git a/doc/guides/prog_guide/index.rst b/doc/guides/prog_guide/index.rst index 6f63f300af..8838ffb9ae 100644 --- a/doc/guides/prog_guide/index.rst +++ b/doc/guides/prog_guide/index.rst @@ -65,7 +65,6 @@ Programmer's Guide dev_kit_root_make_help build-sdk-meson meson_ut - extend_dpdk build_app ext_app_lib_make_help perf_opt_guidelines -- 2.26.2
The build should be described only in few places, in order to maintain up-to-date, accurate and detailed instructions. This change is removing some of the unneeded repetitions. Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Acked-by: Jay Zhou <jianjay.zhou@huawei.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> --- v2: fix unrelated (but close) typo in bbdev guides --- doc/guides/bbdevs/fpga_5gnr_fec.rst | 9 +--- doc/guides/bbdevs/fpga_lte_fec.rst | 9 +--- doc/guides/cryptodevs/virtio.rst | 9 +--- .../virtio_user_for_container_networking.rst | 6 --- .../linux_gsg/nic_perf_intel_platform.rst | 8 +--- doc/guides/nics/bnxt.rst | 30 +++---------- doc/guides/nics/build_and_test.rst | 43 +++---------------- doc/guides/testpmd_app_ug/build_app.rst | 26 ----------- 8 files changed, 17 insertions(+), 123 deletions(-) diff --git a/doc/guides/bbdevs/fpga_5gnr_fec.rst b/doc/guides/bbdevs/fpga_5gnr_fec.rst index 19bba3661f..6760391e8c 100644 --- a/doc/guides/bbdevs/fpga_5gnr_fec.rst +++ b/doc/guides/bbdevs/fpga_5gnr_fec.rst @@ -51,15 +51,10 @@ FPGA 5GNR FEC does not support the following: Installation ------------ -Section 3 of the DPDK manual provides instuctions on installing and compiling DPDK. The +Section 3 of the DPDK manual provides instructions on installing and compiling DPDK. The default set of bbdev compile flags may be found in config/common_base, where for example the flag to build the FPGA 5GNR FEC device, ``CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_5GNR_FEC``, -is already set. It is assumed DPDK has been compiled using for instance: - -.. code-block:: console - - make install T=x86_64-native-linuxapp-gcc - +is already set. DPDK requires hugepages to be configured as detailed in section 2 of the DPDK manual. The bbdev test application has been tested with a configuration 40 x 1GB hugepages. The diff --git a/doc/guides/bbdevs/fpga_lte_fec.rst b/doc/guides/bbdevs/fpga_lte_fec.rst index 206b6f4f9b..fdc8a76981 100644 --- a/doc/guides/bbdevs/fpga_lte_fec.rst +++ b/doc/guides/bbdevs/fpga_lte_fec.rst @@ -50,15 +50,10 @@ FPGA LTE FEC does not support the following: Installation -------------- -Section 3 of the DPDK manual provides instuctions on installing and compiling DPDK. The +Section 3 of the DPDK manual provides instructions on installing and compiling DPDK. The default set of bbdev compile flags may be found in config/common_base, where for example the flag to build the FPGA LTE FEC device, ``CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_LTE_FEC``, is already -set. It is assumed DPDK has been compiled using for instance: - -.. code-block:: console - - make install T=x86_64-native-linuxapp-gcc - +set. DPDK requires hugepages to be configured as detailed in section 2 of the DPDK manual. The bbdev test application has been tested with a configuration 40 x 1GB hugepages. The diff --git a/doc/guides/cryptodevs/virtio.rst b/doc/guides/cryptodevs/virtio.rst index 1496ec9208..2c46bda866 100644 --- a/doc/guides/cryptodevs/virtio.rst +++ b/doc/guides/cryptodevs/virtio.rst @@ -73,14 +73,7 @@ number of the virtio-crypto device: echo -n 0000:00:04.0 > /sys/bus/pci/drivers/virtio-pci/unbind echo "1af4 1054" > /sys/bus/pci/drivers/uio_pci_generic/new_id -Finally the front-end virtio crypto PMD driver can be installed: - -.. code-block:: console - - cd to the top-level DPDK directory - sed -i 's,\(CONFIG_RTE_LIBRTE_PMD_VIRTIO_CRYPTO\)=n,\1=y,' config/common_base - make config T=x86_64-native-linux-gcc - make install T=x86_64-native-linux-gcc +Finally the front-end virtio crypto PMD driver can be installed. Tests ----- diff --git a/doc/guides/howto/virtio_user_for_container_networking.rst b/doc/guides/howto/virtio_user_for_container_networking.rst index f31d918bcd..412b29664b 100644 --- a/doc/guides/howto/virtio_user_for_container_networking.rst +++ b/doc/guides/howto/virtio_user_for_container_networking.rst @@ -56,12 +56,6 @@ Sample Usage Here we use Docker as container engine. It also applies to LXC, Rocket with some minor changes. -#. Compile DPDK. - - .. code-block:: console - - make install RTE_SDK=`pwd` T=x86_64-native-linux-gcc - #. Write a Dockerfile like below. .. code-block:: console diff --git a/doc/guides/linux_gsg/nic_perf_intel_platform.rst b/doc/guides/linux_gsg/nic_perf_intel_platform.rst index 1dabbce244..08be5d58b9 100644 --- a/doc/guides/linux_gsg/nic_perf_intel_platform.rst +++ b/doc/guides/linux_gsg/nic_perf_intel_platform.rst @@ -124,17 +124,11 @@ The following are some recommendations on GRUB boot settings: Configurations before running DPDK ---------------------------------- -1. Build the DPDK target and reserve huge pages. +1. Reserve huge pages. See the earlier section on :ref:`linux_gsg_hugepages` for more details. - The following shell commands may help with building and configuration: - .. code-block:: console - # Build DPDK target. - cd dpdk_folder - make install T=x86_64-native-linux-gcc -j - # Get the hugepage size. awk '/Hugepagesize/ {print $2}' /proc/meminfo diff --git a/doc/guides/nics/bnxt.rst b/doc/guides/nics/bnxt.rst index ed650187e0..a53cdad21d 100644 --- a/doc/guides/nics/bnxt.rst +++ b/doc/guides/nics/bnxt.rst @@ -56,33 +56,15 @@ The BNXT PMD supports operating with: * Linux igb_uio * BSD nic_uio -Compiling BNXT PMD ------------------- - -To compile the BNXT PMD: - -.. code-block:: console - - make config T=x86_64-native-linux-gcc && make // for x86-64 - make config T=x86_32-native-linux-gcc && make // for x86-32 - make config T=armv8a-linux-gcc && make // for ARMv8 - -Bind the device to one of the kernel modules listed above - -.. code-block:: console - - ./dpdk-devbind.py -b vfio-pci|igb_uio|uio_pci_generic bus_id:device_id.function_id - -Load an application (e.g. testpmd) with a default configuration (e.g. a single -TX /RX queue): - -.. code-block:: console - - ./testpmd -c 0xF -n 4 -- -i --portmask=0x1 --nb-cores=2 - Running BNXT PMD ---------------- +Bind the device to one of the kernel modules listed above + +.. code-block:: console + + ./dpdk-devbind.py -b vfio-pci|igb_uio|uio_pci_generic bus_id:device_id.function_id + The BNXT PMD can run on PF or VF. PCI-SIG Single Root I/O Virtualization (SR-IOV) involves the direct assignment diff --git a/doc/guides/nics/build_and_test.rst b/doc/guides/nics/build_and_test.rst index f99e019ff3..3138c0f880 100644 --- a/doc/guides/nics/build_and_test.rst +++ b/doc/guides/nics/build_and_test.rst @@ -19,45 +19,12 @@ information on how to build and run testpmd. Driver Compilation ------------------ -To compile a PMD for a platform, run make with appropriate target as shown below. -Use "make" command in Linux and "gmake" in FreeBSD. This will also build testpmd. +To compile a PMD for a platform, build DPDK +as described in the "Getting Started Guide" for your platform. +This will also build testpmd. -To check available targets: - -.. code-block:: console - - cd <DPDK-source-directory> - make showconfigs - -Example output: - -.. code-block:: console - - arm-armv7a-linux-gcc - arm64-armv8a-linux-gcc - arm64-dpaa-linux-gcc - arm64-thunderx-linux-gcc - arm64-xgene1-linux-gcc - i686-native-linux-gcc - i686-native-linux-icc - ppc_64-power8-linux-gcc - x86_64-native-freebsd-clang - x86_64-native-freebsd-gcc - x86_64-native-linux-clang - x86_64-native-linux-gcc - x86_64-native-linux-icc - x86_x32-native-linux-gcc - -To compile a PMD for Linux x86_64 gcc target, run the following "make" command: - -.. code-block:: console - - make install T=x86_64-native-linux-gcc - -Use ARM (ThunderX, DPAA, X-Gene) or PowerPC target for respective platform. - -For more information, refer to the :ref:`Getting Started Guide for Linux <linux_gsg>` -or :ref:`Getting Started Guide for FreeBSD <freebsd_gsg>` depending on your platform. +Detailed instructions are available +in the :doc:`meson build guide <../prog_guide/build-sdk-meson>`. Running testpmd in Linux ------------------------ diff --git a/doc/guides/testpmd_app_ug/build_app.rst b/doc/guides/testpmd_app_ug/build_app.rst index d1ca9f3d19..4d08db75b5 100644 --- a/doc/guides/testpmd_app_ug/build_app.rst +++ b/doc/guides/testpmd_app_ug/build_app.rst @@ -6,29 +6,3 @@ Compiling the Application The ``testpmd`` application is compiled as part of the main compilation of the DPDK libraries and tools. Refer to the DPDK Getting Started Guides for details. -The basic compilation steps are: - -#. Set the required environmental variables and go to the source directory: - - .. code-block:: console - - export RTE_SDK=/path/to/rte_sdk - cd $RTE_SDK - -#. Set the compilation target. For example: - - .. code-block:: console - - export RTE_TARGET=x86_64-native-linux-gcc - -#. Build the application: - - .. code-block:: console - - make install T=$RTE_TARGET - - The compiled application will be located at: - - .. code-block:: console - - $RTE_SDK/$RTE_TARGET/app/testpmd -- 2.26.2
Before removing the "make" build system completely, the Linux guide instructions are made more concise and accurate. Some detailed explanations are also available in doc/guides/prog_guide/dev_kit_root_make_help.rst This is the swan song for makefile system, in order to have accurate information backported in LTS. Cc: stable@dpdk.org Signed-off-by: Thomas Monjalon <thomas@monjalon.net> --- doc/guides/linux_gsg/build_dpdk.rst | 66 ++++++++--------------------- 1 file changed, 18 insertions(+), 48 deletions(-) diff --git a/doc/guides/linux_gsg/build_dpdk.rst b/doc/guides/linux_gsg/build_dpdk.rst index 4aeb4697d9..c536e354ef 100644 --- a/doc/guides/linux_gsg/build_dpdk.rst +++ b/doc/guides/linux_gsg/build_dpdk.rst @@ -167,60 +167,32 @@ Installation of DPDK Target Environment using Make is therefore recommended that DPDK installation is done using meson and ninja as described above. -The format of a DPDK target is:: +Get a native target environment automatically:: - ARCH-MACHINE-EXECENV-TOOLCHAIN - -where: - -* ``ARCH`` can be: ``i686``, ``x86_64``, ``ppc_64``, ``arm64`` - -* ``MACHINE`` can be: ``native``, ``power8``, ``armv8a`` - -* ``EXECENV`` can be: ``linux``, ``freebsd`` - -* ``TOOLCHAIN`` can be: ``gcc``, ``icc`` - -The targets to be installed depend on the 32-bit and/or 64-bit packages and compilers installed on the host. -Available targets can be found in the DPDK/config directory. -The defconfig\_ prefix should not be used. + make defconfig O=mybuild .. note:: - Configuration files are provided with the ``RTE_MACHINE`` optimization level set. Within the configuration files, the ``RTE_MACHINE`` configuration value is set to native, which means that the compiled software is tuned for the platform on which it is built. - For more information on this setting, and its possible values, see the *DPDK Programmers Guide*. -When using the Intel® C++ Compiler (icc), one of the following commands should be invoked for 64-bit or 32-bit use respectively. -Notice that the shell scripts update the ``$PATH`` variable and therefore should not be performed in the same session. -Also, verify the compiler's installation directory since the path may be different: +Or get a specific target environment:: -.. code-block:: console + make config T=x86_64-native-linux-gcc O=mybuild - source /opt/intel/bin/iccvars.sh intel64 - source /opt/intel/bin/iccvars.sh ia32 +The format of a DPDK target is "ARCH-MACHINE-EXECENV-TOOLCHAIN". +Available targets can be found with:: -To install and make targets, use the ``make install T=<target>`` command in the top-level DPDK directory. + make help -For example, to compile a 64-bit target using icc, run: +Customize the target configuration in the generated ``.config`` file. +Example for enabling the pcap PMD:: -.. code-block:: console + sed -ri 's,(PMD_PCAP=).*,\1y,' mybuild/.config - make install T=x86_64-native-linux-icc +Compile the target:: -To compile a 32-bit build using gcc, the make command should be: - -.. code-block:: console - - make install T=i686-native-linux-gcc - -To prepare a target without building it, for example, if the configuration changes need to be made before compilation, -use the ``make config T=<target>`` command: - -.. code-block:: console - - make config T=x86_64-native-linux-gcc + make -j4 O=mybuild .. warning:: @@ -229,15 +201,13 @@ use the ``make config T=<target>`` command: If the DPDK is not being built on the target machine, the ``RTE_KERNELDIR`` environment variable should be used to point the compilation at a copy of the kernel version to be used on the target machine. -Once the target environment is created, the user may move to the target environment directory and continue to make code changes and re-compile. -The user may also make modifications to the compile-time DPDK configuration by editing the .config file in the build directory. -(This is a build-local copy of the defconfig file from the top- level config directory). +Install the target in a separate directory:: -.. code-block:: console + make install O=mybuild DESTDIR=myinstall prefix= - cd x86_64-native-linux-gcc - vi .config - make +The environment is ready to build a DPDK application:: + + RTE_SDK=$(pwd)/myinstall/share/dpdk RTE_TARGET=x86_64-native-linux-gcc make -C myapp In addition, the make clean command can be used to remove any existing compiled files for a subsequent full, clean rebuild of the code. @@ -245,5 +215,5 @@ Browsing the Installed DPDK Environment Target ---------------------------------------------- Once a target is created it contains all libraries, including poll-mode drivers, and header files for the DPDK environment that are required to build customer applications. -In addition, the test and testpmd applications are built under the build/app directory, which may be used for testing. +In addition, the test applications are built under the app directory, which may be used for testing. A kmod directory is also present that contains kernel modules which may be loaded if needed. -- 2.26.2
DPDK 20.05 had some deprecation notes after "make config" and after the build. For DPDK 20.08, the config note is replaced with a warning before the config and before the build. After the warning, there is a pause which can be skipped with the variable MAKE_PAUSE. This deprecation process was discussed in the Technical Board: http://mails.dpdk.org/archives/dev/2020-April/162839.html Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Bruce Richardson <bruce.richardson@intel.com> --- mk/rte.sdkconfig.mk | 5 ----- mk/rte.sdkroot.mk | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/mk/rte.sdkconfig.mk b/mk/rte.sdkconfig.mk index 2ea85e4643..f538649f22 100644 --- a/mk/rte.sdkconfig.mk +++ b/mk/rte.sdkconfig.mk @@ -62,11 +62,6 @@ else config: $(RTE_OUTPUT)/include/rte_config.h $(RTE_OUTPUT)/Makefile @echo "Configuration done using" \ $(patsubst defconfig_%,%,$(notdir $(RTE_CONFIG_TEMPLATE))) - @echo "==== NOTE ====" - @echo "It is recommended to build DPDK using 'meson' and 'ninja'" - @echo "See https://doc.dpdk.org/guides/linux_gsg/build_dpdk.html for instructions" - @echo "Building DPDK with 'make' will be deprecated in a future release" - @echo "==============" endif $(RTE_OUTPUT): diff --git a/mk/rte.sdkroot.mk b/mk/rte.sdkroot.mk index 4043a9d4e8..d3b9cdd048 100644 --- a/mk/rte.sdkroot.mk +++ b/mk/rte.sdkroot.mk @@ -60,7 +60,22 @@ export ROOTDIRS-y ROOTDIRS- ROOTDIRS-n .PHONY: default test-build default test-build: all +.PHONY: warning +warning: + @echo + @echo "=========================== WARNING ============================" + @echo "It is recommended to build DPDK using 'meson' and 'ninja'" + @echo "See https://doc.dpdk.org/guides/linux_gsg/build_dpdk.html" + @echo "Building DPDK with 'make' will be deprecated in a future release" + @echo "================================================================" + @echo + @test "$(MAKE_PAUSE)" = n || ( \ + echo "This deprecation warning can be passed by adding MAKE_PAUSE=n"; \ + echo "to 'make' command line or as an exported environment variable."; \ + echo "Press enter to continue..."; read) + .PHONY: config defconfig showconfigs showversion showversionum +config: warning config defconfig showconfigs showversion showversionum: $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkconfig.mk $@ @@ -96,4 +111,5 @@ examples examples_clean: # all other build targets %: $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkconfig.mk checkconfig + $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkroot.mk warning $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkbuild.mk $@ -- 2.26.2
On Thu, Jun 25, 2020 at 11:43:37PM +0200, Thomas Monjalon wrote:
> Before removing the "make" build system completely,
> the Linux guide instructions are made more concise and accurate.
> Some detailed explanations are also available in
> doc/guides/prog_guide/dev_kit_root_make_help.rst
>
> This is the swan song for makefile system,
> in order to have accurate information backported in LTS.
>
> Cc: stable@dpdk.org
>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
> doc/guides/linux_gsg/build_dpdk.rst | 66 ++++++++---------------------
> 1 file changed, 18 insertions(+), 48 deletions(-)
>
These doc patches are hard to review without applying them an rebuilding
the docs, but I finally got round to doing so with this!
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
On Thu, Jun 25, 2020 at 11:43 PM Thomas Monjalon <thomas@monjalon.net> wrote: > > Some "make" usages are cleaned up in the documentation, > and an inevitable deprecation warning is printed when using "make". > > > ********************************************* > NOTE: Lots of docs must be converted to meson > build, configuration and installation layout, > as soon as possible. Please HELP! > > A trick to find some affected docs: > git grep -- -linux- doc > ********************************************* > > > It should be the final step before complete removal > of the "make" build system in DPDK 20.11. > > > Thomas Monjalon (4): > doc: remove outdated guidelines for library addition > doc: remove build instructions where unneeded > doc: update build instructions in the Linux guide > mk: add a paused deprecation warning before each build > > doc/guides/bbdevs/fpga_5gnr_fec.rst | 9 +- > doc/guides/bbdevs/fpga_lte_fec.rst | 9 +- > doc/guides/cryptodevs/virtio.rst | 9 +- > .../virtio_user_for_container_networking.rst | 6 - Lucky guys who got their doc updated, are you expecting a beer from them? > doc/guides/linux_gsg/build_dpdk.rst | 66 +++-------- > .../linux_gsg/nic_perf_intel_platform.rst | 8 +- > doc/guides/nics/bnxt.rst | 30 +---- > doc/guides/nics/build_and_test.rst | 43 +------ > doc/guides/prog_guide/extend_dpdk.rst | 109 ------------------ > doc/guides/prog_guide/index.rst | 1 - > doc/guides/testpmd_app_ug/build_app.rst | 26 ----- > mk/rte.sdkconfig.mk | 5 - > mk/rte.sdkroot.mk | 16 +++ > 13 files changed, 51 insertions(+), 286 deletions(-) > delete mode 100644 doc/guides/prog_guide/extend_dpdk.rst I noticed a warning from FreeBSD shell/read command, could you have a look? The read command expects a variable name where to store input. Apart from that, for the series, Acked-by: David Marchand <david.marchand@redhat.com> -- David Marchand
29/06/2020 16:15, David Marchand: > On Thu, Jun 25, 2020 at 11:43 PM Thomas Monjalon <thomas@monjalon.net> wrote: > > > > Some "make" usages are cleaned up in the documentation, > > and an inevitable deprecation warning is printed when using "make". > > > > > > ********************************************* > > NOTE: Lots of docs must be converted to meson > > build, configuration and installation layout, > > as soon as possible. Please HELP! > > > > A trick to find some affected docs: > > git grep -- -linux- doc > > ********************************************* > > > > > > It should be the final step before complete removal > > of the "make" build system in DPDK 20.11. > > > > > > Thomas Monjalon (4): > > doc: remove outdated guidelines for library addition > > doc: remove build instructions where unneeded > > doc: update build instructions in the Linux guide > > mk: add a paused deprecation warning before each build > > > > doc/guides/bbdevs/fpga_5gnr_fec.rst | 9 +- > > doc/guides/bbdevs/fpga_lte_fec.rst | 9 +- > > doc/guides/cryptodevs/virtio.rst | 9 +- > > .../virtio_user_for_container_networking.rst | 6 - > > Lucky guys who got their doc updated, are you expecting a beer from them? I hope so :) > > doc/guides/linux_gsg/build_dpdk.rst | 66 +++-------- > > .../linux_gsg/nic_perf_intel_platform.rst | 8 +- > > doc/guides/nics/bnxt.rst | 30 +---- > > doc/guides/nics/build_and_test.rst | 43 +------ > > doc/guides/prog_guide/extend_dpdk.rst | 109 ------------------ > > doc/guides/prog_guide/index.rst | 1 - > > doc/guides/testpmd_app_ug/build_app.rst | 26 ----- > > mk/rte.sdkconfig.mk | 5 - > > mk/rte.sdkroot.mk | 16 +++ > > 13 files changed, 51 insertions(+), 286 deletions(-) > > delete mode 100644 doc/guides/prog_guide/extend_dpdk.rst > > I noticed a warning from FreeBSD shell/read command, could you have a look? > The read command expects a variable name where to store input. Yes, good catch. "read" must take a variable like "make junk". I will fix while merging. > Apart from that, for the series, > Acked-by: David Marchand <david.marchand@redhat.com> Thanks, applied.