]> git.ipfire.org Git - thirdparty/man-pages.git/commitdiff
Makefile, cmd.mk, *.mk: Allow using different names for basic commands
authorAlejandro Colomar <alx.manpages@gmail.com>
Sat, 30 Jul 2022 18:57:13 +0000 (20:57 +0200)
committerAlejandro Colomar <alx.manpages@gmail.com>
Mon, 1 Aug 2022 12:20:55 +0000 (14:20 +0200)
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Makefile
lib/build-html.mk
lib/build-src.mk
lib/cmd.mk [new file with mode: 0644]
lib/dist.mk
lib/lint-c.mk
lib/lint-man.mk
lib/lint.mk

index 7ca520426bed8fe9015da8289ae606fdc6ad4f7c..29276f56faa13d8818b525a12464e34f8024daa9 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -37,12 +37,19 @@ MAKEFLAGS += --warn-undefined-variables
 
 srcdir := .
 
+
+include $(srcdir)/lib/cmd.mk
+
+
 MANDIR := $(srcdir)
 MANEXT := \.[0-9]\w*
 
 
-MANPAGES := $(sort $(shell find $(MANDIR)/man*/ -type f | grep '$(MANEXT)'))
-MANDIRS  := $(sort $(shell find $(MANDIR)/man* -type d))
+MANPAGES := $(shell $(FIND) $(MANDIR)/man*/ -type f \
+               | $(GREP) '$(MANEXT)' \
+               | $(SORT))
+MANDIRS  := $(shell $(FIND) $(MANDIR)/man* -type d \
+               | $(SORT))
 
 
 .PHONY: all
index 7caa8f755b2bae175f1634b6008b665ae3fde7eb..fad72eb646d71a185f055f913d443d918ee64fc6 100644 (file)
@@ -9,6 +9,7 @@ MAKEFILE_BUILD_HTML_INCLUDED := 1
 
 
 include $(srcdir)/lib/build.mk
+include $(srcdir)/lib/cmd.mk
 
 
 htmlext  := .html
@@ -30,7 +31,8 @@ _HTMLDIRS  := $(patsubst $(MANDIR)/%,$(_HTMLDIR)/%/.,$(MANDIRS))
 # The sed removes the lines "Content-type: text/html\n\n"
 $(_HTMLPAGES): $(_HTMLDIR)/%.html: $(MANDIR)/% | $$(@D)/.
        $(info MAN2HTML $@)
-       $(MAN2HTML) $(MAN2HTMLFLAGS) $< | sed -e 1,2d >$@
+       $(MAN2HTML) $(MAN2HTMLFLAGS) $< \
+       | $(SED) -e 1,2d >$@
 
 $(_HTMLDIRS): %/.: | $$(dir %). $(_HTMLDIR)/.
 
index 57c4731aefcc449013747ea32e5e8008a872ff42..b47a5a7561e97562eb944b95922d964a7eeba016 100644 (file)
@@ -9,6 +9,7 @@ MAKEFILE_BUILD_SRC_INCLUDED := 1
 
 
 include $(srcdir)/lib/build.mk
+include $(srcdir)/lib/cmd.mk
 include $(srcdir)/lib/lint.mk
 
 
@@ -47,14 +48,15 @@ MAN := man
 
 _SRCPAGEDIRS   := $(patsubst $(MANDIR)/%,$(_SRCDIR)/%.d,$(LINTMAN))
 
