Building VPP Commands

Set up Proxies

Depending on the environment, proxies may need to be set. You may run these commands:

$ export http_proxy=http://<proxy-server-name>.com:<port-number>
$ export https_proxy=https://<proxy-server-name>.com:<port-number>

Build VPP Dependencies

Before building, make sure there are no VPP or DPDK packages installed by entering the following commands:

$ dpkg -l | grep vpp
$ dpkg -l | grep DPDK

There should be no output, or packages showing after each of the above commands.

Run this to install the dependencies for VPP. If it hangs during downloading at any point, you may need to set up proxies for this to work.

$ make install-dep
Hit:1 xenial InRelease
Get:2 xenial-updates InRelease [109 kB]
Get:3 xenial-security InRelease [107 kB]
Get:4 xenial-backports InRelease [107 kB]
Get:5 xenial-updates/main amd64 Packages [803 kB]
Get:6 xenial-updates/main i386 Packages [732 kB]
Update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/bin/jmap to provide /usr/bin/jmap (jmap) in auto mode
Setting up default-jdk-headless (2:1.8-56ubuntu2) ...
Processing triggers for libc-bin (2.23-0ubuntu3) ...
Processing triggers for systemd (229-4ubuntu6) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for ca-certificates (20160104ubuntu1) ...
Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...


Build VPP (Debug Mode)

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.

$ make build
make[1]: Entering directory '/home/vagrant/vpp-master/build-root'
@@@@ Arch for platform 'vpp' is native @@@@
@@@@ Finding source for dpdk @@@@
@@@@ Makefile fragment found in /home/vagrant/vpp-master/build-data/packages/ @@@@
@@@@ Source found in /home/vagrant/vpp-master/dpdk @@@@
@@@@ Arch for platform 'vpp' is native @@@@
@@@@ Finding source for vpp @@@@
@@@@ Makefile fragment found in /home/vagrant/vpp-master/build-data/packages/ @@@@
@@@@ Source found in /home/vagrant/vpp-master/src @@@@
make[5]: Leaving directory '/home/vagrant/vpp-master/build-root/build-vpp_debug-native/vpp/vpp-api/java'
make[4]: Leaving directory '/home/vagrant/vpp-master/build-root/build-vpp_debug-native/vpp/vpp-api/java'
make[3]: Leaving directory '/home/vagrant/vpp-master/build-root/build-vpp_debug-native/vpp'
make[2]: Leaving directory '/home/vagrant/vpp-master/build-root/build-vpp_debug-native/vpp'
@@@@ Installing vpp: nothing to do @@@@
make[1]: Leaving directory '/home/vagrant/vpp-master/build-root'

Build VPP (Release Version)

To build the release version of VPP. This build is optimized and will not create debug symbols. This build will come with /build-root/build-vpp-native

$ make release

Building Necessary Packages

To build the debian packages, one of the following commands below depending on the system:

Building Debian Packages

$ make pkg-deb

Building RPM Packages

$ make pkg-rpm

The packages will be found in the build-root directory.

$ ls *.deb

If packages built correctly, this should be the 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

Packages built installed end up in build-root directory. Finally, the command below installs all built packages.

$ sudo bash
# dpkg -i *.deb