Skip to content

Commit

Permalink
libsepol: build: follow standard semantics for DESTDIR and PREFIX
Browse files Browse the repository at this point in the history
This patch solves the following issues:
- The pkg-config files generates odd paths when using DESTDIR without PREFIX
- DESTDIR is needed during compile time to compute library and header paths which it should not.
- Installing with both DESTDIR and PREFIX set gives us odd paths
- Make usage of DESTDIR and PREFIX more standard

Signed-off-by: Marcus Folkesson <[email protected]>
  • Loading branch information
marcusfolkesson authored and fishilico committed Feb 14, 2018
1 parent f281fc5 commit f8532f1
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 31 deletions.
2 changes: 1 addition & 1 deletion README
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@ 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
cd libsepol; make PREFIX=/usr/local install

This requires GNU coreutils (brew install coreutils).
16 changes: 8 additions & 8 deletions libsepol/include/Makefile
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
# Installation directories.
PREFIX ?= $(DESTDIR)/usr
INCDIR ?= $(PREFIX)/include/sepol
PREFIX ?= /usr
INCDIR = $(PREFIX)/include/sepol
CILDIR ?= ../cil

all:

install: all
test -d $(INCDIR) || install -m 755 -d $(INCDIR)
test -d $(INCDIR)/policydb || install -m 755 -d $(INCDIR)/policydb
test -d $(INCDIR)/cil || install -m 755 -d $(INCDIR)/cil
install -m 644 $(wildcard sepol/*.h) $(INCDIR)
install -m 644 $(wildcard sepol/policydb/*.h) $(INCDIR)/policydb
install -m 644 $(wildcard $(CILDIR)/include/cil/*.h) $(INCDIR)/cil
test -d $(DESTDIR)$(INCDIR) || install -m 755 -d $(DESTDIR)$(INCDIR)
test -d $(DESTDIR)$(INCDIR)/policydb || install -m 755 -d $(DESTDIR)$(INCDIR)/policydb
test -d $(DESTDIR)$(INCDIR)/cil || install -m 755 -d $(DESTDIR)$(INCDIR)/cil
install -m 644 $(wildcard sepol/*.h) $(DESTDIR)$(INCDIR)
install -m 644 $(wildcard sepol/policydb/*.h) $(DESTDIR)$(INCDIR)/policydb
install -m 644 $(wildcard $(CILDIR)/include/cil/*.h) $(DESTDIR)$(INCDIR)/cil

indent:
../../scripts/Lindent $(wildcard sepol/*.h)
13 changes: 7 additions & 6 deletions libsepol/man/Makefile
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
# Installation directories.
MAN8DIR ?= $(DESTDIR)/usr/share/man/man8
MAN3DIR ?= $(DESTDIR)/usr/share/man/man3
PREFIX ?= /usr
MAN8DIR ?= $(PREFIX)/share/man/man8
MAN3DIR ?= $(PREFIX)/share/man/man3

all:

install: all
mkdir -p $(MAN3DIR)
mkdir -p $(MAN8DIR)
install -m 644 man3/*.3 $(MAN3DIR)
install -m 644 man8/*.8 $(MAN8DIR)
mkdir -p $(DESTDIR)$(MAN3DIR)
mkdir -p $(DESTDIR)$(MAN8DIR)
install -m 644 man3/*.3 $(DESTDIR)$(MAN3DIR)
install -m 644 man8/*.8 $(DESTDIR)$(MAN8DIR)

23 changes: 11 additions & 12 deletions libsepol/src/Makefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
# Installation directories.
PREFIX ?= $(DESTDIR)/usr
PREFIX ?= /usr
INCLUDEDIR ?= $(PREFIX)/include
LIBDIR ?= $(PREFIX)/lib
SHLIBDIR ?= $(DESTDIR)/lib
SHLIBDIR ?= /lib
RANLIB ?= ranlib
LIBBASE ?= $(shell basename $(LIBDIR))
CILDIR ?= ../cil

VERSION = $(shell cat ../VERSION)
Expand Down Expand Up @@ -52,7 +51,7 @@ $(LIBSO): $(LOBJS) $(LIBMAP)
ln -sf $@ $(TARGET)

$(LIBPC): $(LIBPC).in ../VERSION
sed -e 's/@VERSION@/$(VERSION)/; s:@prefix@:$(PREFIX):; s:@libdir@:$(LIBBASE):; s:@includedir@:$(INCLUDEDIR):' < $< > $@
sed -e 's/@VERSION@/$(VERSION)/; s:@prefix@:$(PREFIX):; s:@libdir@:$(LIBDIR):; s:@includedir@:$(INCLUDEDIR):' < $< > $@

$(LIBMAP): $(LIBMAP).in
ifneq ($(DISABLE_CIL),y)
Expand Down Expand Up @@ -80,16 +79,16 @@ endif
$(CC) $(CFLAGS) -fPIC -DSHARED -c -o $@ $<

install: all
test -d $(LIBDIR) || install -m 755 -d $(LIBDIR)
install -m 644 $(LIBA) $(LIBDIR)
test -d $(SHLIBDIR) || install -m 755 -d $(SHLIBDIR)
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)
test -d $(DESTDIR)$(LIBDIR) || install -m 755 -d $(DESTDIR)$(LIBDIR)
install -m 644 $(LIBA) $(DESTDIR)$(LIBDIR)
test -d $(DESTDIR)$(SHLIBDIR) || install -m 755 -d $(DESTDIR)$(SHLIBDIR)
install -m 755 $(LIBSO) $(DESTDIR)$(SHLIBDIR)
test -d $(DESTDIR)$(LIBDIR)/pkgconfig || install -m 755 -d $(DESTDIR)$(LIBDIR)/pkgconfig
install -m 644 $(LIBPC) $(DESTDIR)$(LIBDIR)/pkgconfig
$(LN) -sf --relative $(DESTDIR)$(SHLIBDIR)/$(LIBSO) $(DESTDIR)$(LIBDIR)/$(TARGET)

relabel:
/sbin/restorecon $(SHLIBDIR)/$(LIBSO)
/sbin/restorecon $(DESTDIR)$(SHLIBDIR)/$(LIBSO)

clean:
-rm -f $(LIBPC) $(LIBMAP) $(OBJS) $(LOBJS) $(LIBA) $(LIBSO) $(TARGET) $(CIL_GENERATED)
Expand Down
2 changes: 1 addition & 1 deletion libsepol/src/libsepol.pc.in
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
prefix=@prefix@
exec_prefix=${prefix}
libdir=${exec_prefix}/@libdir@
libdir=@libdir@
includedir=@includedir@

Name: libsepol
Expand Down
6 changes: 3 additions & 3 deletions libsepol/utils/Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Installation directories.
PREFIX ?= $(DESTDIR)/usr
PREFIX ?= /usr
BINDIR ?= $(PREFIX)/bin

CFLAGS ?= -Wall -Werror
Expand All @@ -12,8 +12,8 @@ TARGETS=$(patsubst %.c,%,$(sort $(wildcard *.c)))
all: $(TARGETS)

install: all
-mkdir -p $(BINDIR)
install -m 755 $(TARGETS) $(BINDIR)
-mkdir -p $(DESTDIR)$(BINDIR)
install -m 755 $(TARGETS) $(DESTDIR)$(BINDIR)

clean:
-rm -f $(TARGETS) *.o
Expand Down

0 comments on commit f8532f1

Please sign in to comment.