-_UNITS_src_src := $(sort $(patsubst $(MANDIR)/%,$(_SRCDIR)/%,$(shell \
-               find $(MANDIR)/man*/ -type f \
-               | grep '$(MANEXT)$$' \
-               | xargs grep -l '^\.TH ' \
+_UNITS_src_src := $(patsubst $(MANDIR)/%,$(_SRCDIR)/%,$(shell \
+               $(FIND) $(MANDIR)/man*/ -type f \
+               | $(GREP) '$(MANEXT)$$' \
+               | $(XARGS) $(GREP) -l '^\.TH ' \
                | while read m; do \
-                       <$$m \
-                       sed -n "s,^\... SRC BEGIN (\(.*.[ch]\))$$,$$m.d/\1,p"; \
-               done)))
+                   <$$m \
+                   $(SED) -n "s,^\... SRC BEGIN (\(.*.[ch]\))$$,$$m.d/\1,p"; \
+               done \
+               | $(SORT)))
 _UNITS_src_h   := $(filter %.h,$(_UNITS_src_src))
 _UNITS_src_c   := $(filter %.c,$(_UNITS_src_src))
 _UNITS_src_o   := $(patsubst %.c,%.o,$(_UNITS_src_c))
@@ -71,13 +73,13 @@ $(_UNITS_src_c):   $$(filter $$(@D)/%.h,$(_UNITS_src_h))
 $(_UNITS_src_src):
        $(info SED      $@)
        <$< \
-       sed -n \
+       $(SED) -n \
                -e '/^\.TH/,/^\.SH/{/^\.SH/!p}' \
                -e '/^\.SH EXAMPLES/p' \
                -e "/^\... SRC BEGIN ($(@F))$$/,/^\... SRC END$$/p" \
        | $(MAN) -P cat -l - \
-       | sed '/^[^ ]/d' \
-       | sed 's/^       //' \
+       | $(SED) '/^[^ ]/d' \
+       | $(SED) 's/^       //' \
        >$@
 
 $(_UNITS_src_o): $(_SRCDIR)/%.o: $(_SRCDIR)/%.c
diff --git a/lib/cmd.mk b/lib/cmd.mk
new file mode 100644 (file)
index 0000000..6622099
--- /dev/null
@@ -0,0 +1,23 @@
+########################################################################
+# Copyright (C) 2022  Alejandro Colomar <alx.manpages@gmail.com>
+# SPDX-License-Identifier:  GPL-2.0  OR  LGPL-2.0
+########################################################################
+
+
+ifndef MAKEFILE_CMD_INCLUDED
+MAKEFILE_CMD_INCLUDED := 1
+
+
+FIND  := find
+GIT   := git
+GREP  := grep
+GZIP  := gzip
+SED   := sed
+SORT  := sort
+TAC   := tac
+TAR   := tar
+XARGS := xargs
+XZ    := xz
+
+
+endif  # MAKEFILE_CMD_INCLUDED
index 570c81f2c86cc754d2812fe470bb855d38da6756..663347cb02f7d71a944c5ae11dd88e1cdac72eb0 100644 (file)
@@ -9,28 +9,29 @@ MAKEFILE_DIST_INCLUDED := 1
 
 
 include $(srcdir)/lib/build.mk
+include $(srcdir)/lib/cmd.mk
 
 
-DISTNAME    := $(shell git describe 2>/dev/null)
+DISTNAME    := $(shell $(GIT) describe 2>/dev/null)
 DISTFILE    := $(builddir)/$(DISTNAME).tar
 compression := gz xz
 dist        := $(foreach x,$(compression),dist-$(x))
 
 
-$(DISTFILE): $(shell git ls-files 2>/dev/null) | $$(@D)/.
+$(DISTFILE): $(shell $(GIT) ls-files 2>/dev/null) | $$(@D)/.
        $(info TAR      $@)
-       tar cf $@ -T /dev/null
-       git ls-files \
-       | sed 's,^,./,' \
-       | xargs tar rf $@ -C $(srcdir) --transform 's,^\.,$(DISTNAME),'
+       $(TAR) cf $@ -T /dev/null
+       $(GIT) ls-files \
+       | $(SED) 's,^,./,' \
+       | $(XARGS) $(TAR) rf $@ -C $(srcdir) --transform 's,^\.,$(DISTNAME),'
 
 $(DISTFILE).gz: %.gz: % | $$(@D)/.
        $(info GZIP     $@)
