diff options
author | Alejandro Colomar <alx@kernel.org> | 2024-03-20 15:56:21 +0100 |
---|---|---|
committer | Alejandro Colomar <alx@kernel.org> | 2024-03-21 00:03:20 +0100 |
commit | 63d245abf67fc182bd29e2a2c0972a02d93de1fb (patch) | |
tree | 108eae635574e9741216ecafe3a6705bd1fd1a45 | |
parent | 1bd48bd90b7af5f3cd908c6ad0ed226ec153b081 (diff) | |
download | man-pages-63d245abf67fc182bd29e2a2c0972a02d93de1fb.tar.gz |
share/mk/: build-book, build-man, install-man: Specify version and date
Each page has its own date.
Add new 'build-man' target, which stamps the date and version in the
pages (in $builddir, not the source ones).
Build-system internal stuff:
$CURDIR will be used for the build system, while $srcdir will be
used for the project root of the repository. This helps use
this build system in other projects.
Signed-off-by: Alejandro Colomar <alx@kernel.org>
-rw-r--r-- | GNUmakefile | 5 | ||||
-rw-r--r-- | share/mk/build/book.mk | 13 | ||||
-rw-r--r-- | share/mk/build/man.mk | 31 | ||||
-rw-r--r-- | share/mk/install/man.mk | 2 | ||||
-rw-r--r-- | share/mk/src.mk | 2 |
5 files changed, 43 insertions, 10 deletions
diff --git a/GNUmakefile b/GNUmakefile index 9e869c0381..740121cee5 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -13,8 +13,7 @@ MAKEFLAGS += --warn-undefined-variables srcdir := . -DATAROOTDIR := $(srcdir)/share -MAKEFILEDIR := $(DATAROOTDIR)/mk +MAKEFILEDIR := $(CURDIR)/share/mk INFO_ := @@ -28,7 +27,7 @@ all: build; MK_ := $(wildcard $(addprefix $(MAKEFILEDIR)/, *.mk */*.mk */*/*.mk */*/*/*.mk)) -MK := $(srcdir)/GNUmakefile $(MK_) +MK := $(CURDIR)/GNUmakefile $(MK_) include $(MK_) $(MK):: ; diff --git a/share/mk/build/book.mk b/share/mk/build/book.mk index 49a5f39a1e..baf70d8e46 100644 --- a/share/mk/build/book.mk +++ b/share/mk/build/book.mk @@ -7,6 +7,7 @@ MAKEFILE_BUILD_BOOK_INCLUDED := 1 include $(MAKEFILEDIR)/build/_.mk +include $(MAKEFILEDIR)/build/man.mk include $(MAKEFILEDIR)/configure/build-depends/coreutils/cat.mk include $(MAKEFILEDIR)/configure/build-depends/groff/gropdf.mk include $(MAKEFILEDIR)/configure/build-depends/groff-base/eqn.mk @@ -15,18 +16,20 @@ include $(MAKEFILEDIR)/configure/build-depends/groff-base/preconv.mk include $(MAKEFILEDIR)/configure/build-depends/groff-base/tbl.mk include $(MAKEFILEDIR)/configure/build-depends/groff-base/troff.mk include $(MAKEFILEDIR)/configure/build-depends/moreutils/sponge.mk -include $(MAKEFILEDIR)/configure/src.mk +include $(MAKEFILEDIR)/configure/version.mk include $(MAKEFILEDIR)/src.mk -LMBDIR := $(srcdir)/scripts/LinuxManBook +LMBDIR := $(CURDIR)/scripts/LinuxManBook BUILDLMB := $(LMBDIR)/build.sh -_LMB := $(_MANDIR)/man-pages.pdf +LMB := $(DISTNAME).pdf +_LMBDIR := $(builddir) +_LMB := $(_LMBDIR)/$(LMB) -$(_LMB): $(MANPAGES) $(wildcard $(LMBDIR)/* $(LMBDIR)/*/*) | $$(@D)/ +$(_LMB): $(_MANPAGES) $(wildcard $(LMBDIR)/* $(LMBDIR)/*/*) | $$(@D)/ $(info $(INFO_)Build $@) CAT='$(CAT)' \ PRECONV='$(PRECONV)' \ @@ -35,7 +38,7 @@ $(_LMB): $(MANPAGES) $(wildcard $(LMBDIR)/* $(LMBDIR)/*/*) | $$(@D)/ EQN='$(EQN)' \ TROFF='$(TROFF)' \ GROPDF='$(GROPDF)' \ - $(BUILDLMB) $(MANDIR) \ + $(BUILDLMB) $(_MANDIR) \ | $(SPONGE) $@ diff --git a/share/mk/build/man.mk b/share/mk/build/man.mk new file mode 100644 index 0000000000..ec96a20079 --- /dev/null +++ b/share/mk/build/man.mk @@ -0,0 +1,31 @@ +# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org> +# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception + + +ifndef MAKEFILE_BUILD_MAN_MAN_INCLUDED +MAKEFILE_BUILD_MAN_MAN_INCLUDED := 1 + + +include $(MAKEFILEDIR)/configure/build-depends/git/git.mk +include $(MAKEFILEDIR)/configure/build-depends/sed/sed.mk +include $(MAKEFILEDIR)/configure/src.mk +include $(MAKEFILEDIR)/configure/verbose.mk +include $(MAKEFILEDIR)/configure/version.mk +include $(MAKEFILEDIR)/src.mk + + +_MANPAGES := $(patsubst $(MANDIR)/%,$(_MANDIR)/%,$(MANPAGES)) + + +$(_MANPAGES): $(_MANDIR)/%: $(MANDIR)/% $(MK) | $$(@D)/ + $(info $(INFO_)SED $@) + <$< \ + $(SED) "/^.TH/s/(date)/$$($(GIT) log --format=%cs -1 -- $< $(HIDE_ERR))/" \ + | $(SED) '/^.TH/s/(unreleased)/$(DISTVERSION)/' >$@ + + +.PHONY: build-man +build-man: $(_MANPAGES) + + +endif # include guard diff --git a/share/mk/install/man.mk b/share/mk/install/man.mk index 8f1f3fc707..05e5bf43a5 100644 --- a/share/mk/install/man.mk +++ b/share/mk/install/man.mk @@ -48,7 +48,7 @@ $(foreach s, $(MANSECTIONS), \ $(foreach s, $(MANSECTIONS), \ $(eval $(_man$(s)pages) $(_man$(s)intropage): \ $(_man$(s)dir)/%$(man$(s)ext)$(Z): \ - $(MAN$(s)DIR)/%.$(s) $(MK) | $$$$(@D)/)) + $(_MANDIR)/man$(s)/%.$(s) $(MK) | $$$$(@D)/)) $(_manpages): diff --git a/share/mk/src.mk b/share/mk/src.mk index 36b9e8cec3..fecf2f1fc3 100644 --- a/share/mk/src.mk +++ b/share/mk/src.mk @@ -13,7 +13,7 @@ include $(MAKEFILEDIR)/configure/build-depends/sed/sed.mk include $(MAKEFILEDIR)/configure/src.mk -SORTMAN := $(srcdir)/scripts/sortman +SORTMAN := $(CURDIR)/scripts/sortman MANEXT := \(\.[[:digit:]]\([[:alpha:]][[:alnum:]]*\)\?\>\|\.man\)\+\(\.man\|\.in\)*$ |