mirror of
https://gitlab.com/apparmor/apparmor.git
synced 2025-03-04 16:35:02 +01:00

Each coverity command writes its debugging output to cov-int/build-log.txt, which means that multiple runs of cov-build overwrite previous logs, resulting in only the last invocation's output remaining at the end of the build, making debugging why failures to capture coverity output difficult. Fix this by renaming the build-log to per-directory log files. (This would still be an issue even if we had a single build command for the entire tree, as capturing python and other interpreted files requires a second invocation of cov-build to scan for those file types.) Signed-off-by: Steve Beattie <steve.beattie@canonical.com> PR: https://gitlab.com/apparmor/apparmor/merge_requests/145
90 lines
2.9 KiB
Makefile
90 lines
2.9 KiB
Makefile
#
|
|
#
|
|
.PHONY: all
|
|
all:
|
|
@echo "*** See README for information how to build AppArmor ***"
|
|
exit 1
|
|
|
|
COMMONDIR=common
|
|
include ${COMMONDIR}/Make.rules
|
|
|
|
DIRS=libraries/libapparmor \
|
|
binutils \
|
|
parser \
|
|
utils \
|
|
changehat/mod_apparmor \
|
|
changehat/pam_apparmor \
|
|
profiles \
|
|
tests
|
|
|
|
# with conversion to git, we don't export from the remote
|
|
REPO_URL?=git@gitlab.com:apparmor/apparmor.git
|
|
REPO_BRANCH?=master
|
|
|
|
COVERITY_DIR=cov-int
|
|
RELEASE_DIR=apparmor-${VERSION}
|
|
__SETUP_DIR?=.
|
|
|
|
# We create a separate version for tags because git can't handle tags
|
|
# with embedded ~s in them. No spaces around '-' or they'll get
|
|
# embedded in ${VERSION}
|
|
# apparmor version tag format 'vX.Y.ZZ'
|
|
# apparmor branch name format 'apparmor-X.Y'
|
|
TAG_VERSION="v$(subst ~,-,${VERSION})"
|
|
|
|
# Add exclusion entries arguments for tar here, of the form:
|
|
# --exclude dir_to_exclude --exclude other_dir
|
|
TAR_EXCLUSIONS=
|
|
|
|
.PHONY: tarball
|
|
tarball: clean
|
|
REPO_VERSION=`$(value REPO_VERSION_CMD)` && \
|
|
$(MAKE) export_dir __EXPORT_DIR=${RELEASE_DIR} __REPO_VERSION=$${REPO_VERSION} && \
|
|
$(MAKE) setup __SETUP_DIR=${RELEASE_DIR} && \
|
|
tar ${TAR_EXCLUSIONS} -cvzf ${RELEASE_DIR}.tar.gz ${RELEASE_DIR}
|
|
|
|
.PHONY: snapshot
|
|
snapshot: clean
|
|
$(eval REPO_VERSION:=$(shell $(value REPO_VERSION_CMD)))
|
|
$(eval SNAPSHOT_NAME=apparmor-$(VERSION)~$(shell echo $(REPO_VERSION) | cut -d '-' -f 2-))
|
|
$(MAKE) export_dir __EXPORT_DIR=${SNAPSHOT_NAME} __REPO_VERSION=${REPO_VERSION} && \
|
|
$(MAKE) setup __SETUP_DIR=${SNAPSHOT_NAME} && \
|
|
tar ${TAR_EXCLUSIONS} -cvzf ${SNAPSHOT_NAME}.tar.gz ${SNAPSHOT_NAME}
|
|
|
|
.PHONY: coverity
|
|
coverity: snapshot
|
|
cd $(SNAPSHOT_NAME)/libraries/libapparmor && ./configure --with-python
|
|
$(foreach dir, $(filter-out utils profiles tests, $(DIRS)), \
|
|
cov-build --dir $(COVERITY_DIR) -- $(MAKE) -C $(SNAPSHOT_NAME)/$(dir); \
|
|
mv $(COVERITY_DIR)/build-log.txt $(COVERITY_DIR)/build-log-$(subst /,.,$(dir)).txt ;)
|
|
$(foreach dir, libraries/libapparmor utils, \
|
|
cov-build --dir $(COVERITY_DIR) --no-command --fs-capture-search $(SNAPSHOT_NAME)/$(dir); \
|
|
mv $(COVERITY_DIR)/build-log.txt $(COVERITY_DIR)/build-log-python-$(subst /,.,$(dir)).txt ;)
|
|
tar -cvzf $(SNAPSHOT_NAME)-$(COVERITY_DIR).tar.gz $(COVERITY_DIR)
|
|
|
|
.PHONY: export_dir
|
|
export_dir:
|
|
mkdir $(__EXPORT_DIR)
|
|
/usr/bin/git archive --prefix=$(__EXPORT_DIR)/ --format tar $(__REPO_VERSION) | tar xv
|
|
echo "$(REPO_URL) $(REPO_BRANCH) $(__REPO_VERSION)" > $(__EXPORT_DIR)/common/.stamp_rev
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
-rm -rf ${RELEASE_DIR} ./apparmor-${VERSION}~* ${COVERITY_DIR}
|
|
for dir in $(DIRS); do \
|
|
$(MAKE) -C $$dir clean; \
|
|
done
|
|
|
|
.PHONY: setup
|
|
setup:
|
|
cd $(__SETUP_DIR)/libraries/libapparmor && ./autogen.sh
|
|
# parser has an extra doc to build
|
|
$(MAKE) -C $(__SETUP_DIR)/parser extra_docs
|
|
# libraries/libapparmor needs configure to have run before
|
|
# building docs
|
|
$(foreach dir, $(filter-out libraries/libapparmor tests, $(DIRS)), \
|
|
$(MAKE) -C $(__SETUP_DIR)/$(dir) docs;)
|
|
|
|
.PHONY: tag
|
|
tag:
|
|
git tag -m 'AppArmor $(VERSION)' -s $(TAG_VERSION)
|