107 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Makefile
		
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Makefile
		
	
	
	
# Installation directories.
 | 
						|
LINGUAS ?= ru
 | 
						|
PREFIX ?= /usr
 | 
						|
BINDIR ?= $(PREFIX)/bin
 | 
						|
MANDIR ?= $(PREFIX)/share/man
 | 
						|
ETCDIR ?= /etc
 | 
						|
LOCALEDIR = $(DESTDIR)$(PREFIX)/share/locale
 | 
						|
INCLUDEDIR ?= $(PREFIX)/include
 | 
						|
PAMH ?= $(shell test -f $(INCLUDEDIR)/security/pam_appl.h && echo y)
 | 
						|
AUDITH ?= $(shell test -f $(INCLUDEDIR)/libaudit.h && echo y)
 | 
						|
# Enable capabilities to permit newrole to generate audit records.
 | 
						|
# This will make newrole a setuid root program.
 | 
						|
# The capabilities used are: CAP_AUDIT_WRITE.
 | 
						|
AUDIT_LOG_PRIV ?= n
 | 
						|
# Enable capabilities to permit newrole to utilize the pam_namespace module.
 | 
						|
# This will make newrole a setuid root program.
 | 
						|
# The capabilities used are: CAP_SYS_ADMIN, CAP_CHOWN, CAP_FOWNER and
 | 
						|
# CAP_DAC_OVERRIDE. 
 | 
						|
NAMESPACE_PRIV ?= n
 | 
						|
# If LSPP_PRIV is y, then newrole will be made into setuid root program.
 | 
						|
# Enabling this option will force AUDIT_LOG_PRIV and NAMESPACE_PRIV to be y.
 | 
						|
LSPP_PRIV ?= n
 | 
						|
VERSION = $(shell cat ../VERSION)
 | 
						|
 | 
						|
CFLAGS ?= -Werror -Wall -W
 | 
						|
EXTRA_OBJS =
 | 
						|
override CFLAGS += -DVERSION=\"$(VERSION)\" -DUSE_NLS -DLOCALEDIR="\"$(LOCALEDIR)\"" -DPACKAGE="\"policycoreutils\""
 | 
						|
override LDLIBS += -lselinux
 | 
						|
ifeq ($(PAMH), y)
 | 
						|
	override CFLAGS += -DUSE_PAM
 | 
						|
	EXTRA_OBJS += hashtab.o
 | 
						|
	override LDLIBS += -lpam -lpam_misc
 | 
						|
else
 | 
						|
	override CFLAGS += -D_XOPEN_SOURCE=500
 | 
						|
	override LDLIBS += -lcrypt
 | 
						|
endif
 | 
						|
ifeq ($(AUDITH), y)
 | 
						|
	override CFLAGS += -DUSE_AUDIT
 | 
						|
	override LDLIBS += -laudit
 | 
						|
endif
 | 
						|
ifeq ($(LSPP_PRIV),y)
 | 
						|
	override AUDIT_LOG_PRIV=y
 | 
						|
	override NAMESPACE_PRIV=y
 | 
						|
endif
 | 
						|
ifeq ($(AUDIT_LOG_PRIV),y)
 | 
						|
	override CFLAGS += -DAUDIT_LOG_PRIV
 | 
						|
	IS_SUID=y
 | 
						|
endif
 | 
						|
ifeq ($(NAMESPACE_PRIV),y)
 | 
						|
	override CFLAGS += -DNAMESPACE_PRIV
 | 
						|
	IS_SUID=y
 | 
						|
endif
 | 
						|
ifeq ($(IS_SUID),y)
 | 
						|
	MODE := 4555
 | 
						|
	override LDLIBS += -lcap-ng
 | 
						|
else
 | 
						|
	MODE := 0555
 | 
						|
endif
 | 
						|
 | 
						|
all: newrole
 | 
						|
 | 
						|
newrole: newrole.o $(EXTRA_OBJS)
 | 
						|
	$(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS)
 | 
						|
 | 
						|
