Merge commit '81fd23e2b3ccf71c807e671444e8accaba98ca53' of https://git.pengutronix...
[linux-2.6-microblaze.git] / Documentation / bpf / libbpf / libbpf_build.rst
1 .. SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause)
2
3 Building libbpf
4 ===============
5
6 libelf and zlib are internal dependencies of libbpf and thus are required to link
7 against and must be installed on the system for applications to work.
8 pkg-config is used by default to find libelf, and the program called
9 can be overridden with PKG_CONFIG.
10
11 If using pkg-config at build time is not desired, it can be disabled by
12 setting NO_PKG_CONFIG=1 when calling make.
13
14 To build both static libbpf.a and shared libbpf.so:
15
16 .. code-block:: bash
17
18     $ cd src
19     $ make
20
21 To build only static libbpf.a library in directory build/ and install them
22 together 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
30 To build both static libbpf.a and shared libbpf.so against a custom libelf
31 dependency installed in /build/root/ and install them together with libbpf
32 headers 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