-       gzip -knf $<
+       $(GZIP) -knf $<
 
 $(DISTFILE).xz: %.xz: % | $$(@D)/.
        $(info XZ       $@)
-       xz -kf $<
+       $(XZ) -kf $<
 
 
 .PHONY: dist-tar
index 88941f1146b65e9d9dcef9f6605ccbd66198df09..9d27da786820fe4319872912e5893883943a8f00 100644 (file)
@@ -9,6 +9,7 @@ MAKEFILE_LINT_C_INCLUDED := 1
 
 
 include $(srcdir)/lib/build-src.mk
+include $(srcdir)/lib/cmd.mk
 include $(srcdir)/lib/lint.mk
 
 
@@ -55,7 +56,7 @@ $(_LINT_c_checkpatch): %.lint-c.checkpatch.touch: %.c
 $(_LINT_c_clang-tidy): %.lint-c.clang-tidy.touch: %.c
        $(info LINT (clang-tidy)        $@)
        $(CLANG-TIDY) $(CLANG-TIDYFLAGS) $< -- $(CPPFLAGS) $(CFLAGS) 2>&1 \
-       | sed '/generated\.$$/d'
+       | $(SED) '/generated\.$$/d'
        touch $@
 
 $(_LINT_c_cpplint): %.lint-c.cpplint.touch: %.c
@@ -66,9 +67,9 @@ $(_LINT_c_cpplint): %.lint-c.cpplint.touch: %.c
 $(_LINT_c_iwyu): %.lint-c.iwyu.touch: %.c
        $(info LINT (iwyu)      $@)
        $(IWYU) $(IWYUFLAGS) $(CPPFLAGS) $(CFLAGS) $< 2>&1 \
-       | tac \
-       | sed '/correct/{N;d}' \
-       | tac
+       | $(TAC) \
+       | $(SED) '/correct/{N;d}' \
+       | $(TAC)
        touch $@
 
 
index 76839db2386bbd1ffe4c2e22f4a8c26469b7da65..082c4fe44e31eb5fd45038aca33f754df653f882 100644 (file)
@@ -8,13 +8,14 @@ ifndef MAKEFILE_LINT_MAN_INCLUDED
 MAKEFILE_LINT_MAN_INCLUDED := 1
 
 
+include $(srcdir)/lib/cmd.mk
 include $(srcdir)/lib/lint.mk
 
 
 TMACDIR := $(SYSCONFDIR)/groff/tmac
 
 
-TMACFILES            := $(sort $(shell find $(TMACDIR) -not -type d))
+TMACFILES            := $(shell $(FIND) $(TMACDIR) -not -type d | $(SORT))
 TMACNAMES            := $(basename $(notdir $(TMACFILES)))
 GROFF_CHECKSTYLE_LVL := 3
 DEFAULT_GROFFFLAGS   := -man
index b4fff363141f2b54b675cb7906ee9bfe40dc6562..55fa5e1f557ad26c6273c0ecdff72e0f1397c459 100644 (file)
@@ -9,6 +9,7 @@ MAKEFILE_LINT_INCLUDED := 1
 
 
 include $(srcdir)/lib/build.mk
+include $(srcdir)/lib/cmd.mk
 
 
 SYSCONFDIR := $(srcdir)/etc
@@ -16,8 +17,10 @@ SYSCONFDIR := $(srcdir)/etc
 _LINTDIR   := $(builddir)/lint
 
 
-LINTMAN   := $(shell find $(MANDIR)/man*/ -type f | grep '$(MANEXT)' \
-                     | xargs grep -l '^\.TH ' | sort))
+LINTMAN   := $(shell $(FIND) $(MANDIR)/man*/ -type f \
+               | $(GREP) '$(MANEXT)' \
+               | $(XARGS) $(GREP) -l '^\.TH ' \
+               | $(SORT))
 _LINTDIRS := $(patsubst $(MANDIR)/%,$(_LINTDIR)/%/.,$(MANDIRS))