install: all
 | 
						|
	test -d $(DESTDIR)$(BINDIR)      || install -m 755 -d $(DESTDIR)$(BINDIR)
 | 
						|
	test -d $(DESTDIR)$(ETCDIR)/pam.d || install -m 755 -d $(DESTDIR)$(ETCDIR)/pam.d
 | 
						|
	test -d $(DESTDIR)$(MANDIR)/man1 || install -m 755 -d $(DESTDIR)$(MANDIR)/man1
 | 
						|
	install -m $(MODE) newrole $(DESTDIR)$(BINDIR)
 | 
						|
	install -m 644 newrole.1 $(DESTDIR)$(MANDIR)/man1/
 | 
						|
	for lang in $(LINGUAS) ; do \
 | 
						|
		if [ -e $${lang} ] ; then \
 | 
						|
			test -d $(DESTDIR)$(MANDIR)/$${lang}/man1 || install -m 755 -d $(DESTDIR)$(MANDIR)/$${lang}/man1 ; \
 | 
						|
			install -m 644 $${lang}/*.1 $(DESTDIR)$(MANDIR)/$${lang}/man1/ ; \
 | 
						|
		fi ; \
 | 
						|
	done
 | 
						|
ifeq ($(PAMH), y)
 | 
						|
	test -d $(DESTDIR)$(ETCDIR)/pam.d || install -m 755 -d $(DESTDIR)$(ETCDIR)/pam.d
 | 
						|
ifeq ($(LSPP_PRIV),y)
 | 
						|
	install -m 644 newrole-lspp.pamd $(DESTDIR)$(ETCDIR)/pam.d/newrole
 | 
						|
else
 | 
						|
	install -m 644 newrole.pamd $(DESTDIR)$(ETCDIR)/pam.d/newrole
 | 
						|
endif
 | 
						|
endif
 | 
						|
 | 
						|
clean:
 | 
						|
	rm -f newrole *.o 
 | 
						|
 | 
						|
indent:
 | 
						|
	../../scripts/Lindent $(wildcard *.[ch])
 | 
						|
 | 
						|
relabel: install
 | 
						|
	/sbin/restorecon $(DESTDIR)$(BINDIR)/newrole
 | 
						|
 | 
						|
test-build-options:
 | 
						|
	$(MAKE) PAMH=y AUDITH=y AUDIT_LOG_PRIV=y NAMESPACE_PRIV=y clean newrole
 | 
						|
	$(MAKE) PAMH=y AUDITH=y AUDIT_LOG_PRIV=y NAMESPACE_PRIV=n clean newrole
 | 
						|
	$(MAKE) PAMH=y AUDITH=y AUDIT_LOG_PRIV=n NAMESPACE_PRIV=y clean newrole
 | 
						|
	$(MAKE) PAMH=y AUDITH=y AUDIT_LOG_PRIV=n NAMESPACE_PRIV=n clean newrole
 | 
						|
	$(MAKE) PAMH=y AUDITH=y AUDIT_LOG_PRIV=y NAMESPACE_PRIV=y clean newrole
 | 
						|
	$(MAKE) PAMH=y AUDITH=n AUDIT_LOG_PRIV=n NAMESPACE_PRIV=y clean newrole
 | 
						|
	$(MAKE) PAMH=y AUDITH=n AUDIT_LOG_PRIV=n NAMESPACE_PRIV=n clean newrole
 | 
						|
	$(MAKE) PAMH=n AUDITH=y AUDIT_LOG_PRIV=y NAMESPACE_PRIV=n clean newrole
 | 
						|
	$(MAKE) PAMH=n AUDITH=y AUDIT_LOG_PRIV=n NAMESPACE_PRIV=n clean newrole
 | 
						|
	$(MAKE) PAMH=n AUDITH=n AUDIT_LOG_PRIV=n NAMESPACE_PRIV=n clean newrole
 | 
						|
	$(MAKE) clean
 |