summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build-aux/Makefile.each.tail/00-mod.mk20
-rw-r--r--build-aux/Makefile.once.head/00-quote.mk23
-rw-r--r--build-aux/Makefile.once.head/zz-mod.mk8
3 files changed, 34 insertions, 17 deletions
diff --git a/build-aux/Makefile.each.tail/00-mod.mk b/build-aux/Makefile.each.tail/00-mod.mk
index 6346173..dc1a2fe 100644
--- a/build-aux/Makefile.each.tail/00-mod.mk
+++ b/build-aux/Makefile.each.tail/00-mod.mk
@@ -13,27 +13,27 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-$(outdir)/at-variables $(outdir)/at-variables-local: _mod.VARIABLES := $(filter-out $(call _mod.quote-pattern,$(_at.VARIABLES)),$(.VARIABLES))
+$(outdir)/at-variables $(outdir)/at-variables-local: _mod.VARIABLES := $(filter-out $(call quote.pattern,$(_at.VARIABLES)),$(.VARIABLES))
$(outdir)/at-variables-global:
- @printf '%s\n' $(call _mod.quote-shell-each,$(sort $(.VARIABLES)))
+ @printf '%s\n' $(call quote.shell-each,$(sort $(.VARIABLES)))
$(outdir)/at-variables-local:
- @printf '%s\n' $(call _mod.quote-shell-each,$(sort $(_mod.VARIABLES)))
+ @printf '%s\n' $(call quote.shell-each,$(sort $(_mod.VARIABLES)))
$(outdir)/at-variables $(outdir)/at-values:
- @printf '%s\n' $(call _mod.quote-shell-each,$(sort $(.VARIABLES),$(_mod.VARIABLES)))
+ @printf '%s\n' $(call quote.shell-each,$(sort $(.VARIABLES),$(_mod.VARIABLES)))
$(outdir)/at-variables/%:
- @printf '%s\n' $(call _mod.quote-shell,$($*))
+ @printf '%s\n' $(call quote.shell,$($*))
$(outdir)/at-values/%:
- @printf '%s\n' $(call _mod.quote-shell,$(value $*))
+ @printf '%s\n' $(call quote.shell,$(value $*))
.PHONY: $(addprefix $(outdir)/, at-variables-global at-variables-local at-variables at-values)
at.targets += $(addprefix $(outdir)/, at-variables-global at-variables-local at-variables at-values at-variables/% at-values/%)
$(outdir)/at-modules:
@printf 'Autothing modules used in this project:\n'
- @printf ' - %s\n' $(foreach _mod.tmp,$(_mod.modules),$(call _mod.quote-shell,$(_mod.tmp) $(mod.$(_mod.tmp).description)))|column -t -s $$'\t'
+ @printf ' - %s\n' $(foreach _mod.tmp,$(_mod.modules),$(call quote.shell,$(_mod.tmp) $(mod.$(_mod.tmp).description)))|column -t -s $$'\t'
$(addprefix $(outdir)/at-modules/,$(_mod.modules)): $(outdir)/at-modules/%:
- @printf 'Name : %s\n' $(call _mod.quote-shell,$*)
- @printf 'Description : %s\n' $(call _mod.quote-shell,$(mod.$*.description))
- @echo 'Contains Files :' $(call _mod.quote-shell-each,$(call at.relto,$(topsrcdir),$(sort $(mod.$*.files) $(wildcard $(topsrcdir)/build-aux/Makefile.*/??-$*.mk))))
+ @printf 'Name : %s\n' $(call quote.shell,$*)
+ @printf 'Description : %s\n' $(call quote.shell,$(mod.$*.description))
+ @echo 'Contains Files :' $(call quote.shell-each,$(call at.relto,$(topsrcdir),$(sort $(mod.$*.files) $(wildcard $(topsrcdir)/build-aux/Makefile.*/??-$*.mk))))
@echo 'Depends on :' $(mod.$*.depends)
$(outdir)/at-noop:
diff --git a/build-aux/Makefile.once.head/00-quote.mk b/build-aux/Makefile.once.head/00-quote.mk
new file mode 100644
index 0000000..23be614
--- /dev/null
+++ b/build-aux/Makefile.once.head/00-quote.mk
@@ -0,0 +1,23 @@
+# Copyright (C) 2016 Luke Shumaker
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+mod.quote.description = Macros to quote tricky strings
+
+quote.pattern = $(subst %,\%,$(subst \,\\,$1))
+quote.shell-each = $(foreach _quote.tmp,$1,$(call quote.shell,$(_mod.tmp)))
+
+# I put this as the last line in the file because it confuses Emacs syntax
+# highlighting and makes the remainder of the file difficult to edit.
+quote.shell = $(subst $(at.nl),'$$'\n'','$(subst ','\'',$1)')
diff --git a/build-aux/Makefile.once.head/zz-mod.mk b/build-aux/Makefile.once.head/zz-mod.mk
index 438f01e..732f1e1 100644
--- a/build-aux/Makefile.once.head/zz-mod.mk
+++ b/build-aux/Makefile.once.head/zz-mod.mk
@@ -14,6 +14,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
mod.mod.description = Display information about Autothing modules
+mod.mod.depends += quote
# The trickery that is _mod.empty/_mod.space is from ยง6.2 of the GNU Make
# manual, "The Two Flavors of Variables".
@@ -33,10 +34,3 @@ $(eval $(foreach _mod.tmp,$(_mod.modules),\
mod.$(_mod.tmp).description ?=$(at.nl)\
mod.$(_mod.tmp).depends ?=$(at.nl)\
mod.$(_mod.tmp).files ?=$(at.nl)))
-
-_mod.quote-pattern = $(subst %,\%,$(subst \,\\,$1))
-_mod.quote-shell-each = $(foreach _mod.tmp,$1,$(call _mod.quote-shell,$(_mod.tmp)))
-
-# I put this as the last line in the file because it confuses Emacs syntax
-# highlighting and makes the remainder of the file difficult to edit.
-_mod.quote-shell = $(subst $(at.nl),'$$'\n'','$(subst ','\'',$1)')