summaryrefslogtreecommitdiff
path: root/Build/source/am/recurse.am
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-02-25 19:22:25 +0000
committerKarl Berry <karl@freefriends.org>2021-02-25 19:22:25 +0000
commitad547a6b5986815fda458221149728d9d9ab1d87 (patch)
tree16296910eb3eca724371474ea9aea3994dc69614 /Build/source/am/recurse.am
parent947b43de3dd21d58ccc2ffadefc4441ea1c2a813 (diff)
restore Build,TODO from r57911
git-svn-id: svn://tug.org/texlive/trunk@57915 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/am/recurse.am')
-rw-r--r--Build/source/am/recurse.am58
1 files changed, 58 insertions, 0 deletions
diff --git a/Build/source/am/recurse.am b/Build/source/am/recurse.am
new file mode 100644
index 00000000000..7bfe320c99d
--- /dev/null
+++ b/Build/source/am/recurse.am
@@ -0,0 +1,58 @@
+## $Id$
+# am/recurse.am: Makefile fragment to configure and build subdirs.
+#
+# Copyright 2017-2020 Karl Berry <tex-live@tug.org>
+# Copyright 2013 Peter Breitenlohner <tex-live@tug.org>
+# You may freely use, modify and/or distribute this file.
+#
+# Requires $(recurse_this) and $(recurse_top).
+# Uses CONF_SUBDIRS and MAKE_SUBDIRS (set by kpse-setup.m4).
+#
+# For subdirs not required for the current set of configure options
+# we append '--disable-build' so they can skip tests that would
+# fail because, e.g., some required libraries were not built.
+# (By manually testing $enable_build in configure, e.g., dvisvgm/configure.)
+#
+# Code inspired by automake's way to handle recursive targets.
+#
+cf_silent = $(cf_silent_@AM_V@)
+cf_silent_ = $(cf_silent_@AM_DEFAULT_V@)
+cf_silent_0 = --silent
+cf_silent_1 =
+
+CONFIG_AUX = $(recurse_top)subsubdir-conf.cmd
+
+all-local: recurse
+
+.PHONY: recurse
+recurse: $(CONFIG_AUX)
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ list='$(CONF_SUBDIRS)'; for one_dir in $$list; do \
+ if test ! -f $$one_dir/Makefile; then \
+ test -d $$one_dir || $(MKDIR_P) $$one_dir; \
+ cmd=`cat $(CONFIG_AUX) | sed "s,auxdir/auxsub,$(recurse_this)$$one_dir,g"`; \
+ case " $(MAKE_SUBDIRS) " in \
+ *" $$one_dir "*) skip=;; \
+ *) skip=' --disable-build';; \
+ esac; \
+ (cd $$one_dir && echo "=== configuring in $$one_dir (`pwd`)" && \
+ if $(AM_V_P); then echo "make: running $(SHELL) $$cmd$$skip"; fi && \
+ CONFIG_SHELL=$(SHELL) && export CONFIG_SHELL && \
+ eval $(SHELL) $$cmd$$skip $(cf_silent) || \
+ { echo "=== configuring in $$one_dir failed"; exit 1; }) && \
+ if test "x$$skip" = x; then \
+ echo "Making all in $$one_dir" && \
+ (cd $$one_dir && $(MAKE) $(AM_MAKEFLAGS) all); \
+ fi || eval $$failcom; \
+ fi; \
+ done; test -z "$$fail"
+
+$(CONFIG_AUX):
+ @echo "configure in $(recurse_top)auxdir/auxsub failed to create the file $@"
+ exit 1