From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id E42DCA0350 for ; Thu, 25 Jun 2020 23:44:03 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id A2FAA1B5E1; Thu, 25 Jun 2020 23:44:03 +0200 (CEST) Received: from wout2-smtp.messagingengine.com (wout2-smtp.messagingengine.com [64.147.123.25]) by dpdk.org (Postfix) with ESMTP id 7DCD5AAB7; Thu, 25 Jun 2020 23:44:01 +0200 (CEST) Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.west.internal (Postfix) with ESMTP id 642585DB; Thu, 25 Jun 2020 17:44:00 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute7.internal (MEProxy); Thu, 25 Jun 2020 17:44:00 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h= from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-type:content-transfer-encoding; s=fm1; bh= OzWp3CRrFGqsGsN6RnqCQqA/VNkBLeNfoYyO/BCFbco=; b=Gxs4V3HPm3qcu3S1 HaFIgIKjCw+jX6jHNBuVX9xbJ9v2TbKVcS4XxrjIOqifQDAXPmeQqJIIR54h5OjN is2/Wo0UEye/ed5jkDBZBE35ICp6s6FWTa8xhnYHYXurKdcpBQ8mI17Lx0Dqe6ca ziWQLjXv1zqDOABo88YDYQIMaIfkF3CRUMDjQ+pSnqnMk51OPY/3ZmB00cjf4aEl 4AkNkw65omIeGm7XBeJ7vbNpv55+wFgkiC7/o0VF/Ph39ANx/+l37B+lW5fCu4wz SaRTvjoiDa8WH5skyRObEqzOHrLabHhTAG0dH9ksT803xOxVNkDeP/lsvn0xdlRP gzGmGg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm3; bh=OzWp3CRrFGqsGsN6RnqCQqA/VNkBLeNfoYyO/BCFb co=; b=XA4xkpRhQw9uyUnGQ1RP6B9IsuS2UWJd4sbtsvzG8iRcxurPtwY9TpF8V Z9Fa/lK9UFmj6H9YpZKlVRYA6d5bgEsCztjR6gvwo/Naq6nra3dLJ4iw1EyVUg5g 2Bfhm2swVLn6uyU2w4tvOoWWPZ+o63ZhYGCMz3WxkKuBvncl4ePbJBlJBDeVzABa 6uGdaY3SypeZdkfT+EKoEPkq6yP8NsWRw4y2pJc+aYPGV0iHOlLaqMztnRLOD77A d4jzBmvxWvB7PTB9IZC6tOlCfCxxCYaxKela6P1k9Rj1bSuf1YxxauDoGacn1+3j gtC7GfI2Ah7x+o0FQzsXRyl1mYAjg== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduhedrudeltddgtdduucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepvfhhohhm rghsucfoohhnjhgrlhhonhcuoehthhhomhgrshesmhhonhhjrghlohhnrdhnvghtqeenuc ggtffrrghtthgvrhhnpeevuddtveeuveejkeevheehveffueegjedukeffledtleekieef geduhedvgeejhfenucfkphepjeejrddufeegrddvtdefrddukeegnecuvehluhhsthgvrh fuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepthhhohhmrghssehmohhnjhgr lhhonhdrnhgvth X-ME-Proxy: Received: from xps.monjalon.net (184.203.134.77.rev.sfr.net [77.134.203.184]) by mail.messagingengine.com (Postfix) with ESMTPA id 1D264328005A; Thu, 25 Jun 2020 17:43:59 -0400 (EDT) From: Thomas Monjalon To: dev@dpdk.org Cc: david.marchand@redhat.com, bruce.richardson@intel.com, stable@dpdk.org, John McNamara , Marko Kovacevic Date: Thu, 25 Jun 2020 23:43:37 +0200 Message-Id: <20200625214338.1838457-4-thomas@monjalon.net> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200625214338.1838457-1-thomas@monjalon.net> References: <20200618004218.3730743-1-thomas@monjalon.net> <20200625214338.1838457-1-thomas@monjalon.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [dpdk-stable] [PATCH v2 3/4] doc: update build instructions in the Linux guide X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" 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 --- 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=`` 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=`` 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=`` 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