build: make documentation at tarball creation time, not during build

The latex based techdoc in the parser/ tree adds a number of build
dependencies for downstreams to create it; it also is the primary
element to make the builds unrepeatable. Creating the techdoc and other
documentation when generating a tarball for distribution avoids all
that.

* Makefile: build documentation as part of the tarball creation. Skip
  the libraries/libapparmor directory as it needs to have configure run
  before the manpages can be made.
* changehat/mod_apparmor/Makefile, changehat/mod_apparmor/Makefile,
  utils/Makefile, profiles/Makefile: create separate docs target,
  some of them dummies.
* parser/Makefile: pull the techdoc out of the default build target, add
  an extra_docs target to create it.

Signed-off-by: Steve Beattie <steve@nxnw.org>
Acked-by: John Johansen <john.johansen@canonical.com>
Acked-by: Christian Boltz <apparmor@cboltz.de>
This commit is contained in:
Steve Beattie 2016-12-10 10:25:31 -08:00
parent 6a0f18a2b7
commit 106396289a
6 changed files with 30 additions and 7 deletions

View file

@ -75,6 +75,12 @@ clean:
.PHONY: setup .PHONY: setup
setup: setup:
cd $(__SETUP_DIR)/libraries/libapparmor && ./autogen.sh 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 .PHONY: tag
tag: tag:

View file

@ -1,5 +1,6 @@
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
# Copyright (c) 2004, 2005 NOVELL (All rights reserved) # Copyright (c) 2004, 2005 NOVELL (All rights reserved)
# Copyright (c) 2016 Canonical, Ltd.
# #
# This program is free software; you can redistribute it and/or # This program is free software; you can redistribute it and/or
# modify it under the terms of version 2 of the GNU General Public # modify it under the terms of version 2 of the GNU General Public
@ -73,7 +74,10 @@ endif
.SILENT: libapparmor_check .SILENT: libapparmor_check
libapparmor_check: ; $(ERROR_MESSAGE) libapparmor_check: ; $(ERROR_MESSAGE)
all: libapparmor_check $(TARGET) ${MANPAGES} ${HTMLMANPAGES} all: libapparmor_check $(TARGET) docs
.PHONY: docs
docs: ${MANPAGES} ${HTMLMANPAGES}
%.so: %.c %.so: %.c
${APXS} ${LIBAPPARMOR_FLAGS} -c $< ${LDLIBS} ${APXS} ${LIBAPPARMOR_FLAGS} -c $< ${LDLIBS}

View file

@ -1,5 +1,6 @@
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
# Copyright (c) 1999, 2004, 2005 NOVELL (All rights reserved) # Copyright (c) 1999, 2004, 2005 NOVELL (All rights reserved)
# Copyright (c) 2016 Canonical, Ltd.
# #
# This program is free software; you can redistribute it and/or # This program is free software; you can redistribute it and/or
# modify it under the terms of version 2 of the GNU General Public # modify it under the terms of version 2 of the GNU General Public
@ -62,7 +63,11 @@ OBJECTS=${NAME}.o get_options.o
.SILENT: libapparmor_check .SILENT: libapparmor_check
libapparmor_check: ; $(ERROR_MESSAGE) libapparmor_check: ; $(ERROR_MESSAGE)
all: libapparmor_check $(NAME).so all: libapparmor_check $(NAME).so docs
.PHONY: docs
# docs: we should have some
docs:
$(NAME).so: ${OBJECTS} $(NAME).so: ${OBJECTS}
$(CC) $(EXTRA_CFLAGS) $(LINK_FLAGS) -o $@ ${OBJECTS} $(LIBS) $(CC) $(EXTRA_CFLAGS) $(LINK_FLAGS) -o $@ ${OBJECTS} $(LIBS)

View file

@ -161,7 +161,8 @@ htmlmanpages: $(HTMLMANPAGES)
pdf: techdoc.pdf pdf: techdoc.pdf
docs: manpages htmlmanpages pdf docs: manpages htmlmanpages
extra_docs: pdf
indep: docs indep: docs
$(Q)$(MAKE) -C po all $(Q)$(MAKE) -C po all

View file

@ -1,7 +1,7 @@
# ------------------------------------------------------------------ # ------------------------------------------------------------------
# #
# Copyright (C) 2002-2009 Novell/SUSE # Copyright (C) 2002-2009 Novell/SUSE
# Copyright (C) 2010 Canonical Ltd. # Copyright (C) 2010-2016 Canonical Ltd.
# #
# This program is free software; you can redistribute it and/or # This program is free software; you can redistribute it and/or
# modify it under the terms of version 2 of the GNU General Public # modify it under the terms of version 2 of the GNU General Public
@ -20,7 +20,7 @@
# Makefile for LSM-based AppArmor profiles # Makefile for LSM-based AppArmor profiles
NAME=apparmor-profiles NAME=apparmor-profiles
all: local all: local docs
COMMONDIR=../common/ COMMONDIR=../common/
include $(COMMONDIR)/Make.rules include $(COMMONDIR)/Make.rules
@ -75,6 +75,10 @@ ifndef LOGPROF
LOGPROF=PYTHONPATH=../utils $(PYTHON) ../utils/aa-logprof LOGPROF=PYTHONPATH=../utils $(PYTHON) ../utils/aa-logprof
endif endif
.PHONY: docs
# docs: should we have some here?
docs:
IGNORE_FILES=${EXTRAS_SOURCE}/README IGNORE_FILES=${EXTRAS_SOURCE}/README
CHECK_PROFILES=$(filter-out ${IGNORE_FILES} ${SUBDIRS}, $(wildcard ${PROFILES_SOURCE}/*) $(wildcard ${EXTRAS_SOURCE}/*)) CHECK_PROFILES=$(filter-out ${IGNORE_FILES} ${SUBDIRS}, $(wildcard ${PROFILES_SOURCE}/*) $(wildcard ${EXTRAS_SOURCE}/*))

View file

@ -1,6 +1,6 @@
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
# Copyright (c) 1999, 2004-2009 NOVELL (All rights reserved) # Copyright (c) 1999, 2004-2009 NOVELL (All rights reserved)
# Copyright (c) 2010-2011 Canonical Ltd. # Copyright (c) 2010-2016 Canonical Ltd.
# #
# This program is free software; you can redistribute it and/or # This program is free software; you can redistribute it and/or
# modify it under the terms of version 2 of the GNU General Public # modify it under the terms of version 2 of the GNU General Public
@ -30,10 +30,13 @@ PYMODULES = $(wildcard apparmor/*.py apparmor/rule/*.py)
MANPAGES = ${TOOLS:=.8} logprof.conf.5 MANPAGES = ${TOOLS:=.8} logprof.conf.5
all: ${MANPAGES} ${HTMLMANPAGES} all: docs
$(MAKE) -C po all $(MAKE) -C po all
$(MAKE) -C vim all $(MAKE) -C vim all
.PHONY: docs
docs: ${MANPAGES} ${HTMLMANPAGES}
# need some better way of determining this # need some better way of determining this
DESTDIR=/ DESTDIR=/
BINDIR=${DESTDIR}/usr/sbin BINDIR=${DESTDIR}/usr/sbin