1# Installation directories. 2LINGUAS ?= 3PREFIX ?= /usr 4BINDIR ?= $(PREFIX)/bin 5MANDIR ?= $(PREFIX)/share/man 6ETCDIR ?= /etc 7LOCALEDIR = $(DESTDIR)$(PREFIX)/share/locale 8INCLUDEDIR ?= $(PREFIX)/include 9PAMH ?= $(shell test -f $(INCLUDEDIR)/security/pam_appl.h && echo y) 10AUDITH ?= $(shell test -f $(INCLUDEDIR)/libaudit.h && echo y) 11# Enable capabilities to permit newrole to generate audit records. 12# This will make newrole a setuid root program. 13# The capabilities used are: CAP_AUDIT_WRITE. 14AUDIT_LOG_PRIV ?= n 15# Enable capabilities to permit newrole to utilize the pam_namespace module. 16# This will make newrole a setuid root program. 17# The capabilities used are: CAP_SYS_ADMIN, CAP_CHOWN, CAP_FOWNER and 18# CAP_DAC_OVERRIDE. 19NAMESPACE_PRIV ?= n 20# If LSPP_PRIV is y, then newrole will be made into setuid root program. 21# Enabling this option will force AUDIT_LOG_PRIV and NAMESPACE_PRIV to be y. 22LSPP_PRIV ?= n 23VERSION = $(shell cat ../VERSION) 24 25CFLAGS ?= -Werror -Wall -W 26EXTRA_OBJS = 27override CFLAGS += -DVERSION=\"$(VERSION)\" -DUSE_NLS -DLOCALEDIR="\"$(LOCALEDIR)\"" -DPACKAGE="\"policycoreutils\"" 28override LDLIBS += -lselinux 29ifeq ($(PAMH), y) 30 override CFLAGS += -DUSE_PAM 31 EXTRA_OBJS += hashtab.o 32 override LDLIBS += -lpam -lpam_misc 33else 34 override CFLAGS += -D_XOPEN_SOURCE=500 35 override LDLIBS += -lcrypt 36endif 37ifeq ($(AUDITH), y) 38 override CFLAGS += -DUSE_AUDIT 39 override LDLIBS += -laudit 40endif 41ifeq ($(LSPP_PRIV),y) 42 override AUDIT_LOG_PRIV=y 43 override NAMESPACE_PRIV=y 44endif 45ifeq ($(AUDIT_LOG_PRIV),y) 46 override CFLAGS += -DAUDIT_LOG_PRIV 47 IS_SUID=y 48endif 49ifeq ($(NAMESPACE_PRIV),y) 50 override CFLAGS += -DNAMESPACE_PRIV 51 IS_SUID=y 52endif 53ifeq ($(IS_SUID),y) 54 MODE := 4555 55 override LDLIBS += -lcap-ng 56else 57 MODE := 0555 58endif 59 60all: newrole 61 62newrole: newrole.o $(EXTRA_OBJS) 63 $(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS) 64 65install: all 66 test -d $(DESTDIR)$(BINDIR) || install -m 755 -d $(DESTDIR)$(BINDIR) 67 test -d $(DESTDIR)$(ETCDIR)/pam.d || install -m 755 -d $(DESTDIR)$(ETCDIR)/pam.d 68 test -d $(DESTDIR)$(MANDIR)/man1 || install -m 755 -d $(DESTDIR)$(MANDIR)/man1 69 install -m $(MODE) newrole $(DESTDIR)$(BINDIR) 70 install -m 644 newrole.1 $(DESTDIR)$(MANDIR)/man1/ 71 for lang in $(LINGUAS) ; do \ 72 if [ -e $${lang} ] ; then \ 73 test -d $(DESTDIR)$(MANDIR)/$${lang}/man1 || install -m 755 -d $(DESTDIR)$(MANDIR)/$${lang}/man1 ; \ 74 install -m 644 $${lang}/*.1 $(DESTDIR)$(MANDIR)/$${lang}/man1/ ; \ 75 fi ; \ 76 done 77ifeq ($(PAMH), y) 78 test -d $(DESTDIR)$(ETCDIR)/pam.d || install -m 755 -d $(DESTDIR)$(ETCDIR)/pam.d 79ifeq ($(LSPP_PRIV),y) 80 install -m 644 newrole-lspp.pamd $(DESTDIR)$(ETCDIR)/pam.d/newrole 81else 82 install -m 644 newrole.pamd $(DESTDIR)$(ETCDIR)/pam.d/newrole 83endif 84endif 85 86clean: 87 rm -f newrole *.o 88 89indent: 90 ../../scripts/Lindent $(wildcard *.[ch]) 91 92relabel: install 93 /sbin/restorecon $(DESTDIR)$(BINDIR)/newrole 94 95test-build-options: 96 $(MAKE) PAMH=y AUDITH=y AUDIT_LOG_PRIV=y NAMESPACE_PRIV=y clean newrole 97 $(MAKE) PAMH=y AUDITH=y AUDIT_LOG_PRIV=y NAMESPACE_PRIV=n clean newrole 98 $(MAKE) PAMH=y AUDITH=y AUDIT_LOG_PRIV=n NAMESPACE_PRIV=y clean newrole 99 $(MAKE) PAMH=y AUDITH=y AUDIT_LOG_PRIV=n NAMESPACE_PRIV=n clean newrole 100 $(MAKE) PAMH=y AUDITH=y AUDIT_LOG_PRIV=y NAMESPACE_PRIV=y clean newrole 101 $(MAKE) PAMH=y AUDITH=n AUDIT_LOG_PRIV=n NAMESPACE_PRIV=y clean newrole 102 $(MAKE) PAMH=y AUDITH=n AUDIT_LOG_PRIV=n NAMESPACE_PRIV=n clean newrole 103 $(MAKE) PAMH=n AUDITH=y AUDIT_LOG_PRIV=y NAMESPACE_PRIV=n clean newrole 104 $(MAKE) PAMH=n AUDITH=y AUDIT_LOG_PRIV=n NAMESPACE_PRIV=n clean newrole 105 $(MAKE) PAMH=n AUDITH=n AUDIT_LOG_PRIV=n NAMESPACE_PRIV=n clean newrole 106 $(MAKE) clean 107