summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlejandro Colomar <alx.manpages@gmail.com>2022-07-30 20:57:13 +0200
committerAlejandro Colomar <alx.manpages@gmail.com>2022-08-01 14:20:55 +0200
commitece893c024eea64ed240a0490ac7d4e6027ba72f (patch)
tree0ca7083a43cbfb0fbee756f12150e02c4d81e9d0
parente67acee2089dd957d629b0e6faaa796e356b05dd (diff)
Makefile, cmd.mk, *.mk: Allow using different names for basic commands
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
-rw-r--r--Makefile11
-rw-r--r--lib/build-html.mk4
-rw-r--r--lib/build-src.mk22
-rw-r--r--lib/cmd.mk23
-rw-r--r--lib/dist.mk17
-rw-r--r--lib/lint-c.mk9
-rw-r--r--lib/lint-man.mk3
-rw-r--r--lib/lint.mk7
8 files changed, 68 insertions, 28 deletions
diff --git a/Makefile b/Makefile
index 7ca520426..29276f56f 100644
--- 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
diff --git a/lib/build-html.mk b/lib/build-html.mk
index 7caa8f755..fad72eb64 100644
--- a/lib/build-html.mk
+++ b/lib/build-html.mk
@@ -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)/.
diff --git a/lib/build-src.mk b/lib/build-src.mk
index 57c4731ae..b47a5a756 100644
--- a/lib/build-src.mk
+++ b/lib/build-src.mk
@@ -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
index 000000000..662209966
--- /dev/null
+++ b/lib/cmd.mk
@@ -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
diff --git a/lib/dist.mk b/lib/dist.mk
index 570c81f2c..663347cb0 100644
--- a/lib/dist.mk
+++ b/lib/dist.mk
@@ -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
diff --git a/lib/lint-c.mk b/lib/lint-c.mk
index 88941f114..9d27da786 100644
--- a/lib/lint-c.mk
+++ b/lib/lint-c.mk
@@ -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 $@
diff --git a/lib/lint-man.mk b/lib/lint-man.mk
index 76839db23..082c4fe44 100644
--- a/lib/lint-man.mk
+++ b/lib/lint-man.mk
@@ -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
diff --git a/lib/lint.mk b/lib/lint.mk
index b4fff3631..55fa5e1f5 100644
--- a/lib/lint.mk
+++ b/lib/lint.mk
@@ -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))