Build shared lib by default, add options to turn it off

The vast majority of use cases want a shared library, so to be more
user and packager friendly invert the makefile logic and always build
both static and shared libraries by default.
Add BUILD_STATIC_ONLY variable for the corner cases where only a static
library is needed

Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
This commit is contained in:
Luca Boccassi
2019-03-29 16:29:49 +00:00
parent e31e1a5a3f
commit 3e403451c7
2 changed files with 5 additions and 6 deletions

7
README
View File

@@ -19,14 +19,13 @@ successful.
Build
=====
To build static library libbpf.a:
To build both static libbpf.a and shared libbpf.so:
cd src
make
To build both static libbpf.a and shared libbpf.so libraries in directory
To build only static libbpf.a library 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
BUILD_STATIC_ONLY=y OBJDIR=build DESTDIR=root make install

View File

@@ -10,7 +10,7 @@ ifneq ($(FEATURE_REALLOCARRAY),)
ALL_CFLAGS += -DCOMPAT_NEED_REALLOCARRAY
endif
ifdef BUILD_SHARED
ifndef BUILD_STATIC_ONLY
ALL_CFLAGS += -fPIC -fvisibility=hidden
endif
@@ -23,7 +23,7 @@ OBJS := $(addprefix $(OBJDIR)/,bpf.o btf.o libbpf.o libbpf_errno.o netlink.o \
nlattr.o str_error.o libbpf_probes.o bpf_prog_linfo.o xsk.o)
LIBS := $(OBJDIR)/libbpf.a
ifdef BUILD_SHARED
ifndef BUILD_STATIC_ONLY
LIBS += $(OBJDIR)/libbpf.so
endif