普通文本  |  49行  |  1.35 KB

# Installation directories.
PREFIX ?= $(DESTDIR)/usr
SBINDIR ?= $(DESTDIR)/sbin
MANDIR = $(PREFIX)/share/man
LIBDIR ?= $(PREFIX)/lib
AUDITH = $(shell ls /usr/include/libaudit.h 2>/dev/null)

PROGRESS_STEP=$(shell grep "^\#define STAR_COUNT" restore.h | awk -S '{ print $$3 }')
ABORT_ON_ERRORS=$(shell grep "^\#define ABORT_ON_ERRORS" setfiles.c | awk -S '{ print $$3 }')

CFLAGS ?= -g -Werror -Wall -W
override CFLAGS += -I$(PREFIX)/include
LDLIBS = -lselinux -lsepol -L$(LIBDIR)

ifeq ($(AUDITH), /usr/include/libaudit.h)
	override CFLAGS += -DUSE_AUDIT
	LDLIBS += -laudit
endif

all: setfiles restorecon man

setfiles:  setfiles.o restore.o

restorecon: setfiles
	ln -sf setfiles restorecon

man:
	@cp -af setfiles.8 setfiles.8.man
	@cp -af restorecon.8 restorecon.8.man
	@sed -i "s/STAR_COUNT/$(PROGRESS_STEP)/g" setfiles.8.man restorecon.8.man
	@sed -i "s/ABORT_ON_ERRORS/$(ABORT_ON_ERRORS)/g" setfiles.8.man

install: all
	[ -d $(MANDIR)/man8 ] || mkdir -p $(MANDIR)/man8
	-mkdir -p $(SBINDIR)
	install -m 755 setfiles $(SBINDIR)
	(cd $(SBINDIR) && ln -sf setfiles restorecon)
	install -m 644 setfiles.8.man $(MANDIR)/man8/setfiles.8
	install -m 644 restorecon.8.man $(MANDIR)/man8/restorecon.8

clean:
	rm -f setfiles restorecon *.o setfiles.8.man restorecon.8.man

indent:
	../../scripts/Lindent $(wildcard *.[ch])

relabel: install
	$(SBINDIR)/restorecon $(SBINDIR)/setfiles