[PATCH] Makefile: Consolidate shtab calls further

5 views
Skip to first unread message

Jan Kiszka

unread,
Nov 12, 2021, 11:21:39 AM11/12/21
to efibootguard-dev, Adler, Michael (CT RDA IOT SES-DE)
From: Jan Kiszka <jan.k...@siemens.com>

Use a macro to call shtab, passing the target shell and the parser as
parameters.

Signed-off-by: Jan Kiszka <jan.k...@siemens.com>
---
Makefile.am | 20 ++++++++------------
1 file changed, 8 insertions(+), 12 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 2d056f9..f278593 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -38,11 +38,11 @@ ARFLAGS = cr
EXTRA_DIST = autogen.sh README LICENSE
CLEANFILES =

-SHTAB := env \
+define shtab
+ $(AM_V_GEN) $(MKDIR_P) $(@D); \
PYTHONPATH=${top_srcdir}/completion/shtab:${top_srcdir}/completion \
- @PYTHON@ -m shtab
-SHTAB_BASH := $(SHTAB) --shell=bash -u
-SHTAB_ZSH := $(SHTAB) --shell=zsh -u
+ @PYTHON@ -m shtab -u --shell=$1 $2 >$@
+endef

define filechk
$(AM_V_at)set -e; \
@@ -275,20 +275,16 @@ bash-completion: $(BASH_COMPLETION_FILES)
zsh-completion: $(ZSH_COMPLETION_FILES)

$(top_builddir)/completion/bash/bg_setenv.bash: ${top_srcdir}/completion/bg_setenv/cli.py
- @$(MKDIR_P) $(@D)
- $(AM_V_GEN)$(SHTAB_BASH) bg_setenv.cli.bg_setenv >$@
+ $(call shtab,bash,bg_setenv.cli.bg_setenv)

$(top_builddir)/completion/zsh/_bg_setenv: ${top_srcdir}/completion/bg_setenv/cli.py
- @$(MKDIR_P) $(@D)
- $(AM_V_GEN)$(SHTAB_ZSH) bg_setenv.cli.bg_setenv >$@
+ $(call shtab,zsh,bg_setenv.cli.bg_setenv)

$(top_builddir)/completion/bash/bg_printenv.bash: ${top_srcdir}/completion/bg_printenv/cli.py
- @$(MKDIR_P) $(@D)
- $(AM_V_GEN)$(SHTAB_BASH) bg_printenv.cli.bg_printenv >$@
+ $(call shtab,bash,bg_printenv.cli.bg_printenv)

$(top_builddir)/completion/zsh/_bg_printenv: ${top_srcdir}/completion/bg_printenv/cli.py
- @$(MKDIR_P) $(@D)
- $(AM_V_GEN)$(SHTAB_ZSH) bg_printenv.cli.bg_printenv >$@
+ $(call shtab,zsh,bg_printenv.cli.bg_printenv)

all-local: bg_printenv bash-completion zsh-completion

--
2.31.1

Michael Adler

unread,
Nov 15, 2021, 3:23:05 AM11/15/21
to Jan Kiszka, efibootguard-dev
> +define shtab

That's nice! I didn't know you could define custom functions in a Makefile.
Seems like this is a GNU-only feature though. Nevertheless, good to know :)

Thanks for simplifying this.

--
Michael Adler

Siemens AG
T RDA IOT SES-DE
Otto-Hahn-Ring 6
81739 München, Deutschland

Siemens Aktiengesellschaft: Vorsitzender des Aufsichtsrats: Jim Hagemann Snabe; Vorstand: Roland Busch, Vorsitzender; Klaus Helmrich, Cedrik Neike, Matthias Rebellius, Ralf P. Thomas, Judith Wiese; Sitz der Gesellschaft: Berlin und München, Deutschland; Registergericht: Berlin-Charlottenburg, HRB 12300, München, HRB 6684; WEEE-Reg.-Nr. DE 23691322
Reply all
Reply to author
Forward
0 new messages