gnulib: enable a --build setup for sim [PR sim/30882]

The sim tree has some build-time programs for generating source files
that are a bit complicated and expect a POSIX-compatible system.  Use
the existing gnulib project to provide missing APIs.
diff --git a/Makefile.def b/Makefile.def
index 662e50f..719163f 100644
--- a/Makefile.def
+++ b/Makefile.def
@@ -27,6 +27,7 @@
 build_modules= { module= libiberty; };
 build_modules= { module= bison; };
 build_modules= { module= flex; };
+build_modules= { module= gnulib; };
 build_modules= { module= m4; };
 build_modules= { module= texinfo; };
 build_modules= { module= fixincludes; };
@@ -600,6 +601,7 @@
 dependencies = { module=install-sid; on=install-tk; };
 dependencies = { module=install-strip-sid; on=install-strip-tk; };
 
+dependencies = { module=configure-sim; on=all-build-gnulib; };
 dependencies = { module=configure-sim; on=all-gnulib; };
 dependencies = { module=configure-sim; on=configure-gettext; };
 dependencies = { module=all-sim; on=all-gettext; };
diff --git a/Makefile.in b/Makefile.in
index 48320bb..7d3c73d 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1199,6 +1199,7 @@
 all-build: maybe-all-build-libiberty
 all-build: maybe-all-build-bison
 all-build: maybe-all-build-flex
+all-build: maybe-all-build-gnulib
 all-build: maybe-all-build-m4
 all-build: maybe-all-build-texinfo
 all-build: maybe-all-build-fixincludes
@@ -3300,6 +3301,63 @@
 
 
 
+.PHONY: configure-build-gnulib maybe-configure-build-gnulib
+maybe-configure-build-gnulib:
+@if gcc-bootstrap
+configure-build-gnulib: stage_current
+@endif gcc-bootstrap
+@if build-gnulib
+maybe-configure-build-gnulib: configure-build-gnulib
+configure-build-gnulib: 
+	@: $(MAKE); $(unstage)
+	@r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	test ! -f $(BUILD_SUBDIR)/gnulib/Makefile || exit 0; \
+	$(SHELL) $(srcdir)/mkinstalldirs $(BUILD_SUBDIR)/gnulib; \
+	$(BUILD_EXPORTS)  \
+	echo Configuring in $(BUILD_SUBDIR)/gnulib; \
+	cd "$(BUILD_SUBDIR)/gnulib" || exit 1; \
+	case $(srcdir) in \
+	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
+	  *) topdir=`echo $(BUILD_SUBDIR)/gnulib/ | \
+		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
+	esac; \
+	module_srcdir=gnulib; \
+	rm -f no-such-file || : ; \
+	CONFIG_SITE=no-such-file $(SHELL) \
+	  $$s/$$module_srcdir/configure \
+	  --srcdir=$${topdir}/$$module_srcdir \
+	  $(BUILD_CONFIGARGS) --build=${build_alias} --host=${build_alias} \
+	  --target=${target_alias}  \
+	  || exit 1
+@endif build-gnulib
+
+
+
+
+
+.PHONY: all-build-gnulib maybe-all-build-gnulib
+maybe-all-build-gnulib:
+@if gcc-bootstrap
+all-build-gnulib: stage_current
+@endif gcc-bootstrap
+@if build-gnulib
+TARGET-build-gnulib=all
+maybe-all-build-gnulib: all-build-gnulib
+all-build-gnulib: configure-build-gnulib
+	@: $(MAKE); $(unstage)
+	@r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(BUILD_EXPORTS)  \
+	(cd $(BUILD_SUBDIR)/gnulib && \
+	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_BUILD_FLAGS)   \
+		$(TARGET-build-gnulib))
+@endif build-gnulib
+
+
+
+
+
 .PHONY: configure-build-m4 maybe-configure-build-m4
 maybe-configure-build-m4:
 @if gcc-bootstrap
@@ -66659,6 +66717,7 @@
 install-strip-sid: maybe-install-strip-tcl
 install-sid: maybe-install-tk
 install-strip-sid: maybe-install-strip-tk
+configure-sim: maybe-all-build-gnulib
 configure-sim: maybe-all-gnulib
 configure-sim: maybe-all-readline
 all-fastjar: maybe-all-build-texinfo
diff --git a/configure b/configure
index be73a3d..5dcfd0b 100755
--- a/configure
+++ b/configure
@@ -9957,6 +9957,11 @@
     configdirs="${configdirs} gnulib"
     ;;
 esac
+case " ${configdirs} " in
+  *\ sim\ *)
+    build_configdirs="${build_configdirs} gnulib"
+    ;;
+esac
 
 # Strip out unwanted targets.
 
diff --git a/configure.ac b/configure.ac
index 76d36e7..ee04158 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3076,6 +3076,11 @@
     configdirs="${configdirs} gnulib"
     ;;
 esac
+case " ${configdirs} " in
+  *\ sim\ *)
+    build_configdirs="${build_configdirs} gnulib"
+    ;;
+esac
 
 # Strip out unwanted targets.