public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Christophe Lyon <christophe.lyon@linaro.org>
To: binutils@sourceware.org, gdb@sourceware.org, gcc@gcc.gnu.org
Cc: Christophe Lyon <christophe.lyon@linaro.org>
Subject: [RFC] add regenerate Makefile target
Date: Wed, 13 Mar 2024 08:02:37 +0000	[thread overview]
Message-ID: <20240313080237.1143034-1-christophe.lyon@linaro.org> (raw)

Hi!

After recent discussions on IRC and on the lists about maintainer-mode
and various problems with auto-generated source files, I've written
this small prototype.

Based on those discussions, I assumed that people generally want to
update autotools files using a script similar to autoregen.py, which
takes care of running aclocal, autoheader, automake and autoconf as
appropriate.

What is currently missing is a "simple" way of regenerating other
files, which happens normally with --enable-maintainer-mode (which is
reportedly broken).  This patch as a "regenerate" Makefile target
which can be called to update those files, provided
--enable-maintainer-mode is used.

I tried this approach with the following workflow for binutils/gdb:
- run autoregen.py in srcdir
- cd builddir
- configure --enable-maintainer-mode 
- make all-bfd all-libiberty regenerate -j1
- for gdb: make all -C gdb/data-directory -j1
- make all -jXXX

Making 'all' in bfd and libiberty is needed by some XXX-gen host
programs in opcodes.

The advantage (for instance for CI) is that we can regenerate files at
-j1, thus avoiding the existing race conditions, and build the rest
with -j XXX.

Among drawbacks:
- most sub-components use Makefile.am, but gdb does not: this may make
  maintenance more complex (different rules for different projects)
- maintaining such ad-hoc "regenerate" rules would require special
  attention from maintainers/reviewers
- dependency on -all-bfd and all-libiberty is probably not fully
   intuitive, but should not be a problem if the "regenerate" rules
   are used after a full build for instance

Of course Makefile.def/Makefile.tpl would need further cleanup as I
didn't try to take gcc into account is this patch.

Thoughts?

Thanks,

Christophe


---
 Makefile.def         |   37 +-
 Makefile.in          | 1902 ++++++++++++++++++++++++++++++++++++++++++
 Makefile.tpl         |    7 +
 bfd/Makefile.am      |    1 +
 bfd/Makefile.in      |    1 +
 binutils/Makefile.am |    1 +
 binutils/Makefile.in |    1 +
 gas/Makefile.am      |    1 +
 gas/Makefile.in      |    1 +
 gdb/Makefile.in      |    1 +
 gold/Makefile.am     |    2 +-
 gold/Makefile.in     |    2 +-
 gprof/Makefile.am    |    1 +
 gprof/Makefile.in    |    1 +
 ld/Makefile.am       |    1 +
 ld/Makefile.in       |    1 +
 opcodes/Makefile.am  |    2 +
 opcodes/Makefile.in  |    2 +
 18 files changed, 1952 insertions(+), 13 deletions(-)

diff --git a/Makefile.def b/Makefile.def
index 3e00a729a0c..42e71a9ffa2 100644
--- a/Makefile.def
+++ b/Makefile.def
@@ -39,7 +39,8 @@ host_modules= { module= binutils; bootstrap=true; };
 host_modules= { module= bison; no_check_cross= true; };
 host_modules= { module= cgen; };
 host_modules= { module= dejagnu; };
