xref: /linux/Documentation/bpf/libbpf/libbpf_build.rst (revision 69bfec7548f4c1595bac0e3ddfc0458a5af31f4c)
1.. SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause)
2
3Building libbpf
4===============
5
6libelf and zlib are internal dependencies of libbpf and thus are required to link
7against and must be installed on the system for applications to work.
8pkg-config is used by default to find libelf, and the program called
9can be overridden with PKG_CONFIG.
10
11If using pkg-config at build time is not desired, it can be disabled by
12setting NO_PKG_CONFIG=1 when calling make.
13
14To build both static libbpf.a and shared libbpf.so:
15
16.. code-block:: bash
17
18    $ cd src
19    $ make
20
21To build only static libbpf.a library in directory build/ and install them
22together with libbpf headers in a staging directory root/:
23
24.. code-block:: bash
25
26    $ cd src
27    $ mkdir build root
28    $ BUILD_STATIC_ONLY=y OBJDIR=build DESTDIR=root make install
29
30To build both static libbpf.a and shared libbpf.so against a custom libelf
31dependency installed in /build/root/ and install them together with libbpf
32headers in a build directory /build/root/:
33
34.. code-block:: bash
35
36    $ cd src
37    $ PKG_CONFIG_PATH=/build/root/lib64/pkgconfig DESTDIR=/build/root make