mirror of
https://github.com/netdata/libbpf.git
synced 2026-04-04 23:59:07 +08:00
Extend build and add install rules to Makefile
Introduce multiple improvements to Makefile to make the build more flexible and support install: * Support overriding CFLAGS by user but keep required flags in place. ALL_FLAGS is used in Makefile as recommended in [1]. * Add additional BUILD_SHARED flag to build dynamically linked flavor of the library. If the flag is set, -fPIC is also passed to make it possible to build .so. * Support building in a separate directory provided by OBJDIR variable. * Add multiple install targets. By default the library itself and libbpf headers are installed (install target). UAPI headers can be optionally installed by user. * All installation paths, including PREFIX, library and include directories can be overridden. UAPI can be made different from include directory for libbpf headers. That makes it possible to keep latest <linux/bpf.h> in a place that doesn't conflict with the one installed e.g. by kernel-headers package and use it in user's build system. * Support DESTDIR (see [2]). * Support overriding LDFLAGS. * Use utilities such as rm directly as recommended in [3]. * Use compiler and related programs (such as ar) via make variables as recommended in [3]. * In clean rule remove all possible build artifacts not to rely on passed options (e.g. if build was done w/ BUILD_SHARED, but clean w/o it). * Document new build options in README. [1] https://www.gnu.org/software/make/manual/html_node/Command-Variables.html#Command-Variables [2] https://www.gnu.org/prep/standards/html_node/DESTDIR.html [3] https://www.gnu.org/software/make/manual/html_node/Utilities-in-Makefiles.html#Utilities-in-Makefiles Signed-off-by: Andrey Ignatov <rdna@fb.com>
This commit is contained in:
10
README
10
README
@@ -18,7 +18,13 @@ successful.
|
||||
Build
|
||||
=====
|
||||
|
||||
To build,
|
||||
To build static library libbpf.a:
|
||||
cd src
|
||||
make
|
||||
and it will build libbpf.a library
|
||||
|
||||
To build both static libbpf.a and shared libbpf.so libraries in directory
|
||||
build/ and install them together with libbpf headers in a staging directory
|
||||
root/:
|
||||
cd src
|
||||
mkdir build root
|
||||
BUILD_SHARED=y OBJDIR=build DESTDIR=root make install
|
||||
|
||||
Reference in New Issue
Block a user