]> git.ipfire.org Git - thirdparty/man-pages.git/commitdiff
share/mk/: build-book, build-man, install-man: Specify version and date
authorAlejandro Colomar <alx@kernel.org>
Wed, 20 Mar 2024 14:56:21 +0000 (15:56 +0100)
committerAlejandro Colomar <alx@kernel.org>
Wed, 20 Mar 2024 23:03:20 +0000 (00:03 +0100)
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>
GNUmakefile
share/mk/build/book.mk
share/mk/build/man.mk [new file with mode: 0644]
share/mk/install/man.mk
share/mk/src.mk

index 9e869c03818cc87eb53dccbab7d070be0a514614..740121cee5ecf4919633b3ae56475b396d445e5d 100644 (file)
@@ -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):: ;
 
index 49a5f39a1e01b62ec5e1a4008e1f70b40f31f2c7..baf70d8e46321a44e41be402107f2e71aee1c3cd 100644 (file)
@@ -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 (file)
index 0000000..ec96a20
--- /dev/null
@@ -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
index 8f1f3fc707e90990fc7559610da74cb93d4fdf61..05e5bf43a588c8eb3601a6e2c8c1e2b1a51e9359 100644 (file)
@@ -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):
index 36b9e8cec32803cdc45efce7dbb7c9854bf5d5ee..fecf2f1fc3ae318ba95bb6ec0d671fe9b4f3f3f2 100644 (file)
@@ -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\)*$