mirror of
https://github.com/netdata/libbpf.git
synced 2026-03-13 21:09:07 +08:00
Makefile: use pkg-config to get libelf flags
libbpf uses libelf symbols internally, so it depends on it and needs to link against it. Upstream this was fixed by linking directory to libelf: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf.git/commit/?id=89dedaef49d36adc2bb5e7e4c38b52fa3013c7c8 For this project, intended to be used as a general library, try first to use pkg-config instead, and only fallback to just passing -lelf. This will be useful for cross compiling, among other cases. Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
This commit is contained in:
14
README
14
README
@@ -19,6 +19,13 @@ successful.
|
||||
|
||||
Build
|
||||
=====
|
||||
libelf is an internal dependency of libbpf and thus it is required to link
|
||||
against and must be installed on the system for applications to work.
|
||||
pkg-config is used by default to find libelf, and the program called can be
|
||||
overridden with PKG_CONFIG.
|
||||
If using pkg-config at build time is not desired, it can be disabled by setting
|
||||
NO_PKG_CONFIG=1 when calling make.
|
||||
|
||||
To build both static libbpf.a and shared libbpf.so:
|
||||
cd src
|
||||
make
|
||||
@@ -29,3 +36,10 @@ root/:
|
||||
cd src
|
||||
mkdir build root
|
||||
BUILD_STATIC_ONLY=y OBJDIR=build DESTDIR=root make install
|
||||
|
||||
To build both static libbpf.a and shared libbpf.so against a custom libelf
|
||||
dependency installed in /build/root/ and install them together with libbpf
|
||||
headers in a build directory /build/root/:
|
||||
|
||||
cd src
|
||||
PKG_CONFIG_PATH=/build/root/lib64/pkgconfig DESTDIR=/build/root make install
|
||||
|
||||
10
src/Makefile
10
src/Makefile
@@ -16,6 +16,14 @@ endif
|
||||
|
||||
CFLAGS ?= -g -O2 -Werror -Wall
|
||||
ALL_CFLAGS += $(CFLAGS)
|
||||
ALL_LDFLAGS += $(LDFLAGS)
|
||||
ifdef NO_PKG_CONFIG
|
||||
ALL_LDFLAGS += -lelf
|
||||
else
|
||||
PKG_CONFIG ?= pkg-config
|
||||
ALL_CFLAGS += $(shell $(PKG_CONFIG) --cflags libelf)
|
||||
ALL_LDFLAGS += $(shell $(PKG_CONFIG) --libs libelf)
|
||||
endif
|
||||
|
||||
OBJDIR ?= .
|
||||
|
||||
@@ -54,7 +62,7 @@ $(OBJDIR)/libbpf.a: $(OBJS)
|
||||
$(AR) rcs $@ $^
|
||||
|
||||
$(OBJDIR)/libbpf.so: $(OBJS)
|
||||
$(CC) -shared $(LDFLAGS) $^ -o $@
|
||||
$(CC) -shared $(ALL_LDFLAGS) $^ -o $@
|
||||
|
||||
$(OBJDIR)/libbpf.pc:
|
||||
sed -e "s|@PREFIX@|$(PREFIX)|" \
|
||||
|
||||
Reference in New Issue
Block a user