@@ -5,8 +5,8 @@ Build commands
all same as build (default rule)
build build in a configured directory
clean remove files but keep configuration
- install build many targets (wildcard allowed) and install in DESTDIR
- uninstall remove all installed targets
+ sdk build many targets (wildcard allowed) in DESTDIR
+ clean-sdk remove all built targets
examples build examples for given targets (T=)
examples_clean clean examples for given targets (T=)
Build variables
@@ -114,7 +114,7 @@ user. For the installation of the DPDK, the default options were used.
make config -recursive command until no more dialogs are seen.
-Install the DPDK and Browse Sources
+Prepare the DPDK and Browse Sources
-----------------------------------
First, uncompress the archive and move to the DPDK source directory:
@@ -136,8 +136,8 @@ The DPDK is composed of several directories:
* config, tools, scripts, mk: Framework-related makefiles, scripts and configuration
-Installation of the DPDK Target Environments
---------------------------------------------
+Compiling the DPDK SDK for a Target Environment
+-----------------------------------------------
The format of a DPDK target is:
@@ -168,23 +168,23 @@ directory in the form of:
on which it is built. For more information on this setting, and its
possible values, see the *DPDK Programmers Guide*.
-To install and make the target, use "gmake install T=<target>".
+To make the target, use "gmake sdk T=<target>".
For example to compile for FreeBSD* use:
.. code-block:: console
- gmake install T=x86_64-native-bsdapp-clang
+ gmake sdk T=x86_64-native-bsdapp-clang
.. note::
If the compiler binary to be used does not correspond to that given in the
TOOLCHAIN part of the target, the compiler command may need to be explicitly
specified. For example, if compiling for gcc, where the gcc binary is called
- gcc4.8, the command would need to be "gmake install T=<target> CC=gcc4.8".
+ gcc4.8, the command would need to be "gmake sdk T=<target> CC=gcc4.8".
-Browsing the Installed DPDK Environment Target
-----------------------------------------------
+Browsing the Compiled DPDK SDK
+------------------------------
Once a target is created, it contains all the libraries and header files for the
DPDK environment that are required to build customer applications.
@@ -35,8 +35,8 @@ Compiling the DPDK Target from Source
Parts of this process can also be done using the setup script described in Chapter 6 of this document.
-Install the DPDK and Browse Sources
------------------------------------
+Prepare DPDK and Browse Sources
+-------------------------------
First, uncompress the archive and move to the uncompressed DPDK source directory:
@@ -59,8 +59,8 @@ The DPDK is composed of several directories:
* config, tools, scripts, mk: Framework-related makefiles, scripts and configuration
-Installation of DPDK Target Environments
-----------------------------------------
+Compile DPDK SDK for a Target Environment
+-----------------------------------------
The format of a DPDK target is:
@@ -96,31 +96,31 @@ Also, verify the compiler's installation directory since the path may be differe
source /opt/intel/bin/iccvars.sh intel64
source /opt/intel/bin/iccvars.sh ia32
-To install and make targets, use the make install T=<target> command in the top-level DPDK directory.
+To install and make targets, use the make sdk T=<target> command in the top-level DPDK directory.
For example, to compile a 64-bit target using icc, run:
.. code-block:: console
- make install T=x86_64-native-linuxapp-icc
+ make sdk T=x86_64-native-linuxapp-icc
To compile a 32-bit build using gcc, the make command should be:
.. code-block:: console
- make install T=i686-native-linuxapp-gcc
+ make sdk T=i686-native-linuxapp-gcc
To compile all 64-bit targets using gcc, use:
.. code-block:: console
- make install T=x86_64*gcc
+ make sdk T=x86_64*gcc
To compile all 64-bit targets using both gcc and icc, use:
.. code-block:: console
- make install T=x86_64-*
+ make sdk T=x86_64-*
.. note::
@@ -152,8 +152,8 @@ The user may also make modifications to the compile-time DPDK configuration by e
In addition, the make clean command can be used to remove any existing compiled files for a subsequent full, clean rebuild of the code.
-Browsing the Installed DPDK Environment Target
-----------------------------------------------
+Browsing the Compiled DPDK SDK
+------------------------------
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.
@@ -512,7 +512,7 @@ The setup procedure is as follows:
.. code-block:: console
- make install T=x86_64-native-linuxapp-gcc
+ make sdk T=x86_64-native-linuxapp-gcc
./x86_64-native-linuxapp-gcc/app/testpmd -c f -n 4 -- -i
#. Finally, access the Guest OS using vncviewer with the localhost:5900 port and check the lspci command output in the Guest OS.
@@ -102,15 +102,15 @@ The default output directory is build.
make lib/librte_eal_clean O=mybuild
-Install Targets
----------------
+SDK Compilation Targets
+-----------------------
-* Install
+* sdk
Build the DPDK binary.
Actually, this builds each supported target in a separate directory.
The name of each directory is the name of the target.
- The name of the targets to install can be optionally specified using T=mytarget.
+ The name of the targets to build can be optionally specified using T=mytarget.
The target name can contain wildcard \* characters.
The list of available targets are in $(RTE_SDK)/config (remove the defconfig\_ prefix).
@@ -118,11 +118,11 @@ Install Targets
.. code-block:: console
- make install T=x86_64-*
+ make sdk T=x86_64-*
-* Uninstall
+* clean-sdk
- Remove installed target directories.
+ Remove previously built target directories.
Test Targets
------------
@@ -140,7 +140,7 @@ Test Targets
* testall
- Launch automatic tests for all installed target directories (after a make install).
+ Launch automatic tests for all installed target directories (after a make sdk).
The name of the targets to test can be optionally specified using T=mytarget.
The target name can contain wildcard (\*) characters.
The list of available targets are in $(RTE_SDK)/config (remove the defconfig\_ prefix).
@@ -265,4 +265,4 @@ For example:
.. code-block:: console
- make install T=x86_64-native-linuxapp-gcc make -C examples/<theapp>
+ make sdk T=x86_64-native-linuxapp-gcc make -C examples/<theapp>
@@ -8,6 +8,10 @@ API and ABI deprecation notices are to be posted here.
Deprecation Notices
-------------------
+* The commands "make install" and "make uninstall" used to build, and clean up
+ the DPDK SDK have been renamed in this release to "make sdk" and "make
+ sdk-clean" respectively.
+
* The following fields have been deprecated in rte_eth_stats:
ibadcrc, ibadlen, imcasts, fdirmatch, fdirmiss,
tx_pause_xon, rx_pause_xon, tx_pause_xoff, rx_pause_xoff
@@ -196,6 +196,13 @@ Known Issues
------------
+Build Changes
+-------------
+
+* The commands "make install" and "make uninstall" to build and subsequently
+ clean-up the DPDK SDK have been renamed to "make sdk" and "make sdk-clean" in
+ this release.
+
API Changes
-----------
@@ -162,8 +162,7 @@ Compiling the Sample Code
.. code-block:: console
cd ${RTE_SDK}
- make config ${RTE_TARGET}
- make install ${RTE_TARGET}
+ make sdk ${RTE_TARGET}
cd ${RTE_SDK}/examples/tep_termination
make
@@ -334,8 +334,7 @@ Compiling the Sample Code
.. code-block:: console
cd ${RTE_SDK}
- make config ${RTE_TARGET}
- make install ${RTE_TARGET}
+ make sdk ${RTE_TARGET}
cd ${RTE_SDK}/examples/vhost
make
@@ -52,7 +52,7 @@ The basic compilation steps are:
.. code-block:: console
- make install T=$RTE_TARGET
+ make sdk T=$RTE_TARGET
The compiled application will be located at:
@@ -295,7 +295,7 @@ Building and Running the Switching Backend
.. code-block:: console
- make install T=x86_64-native-linuxapp-gcc
+ make sdk T=x86_64-native-linuxapp-gcc
#. Ensure that RTE_SDK and RTE_TARGET are correctly set. Build the switching example:
new file mode 100644
@@ -0,0 +1,88 @@
+# BSD LICENSE
+#
+# Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Intel Corporation nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Build directory is given with O=
+ifdef O
+BUILD_DIR=$(O)
+else
+BUILD_DIR=.
+endif
+
+# Targets to install can be specified in command line. It can be a
+# target name or a name containing jokers "*". Example:
+# x86_64-native-*-gcc
+ifndef T
+T=*
+endif
+
+#
+# sdk: build sdk for all supported targets
+#
+SDK_CONFIGS := $(patsubst $(RTE_SRCDIR)/config/defconfig_%,%,\
+ $(wildcard $(RTE_SRCDIR)/config/defconfig_$(T)))
+SDK_TARGETS := $(addsuffix _sdkbuild,\
+ $(filter-out %~,$(SDK_CONFIGS)))
+
+.PHONY: sdk sdkbuild
+sdk: sdkbuild
+sdkbuild: $(SDK_TARGETS)
+
+%_sdkbuild:
+ @echo ================== Building $*
+ $(Q)if [ ! -f $(BUILD_DIR)/$*/.config ]; then \
+ $(MAKE) config T=$* O=$(BUILD_DIR)/$*; \
+ elif cmp -s $(BUILD_DIR)/$*/.config.orig $(BUILD_DIR)/$*/.config; then \
+ $(MAKE) config T=$* O=$(BUILD_DIR)/$*; \
+ else \
+ if [ -f $(BUILD_DIR)/$*/.config.orig ] ; then \
+ tmp_build=$(BUILD_DIR)/$*/.config.tmp; \
+ $(MAKE) config T=$* O=$$tmp_build; \
+ if ! cmp -s $(BUILD_DIR)/$*/.config.orig $$tmp_build/.config ; then \
+ echo "Conflict: local config and template config have both changed"; \
+ exit 1; \
+ fi; \
+ fi; \
+ echo "Using local configuration"; \
+ fi
+ $(Q)$(MAKE) all O=$(BUILD_DIR)/$*
+
+#
+# clean-sdk: remove all built sdk
+#
+CLEAN_SDK_TARGETS := $(addsuffix _clean_sdk,\
+ $(filter-out %~,$(SDK_CONFIGS)))
+
+.PHONY: clean-sdk
+clean-sdk: $(CLEAN_SDK_TARGETS)
+
+%_clean_sdk:
+ @echo ================== Cleaning $*
+ $(Q)rm -rf $(BUILD_DIR)/$*
deleted file mode 100644
@@ -1,87 +0,0 @@
-# BSD LICENSE
-#
-# Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-# * Neither the name of Intel Corporation nor the names of its
-# contributors may be used to endorse or promote products derived
-# from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-# Build directory is given with O=
-ifdef O
-BUILD_DIR=$(O)
-else
-BUILD_DIR=.
-endif
-
-# Targets to install can be specified in command line. It can be a
-# target name or a name containing jokers "*". Example:
-# x86_64-native-*-gcc
-ifndef T
-T=*
-endif
-
-#
-# install: build sdk for all supported targets
-#
-INSTALL_CONFIGS := $(patsubst $(RTE_SRCDIR)/config/defconfig_%,%,\
- $(wildcard $(RTE_SRCDIR)/config/defconfig_$(T)))
-INSTALL_TARGETS := $(addsuffix _install,\
- $(filter-out %~,$(INSTALL_CONFIGS)))
-
-.PHONY: install
-install: $(INSTALL_TARGETS)
-
-%_install:
- @echo ================== Installing $*
- $(Q)if [ ! -f $(BUILD_DIR)/$*/.config ]; then \
- $(MAKE) config T=$* O=$(BUILD_DIR)/$*; \
- elif cmp -s $(BUILD_DIR)/$*/.config.orig $(BUILD_DIR)/$*/.config; then \
- $(MAKE) config T=$* O=$(BUILD_DIR)/$*; \
- else \
- if [ -f $(BUILD_DIR)/$*/.config.orig ] ; then \
- tmp_build=$(BUILD_DIR)/$*/.config.tmp; \
- $(MAKE) config T=$* O=$$tmp_build; \
- if ! cmp -s $(BUILD_DIR)/$*/.config.orig $$tmp_build/.config ; then \
- echo "Conflict: local config and template config have both changed"; \
- exit 1; \
- fi; \
- fi; \
- echo "Using local configuration"; \
- fi
- $(Q)$(MAKE) all O=$(BUILD_DIR)/$*
-
-#
-# uninstall: remove all built sdk
-#
-UNINSTALL_TARGETS := $(addsuffix _uninstall,\
- $(filter-out %~,$(INSTALL_CONFIGS)))
-
-.PHONY: uninstall
-uninstall: $(UNINSTALL_TARGETS)
-
-%_uninstall:
- @echo ================== Uninstalling $*
- $(Q)rm -rf $(BUILD_DIR)/$*
@@ -98,8 +98,17 @@ testall:
$(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdktestall.mk $@
.PHONY: install uninstall
-install uninstall:
- $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkinstall.mk $@
+#install uninstall:
+# $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkinstall.mk $@
+install:
+ $(Q)echo "'make install' is deprecated. Use 'make sdk' instead"
+
+uninstall:
+ $(Q)echo "'make uninstall' is deprecated. Use 'make clean-sdk' instead"
+
+.PHONY: sdk clean-sdk
+sdk clean-sdk:
+ $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdk.mk $@
.PHONY: doc help
doc: doc-all
@@ -46,7 +46,7 @@ echo "endif"
echo
echo "MAKEFLAGS += --no-print-directory"
echo
-echo "all:"
+echo "all sdk:"
echo " @\$(MAKE) -C $1 O=$2"
echo
echo "%::"
@@ -80,7 +80,7 @@ setup_icc()
}
#
-# Sets RTE_TARGET and does a "make install".
+# Sets RTE_TARGET and does a "make sdk".
#
setup_target()
{
@@ -97,7 +97,7 @@ setup_target()
fi
fi
if [ "$QUIT" == "0" ] ; then
- make install T=${RTE_TARGET}
+ make sdk T=${RTE_TARGET}
fi
echo "------------------------------------------------------------------------------"
echo " RTE_TARGET exported as $RTE_TARGET"
@@ -109,7 +109,7 @@ setup_target()
#
uninstall_targets()
{
- make uninstall
+ make clean-sdk
}
#