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
 |