diff options
author | Karl Berry <karl@freefriends.org> | 2021-02-25 19:22:25 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2021-02-25 19:22:25 +0000 |
commit | ad547a6b5986815fda458221149728d9d9ab1d87 (patch) | |
tree | 16296910eb3eca724371474ea9aea3994dc69614 /Build/source/am/recurse.am | |
parent | 947b43de3dd21d58ccc2ffadefc4441ea1c2a813 (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.am | 58 |
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 |