-host_modules= { module= etc; };
+host_modules= { module= etc;
+                missing= regenerate; };
 host_modules= { module= fastjar; no_check_cross= true; };
 host_modules= { module= fixincludes; bootstrap=true;
 		missing= TAGS;
@@ -73,7 +74,8 @@ host_modules= { module= isl; lib_path=.libs; bootstrap=true;
 		no_install= true; };
 host_modules= { module= gold; bootstrap=true; };
 host_modules= { module= gprof; };
-host_modules= { module= gprofng; };
+host_modules= { module= gprofng;
+                missing= regenerate; };
 host_modules= { module= gettext; bootstrap=true; no_install=true;
                 module_srcdir= "gettext/gettext-runtime";
 		// We always build gettext with pic, because some packages (e.g. gdbserver)
@@ -95,7 +97,8 @@ host_modules= { module= tcl;
                 missing=mostlyclean; };
 host_modules= { module= itcl; };
 host_modules= { module= ld; bootstrap=true; };
-host_modules= { module= libbacktrace; bootstrap=true; };
+host_modules= { module= libbacktrace; bootstrap=true;
+                missing= regenerate; };
 host_modules= { module= libcpp; bootstrap=true; };
 // As with libiconv, don't install any of libcody
 host_modules= { module= libcody; bootstrap=true;
@@ -110,9 +113,11 @@ host_modules= { module= libcody; bootstrap=true;
 		missing= install-dvi;
 		missing=TAGS; };
 host_modules= { module= libdecnumber; bootstrap=true;
-		missing=TAGS; };
+		missing=TAGS;
+                missing= regenerate; };
 host_modules= { module= libgui; };
 host_modules= { module= libiberty; bootstrap=true;
+                missing= regenerate;
 	        extra_configure_flags='@extra_host_libiberty_configure_flags@';};
 // Linker plugins may need their own build of libiberty; see
 // gcc/doc/install.texi.  We take care that this build of libiberty doesn't get
@@ -134,16 +139,22 @@ host_modules= { module= libiconv;
 		missing= install-html;
 		missing= install-info; };
 host_modules= { module= m4; };
-host_modules= { module= readline; };
+host_modules= { module= readline;
+                missing= regenerate; };
 host_modules= { module= sid; };
-host_modules= { module= sim; };
+host_modules= { module= sim;
+                missing= regenerate; };
 host_modules= { module= texinfo; no_install= true; };
 host_modules= { module= zlib; no_install=true; no_check=true;
 		bootstrap=true;
+                missing= regenerate;
 	        extra_configure_flags='@extra_host_zlib_configure_flags@ @host_libs_picflag@';};
-host_modules= { module= gnulib; };
-host_modules= { module= gdbsupport; };
-host_modules= { module= gdbserver; };
+host_modules= { module= gnulib;
+                missing= regenerate; };
+host_modules= { module= gdbsupport;
+                missing= regenerate; };
+host_modules= { module= gdbserver;
+                missing= regenerate; };
 host_modules= { module= gdb; };
 host_modules= { module= expect; };
 host_modules= { module= guile; };
@@ -162,8 +173,10 @@ host_modules= { module= lto-plugin; bootstrap=true;
 		extra_make_flags='@extra_linker_plugin_flags@'; };
 host_modules= { module= libcc1; extra_configure_flags=--enable-shared; };
 host_modules= { module= gotools; };
-host_modules= { module= libctf; bootstrap=true; };
-host_modules= { module= libsframe; bootstrap=true; };
+host_modules= { module= libctf; bootstrap=true;
+                missing= regenerate; };
+host_modules= { module= libsframe; bootstrap=true;
+                missing= regenerate; };
 host_modules= { module= libgrust; };
 
 target_modules = { module= libstdc++-v3;
@@ -242,6 +255,8 @@ recursive_targets = { make_target= mostlyclean; };
 recursive_targets = { make_target= clean; };
 recursive_targets = { make_target= distclean; };
 recursive_targets = { make_target= maintainer-clean; };
+recursive_targets = { make_target= regenerate;
+		      depend=configure; };
 
 // Flags which need to be passed down.
 
diff --git a/Makefile.in b/Makefile.in
index a1f64a2ab5a..09631d62b72 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -2672,6 +2672,99 @@ maintainer-clean-target: maybe-maintainer-clean-target-libitm
 maintainer-clean-target: maybe-maintainer-clean-target-libatomic
 maintainer-clean-target: maybe-maintainer-clean-target-libgrust
 
+.PHONY: do-regenerate
+do-regenerate:
+	@: $(MAKE); $(unstage)
+	@r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(MAKE) $(RECURSE_FLAGS_TO_PASS) regenerate-host \
+	  regenerate-target
+
+
+.PHONY: regenerate-host
+
+regenerate-host: maybe-regenerate-bfd
+regenerate-host: maybe-regenerate-opcodes
+regenerate-host: maybe-regenerate-binutils
+regenerate-host: maybe-regenerate-bison
+regenerate-host: maybe-regenerate-cgen
+regenerate-host: maybe-regenerate-dejagnu
+regenerate-host: maybe-regenerate-etc
+regenerate-host: maybe-regenerate-fastjar
+regenerate-host: maybe-regenerate-fixincludes
+regenerate-host: maybe-regenerate-flex
+regenerate-host: maybe-regenerate-gas
+regenerate-host: maybe-regenerate-gcc
+regenerate-host: maybe-regenerate-gmp
+regenerate-host: maybe-regenerate-mpfr
+regenerate-host: maybe-regenerate-mpc
+regenerate-host: maybe-regenerate-isl
+regenerate-host: maybe-regenerate-gold
+regenerate-host: maybe-regenerate-gprof
+regenerate-host: maybe-regenerate-gprofng
+regenerate-host: maybe-regenerate-gettext
+regenerate-host: maybe-regenerate-tcl
+regenerate-host: maybe-regenerate-itcl
+regenerate-host: maybe-regenerate-ld
+regenerate-host: maybe-regenerate-libbacktrace
+regenerate-host: maybe-regenerate-libcpp
+regenerate-host: maybe-regenerate-libcody
+regenerate-host: maybe-regenerate-libdecnumber
+regenerate-host: maybe-regenerate-libgui
+regenerate-host: maybe-regenerate-libiberty
+regenerate-host: maybe-regenerate-libiberty-linker-plugin
+regenerate-host: maybe-regenerate-libiconv
+regenerate-host: maybe-regenerate-m4
+regenerate-host: maybe-regenerate-readline
+regenerate-host: maybe-regenerate-sid
+regenerate-host: maybe-regenerate-sim
+regenerate-host: maybe-regenerate-texinfo
+regenerate-host: maybe-regenerate-zlib
+regenerate-host: maybe-regenerate-gnulib
+regenerate-host: maybe-regenerate-gdbsupport
+regenerate-host: maybe-regenerate-gdbserver
+regenerate-host: maybe-regenerate-gdb
+regenerate-host: maybe-regenerate-expect
+regenerate-host: maybe-regenerate-guile
+regenerate-host: maybe-regenerate-tk
+regenerate-host: maybe-regenerate-libtermcap
+regenerate-host: maybe-regenerate-utils
+regenerate-host: maybe-regenerate-c++tools
+regenerate-host: maybe-regenerate-gnattools
+regenerate-host: maybe-regenerate-lto-plugin
+regenerate-host: maybe-regenerate-libcc1
+regenerate-host: maybe-regenerate-gotools
+regenerate-host: maybe-regenerate-libctf
+regenerate-host: maybe-regenerate-libsframe
+regenerate-host: maybe-regenerate-libgrust
+
+.PHONY: regenerate-target
+
+regenerate-target: maybe-regenerate-target-libstdc++-v3
+regenerate-target: maybe-regenerate-target-libsanitizer
+regenerate-target: maybe-regenerate-target-libvtv
+regenerate-target: maybe-regenerate-target-libssp
+regenerate-target: maybe-regenerate-target-newlib
+regenerate-target: maybe-regenerate-target-libgcc
+regenerate-target: maybe-regenerate-target-libbacktrace
+regenerate-target: maybe-regenerate-target-libquadmath
+regenerate-target: maybe-regenerate-target-libgfortran
+regenerate-target: maybe-regenerate-target-libobjc
+regenerate-target: maybe-regenerate-target-libgo
+regenerate-target: maybe-regenerate-target-libphobos
+regenerate-target: maybe-regenerate-target-libtermcap
+regenerate-target: maybe-regenerate-target-winsup
+regenerate-target: maybe-regenerate-target-libgloss
+regenerate-target: maybe-regenerate-target-libffi
+regenerate-target: maybe-regenerate-target-zlib
+regenerate-target: maybe-regenerate-target-rda
+regenerate-target: maybe-regenerate-target-libada
+regenerate-target: maybe-regenerate-target-libgm2
+regenerate-target: maybe-regenerate-target-libgomp
+regenerate-target: maybe-regenerate-target-libitm
+regenerate-target: maybe-regenerate-target-libatomic
+regenerate-target: maybe-regenerate-target-libgrust
+
 
 # Here are the targets which correspond to the do-X targets.
 
@@ -2871,6 +2964,13 @@ clang-format: $(srcdir)/.clang-format
 
 .PHONY: clang-format
 
+.PHONY: regenerate
+regenerate:
+	@: $(MAKE); $(unstage)
+	@r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(MAKE) $(RECURSE_FLAGS_TO_PASS) regenerate-host regenerate-target
+
 # Installation targets.
 
 .PHONY: install uninstall
@@ -4719,6 +4819,31 @@ maintainer-clean-bfd:
 
 @endif bfd
 
+.PHONY: maybe-regenerate-bfd regenerate-bfd
+maybe-regenerate-bfd:
+@if bfd
+maybe-regenerate-bfd: regenerate-bfd
+
+regenerate-bfd: \
+    configure-bfd 
+	@[ -f ./bfd/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in bfd"; \
+	(cd $(HOST_SUBDIR)/bfd && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif bfd
+
 
 
 .PHONY: configure-opcodes maybe-configure-opcodes
@@ -5859,6 +5984,31 @@ maintainer-clean-opcodes:
 
 @endif opcodes
 
+.PHONY: maybe-regenerate-opcodes regenerate-opcodes
+maybe-regenerate-opcodes:
+@if opcodes
+maybe-regenerate-opcodes: regenerate-opcodes
+
+regenerate-opcodes: \
+    configure-opcodes 
+	@[ -f ./opcodes/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in opcodes"; \
+	(cd $(HOST_SUBDIR)/opcodes && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif opcodes
+
 
 
 .PHONY: configure-binutils maybe-configure-binutils
@@ -6999,6 +7149,31 @@ maintainer-clean-binutils:
 
 @endif binutils
 
+.PHONY: maybe-regenerate-binutils regenerate-binutils
+maybe-regenerate-binutils:
+@if binutils
+maybe-regenerate-binutils: regenerate-binutils
+
+regenerate-binutils: \
+    configure-binutils 
+	@[ -f ./binutils/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in binutils"; \
+	(cd $(HOST_SUBDIR)/binutils && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif binutils
+
 
 
 .PHONY: configure-bison maybe-configure-bison
@@ -7470,6 +7645,32 @@ maintainer-clean-bison:
 
 @endif bison
 
+.PHONY: maybe-regenerate-bison regenerate-bison
+maybe-regenerate-bison:
+@if bison
+maybe-regenerate-bison: regenerate-bison
+
+regenerate-bison: \
+    configure-bison 
+	@: $(MAKE); $(unstage)
+	@[ -f ./bison/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in bison"; \
+	(cd $(HOST_SUBDIR)/bison && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif bison
+
 
 
 .PHONY: configure-cgen maybe-configure-cgen
@@ -7938,6 +8139,32 @@ maintainer-clean-cgen:
 
 @endif cgen
 
+.PHONY: maybe-regenerate-cgen regenerate-cgen
+maybe-regenerate-cgen:
+@if cgen
+maybe-regenerate-cgen: regenerate-cgen
+
+regenerate-cgen: \
+    configure-cgen 
+	@: $(MAKE); $(unstage)
+	@[ -f ./cgen/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in cgen"; \
+	(cd $(HOST_SUBDIR)/cgen && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif cgen
+
 
 
 .PHONY: configure-dejagnu maybe-configure-dejagnu
@@ -8406,6 +8633,32 @@ maintainer-clean-dejagnu:
 
 @endif dejagnu
 
+.PHONY: maybe-regenerate-dejagnu regenerate-dejagnu
+maybe-regenerate-dejagnu:
+@if dejagnu
+maybe-regenerate-dejagnu: regenerate-dejagnu
+
+regenerate-dejagnu: \
+    configure-dejagnu 
+	@: $(MAKE); $(unstage)
+	@[ -f ./dejagnu/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in dejagnu"; \
+	(cd $(HOST_SUBDIR)/dejagnu && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif dejagnu
+
 
 
 .PHONY: configure-etc maybe-configure-etc
@@ -8874,6 +9127,16 @@ maintainer-clean-etc:
 
 @endif etc
 
+.PHONY: maybe-regenerate-etc regenerate-etc
+maybe-regenerate-etc:
+@if etc
+maybe-regenerate-etc: regenerate-etc
+
+# etc doesn't support regenerate.
+regenerate-etc:
+
+@endif etc
+
 
 
 .PHONY: configure-fastjar maybe-configure-fastjar
@@ -9345,6 +9608,32 @@ maintainer-clean-fastjar:
 
 @endif fastjar
 
+.PHONY: maybe-regenerate-fastjar regenerate-fastjar
+maybe-regenerate-fastjar:
+@if fastjar
+maybe-regenerate-fastjar: regenerate-fastjar
+
+regenerate-fastjar: \
+    configure-fastjar 
+	@: $(MAKE); $(unstage)
+	@[ -f ./fastjar/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in fastjar"; \
+	(cd $(HOST_SUBDIR)/fastjar && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif fastjar
+
 
 
 .PHONY: configure-fixincludes maybe-configure-fixincludes
@@ -10454,6 +10743,31 @@ maintainer-clean-fixincludes:
 
 @endif fixincludes
 
+.PHONY: maybe-regenerate-fixincludes regenerate-fixincludes
+maybe-regenerate-fixincludes:
+@if fixincludes
+maybe-regenerate-fixincludes: regenerate-fixincludes
+
+regenerate-fixincludes: \
+    configure-fixincludes 
+	@[ -f ./fixincludes/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in fixincludes"; \
+	(cd $(HOST_SUBDIR)/fixincludes && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif fixincludes
+
 
 
 .PHONY: configure-flex maybe-configure-flex
@@ -10925,6 +11239,32 @@ maintainer-clean-flex:
 
 @endif flex
 
+.PHONY: maybe-regenerate-flex regenerate-flex
+maybe-regenerate-flex:
+@if flex
+maybe-regenerate-flex: regenerate-flex
+
+regenerate-flex: \
+    configure-flex 
+	@: $(MAKE); $(unstage)
+	@[ -f ./flex/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in flex"; \
+	(cd $(HOST_SUBDIR)/flex && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif flex
+
 
 
 .PHONY: configure-gas maybe-configure-gas
@@ -12065,6 +12405,31 @@ maintainer-clean-gas:
 
 @endif gas
 
+.PHONY: maybe-regenerate-gas regenerate-gas
+maybe-regenerate-gas:
+@if gas
+maybe-regenerate-gas: regenerate-gas
+
+regenerate-gas: \
+    configure-gas 
+	@[ -f ./gas/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in gas"; \
+	(cd $(HOST_SUBDIR)/gas && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif gas
+
 
 
 .PHONY: configure-gcc maybe-configure-gcc
@@ -13214,6 +13579,31 @@ maintainer-clean-gcc:
 
 @endif gcc
 
+.PHONY: maybe-regenerate-gcc regenerate-gcc
+maybe-regenerate-gcc:
+@if gcc
+maybe-regenerate-gcc: regenerate-gcc
+
+regenerate-gcc: \
+    configure-gcc 
+	@[ -f ./gcc/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) $(EXTRA_GCC_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in gcc"; \
+	(cd $(HOST_SUBDIR)/gcc && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif gcc
+
 
 
 .PHONY: configure-gmp maybe-configure-gmp
@@ -14351,6 +14741,31 @@ maintainer-clean-gmp:
 
 @endif gmp
 
+.PHONY: maybe-regenerate-gmp regenerate-gmp
+maybe-regenerate-gmp:
+@if gmp
+maybe-regenerate-gmp: regenerate-gmp
+
+regenerate-gmp: \
+    configure-gmp 
+	@[ -f ./gmp/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in gmp"; \
+	(cd $(HOST_SUBDIR)/gmp && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif gmp
+
 
 
 .PHONY: configure-mpfr maybe-configure-mpfr
@@ -15488,6 +15903,31 @@ maintainer-clean-mpfr:
 
 @endif mpfr
 
+.PHONY: maybe-regenerate-mpfr regenerate-mpfr
+maybe-regenerate-mpfr:
+@if mpfr
+maybe-regenerate-mpfr: regenerate-mpfr
+
+regenerate-mpfr: \
+    configure-mpfr 
+	@[ -f ./mpfr/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in mpfr"; \
+	(cd $(HOST_SUBDIR)/mpfr && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif mpfr
+
 
 
 .PHONY: configure-mpc maybe-configure-mpc
@@ -16625,6 +17065,31 @@ maintainer-clean-mpc:
 
 @endif mpc
 
+.PHONY: maybe-regenerate-mpc regenerate-mpc
+maybe-regenerate-mpc:
+@if mpc
+maybe-regenerate-mpc: regenerate-mpc
+
+regenerate-mpc: \
+    configure-mpc 
+	@[ -f ./mpc/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in mpc"; \
+	(cd $(HOST_SUBDIR)/mpc && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif mpc
+
 
 
 .PHONY: configure-isl maybe-configure-isl
@@ -17762,6 +18227,31 @@ maintainer-clean-isl:
 
 @endif isl
 
+.PHONY: maybe-regenerate-isl regenerate-isl
+maybe-regenerate-isl:
+@if isl
+maybe-regenerate-isl: regenerate-isl
+
+regenerate-isl: \
+    configure-isl 
+	@[ -f ./isl/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) V=1; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in isl"; \
+	(cd $(HOST_SUBDIR)/isl && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif isl
+
 
 
 .PHONY: configure-gold maybe-configure-gold
@@ -18902,6 +19392,31 @@ maintainer-clean-gold:
 
 @endif gold
 
+.PHONY: maybe-regenerate-gold regenerate-gold
+maybe-regenerate-gold:
+@if gold
+maybe-regenerate-gold: regenerate-gold
+
+regenerate-gold: \
+    configure-gold 
+	@[ -f ./gold/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in gold"; \
+	(cd $(HOST_SUBDIR)/gold && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif gold
+
 
 
 .PHONY: configure-gprof maybe-configure-gprof
@@ -19370,6 +19885,32 @@ maintainer-clean-gprof:
 
 @endif gprof
 
+.PHONY: maybe-regenerate-gprof regenerate-gprof
+maybe-regenerate-gprof:
+@if gprof
+maybe-regenerate-gprof: regenerate-gprof
+
+regenerate-gprof: \
+    configure-gprof 
+	@: $(MAKE); $(unstage)
+	@[ -f ./gprof/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in gprof"; \
+	(cd $(HOST_SUBDIR)/gprof && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif gprof
+
 
 
 .PHONY: configure-gprofng maybe-configure-gprofng
@@ -19838,6 +20379,16 @@ maintainer-clean-gprofng:
 
 @endif gprofng
 
+.PHONY: maybe-regenerate-gprofng regenerate-gprofng
+maybe-regenerate-gprofng:
+@if gprofng
+maybe-regenerate-gprofng: regenerate-gprofng
+
+# gprofng doesn't support regenerate.
+regenerate-gprofng:
+
+@endif gprofng
+
 
 
 .PHONY: configure-gettext maybe-configure-gettext
@@ -20836,6 +21387,31 @@ maintainer-clean-gettext:
 
 @endif gettext
 
+.PHONY: maybe-regenerate-gettext regenerate-gettext
+maybe-regenerate-gettext:
+@if gettext
+maybe-regenerate-gettext: regenerate-gettext
+
+regenerate-gettext: \
+    configure-gettext 
+	@[ -f ./gettext/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in gettext"; \
+	(cd $(HOST_SUBDIR)/gettext && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif gettext
+
 
 
 .PHONY: configure-tcl maybe-configure-tcl
@@ -21289,6 +21865,32 @@ maintainer-clean-tcl:
 
 @endif tcl
 
+.PHONY: maybe-regenerate-tcl regenerate-tcl
+maybe-regenerate-tcl:
+@if tcl
+maybe-regenerate-tcl: regenerate-tcl
+
+regenerate-tcl: \
+    configure-tcl 
+	@: $(MAKE); $(unstage)
+	@[ -f ./tcl/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in tcl"; \
+	(cd $(HOST_SUBDIR)/tcl && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif tcl
+
 
 
 .PHONY: configure-itcl maybe-configure-itcl
@@ -21757,6 +22359,32 @@ maintainer-clean-itcl:
 
 @endif itcl
 
+.PHONY: maybe-regenerate-itcl regenerate-itcl
+maybe-regenerate-itcl:
+@if itcl
+maybe-regenerate-itcl: regenerate-itcl
+
+regenerate-itcl: \
+    configure-itcl 
+	@: $(MAKE); $(unstage)
+	@[ -f ./itcl/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in itcl"; \
+	(cd $(HOST_SUBDIR)/itcl && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif itcl
+
 
 
 .PHONY: configure-ld maybe-configure-ld
@@ -22897,6 +23525,31 @@ maintainer-clean-ld:
 
 @endif ld
 
+.PHONY: maybe-regenerate-ld regenerate-ld
+maybe-regenerate-ld:
+@if ld
+maybe-regenerate-ld: regenerate-ld
+
+regenerate-ld: \
+    configure-ld 
+	@[ -f ./ld/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in ld"; \
+	(cd $(HOST_SUBDIR)/ld && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif ld
+
 
 
 .PHONY: configure-libbacktrace maybe-configure-libbacktrace
@@ -24037,6 +24690,16 @@ maintainer-clean-libbacktrace:
 
 @endif libbacktrace
 
+.PHONY: maybe-regenerate-libbacktrace regenerate-libbacktrace
+maybe-regenerate-libbacktrace:
+@if libbacktrace
+maybe-regenerate-libbacktrace: regenerate-libbacktrace
+
+# libbacktrace doesn't support regenerate.
+regenerate-libbacktrace:
+
+@endif libbacktrace
+
 
 
 .PHONY: configure-libcpp maybe-configure-libcpp
@@ -25177,6 +25840,31 @@ maintainer-clean-libcpp:
 
 @endif libcpp
 
+.PHONY: maybe-regenerate-libcpp regenerate-libcpp
+maybe-regenerate-libcpp:
+@if libcpp
+maybe-regenerate-libcpp: regenerate-libcpp
+
+regenerate-libcpp: \
+    configure-libcpp 
+	@[ -f ./libcpp/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in libcpp"; \
+	(cd $(HOST_SUBDIR)/libcpp && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif libcpp
+
 
 
 .PHONY: configure-libcody maybe-configure-libcody
@@ -26166,6 +26854,31 @@ maintainer-clean-libcody:
 
 @endif libcody
 
+.PHONY: maybe-regenerate-libcody regenerate-libcody
+maybe-regenerate-libcody:
+@if libcody
+maybe-regenerate-libcody: regenerate-libcody
+
+regenerate-libcody: \
+    configure-libcody 
+	@[ -f ./libcody/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in libcody"; \
+	(cd $(HOST_SUBDIR)/libcody && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif libcody
+
 
 
 .PHONY: configure-libdecnumber maybe-configure-libdecnumber
@@ -27291,6 +28004,16 @@ maintainer-clean-libdecnumber:
 
 @endif libdecnumber
 
+.PHONY: maybe-regenerate-libdecnumber regenerate-libdecnumber
+maybe-regenerate-libdecnumber:
+@if libdecnumber
+maybe-regenerate-libdecnumber: regenerate-libdecnumber
+
+# libdecnumber doesn't support regenerate.
+regenerate-libdecnumber:
+
+@endif libdecnumber
+
 
 
 .PHONY: configure-libgui maybe-configure-libgui
@@ -27759,6 +28482,32 @@ maintainer-clean-libgui:
 
 @endif libgui
 
+.PHONY: maybe-regenerate-libgui regenerate-libgui
+maybe-regenerate-libgui:
+@if libgui
+maybe-regenerate-libgui: regenerate-libgui
+
+regenerate-libgui: \
+    configure-libgui 
+	@: $(MAKE); $(unstage)
+	@[ -f ./libgui/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in libgui"; \
+	(cd $(HOST_SUBDIR)/libgui && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif libgui
+
 
 
 .PHONY: configure-libiberty maybe-configure-libiberty
@@ -28908,6 +29657,16 @@ maintainer-clean-libiberty:
 
 @endif libiberty
 
+.PHONY: maybe-regenerate-libiberty regenerate-libiberty
+maybe-regenerate-libiberty:
+@if libiberty
+maybe-regenerate-libiberty: regenerate-libiberty
+
+# libiberty doesn't support regenerate.
+regenerate-libiberty:
+
+@endif libiberty
+
 
 
 .PHONY: configure-libiberty-linker-plugin maybe-configure-libiberty-linker-plugin
@@ -30057,6 +30816,31 @@ maintainer-clean-libiberty-linker-plugin:
 
 @endif libiberty-linker-plugin
 
+.PHONY: maybe-regenerate-libiberty-linker-plugin regenerate-libiberty-linker-plugin
+maybe-regenerate-libiberty-linker-plugin:
+@if libiberty-linker-plugin
+maybe-regenerate-libiberty-linker-plugin: regenerate-libiberty-linker-plugin
+
+regenerate-libiberty-linker-plugin: \
+    configure-libiberty-linker-plugin 
+	@[ -f ./libiberty-linker-plugin/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) @extra_linker_plugin_flags@; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in libiberty-linker-plugin"; \
+	(cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif libiberty-linker-plugin
+
 
 
 .PHONY: configure-libiconv maybe-configure-libiconv
@@ -31101,6 +31885,31 @@ maintainer-clean-libiconv:
 
 @endif libiconv
 
+.PHONY: maybe-regenerate-libiconv regenerate-libiconv
+maybe-regenerate-libiconv:
+@if libiconv
+maybe-regenerate-libiconv: regenerate-libiconv
+
+regenerate-libiconv: \
+    configure-libiconv 
+	@[ -f ./libiconv/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in libiconv"; \
+	(cd $(HOST_SUBDIR)/libiconv && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif libiconv
+
 
 
 .PHONY: configure-m4 maybe-configure-m4
@@ -31569,6 +32378,32 @@ maintainer-clean-m4:
 
 @endif m4
 
+.PHONY: maybe-regenerate-m4 regenerate-m4
+maybe-regenerate-m4:
+@if m4
+maybe-regenerate-m4: regenerate-m4
+
+regenerate-m4: \
+    configure-m4 
+	@: $(MAKE); $(unstage)
+	@[ -f ./m4/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in m4"; \
+	(cd $(HOST_SUBDIR)/m4 && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif m4
+
 
 
 .PHONY: configure-readline maybe-configure-readline
@@ -32037,6 +32872,16 @@ maintainer-clean-readline:
 
 @endif readline
 
+.PHONY: maybe-regenerate-readline regenerate-readline
+maybe-regenerate-readline:
+@if readline
+maybe-regenerate-readline: regenerate-readline
+
+# readline doesn't support regenerate.
+regenerate-readline:
+
+@endif readline
+
 
 
 .PHONY: configure-sid maybe-configure-sid
@@ -32505,6 +33350,32 @@ maintainer-clean-sid:
 
 @endif sid
 
+.PHONY: maybe-regenerate-sid regenerate-sid
+maybe-regenerate-sid:
+@if sid
+maybe-regenerate-sid: regenerate-sid
+
+regenerate-sid: \
+    configure-sid 
+	@: $(MAKE); $(unstage)
+	@[ -f ./sid/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in sid"; \
+	(cd $(HOST_SUBDIR)/sid && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif sid
+
 
 
 .PHONY: configure-sim maybe-configure-sim
@@ -32973,6 +33844,16 @@ maintainer-clean-sim:
 
 @endif sim
 
+.PHONY: maybe-regenerate-sim regenerate-sim
+maybe-regenerate-sim:
+@if sim
+maybe-regenerate-sim: regenerate-sim
+
+# sim doesn't support regenerate.
+regenerate-sim:
+
+@endif sim
+
 
 
 .PHONY: configure-texinfo maybe-configure-texinfo
@@ -33429,6 +34310,32 @@ maintainer-clean-texinfo:
 
 @endif texinfo
 
+.PHONY: maybe-regenerate-texinfo regenerate-texinfo
+maybe-regenerate-texinfo:
+@if texinfo
+maybe-regenerate-texinfo: regenerate-texinfo
+
+regenerate-texinfo: \
+    configure-texinfo 
+	@: $(MAKE); $(unstage)
+	@[ -f ./texinfo/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in texinfo"; \
+	(cd $(HOST_SUBDIR)/texinfo && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif texinfo
+
 
 
 .PHONY: configure-zlib maybe-configure-zlib
@@ -34560,6 +35467,16 @@ maintainer-clean-zlib:
 
 @endif zlib
 
+.PHONY: maybe-regenerate-zlib regenerate-zlib
+maybe-regenerate-zlib:
+@if zlib
+maybe-regenerate-zlib: regenerate-zlib
+
+# zlib doesn't support regenerate.
+regenerate-zlib:
+
+@endif zlib
+
 
 
 .PHONY: configure-gnulib maybe-configure-gnulib
@@ -35028,6 +35945,16 @@ maintainer-clean-gnulib:
 
 @endif gnulib
 
+.PHONY: maybe-regenerate-gnulib regenerate-gnulib
+maybe-regenerate-gnulib:
+@if gnulib
+maybe-regenerate-gnulib: regenerate-gnulib
+
+# gnulib doesn't support regenerate.
+regenerate-gnulib:
+
+@endif gnulib
+
 
 
 .PHONY: configure-gdbsupport maybe-configure-gdbsupport
@@ -35496,6 +36423,16 @@ maintainer-clean-gdbsupport:
 
 @endif gdbsupport
 
+.PHONY: maybe-regenerate-gdbsupport regenerate-gdbsupport
+maybe-regenerate-gdbsupport:
+@if gdbsupport
+maybe-regenerate-gdbsupport: regenerate-gdbsupport
+
+# gdbsupport doesn't support regenerate.
+regenerate-gdbsupport:
+
+@endif gdbsupport
+
 
 
 .PHONY: configure-gdbserver maybe-configure-gdbserver
@@ -35964,6 +36901,16 @@ maintainer-clean-gdbserver:
 
 @endif gdbserver
 
+.PHONY: maybe-regenerate-gdbserver regenerate-gdbserver
+maybe-regenerate-gdbserver:
+@if gdbserver
+maybe-regenerate-gdbserver: regenerate-gdbserver
+
+# gdbserver doesn't support regenerate.
+regenerate-gdbserver:
+
+@endif gdbserver
+
 
 
 .PHONY: configure-gdb maybe-configure-gdb
@@ -36432,6 +37379,32 @@ maintainer-clean-gdb:
 
 @endif gdb
 
+.PHONY: maybe-regenerate-gdb regenerate-gdb
+maybe-regenerate-gdb:
+@if gdb
+maybe-regenerate-gdb: regenerate-gdb
+
+regenerate-gdb: \
+    configure-gdb 
+	@: $(MAKE); $(unstage)
+	@[ -f ./gdb/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in gdb"; \
+	(cd $(HOST_SUBDIR)/gdb && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif gdb
+
 
 
 .PHONY: configure-expect maybe-configure-expect
@@ -36900,6 +37873,32 @@ maintainer-clean-expect:
 
 @endif expect
 
+.PHONY: maybe-regenerate-expect regenerate-expect
+maybe-regenerate-expect:
+@if expect
+maybe-regenerate-expect: regenerate-expect
+
+regenerate-expect: \
+    configure-expect 
+	@: $(MAKE); $(unstage)
+	@[ -f ./expect/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in expect"; \
+	(cd $(HOST_SUBDIR)/expect && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif expect
+
 
 
 .PHONY: configure-guile maybe-configure-guile
@@ -37368,6 +38367,32 @@ maintainer-clean-guile:
 
 @endif guile
 
+.PHONY: maybe-regenerate-guile regenerate-guile
+maybe-regenerate-guile:
+@if guile
+maybe-regenerate-guile: regenerate-guile
+
+regenerate-guile: \
+    configure-guile 
+	@: $(MAKE); $(unstage)
+	@[ -f ./guile/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in guile"; \
+	(cd $(HOST_SUBDIR)/guile && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif guile
+
 
 
 .PHONY: configure-tk maybe-configure-tk
@@ -37836,6 +38861,32 @@ maintainer-clean-tk:
 
 @endif tk
 
+.PHONY: maybe-regenerate-tk regenerate-tk
+maybe-regenerate-tk:
+@if tk
+maybe-regenerate-tk: regenerate-tk
+
+regenerate-tk: \
+    configure-tk 
+	@: $(MAKE); $(unstage)
+	@[ -f ./tk/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in tk"; \
+	(cd $(HOST_SUBDIR)/tk && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif tk
+
 
 
 .PHONY: configure-libtermcap maybe-configure-libtermcap
@@ -38238,6 +39289,32 @@ maintainer-clean-libtermcap:
 
 @endif libtermcap
 
+.PHONY: maybe-regenerate-libtermcap regenerate-libtermcap
+maybe-regenerate-libtermcap:
+@if libtermcap
+maybe-regenerate-libtermcap: regenerate-libtermcap
+
+regenerate-libtermcap: \
+    configure-libtermcap 
+	@: $(MAKE); $(unstage)
+	@[ -f ./libtermcap/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in libtermcap"; \
+	(cd $(HOST_SUBDIR)/libtermcap && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif libtermcap
+
 
 
 .PHONY: configure-utils maybe-configure-utils
@@ -38700,6 +39777,32 @@ maintainer-clean-utils:
 
 @endif utils
 
+.PHONY: maybe-regenerate-utils regenerate-utils
+maybe-regenerate-utils:
+@if utils
+maybe-regenerate-utils: regenerate-utils
+
+regenerate-utils: \
+    configure-utils 
+	@: $(MAKE); $(unstage)
+	@[ -f ./utils/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in utils"; \
+	(cd $(HOST_SUBDIR)/utils && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif utils
+
 
 
 .PHONY: configure-c++tools maybe-configure-c++tools
@@ -39152,6 +40255,32 @@ maintainer-clean-c++tools:
 
 @endif c++tools
 
+.PHONY: maybe-regenerate-c++tools regenerate-c++tools
+maybe-regenerate-c++tools:
+@if c++tools
+maybe-regenerate-c++tools: regenerate-c++tools
+
+regenerate-c++tools: \
+    configure-c++tools 
+	@: $(MAKE); $(unstage)
+	@[ -f ./c++tools/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in c++tools"; \
+	(cd $(HOST_SUBDIR)/c++tools && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif c++tools
+
 
 
 .PHONY: configure-gnattools maybe-configure-gnattools
@@ -39620,6 +40749,32 @@ maintainer-clean-gnattools:
 
 @endif gnattools
 
+.PHONY: maybe-regenerate-gnattools regenerate-gnattools
+maybe-regenerate-gnattools:
+@if gnattools
+maybe-regenerate-gnattools: regenerate-gnattools
+
+regenerate-gnattools: \
+    configure-gnattools 
+	@: $(MAKE); $(unstage)
+	@[ -f ./gnattools/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in gnattools"; \
+	(cd $(HOST_SUBDIR)/gnattools && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif gnattools
+
 
 
 .PHONY: configure-lto-plugin maybe-configure-lto-plugin
@@ -40769,6 +41924,31 @@ maintainer-clean-lto-plugin:
 
 @endif lto-plugin
 
+.PHONY: maybe-regenerate-lto-plugin regenerate-lto-plugin
+maybe-regenerate-lto-plugin:
+@if lto-plugin
+maybe-regenerate-lto-plugin: regenerate-lto-plugin
+
+regenerate-lto-plugin: \
+    configure-lto-plugin 
+	@[ -f ./lto-plugin/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) @extra_linker_plugin_flags@; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in lto-plugin"; \
+	(cd $(HOST_SUBDIR)/lto-plugin && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif lto-plugin
+
 
 
 .PHONY: configure-libcc1 maybe-configure-libcc1
@@ -41237,6 +42417,32 @@ maintainer-clean-libcc1:
 
 @endif libcc1
 
+.PHONY: maybe-regenerate-libcc1 regenerate-libcc1
+maybe-regenerate-libcc1:
+@if libcc1
+maybe-regenerate-libcc1: regenerate-libcc1
+
+regenerate-libcc1: \
+    configure-libcc1 
+	@: $(MAKE); $(unstage)
+	@[ -f ./libcc1/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in libcc1"; \
+	(cd $(HOST_SUBDIR)/libcc1 && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif libcc1
+
 
 
 .PHONY: configure-gotools maybe-configure-gotools
@@ -41705,6 +42911,32 @@ maintainer-clean-gotools:
 
 @endif gotools
 
+.PHONY: maybe-regenerate-gotools regenerate-gotools
+maybe-regenerate-gotools:
+@if gotools
+maybe-regenerate-gotools: regenerate-gotools
+
+regenerate-gotools: \
+    configure-gotools 
+	@: $(MAKE); $(unstage)
+	@[ -f ./gotools/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in gotools"; \
+	(cd $(HOST_SUBDIR)/gotools && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif gotools
+
 
 
 .PHONY: configure-libctf maybe-configure-libctf
@@ -42845,6 +44077,16 @@ maintainer-clean-libctf:
 
 @endif libctf
 
+.PHONY: maybe-regenerate-libctf regenerate-libctf
+maybe-regenerate-libctf:
+@if libctf
+maybe-regenerate-libctf: regenerate-libctf
+
+# libctf doesn't support regenerate.
+regenerate-libctf:
+
+@endif libctf
+
 
 
 .PHONY: configure-libsframe maybe-configure-libsframe
@@ -43985,6 +45227,16 @@ maintainer-clean-libsframe:
 
 @endif libsframe
 
+.PHONY: maybe-regenerate-libsframe regenerate-libsframe
+maybe-regenerate-libsframe:
+@if libsframe
+maybe-regenerate-libsframe: regenerate-libsframe
+
+# libsframe doesn't support regenerate.
+regenerate-libsframe:
+
+@endif libsframe
+
 
 
 .PHONY: configure-libgrust maybe-configure-libgrust
@@ -44453,6 +45705,32 @@ maintainer-clean-libgrust:
 
 @endif libgrust
 
+.PHONY: maybe-regenerate-libgrust regenerate-libgrust
+maybe-regenerate-libgrust:
+@if libgrust
+maybe-regenerate-libgrust: regenerate-libgrust
+
+regenerate-libgrust: \
+    configure-libgrust 
+	@: $(MAKE); $(unstage)
+	@[ -f ./libgrust/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	for flag in $(EXTRA_HOST_FLAGS) ; do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	echo "Doing regenerate in libgrust"; \
+	(cd $(HOST_SUBDIR)/libgrust && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	          regenerate) \
+	  || exit 1
+
+@endif libgrust
+
 
 
 # ---------------------------------------
@@ -45728,6 +47006,32 @@ maintainer-clean-target-libstdc++-v3:
 
 @endif target-libstdc++-v3
 
+.PHONY: maybe-regenerate-target-libstdc++-v3 regenerate-target-libstdc++-v3
+maybe-regenerate-target-libstdc++-v3:
+@if target-libstdc++-v3
+maybe-regenerate-target-libstdc++-v3: regenerate-target-libstdc++-v3
+
+regenerate-target-libstdc++-v3: \
+    configure-target-libstdc++-v3 
+	@: $(MAKE); $(unstage)
+	@[ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(RAW_CXX_TARGET_EXPORTS) \
+	echo "Doing regenerate in $(TARGET_SUBDIR)/libstdc++-v3"; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/libstdc++-v3 && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	           regenerate) \
+	  || exit 1
+
+@endif target-libstdc++-v3
+
 
 
 
@@ -46998,6 +48302,32 @@ maintainer-clean-target-libsanitizer:
 
 @endif target-libsanitizer
 
+.PHONY: maybe-regenerate-target-libsanitizer regenerate-target-libsanitizer
+maybe-regenerate-target-libsanitizer:
+@if target-libsanitizer
+maybe-regenerate-target-libsanitizer: regenerate-target-libsanitizer
+
+regenerate-target-libsanitizer: \
+    configure-target-libsanitizer 
+	@: $(MAKE); $(unstage)
+	@[ -f $(TARGET_SUBDIR)/libsanitizer/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(RAW_CXX_TARGET_EXPORTS) \
+	echo "Doing regenerate in $(TARGET_SUBDIR)/libsanitizer"; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/libsanitizer && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	           regenerate) \
+	  || exit 1
+
+@endif target-libsanitizer
+
 
 
 
@@ -48268,6 +49598,32 @@ maintainer-clean-target-libvtv:
 
 @endif target-libvtv
 
+.PHONY: maybe-regenerate-target-libvtv regenerate-target-libvtv
+maybe-regenerate-target-libvtv:
+@if target-libvtv
+maybe-regenerate-target-libvtv: regenerate-target-libvtv
+
+regenerate-target-libvtv: \
+    configure-target-libvtv 
+	@: $(MAKE); $(unstage)
+	@[ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(RAW_CXX_TARGET_EXPORTS) \
+	echo "Doing regenerate in $(TARGET_SUBDIR)/libvtv"; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/libvtv && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	           regenerate) \
+	  || exit 1
+
+@endif target-libvtv
+
 
 
 
@@ -48753,6 +50109,32 @@ maintainer-clean-target-libssp:
 
 @endif target-libssp
 
+.PHONY: maybe-regenerate-target-libssp regenerate-target-libssp
+maybe-regenerate-target-libssp:
+@if target-libssp
+maybe-regenerate-target-libssp: regenerate-target-libssp
+
+regenerate-target-libssp: \
+    configure-target-libssp 
+	@: $(MAKE); $(unstage)
+	@[ -f $(TARGET_SUBDIR)/libssp/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(NORMAL_TARGET_EXPORTS) \
+	echo "Doing regenerate in $(TARGET_SUBDIR)/libssp"; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/libssp && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	           regenerate) \
+	  || exit 1
+
+@endif target-libssp
+
 
 
 
@@ -49238,6 +50620,32 @@ maintainer-clean-target-newlib:
 
 @endif target-newlib
 
+.PHONY: maybe-regenerate-target-newlib regenerate-target-newlib
+maybe-regenerate-target-newlib:
+@if target-newlib
+maybe-regenerate-target-newlib: regenerate-target-newlib
+
+regenerate-target-newlib: \
+    configure-target-newlib 
+	@: $(MAKE); $(unstage)
+	@[ -f $(TARGET_SUBDIR)/newlib/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(NORMAL_TARGET_EXPORTS) \
+	echo "Doing regenerate in $(TARGET_SUBDIR)/newlib"; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/newlib && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	           regenerate) \
+	  || exit 1
+
+@endif target-newlib
+
 
 
 
@@ -50470,6 +51878,32 @@ maintainer-clean-target-libgcc:
 
 @endif target-libgcc
 
+.PHONY: maybe-regenerate-target-libgcc regenerate-target-libgcc
+maybe-regenerate-target-libgcc:
+@if target-libgcc
+maybe-regenerate-target-libgcc: regenerate-target-libgcc
+
+regenerate-target-libgcc: \
+    configure-target-libgcc 
+	@: $(MAKE); $(unstage)
+	@[ -f $(TARGET_SUBDIR)/libgcc/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(NORMAL_TARGET_EXPORTS) \
+	echo "Doing regenerate in $(TARGET_SUBDIR)/libgcc"; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/libgcc && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	           regenerate) \
+	  || exit 1
+
+@endif target-libgcc
+
 
 
 
@@ -51740,6 +53174,32 @@ maintainer-clean-target-libbacktrace:
 
 @endif target-libbacktrace
 
+.PHONY: maybe-regenerate-target-libbacktrace regenerate-target-libbacktrace
+maybe-regenerate-target-libbacktrace:
+@if target-libbacktrace
+maybe-regenerate-target-libbacktrace: regenerate-target-libbacktrace
+
+regenerate-target-libbacktrace: \
+    configure-target-libbacktrace 
+	@: $(MAKE); $(unstage)
+	@[ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(NORMAL_TARGET_EXPORTS) \
+	echo "Doing regenerate in $(TARGET_SUBDIR)/libbacktrace"; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/libbacktrace && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	           regenerate) \
+	  || exit 1
+
+@endif target-libbacktrace
+
 
 
 
@@ -52225,6 +53685,32 @@ maintainer-clean-target-libquadmath:
 
 @endif target-libquadmath
 
+.PHONY: maybe-regenerate-target-libquadmath regenerate-target-libquadmath
+maybe-regenerate-target-libquadmath:
+@if target-libquadmath
+maybe-regenerate-target-libquadmath: regenerate-target-libquadmath
+
+regenerate-target-libquadmath: \
+    configure-target-libquadmath 
+	@: $(MAKE); $(unstage)
+	@[ -f $(TARGET_SUBDIR)/libquadmath/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(NORMAL_TARGET_EXPORTS) \
+	echo "Doing regenerate in $(TARGET_SUBDIR)/libquadmath"; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/libquadmath && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	           regenerate) \
+	  || exit 1
+
+@endif target-libquadmath
+
 
 
 
@@ -52710,6 +54196,32 @@ maintainer-clean-target-libgfortran:
 
 @endif target-libgfortran
 
+.PHONY: maybe-regenerate-target-libgfortran regenerate-target-libgfortran
+maybe-regenerate-target-libgfortran:
+@if target-libgfortran
+maybe-regenerate-target-libgfortran: regenerate-target-libgfortran
+
+regenerate-target-libgfortran: \
+    configure-target-libgfortran 
+	@: $(MAKE); $(unstage)
+	@[ -f $(TARGET_SUBDIR)/libgfortran/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(NORMAL_TARGET_EXPORTS) \
+	echo "Doing regenerate in $(TARGET_SUBDIR)/libgfortran"; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/libgfortran && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	           regenerate) \
+	  || exit 1
+
+@endif target-libgfortran
+
 
 
 
@@ -53162,6 +54674,32 @@ maintainer-clean-target-libobjc:
 
 @endif target-libobjc
 
+.PHONY: maybe-regenerate-target-libobjc regenerate-target-libobjc
+maybe-regenerate-target-libobjc:
+@if target-libobjc
+maybe-regenerate-target-libobjc: regenerate-target-libobjc
+
+regenerate-target-libobjc: \
+    configure-target-libobjc 
+	@: $(MAKE); $(unstage)
+	@[ -f $(TARGET_SUBDIR)/libobjc/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(NORMAL_TARGET_EXPORTS) \
+	echo "Doing regenerate in $(TARGET_SUBDIR)/libobjc"; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/libobjc && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	           regenerate) \
+	  || exit 1
+
+@endif target-libobjc
+
 
 
 
@@ -53647,6 +55185,32 @@ maintainer-clean-target-libgo:
 
 @endif target-libgo
 
+.PHONY: maybe-regenerate-target-libgo regenerate-target-libgo
+maybe-regenerate-target-libgo:
+@if target-libgo
+maybe-regenerate-target-libgo: regenerate-target-libgo
+
+regenerate-target-libgo: \
+    configure-target-libgo 
+	@: $(MAKE); $(unstage)
+	@[ -f $(TARGET_SUBDIR)/libgo/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(NORMAL_TARGET_EXPORTS) \
+	echo "Doing regenerate in $(TARGET_SUBDIR)/libgo"; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/libgo && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	           regenerate) \
+	  || exit 1
+
+@endif target-libgo
+
 
 
 
@@ -54917,6 +56481,32 @@ maintainer-clean-target-libphobos:
 
 @endif target-libphobos
 
+.PHONY: maybe-regenerate-target-libphobos regenerate-target-libphobos
+maybe-regenerate-target-libphobos:
+@if target-libphobos
+maybe-regenerate-target-libphobos: regenerate-target-libphobos
+
+regenerate-target-libphobos: \
+    configure-target-libphobos 
+	@: $(MAKE); $(unstage)
+	@[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(NORMAL_TARGET_EXPORTS) \
+	echo "Doing regenerate in $(TARGET_SUBDIR)/libphobos"; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/libphobos && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	           regenerate) \
+	  || exit 1
+
+@endif target-libphobos
+
 
 
 
@@ -55337,6 +56927,32 @@ maintainer-clean-target-libtermcap:
 
 @endif target-libtermcap
 
+.PHONY: maybe-regenerate-target-libtermcap regenerate-target-libtermcap
+maybe-regenerate-target-libtermcap:
+@if target-libtermcap
+maybe-regenerate-target-libtermcap: regenerate-target-libtermcap
+
+regenerate-target-libtermcap: \
+    configure-target-libtermcap 
+	@: $(MAKE); $(unstage)
+	@[ -f $(TARGET_SUBDIR)/libtermcap/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(NORMAL_TARGET_EXPORTS) \
+	echo "Doing regenerate in $(TARGET_SUBDIR)/libtermcap"; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/libtermcap && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	           regenerate) \
+	  || exit 1
+
+@endif target-libtermcap
+
 
 
 
@@ -55822,6 +57438,32 @@ maintainer-clean-target-winsup:
 
 @endif target-winsup
 
+.PHONY: maybe-regenerate-target-winsup regenerate-target-winsup
+maybe-regenerate-target-winsup:
+@if target-winsup
+maybe-regenerate-target-winsup: regenerate-target-winsup
+
+regenerate-target-winsup: \
+    configure-target-winsup 
+	@: $(MAKE); $(unstage)
+	@[ -f $(TARGET_SUBDIR)/winsup/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(NORMAL_TARGET_EXPORTS) \
+	echo "Doing regenerate in $(TARGET_SUBDIR)/winsup"; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/winsup && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	           regenerate) \
+	  || exit 1
+
+@endif target-winsup
+
 
 
 
@@ -56302,6 +57944,32 @@ maintainer-clean-target-libgloss:
 
 @endif target-libgloss
 
+.PHONY: maybe-regenerate-target-libgloss regenerate-target-libgloss
+maybe-regenerate-target-libgloss:
+@if target-libgloss
+maybe-regenerate-target-libgloss: regenerate-target-libgloss
+
+regenerate-target-libgloss: \
+    configure-target-libgloss 
+	@: $(MAKE); $(unstage)
+	@[ -f $(TARGET_SUBDIR)/libgloss/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(NORMAL_TARGET_EXPORTS) \
+	echo "Doing regenerate in $(TARGET_SUBDIR)/libgloss"; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/libgloss && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	           regenerate) \
+	  || exit 1
+
+@endif target-libgloss
+
 
 
 
@@ -56777,6 +58445,32 @@ maintainer-clean-target-libffi:
 
 @endif target-libffi
 
+.PHONY: maybe-regenerate-target-libffi regenerate-target-libffi
+maybe-regenerate-target-libffi:
+@if target-libffi
+maybe-regenerate-target-libffi: regenerate-target-libffi
+
+regenerate-target-libffi: \
+    configure-target-libffi 
+	@: $(MAKE); $(unstage)
+	@[ -f $(TARGET_SUBDIR)/libffi/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(NORMAL_TARGET_EXPORTS) \
+	echo "Doing regenerate in $(TARGET_SUBDIR)/libffi"; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/libffi && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	           regenerate) \
+	  || exit 1
+
+@endif target-libffi
+
 
 
 
@@ -58047,6 +59741,32 @@ maintainer-clean-target-zlib:
 
 @endif target-zlib
 
+.PHONY: maybe-regenerate-target-zlib regenerate-target-zlib
+maybe-regenerate-target-zlib:
+@if target-zlib
+maybe-regenerate-target-zlib: regenerate-target-zlib
+
+regenerate-target-zlib: \
+    configure-target-zlib 
+	@: $(MAKE); $(unstage)
+	@[ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(NORMAL_TARGET_EXPORTS) \
+	echo "Doing regenerate in $(TARGET_SUBDIR)/zlib"; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/zlib && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	           regenerate) \
+	  || exit 1
+
+@endif target-zlib
+
 
 
 
@@ -58532,6 +60252,32 @@ maintainer-clean-target-rda:
 
 @endif target-rda
 
+.PHONY: maybe-regenerate-target-rda regenerate-target-rda
+maybe-regenerate-target-rda:
+@if target-rda
+maybe-regenerate-target-rda: regenerate-target-rda
+
+regenerate-target-rda: \
+    configure-target-rda 
+	@: $(MAKE); $(unstage)
+	@[ -f $(TARGET_SUBDIR)/rda/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(NORMAL_TARGET_EXPORTS) \
+	echo "Doing regenerate in $(TARGET_SUBDIR)/rda"; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/rda && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	           regenerate) \
+	  || exit 1
+
+@endif target-rda
+
 
 
 
@@ -59017,6 +60763,32 @@ maintainer-clean-target-libada:
 
 @endif target-libada
 
+.PHONY: maybe-regenerate-target-libada regenerate-target-libada
+maybe-regenerate-target-libada:
+@if target-libada
+maybe-regenerate-target-libada: regenerate-target-libada
+
+regenerate-target-libada: \
+    configure-target-libada 
+	@: $(MAKE); $(unstage)
+	@[ -f $(TARGET_SUBDIR)/libada/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(NORMAL_TARGET_EXPORTS) \
+	echo "Doing regenerate in $(TARGET_SUBDIR)/libada"; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/libada && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	           regenerate) \
+	  || exit 1
+
+@endif target-libada
+
 
 
 
@@ -59502,6 +61274,32 @@ maintainer-clean-target-libgm2:
 
 @endif target-libgm2
 
+.PHONY: maybe-regenerate-target-libgm2 regenerate-target-libgm2
+maybe-regenerate-target-libgm2:
+@if target-libgm2
+maybe-regenerate-target-libgm2: regenerate-target-libgm2
+
+regenerate-target-libgm2: \
+    configure-target-libgm2 
+	@: $(MAKE); $(unstage)
+	@[ -f $(TARGET_SUBDIR)/libgm2/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(NORMAL_TARGET_EXPORTS) \
+	echo "Doing regenerate in $(TARGET_SUBDIR)/libgm2"; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/libgm2 && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	           regenerate) \
+	  || exit 1
+
+@endif target-libgm2
+
 
 
 
@@ -60772,6 +62570,32 @@ maintainer-clean-target-libgomp:
 
 @endif target-libgomp
 
+.PHONY: maybe-regenerate-target-libgomp regenerate-target-libgomp
+maybe-regenerate-target-libgomp:
+@if target-libgomp
+maybe-regenerate-target-libgomp: regenerate-target-libgomp
+
+regenerate-target-libgomp: \
+    configure-target-libgomp 
+	@: $(MAKE); $(unstage)
+	@[ -f $(TARGET_SUBDIR)/libgomp/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(NORMAL_TARGET_EXPORTS) \
+	echo "Doing regenerate in $(TARGET_SUBDIR)/libgomp"; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/libgomp && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	           regenerate) \
+	  || exit 1
+
+@endif target-libgomp
+
 
 
 
@@ -61257,6 +63081,32 @@ maintainer-clean-target-libitm:
 
 @endif target-libitm
 
+.PHONY: maybe-regenerate-target-libitm regenerate-target-libitm
+maybe-regenerate-target-libitm:
+@if target-libitm
+maybe-regenerate-target-libitm: regenerate-target-libitm
+
+regenerate-target-libitm: \
+    configure-target-libitm 
+	@: $(MAKE); $(unstage)
+	@[ -f $(TARGET_SUBDIR)/libitm/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(NORMAL_TARGET_EXPORTS) \
+	echo "Doing regenerate in $(TARGET_SUBDIR)/libitm"; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/libitm && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	           regenerate) \
+	  || exit 1
+
+@endif target-libitm
+
 
 
 
@@ -62527,6 +64377,32 @@ maintainer-clean-target-libatomic:
 
 @endif target-libatomic
 
+.PHONY: maybe-regenerate-target-libatomic regenerate-target-libatomic
+maybe-regenerate-target-libatomic:
+@if target-libatomic
+maybe-regenerate-target-libatomic: regenerate-target-libatomic
+
+regenerate-target-libatomic: \
+    configure-target-libatomic 
+	@: $(MAKE); $(unstage)
+	@[ -f $(TARGET_SUBDIR)/libatomic/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(NORMAL_TARGET_EXPORTS) \
+	echo "Doing regenerate in $(TARGET_SUBDIR)/libatomic"; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/libatomic && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	           regenerate) \
+	  || exit 1
+
+@endif target-libatomic
+
 
 
 
@@ -63012,6 +64888,32 @@ maintainer-clean-target-libgrust:
 
 @endif target-libgrust
 
+.PHONY: maybe-regenerate-target-libgrust regenerate-target-libgrust
+maybe-regenerate-target-libgrust:
+@if target-libgrust
+maybe-regenerate-target-libgrust: regenerate-target-libgrust
+
+regenerate-target-libgrust: \
+    configure-target-libgrust 
+	@: $(MAKE); $(unstage)
+	@[ -f $(TARGET_SUBDIR)/libgrust/Makefile ] || exit 0; \
+	r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(NORMAL_TARGET_EXPORTS) \
+	echo "Doing regenerate in $(TARGET_SUBDIR)/libgrust"; \
+	for flag in $(EXTRA_TARGET_FLAGS); do \
+	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+	done; \
+	(cd $(TARGET_SUBDIR)/libgrust && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+	          "RANLIB=$${RANLIB}" \
+	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+	           regenerate) \
+	  || exit 1
+
+@endif target-libgrust
+
 
 
 @if target-libgomp
diff --git a/Makefile.tpl b/Makefile.tpl
index adbcbdd1d57..2241bf231d8 100644
--- a/Makefile.tpl
+++ b/Makefile.tpl
@@ -1055,6 +1055,13 @@ clang-format: $(srcdir)/.clang-format
 
 .PHONY: clang-format
 
+.PHONY: regenerate
+regenerate:
+	@: $(MAKE); $(unstage)
+	@r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(MAKE) $(RECURSE_FLAGS_TO_PASS) regenerate-host regenerate-target
+
 # Installation targets.
 
 .PHONY: install uninstall
diff --git a/bfd/Makefile.am b/bfd/Makefile.am
index 4f67b59585d..cbd37b8043f 100644
--- a/bfd/Makefile.am
+++ b/bfd/Makefile.am
@@ -748,6 +748,7 @@ $(BFD32_LIBS) \
 SRC_POTFILES = $(SOURCE_CFILES) $(SOURCE_HFILES)
 BLD_POTFILES = $(BUILD_CFILES) $(BUILD_HFILES)
 
+regenerate: po/SRC-POTFILES.in po/BLD-POTFILES.in $(srcdir)/bfd-in2.h $(srcdir)/libbfd.h $(srcdir)/libcoff.h
 po/SRC-POTFILES.in: @MAINT@ Makefile
 	for file in $(SRC_POTFILES); do echo $$file; done \
 	  | LC_ALL=C sort | uniq > tmp.src \
diff --git a/bfd/Makefile.in b/bfd/Makefile.in
index faaa0c424b8..9db3a283420 100644
--- a/bfd/Makefile.in
+++ b/bfd/Makefile.in
@@ -2295,6 +2295,7 @@ $(BFD32_LIBS) \
  $(BFD64_BACKENDS) \
  $(OPTIONAL_BACKENDS): $(BFD_H) $(BFD_H_DEPS) $(LOCAL_H_DEPS)
 
+regenerate: po/SRC-POTFILES.in po/BLD-POTFILES.in $(srcdir)/bfd-in2.h $(srcdir)/libbfd.h $(srcdir)/libcoff.h
 po/SRC-POTFILES.in: @MAINT@ Makefile
 	for file in $(SRC_POTFILES); do echo $$file; done \
 	  | LC_ALL=C sort | uniq > tmp.src \
diff --git a/binutils/Makefile.am b/binutils/Makefile.am
index ad571b60546..c4879903795 100644
--- a/binutils/Makefile.am
+++ b/binutils/Makefile.am
@@ -181,6 +181,7 @@ LIBSFRAME = ../libsframe/libsframe.la
 LIBIBERTY = ../libiberty/libiberty.a
 
 POTFILES = $(CFILES) $(DEBUG_SRCS) $(HFILES)
+regenerate: po/POTFILES.in
 po/POTFILES.in: @MAINT@ Makefile
 	for f in $(POTFILES); do echo $$f; done | LC_ALL=C sort > tmp \
 	  && mv tmp $(srcdir)/po/POTFILES.in
diff --git a/binutils/Makefile.in b/binutils/Makefile.in
index 842a6d99b54..767bca98ccb 100644
--- a/binutils/Makefile.in
+++ b/binutils/Makefile.in
@@ -1827,6 +1827,7 @@ uninstall-man: uninstall-man1
 
 .PRECIOUS: Makefile
 
+regenerate: po/POTFILES.in
 po/POTFILES.in: @MAINT@ Makefile
 	for f in $(POTFILES); do echo $$f; done | LC_ALL=C sort > tmp \
 	  && mv tmp $(srcdir)/po/POTFILES.in
diff --git a/gas/Makefile.am b/gas/Makefile.am
index 37ca0952f7e..3961b3a9e61 100644
--- a/gas/Makefile.am
+++ b/gas/Makefile.am
@@ -376,6 +376,7 @@ POTFILES = $(MULTI_CFILES) $(CONFIG_ATOF_CFILES) \
 	$(TARG_ENV_HFILES) $(TARG_ENV_CFILES) $(OBJ_FORMAT_HFILES) \
 	$(OBJ_FORMAT_CFILES) $(TARGET_CPU_HFILES) $(TARGET_CPU_CFILES) \
 	$(TARGET_EXTRA_FILES) $(HFILES) $(CFILES)
+regenerate: po/POTFILES.in $(srcdir)/../opcodes/i386-init.h $(srcdir)/../opcodes/i386-tbl.h $(srcdir)/../opcodes/i386-mnem.h
 po/POTFILES.in: @MAINT@ Makefile
 	for f in $(POTFILES); do echo $$f; done | LC_ALL=C sort > tmp \
 	  && mv tmp $(srcdir)/po/POTFILES.in
diff --git a/gas/Makefile.in b/gas/Makefile.in
index bc25765cb5b..bfc863f9b7c 100644
--- a/gas/Makefile.in
+++ b/gas/Makefile.in
@@ -2070,6 +2070,7 @@ uninstall-man: uninstall-man1
 
 .PRECIOUS: Makefile
 
+regenerate: po/POTFILES.in $(srcdir)/../opcodes/i386-init.h $(srcdir)/../opcodes/i386-tbl.h $(srcdir)/../opcodes/i386-mnem.h
 po/POTFILES.in: @MAINT@ Makefile
 	for f in $(POTFILES); do echo $$f; done | LC_ALL=C sort > tmp \
 	  && mv tmp $(srcdir)/po/POTFILES.in
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index 0e0f19c40c9..40732cb2227 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -2384,6 +2384,7 @@ doc/gdb.dvi:
 doc/gdb.info:
 	cd doc; $(MAKE) gdb.info $(FLAGS_TO_PASS)
 
+regenerate: $(srcdir)/copying.c
 # Make copying.c from COPYING
 $(srcdir)/copying.c: @MAINTAINER_MODE_TRUE@ $(srcdir)/../COPYING3 $(srcdir)/copying.awk
 	awk -f $(srcdir)/copying.awk \
diff --git a/gold/Makefile.am b/gold/Makefile.am
index ddd6a007438..9b655d4ba2b 100644
--- a/gold/Makefile.am
+++ b/gold/Makefile.am
@@ -244,7 +244,7 @@ install-exec-local: ld-new$(EXEEXT)
 	fi
 
 POTFILES= $(CCFILES) $(HFILES) $(TARGETSOURCES)
-
+regenerate: po/POTFILES.in
 po/POTFILES.in: @MAINT@ Makefile
 	for f in $(POTFILES); do echo $$f; done | LC_ALL=C sort > tmp \
 	  && mv tmp $(srcdir)/po/POTFILES.in
diff --git a/gold/Makefile.in b/gold/Makefile.in
index 1e6b9c77fc1..e0ba9fa4748 100644
--- a/gold/Makefile.in
+++ b/gold/Makefile.in
@@ -1627,7 +1627,7 @@ install-exec-local: ld-new$(EXEEXT)
 	    || $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) ld-new$(EXEEXT) $(DESTDIR)$(tooldir)/bin/ld$(EXEEXT); \
 	  fi; \
 	fi
-
+regenerate: po/POTFILES.in
 po/POTFILES.in: @MAINT@ Makefile
 	for f in $(POTFILES); do echo $$f; done | LC_ALL=C sort > tmp \
 	  && mv tmp $(srcdir)/po/POTFILES.in
diff --git a/gprof/Makefile.am b/gprof/Makefile.am
index 0b2b59915a9..ec859826e40 100644
--- a/gprof/Makefile.am
+++ b/gprof/Makefile.am
@@ -70,6 +70,7 @@ CONFIG_STATUS_DEPENDENCIES = $(BFDDIR)/development.sh
 	    FILE=$*.m $<
 
 POTFILES = $(sources) $(noinst_HEADERS)
+regenerate: po/POTFILES.in
 po/POTFILES.in: @MAINT@ Makefile
 	for f in $(POTFILES); do echo $$f; done | LC_ALL=C sort > tmp \
 	  && mv tmp $(srcdir)/po/POTFILES.in
diff --git a/gprof/Makefile.in b/gprof/Makefile.in
index a7398231030..979b2a0419b 100644
--- a/gprof/Makefile.in
+++ b/gprof/Makefile.in
@@ -1190,6 +1190,7 @@ diststuff: $(BUILT_SOURCES) info $(man_MANS)
 	$(AM_V_GEN)awk -f $(srcdir)/gen-c-prog.awk > $@ \
 	    FUNCTION=`(echo $*|sed -e 's,.*/,,g' -e 's/_bl//')`_blurb \
 	    FILE=$*.m $<
+regenerate: po/POTFILES.in
 po/POTFILES.in: @MAINT@ Makefile
 	for f in $(POTFILES); do echo $$f; done | LC_ALL=C sort > tmp \
 	  && mv tmp $(srcdir)/po/POTFILES.in
diff --git a/ld/Makefile.am b/ld/Makefile.am
index f9ee05b1400..421b703b8b0 100644
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -550,6 +550,7 @@ endif
 SRC_POTFILES = $(CFILES) $(HFILES)
 BLD_POTFILES = $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES)
 
+regenerate: po/SRC-POTFILES.in po/BLD-POTFILES.in
 po/SRC-POTFILES.in: @MAINT@ Makefile
 	for f in $(SRC_POTFILES); do echo $$f; done | LC_ALL=C sort > $@-tmp \
 	  && mv $@-tmp $(srcdir)/po/SRC-POTFILES.in
diff --git a/ld/Makefile.in b/ld/Makefile.in
index abb0565718f..4bf60799249 100644
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -2307,6 +2307,7 @@ deffilep.@OBJEXT@: deffilep.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC)$(COMPILE) -c `test -f deffilep.c || echo $(srcdir)/`deffilep.c $(NO_WERROR)
 
+regenerate: po/SRC-POTFILES.in po/BLD-POTFILES.in
 po/SRC-POTFILES.in: @MAINT@ Makefile
 	for f in $(SRC_POTFILES); do echo $$f; done | LC_ALL=C sort > $@-tmp \
 	  && mv $@-tmp $(srcdir)/po/SRC-POTFILES.in
diff --git a/opcodes/Makefile.am b/opcodes/Makefile.am
index a173c8e6f36..162cc531153 100644
--- a/opcodes/Makefile.am
+++ b/opcodes/Makefile.am
@@ -324,6 +324,8 @@ stamp-lib: libopcodes.la
 libopcodes.a: stamp-lib ; @true
 
 POTFILES = $(HFILES) $(LIBOPCODES_CFILES)
+regenerate: po/POTFILES.in $(srcdir)/aarch64-asm-2.c $(srcdir)/aarch64-dis-2.c $(srcdir)/aarch64-opc-2.c $(srcdir)/i386-tbl.h $(srcdir)/i386-init.h $(srcdir)/i386-mnem.h $(srcdir)/ia64-asmtab.c $(srcdir)/msp430-decode.c $(srcdir)/rl78-decode.c $(srcdir)/rx-decode.c $(srcdir)/z8k-opc.h
+
 po/POTFILES.in: @MAINT@ Makefile
 	for f in $(POTFILES); do echo $$f; done | LC_ALL=C sort > tmp \
 	  && mv tmp $(srcdir)/po/POTFILES.in
diff --git a/opcodes/Makefile.in b/opcodes/Makefile.in
index 57aaed26da8..b768dafeab6 100644
--- a/opcodes/Makefile.in
+++ b/opcodes/Makefile.in
@@ -1370,6 +1370,8 @@ stamp-lib: libopcodes.la
 	touch stamp-lib
 
 libopcodes.a: stamp-lib ; @true
+regenerate: po/POTFILES.in $(srcdir)/aarch64-asm-2.c $(srcdir)/aarch64-dis-2.c $(srcdir)/aarch64-opc-2.c $(srcdir)/i386-tbl.h $(srcdir)/i386-init.h $(srcdir)/i386-mnem.h $(srcdir)/ia64-asmtab.c $(srcdir)/msp430-decode.c $(srcdir)/rl78-decode.c $(srcdir)/rx-decode.c $(srcdir)/z8k-opc.h
+
 po/POTFILES.in: @MAINT@ Makefile
 	for f in $(POTFILES); do echo $$f; done | LC_ALL=C sort > tmp \
 	  && mv tmp $(srcdir)/po/POTFILES.in
-- 
2.34.1


             reply	other threads:[~2024-03-13  8:03 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-13  8:02 Christophe Lyon [this message]
2024-03-14 18:10 ` Simon Marchi
2024-03-15  8:50   ` Christophe Lyon
2024-03-15 14:13     ` Eric Gallager
2024-03-15 14:25       ` Tom Tromey
2024-03-16 17:30         ` Simon Marchi
2024-03-18 17:28         ` Christophe Lyon
2024-03-20 15:11           ` Simon Marchi
2024-03-18 16:13       ` Christophe Lyon
2024-03-16 17:16     ` Simon Marchi
2024-03-18 17:25       ` Christophe Lyon
2024-03-19 17:11         ` Christophe Lyon
2024-03-19 18:03           ` Tom Tromey
2024-03-20 12:05             ` Eric Gallager
2024-03-20 15:34         ` Simon Marchi
2024-03-21 14:32           ` Christophe Lyon
2024-03-25 14:19             ` Christophe Lyon
2024-03-27 18:22               ` Christophe Lyon
2024-04-08  9:22               ` Christophe Lyon
     [not found]     ` <78f1d113-f8ac-4a76-8dea-9f92519c1a89@linux.ibm.com>
2024-03-27 18:14       ` Christophe Lyon
2024-03-28  8:55         ` Jens Remus

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240313080237.1143034-1-christophe.lyon@linaro.org \
    --to=christophe.lyon@linaro.org \
    --cc=binutils@sourceware.org \
    --cc=gcc@gcc.gnu.org \
    --cc=gdb@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).