The Vector Packet Processor Logo
20.09
  • The Vector Packet Processor (VPP)
  • Getting Started
    • Downloading and Installing VPP
    • Progressive VPP Tutorial
    • For Users
    • For Developers
      • Building VPP
      • Running VPP
      • GDB Examples
      • Adding a plugin
      • Add a plugin’s GO API
      • Getting a Patch Reviewed
      • Software Architecture
      • VPPINFRA (Infrastructure)
      • VLIB (Vector Processing Library)
      • Packet generator input script
      • Start vpp with 2 worker threads
      • Enable tracing, and start the packet generator
      • Sample Run
      • Plugins
      • VNET (VPP Network Stack)
      • Feature Arcs
      • Buffer Metadata
      • Buffer Metadata Extensions
      • Multi-architecture support
      • Bounded-index Extensible Hashing (bihash)
      • VPP API module
      • Binary API Support
      • Build System
        • Introduction to the top-level Makefile
        • Introduction to cmake and ninja
        • Introduction to build-root/Makefile
      • Event-logger
      • G2 graphical event viewer
      • FIB 2.0 Hierarchical, Protocol, Independent
      • How to build a vpp dispatch trace aware Wireshark
      • Punting Packets
      • QUIC HostStack
      • Cross compilation on MacOS
      • Cloud NAT
      • VPP API Language {#api_lang_doc}
    • Writing Documents
  • VPP Wiki, Doxygen and Other Links
  • Use Cases
  • Features by Release
  • Troubleshooting
  • Events
  • Reference
  • Related Projects
  • Archive
  • About
The Vector Packet Processor
  • Docs »
  • Getting Started »
  • For Developers »
  • Build System
  • View page source

Build System¶

This guide describes the vpp build system in detail. As of this writing, the build systems uses a mix of make / Makefiles, cmake, and ninja to achieve excellent build performance.

  • Introduction to the top-level Makefile
  • Introduction to cmake and ninja
    • vpp cmake configuration files
    • How to write a plugin CMakeLists.txt file
    • Adding a target elsewhere in the source tree
    • Tinkering with build options: ccmake
  • Introduction to build-root/Makefile
    • Repository Groups and Source Paths
    • Single pass build system, dependencies and components
    • …/build-root
    • …/build-root/build-config.mk
    • …/vpp/build-root/Makefile
    • The PLATFORM variable
    • The platform-specific .mk fragment
    • The TAG variable
    • Important targets build-root/Makefile
    • Additional build-root/Makefile environment variable settings
    • …/build-root/config.site
    • …/build-data/platforms.mk
    • …/build-data/packages/*.mk
Next Previous

© Copyright 2018-2020, Linux Foundation

Built with Sphinx using a theme provided by Read the Docs.
VPP versions v20.09
Other links
Project Home