diff options
author | Alejandro Colomar <alx.manpages@gmail.com> | 2022-07-30 20:57:13 +0200 |
---|---|---|
committer | Alejandro Colomar <alx.manpages@gmail.com> | 2022-08-01 14:20:55 +0200 |
commit | ece893c024eea64ed240a0490ac7d4e6027ba72f (patch) | |
tree | 0ca7083a43cbfb0fbee756f12150e02c4d81e9d0 | |
parent | e67acee2089dd957d629b0e6faaa796e356b05dd (diff) |
Makefile, cmd.mk, *.mk: Allow using different names for basic commands
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
-rw-r--r-- | Makefile | 11 | ||||
-rw-r--r-- | lib/build-html.mk | 4 | ||||
-rw-r--r-- | lib/build-src.mk | 22 | ||||
-rw-r--r-- | lib/cmd.mk | 23 | ||||
-rw-r--r-- | lib/dist.mk | 17 | ||||
-rw-r--r-- | lib/lint-c.mk | 9 | ||||
-rw-r--r-- | lib/lint-man.mk | 3 | ||||
-rw-r--r-- | lib/lint.mk | 7 |
8 files changed, 68 insertions, 28 deletions
@@ -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)) |