libsepol compilation fixes for macOS.

ln on macOS doesn't support --relative, so use the gnu version by default.

Also document how to build on macOS.

Signed-off-by: Karl MacMillan <karlwmacmillan@gmail.com>
This commit is contained in:
Karl MacMillan 2017-01-20 12:15:59 -05:00 committed by Stephen Smalley
parent cdc653a447
commit 4a05e95f19
2 changed files with 8 additions and 1 deletions

5
README
View file

@ -17,3 +17,8 @@ make install install-pywrap relabel
This may render your system unusable if the upstream SELinux userspace
lacks library functions or other dependencies relied upon by your
distribution. If it breaks, you get to keep both pieces.
To install libsepol on macOS (mainly for policy analysis):
cd libsepol; make DESTDIR=/usr/local PREFIX=/usr/local install
This requires GNU coreutils (brew install coreutils).

View file

@ -32,10 +32,12 @@ endif
LD_SONAME_FLAGS=-soname,$(LIBSO),--version-script=$(LIBMAP),-z,defs
LN=ln
OS := $(shell uname)
ifeq ($(OS), Darwin)
LD_SONAME_FLAGS=-install_name,$(LIBSO)
LDFLAGS += -undefined dynamic_lookup
LN=gln
endif
all: $(LIBA) $(LIBSO) $(LIBPC)
@ -84,7 +86,7 @@ install: all
install -m 755 $(LIBSO) $(SHLIBDIR)
test -d $(LIBDIR)/pkgconfig || install -m 755 -d $(LIBDIR)/pkgconfig
install -m 644 $(LIBPC) $(LIBDIR)/pkgconfig
ln -sf --relative $(SHLIBDIR)/$(LIBSO) $(LIBDIR)/$(TARGET)
$(LN) -sf --relative $(SHLIBDIR)/$(LIBSO) $(LIBDIR)/$(TARGET)
relabel:
/sbin/restorecon $(SHLIBDIR)/$(LIBSO)