From e4bc41c765f2b9fec55faa747e8330130c987678 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 14 May 2012 14:39:15 +0200 Subject: [PATCH] - separate manpages from the rest of the doc building - make apt and apt-utils packages depend on manpages instead of full doc --- Makefile | 4 ++-- buildlib/defaults.mak | 2 +- buildlib/manpage.mak | 3 ++- debian/changelog | 2 ++ debian/rules | 14 ++++++++++---- doc/makefile | 26 ++++++++++++++++++-------- test/Makefile | 2 +- 7 files changed, 36 insertions(+), 17 deletions(-) diff --git a/Makefile b/Makefile index a35ad1d37..24f5b3e2b 100644 --- a/Makefile +++ b/Makefile @@ -10,7 +10,7 @@ endif default: startup all .PHONY: headers library clean veryclean all binary program doc test update-po -all headers library clean veryclean binary program doc test update-po startup dirs: +all headers library clean veryclean binary program doc manpages test update-po startup dirs: $(MAKE) -C apt-pkg $@ $(MAKE) -C apt-inst $@ $(MAKE) -C methods $@ @@ -21,7 +21,7 @@ all headers library clean veryclean binary program doc test update-po startup di $(MAKE) -C po $@ $(MAKE) -C test $@ -all headers library clean veryclean binary program doc test update-po: startup dirs +all headers library clean veryclean binary program doc manpages test update-po: startup dirs dirs: startup diff --git a/buildlib/defaults.mak b/buildlib/defaults.mak index c10813e9d..7b084f4b9 100644 --- a/buildlib/defaults.mak +++ b/buildlib/defaults.mak @@ -121,7 +121,7 @@ MKDIRS := $(BIN) all: dirs binary doc binary: library program maintainer-clean dist-clean distclean pristine sanity: veryclean -startup headers library clean veryclean program test update-po: +startup headers library clean veryclean program test update-po manpages: veryclean: echo Very Clean done for $(SUBDIR) diff --git a/buildlib/manpage.mak b/buildlib/manpage.mak index 6cdf73ccf..063841d86 100644 --- a/buildlib/manpage.mak +++ b/buildlib/manpage.mak @@ -14,7 +14,8 @@ LOCAL := manpage-$(firstword $(SOURCE)) $(LOCAL)-LIST := $(addprefix $(DOC)/,$(SOURCE)) # Install generation hooks -doc: $($(LOCAL)-LIST) +doc: manpages +manpages: $($(LOCAL)-LIST) veryclean: veryclean/$(LOCAL) MKDIRS += $(DOC) diff --git a/debian/changelog b/debian/changelog index 12097ca6f..3de297513 100644 --- a/debian/changelog +++ b/debian/changelog @@ -6,10 +6,12 @@ apt (0.9.4) UNRELEASED; urgency=low as we don't need a symbol for it as it is not in a header * Makefile, buildlib/*.mak: - reshuffle dependencies so that parallel building seems to work + - separate manpages from the rest of the doc building * prepare-release: - apt-inst version isn't apt versions, so don't override variable * debian/rules: - apt-utils packages manpages, so it should depend on build-doc + - make apt and apt-utils packages depend on manpages instead of full doc -- David Kalnischkies Fri, 11 May 2012 23:26:59 +0200 diff --git a/debian/rules b/debian/rules index fcdff9d01..7b221fc2a 100755 --- a/debian/rules +++ b/debian/rules @@ -67,7 +67,8 @@ LIBAPT_INST=libapt-inst$(LIBAPTINST_MAJOR) export DPKG_GENSYMBOLS_CHECK_LEVEL=0 build: build/build-stamp -build-doc: build/build-doc-stamp +build-doc: build-manpages build/build-doc-stamp +build-manpages: build/build-manpages-stamp # Note that this is unconditionally done first as part of loading environment.mak # The true is needed to force make to reload environment.mak after running @@ -97,11 +98,16 @@ else endif touch $@ -build/build-doc-stamp: build/configure-stamp +build/build-doc-stamp: build/build-manpages-stamp build/configure-stamp # Add here commands to compile the package. $(MAKE) doc touch $@ +build/build-manpages-stamp: build/configure-stamp + # Add here commands to compile the package. + $(MAKE) manpages + touch $@ + clean: dh_testdir @@ -167,7 +173,7 @@ apt-doc: build-doc binary-arch: $(LIBAPT_PKG) $(LIBAPT_INST) apt libapt-pkg-dev apt-utils apt-transport-https apt_MANPAGES = apt-cache apt-cdrom apt-config apt-get apt-key apt-mark apt-secure apt apt.conf apt_preferences sources.list -apt: build build-doc +apt: build build-manpages dh_testdir -p$@ dh_testroot -p$@ dh_prep -p$@ @@ -231,7 +237,7 @@ libapt-pkg-dev: build debian/libapt-pkg-dev.install dh_builddeb -p$@ apt-utils_MANPAGES = apt-sortpkgs apt-ftparchive apt-extracttemplates -apt-utils: build build-doc +apt-utils: build build-manpages dh_testdir -p$@ dh_testroot -p$@ dh_prep -p$@ diff --git a/doc/makefile b/doc/makefile index df2ddb25f..f52586935 100644 --- a/doc/makefile +++ b/doc/makefile @@ -11,6 +11,11 @@ SOURCE = $(wildcard *.sgml) DEBIANDOC_HTML_OPTIONS=-l en.UTF-8 include $(DEBIANDOC_H) +MANPAGEPO = $(patsubst %.po,%,$(notdir $(wildcard po/*.po))) +MANPAGEPOLIST = $(patsubst %,manpages-translation-%,$(MANPAGEPO)) + +doc: manpages + # Do not use XMLTO, build the manpages directly with XSLTPROC ifdef XSLTPROC # generate a list of accepted man page translations @@ -22,15 +27,26 @@ LOCAL := manpage-$(firstword $(SOURCE)) $(LOCAL)-LIST := $(SOURCE) # Install generation hooks -doc: $($(LOCAL)-LIST) -veryclean: veryclean/$(LOCAL) +manpages: $(MANPAGEPOLIST) $($(LOCAL)-LIST) $($(LOCAL)-LIST) :: % : %.xml $(INCLUDES) echo Creating man page $@ $(XSLTPROC) -o $@ $(STYLESHEET) $< +$(MANPAGEPOLIST) :: manpages-translation-% : %/makefile po4a + $(MAKE) -C $(dir $<) doc + +.PHONY: manpages dirs-manpage-subdirs $(MANPAGEPOLIST) +dirs: dirs-manpage-subdirs +dirs-manpage-subdirs: + for i in $(MANPAGEPO); do \ + test -d $$i || mkdir $$i; \ + test -f $$i/makefile || sed "s#@@LANG@@#$$i#" lang.makefile > $$i/makefile; \ + done + # Clean rule .PHONY: veryclean/$(LOCAL) +veryclean: veryclean/$(LOCAL) veryclean/$(LOCAL): -rm -rf $($(@F)-LIST) @@ -47,12 +63,6 @@ TARGET = binary include $(COPY_H) .PHONY: clean clean-subdirs veryclean veryclean-subdirs all binary doc -doc: - for i in $(shell ls po/*.po | sed -r 's#po/([a-z]+[A-Z_]*).po#\1#'); do \ - test -d $$i || mkdir $$i; \ - test -f $$i/makefile || sed "s#@@LANG@@#$$i#" lang.makefile > $$i/makefile; \ - $(MAKE) -C $$i $@; \ - done clean: clean-subdirs veryclean: veryclean-subdirs diff --git a/test/Makefile b/test/Makefile index b42a90b25..8207ebdab 100644 --- a/test/Makefile +++ b/test/Makefile @@ -7,7 +7,7 @@ ifndef NOISY endif .PHONY: startup headers library clean veryclean all binary program doc test update-po -startup all clean veryclean binary program dirs test update-po: +startup all clean veryclean binary program dirs test update-po manpages: $(MAKE) -C libapt $@ $(MAKE) -C interactive-helper $@ -- 2.45.2