Building VPP
============
-To get started developing with VPP you need to get the sources and build the packages.
+To get started developing with VPP, you need to get the required VPP sources and then build the packages.
+For more detailed information on the build system please refer to :ref:`buildsystem`.
.. _setupproxies:
Set up Proxies
---------------
+--------------------------
-Depending on the environment, proxies may need to be set.
-You may run these commands:
+Depending on the environment you are operating in, proxies may need to be set.
+Run these proxy commands to specify the *proxy-server-name* and corresponding *port-number*:
.. code-block:: console
Get the VPP Sources
--------------------
+-----------------------------------
-To get the VPP sources and get ready to build execute the following:
+To get the VPP sources that are used to create the build, run the following commands:
.. code-block:: console
$ cd vpp
Build VPP Dependencies
-----------------------
+--------------------------------------
-Before building, make sure there are no FD.io VPP or DPDK packages installed by entering the following
-commands:
+Before building a VPP image, make sure there are no FD.io VPP or DPDK packages
+installed, by entering the following commands:
.. code-block:: console
$ dpkg -l | grep vpp
$ dpkg -l | grep DPDK
-There should be no output, or packages showing after each of the above commands.
+There should be no output, or no packages shown after the above commands are run.
-Run this to install the dependencies for FD.io VPP.
-If it hangs during downloading at any point, you may need to set up :ref:`proxies for this to work <setupproxies>`.
+Run the following **make** command to install the dependencies for FD.io VPP.
+
+If the download hangs at any point, then you may need to
+:ref:`set up proxies <setupproxies>` for the download to work.
.. code-block:: console
done.
done.
-Build VPP (Debug Mode)
-----------------------
+Build VPP (Debug)
+----------------------------
+
+This build version contains debug symbols which are useful for modifying VPP. The
+**make** command below builds a debug version of VPP. The binaries, when building the
+debug images, can be found in /build-root/vpp_debug-native.
-This build version contains debug symbols which is useful to modify VPP. The command below will build debug version of VPP.
-This build will come with /build-root/vpp_debug-native.
+The Debug build version contains debug symbols, which are useful for troubleshooting
+or modifying VPP. The **make** command below, builds a debug version of VPP. The
+binaries used for building the debug image can be found in */build-root/vpp_debug-native*.
.. code-block:: console
make[1]: Leaving directory '/home/vagrant/vpp-master/build-root'
Build VPP (Release Version)
----------------------------
+-----------------------------------------
-To build the release version of FD.io VPP.
-This build is optimized and will not create debug symbols.
-This build will come with /build-root/build-vpp-native
+This section describes how to build the regular release version of FD.io VPP. The
+release build is optimized and does not create any debug symbols.
+The binaries used in building the release images are found in */build-root/vpp-native*.
+
+Use the following **make** command below to build the release version of FD.io VPP.
.. code-block:: console
- $ make release
+ $ make build-release
Building Necessary Packages
----------------------------
+--------------------------------------------
+
+The package that needs to be built depends on the type system VPP will be running on:
-To build the debian packages, one of the following commands below depending on the system:
+* The :ref:`Debian package <debianpackages>` is built if VPP is going to run on Ubuntu
+* The :ref:`RPM package <rpmpackages>` is built if VPP is going to run on Centos or Redhat
+
+.. _debianpackages:
Building Debian Packages
-^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+To build the debian packages, use the following command:
.. code-block:: console
$ make pkg-deb
-
+
+.. _rpmpackages:
Building RPM Packages
-^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^
+
+To build the rpm packages, use one of the following commands below, depending on the system:
.. code-block:: console
$ make pkg-rpm
-The packages will be found in the build-root directory.
+Once the packages are built they can be found in the build-root directory.
.. code-block:: console
$ ls *.deb
- If packages built correctly, this should be the Output
+ If the packages are built correctly, then this should be the corresponding output:
vpp_18.07-rc0~456-gb361076_amd64.deb vpp-dbg_18.07-rc0~456-gb361076_amd64.deb
- vpp-api-java_18.07-rc0~456-gb361076_amd64.deb vpp-dev_18.07-rc0~456-gb361076_amd64.deb
- vpp-api-lua_18.07-rc0~456-gb361076_amd64.deb vpp-lib_18.07-rc0~456-gb361076_amd64.deb
- vpp-api-python_18.07-rc0~456-gb361076_amd64.deb vpp-plugins_18.07-rc0~456-gb361076_amd64.deb
+ vpp-dev_18.07-rc0~456-gb361076_amd64.deb vpp-api-lua_18.07-rc0~456-gb361076_amd64.deb
+ vpp-lib_18.07-rc0~456-gb361076_amd64.deb vpp-api-python_18.07-rc0~456-gb361076_amd64.deb
+ vpp-plugins_18.07-rc0~456-gb361076_amd64.deb
+
+Finally, the created packages can be installed using the following commands. Install
+the package that corresponds to OS that VPP will be running on:
-Packages built installed end up in build-root directory. Finally, the command below installs all built packages.
+For Ubuntu:
.. code-block:: console
$ sudo bash
# dpkg -i *.deb
+
+For Centos or Redhat:
+
+.. code-block:: console
+
+ $ sudo bash
+ # rpm -ivh *.rpm