mcstrans: build: follow standard semantics for DESTDIR and PREFIX

Signed-off-by: Marcus Folkesson <marcus.folkesson@gmail.com>
This commit is contained in:
Marcus Folkesson 2018-02-14 10:57:08 +01:00 committed by Nicolas Iooss
parent 0932805363
commit fc7a4e0798
3 changed files with 42 additions and 29 deletions

View File

@ -1,11 +1,12 @@
# Installation directories.
MAN8DIR ?= $(DESTDIR)/usr/share/man/man8
PREFIX ?= /usr
MAN8DIR ?= $(PREFIX)/share/man/man8
all:
install: all
mkdir -p $(MAN8DIR)
install -m 644 man8/*.8 $(MAN8DIR)
mkdir -p $(DESTDIR)$(MAN8DIR)
install -m 644 man8/*.8 $(DESTDIR)$(MAN8DIR)
clean:
-rm -f *~ \#*

View File

@ -1,33 +1,37 @@
# Installation directories.
PREFIX ?= $(DESTDIR)/usr
LIBDIR ?= $(PREFIX)/lib
SBINDIR ?= $(DESTDIR)/sbin
INITDIR ?= $(DESTDIR)/etc/rc.d/init.d
SYSTEMDDIR ?= $(DESTDIR)/usr/lib/systemd
LIBSEPOLA ?= $(LIBDIR)/libsepol.a
PREFIX ?= /usr
SBINDIR ?= /sbin
INITDIR ?= /etc/rc.d/init.d
SYSTEMDDIR ?= $(PREFIX)/lib/systemd
# If no specific libsepol.a is specified, fall back on LDFLAGS search path
# Otherwise, as $(LIBSEPOLA) already appears in the dependencies, there
# is no need to define a value for LDLIBS_LIBSEPOLA
ifeq ($(LIBSEPOLA),)
LDLIBS_LIBSEPOLA := -l:libsepol.a
endif
PROG_SRC=mcstrans.c mcscolor.c mcstransd.c mls_level.c
PROG_OBJS= $(patsubst %.c,%.o,$(PROG_SRC))
PROG=mcstransd
INITSCRIPT=mcstrans
CFLAGS ?= -Wall -W -Wundef -Wmissing-noreturn -Wmissing-format-attribute
override CFLAGS += -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
all: $(PROG)
$(PROG): $(PROG_OBJS)
$(CC) $(LDFLAGS) -pie -o $@ $^ -lselinux -lcap -lpcre $(LIBSEPOLA)
$(PROG): $(PROG_OBJS) $(LIBSEPOLA)
$(CC) $(LDFLAGS) -pie -o $@ $^ -lselinux -lcap -lpcre $(LDLIBS_LIBSEPOLA)
%.o: %.c
$(CC) $(CFLAGS) -fPIE -c -o $@ $<
$(CC) $(CFLAGS) -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -fPIE -c -o $@ $<
install: all
test -d $(SBINDIR) || install -m 755 -d $(SBINDIR)
install -m 755 $(PROG) $(SBINDIR)
test -d $(INITDIR) || install -m 755 -d $(INITDIR)
install -m 755 $(INITSCRIPT).init $(INITDIR)/$(INITSCRIPT)
test -d $(SYSTEMDDIR)/system || install -m 755 -d $(SYSTEMDDIR)/system
install -m 644 mcstrans.service $(SYSTEMDDIR)/system/
test -d $(DESTDIR)$(SBINDIR) || install -m 755 -d $(DESTDIR)$(SBINDIR)
install -m 755 $(PROG) $(DESTDIR)$(SBINDIR)
test -d $(DESTDIR)$(INITDIR) || install -m 755 -d $(DESTDIR)$(INITDIR)
install -m 755 $(INITSCRIPT).init $(DESTDIR)$(INITDIR)/$(INITSCRIPT)
test -d $(DESTDIR)$(SYSTEMDDIR)/system || install -m 755 -d $(DESTDIR)$(SYSTEMDDIR)/system
install -m 644 mcstrans.service $(DESTDIR)$(SYSTEMDDIR)/system/
clean:
-rm -f $(OBJS) $(LOBJS) $(TARGET) $(PROG) $(PROG_OBJS) *~ \#*

View File

@ -1,22 +1,30 @@
# Installation directories.
PREFIX ?= $(DESTDIR)/usr
LIBDIR ?= $(PREFIX)/lib
PREFIX ?= /usr
SBINDIR ?= $(PREFIX)/sbin
LIBSEPOLA ?= $(LIBDIR)/libsepol.a
CFLAGS ?= -Wall
override CFLAGS += -I../src -D_GNU_SOURCE
override LDLIBS += -lselinux -lpcre
TARGETS=transcon untranscon
TARGETS=$(patsubst %.c,%,$(sort $(wildcard *.c)))
# If no specific libsepol.a is specified, fall back on LDFLAGS search path
# Otherwise, as $(LIBSEPOLA) already appears in the dependencies, there
# is no need to define a value for LDLIBS_LIBSEPOLA
ifeq ($(LIBSEPOLA),)
LDLIBS_LIBSEPOLA := -l:libsepol.a
endif
all: $(TARGETS)
$(TARGETS): ../src/mcstrans.o ../src/mls_level.o $(LIBSEPOLA)
transcon: transcon.o ../src/mcstrans.o ../src/mls_level.o $(LIBSEPOLA)
$(CC) $(LDFLAGS) -o $@ $^ -lpcre -lselinux $(LDLIBS_LIBSEPOLA)
untranscon: untranscon.o ../src/mcstrans.o ../src/mls_level.o $(LIBSEPOLA)
$(CC) $(LDFLAGS) -o $@ $^ -lpcre -lselinux $(LDLIBS_LIBSEPOLA)
%.o: %.c
$(CC) $(CFLAGS) -D_GNU_SOURCE -I../src -fPIE -c -o $@ $<
install: all
-mkdir -p $(SBINDIR)
install -m 755 $(TARGETS) $(SBINDIR)
-mkdir -p $(DESTDIR)$(SBINDIR)
install -m 755 $(TARGETS) $(DESTDIR)$(SBINDIR)
test:
./mlstrans-test-runner.py ../test/*.test