mirror of
https://gitlab.com/apparmor/apparmor.git
synced 2025-03-04 08:24:42 +01:00

capabilities This patch adds a new make target, check_severity_db, to the utils/Makefile. It greps the severity.db for the presence of each capability, as computed by the newly abstracted out variable in common/Make.rules, and issues a build time error if it finds any missing. It also silences the check targets, so that only the output from them will be emitted.
89 lines
2.9 KiB
Makefile
89 lines
2.9 KiB
Makefile
# ----------------------------------------------------------------------
|
|
# Copyright (c) 1999, 2004-2009 NOVELL (All rights reserved)
|
|
# Copyright (c) 2010-2011 Canonical Ltd.
|
|
#
|
|
# This program is free software; you can redistribute it and/or
|
|
# modify it under the terms of version 2 of the GNU General Public
|
|
# License published by the Free Software Foundation.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, contact Novell, Inc.
|
|
# ----------------------------------------------------------------------
|
|
NAME = apparmor-utils
|
|
all:
|
|
COMMONDIR=../common/
|
|
|
|
include common/Make.rules
|
|
|
|
COMMONDIR_EXISTS=$(strip $(shell [ -d ${COMMONDIR} ] && echo true))
|
|
ifeq ($(COMMONDIR_EXISTS), true)
|
|
common/Make.rules: $(COMMONDIR)/Make.rules
|
|
ln -sf $(COMMONDIR) .
|
|
endif
|
|
|
|
MODDIR = Immunix
|
|
PERLTOOLS = aa-genprof aa-logprof aa-autodep aa-audit aa-complain aa-enforce \
|
|
aa-unconfined aa-notify aa-disable aa-exec
|
|
TOOLS = ${PERLTOOLS} aa-decode aa-status
|
|
MODULES = ${MODDIR}/AppArmor.pm ${MODDIR}/Repository.pm \
|
|
${MODDIR}/Config.pm ${MODDIR}/Severity.pm
|
|
|
|
MANPAGES = ${TOOLS:=.8} logprof.conf.5
|
|
|
|
all: ${MANPAGES} ${HTMLMANPAGES}
|
|
$(MAKE) -C po all
|
|
|
|
# need some better way of determining this
|
|
DESTDIR=/
|
|
BINDIR=${DESTDIR}/usr/sbin
|
|
CONFDIR=${DESTDIR}/etc/apparmor
|
|
VENDOR_PERL=$(shell perl -e 'use Config; print $$Config{"vendorlib"};')
|
|
PERLDIR=${DESTDIR}${VENDOR_PERL}/${MODDIR}
|
|
|
|
po/${NAME}.pot: ${TOOLS}
|
|
$(MAKE) -C po ${NAME}.pot NAME=${NAME} SOURCES="${TOOLS} ${MODULES}"
|
|
|
|
.PHONY: install
|
|
install: ${MANPAGES} ${HTMLMANPAGES}
|
|
install -d ${CONFDIR}
|
|
install -m 644 logprof.conf severity.db notify.conf ${CONFDIR}
|
|
install -d ${BINDIR}
|
|
ln -sf aa-status ${BINDIR}/apparmor_status
|
|
install -m 755 ${TOOLS} ${BINDIR}
|
|
install -d ${PERLDIR}
|
|
install -m 644 ${MODULES} ${PERLDIR}
|
|
$(MAKE) -C po install DESTDIR=${DESTDIR} NAME=${NAME}
|
|
$(MAKE) install_manpages DESTDIR=${DESTDIR}
|
|
ln -sf aa-status.8 ${DESTDIR}/${MANDIR}/man8/apparmor_status.8
|
|
|
|
.PHONY: clean
|
|
.SILENT: clean
|
|
clean: _clean
|
|
rm -f core core.* *.o *.s *.a *~
|
|
rm -f Make.rules
|
|
$(MAKE) -C po clean
|
|
|
|
# ${CAPABILITIES} is defined in common/Make.rules
|
|
.PHONY: check_severity_db
|
|
.SILENT: check_severity_db
|
|
check_severity_db: /usr/include/sys/capability.h severity.db
|
|
# The sed statement is based on the one in the parser's makefile
|
|
RC=0 ; for cap in ${CAPABILITIES} ; do \
|
|
if ! grep -q -w $${cap} severity.db ; then \
|
|
echo "Warning! capability $${cap} not found in severity.db" ; \
|
|
RC=1 ; \
|
|
fi ;\
|
|
done ; \
|
|
test "$$RC" -eq 0
|
|
|
|
.PHONY: check
|
|
.SILENT: check
|
|
check: check_severity_db
|
|
for i in ${MODULES} ${PERLTOOLS} ; do \
|
|
perl -c $$i || exit 1; \
|
|
done
|