From 90c2f1deb1fafada09dbac7858cdcc36029f577c Mon Sep 17 00:00:00 2001
From: Kelley Cook <kcook@gcc.gnu.org>
Date: Thu, 18 Dec 2003 22:40:38 +0000
Subject: [PATCH] gcc_update (files_generated): Add in gcc/ada/stamp-xgnatug
 and update gcc/ada/gnat_ug_* to use it.

contrib/
2003-12-18  Kelley Cook  <kcook@gcc.gnu.org>

	* gcc_update (files_generated): Add in gcc/ada/stamp-xgnatug and update
	gcc/ada/gnat_ug_* to use it.

gcc/ada/
2003-12-18  Kelley Cook  <kcook@gcc.gnu.org>

	* stamp-xgnatug: New stamp file.
	* Make-lang.in (stamp-xgnatug):  New stamp file and comment.
	(ada/doctools/xgnatug): Add $(build_exeext).
	(ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
	ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.

From-SVN: r74808
---
 contrib/ChangeLog     |  5 ++++
 contrib/gcc_update    |  9 ++++----
 gcc/ada/ChangeLog     |  8 +++++++
 gcc/ada/Make-lang.in  | 54 +++++++++++++++++++++++++++++--------------
 gcc/ada/stamp-xgnatug |  1 +
 5 files changed, 56 insertions(+), 21 deletions(-)
 create mode 100644 gcc/ada/stamp-xgnatug

diff --git a/contrib/ChangeLog b/contrib/ChangeLog
index 72aab8dbc8c2..6842bc189b89 100644
--- a/contrib/ChangeLog
+++ b/contrib/ChangeLog
@@ -1,3 +1,8 @@
+2003-12-18  Kelley Cook  <kcook@gcc.gnu.org>
+
+	* gcc_update (files_generated): Add in gcc/ada/stamp-xgnatug and update
+	gcc/ada/gnat_ug_* to use it.
+
 2003-12-16  James E Wilson  <wilson@specifixinc.com>
 
 	* gcc_update (files_and_dependencies): For libjava/libltdl directory,
diff --git a/contrib/gcc_update b/contrib/gcc_update
index 2428336ca5e4..312ebb3e32f8 100755
--- a/contrib/gcc_update
+++ b/contrib/gcc_update
@@ -79,10 +79,11 @@ gcc/fixinc/fixincl.x: gcc/fixinc/fixincl.tpl gcc/fixinc/inclhack.def
 gcc/f/intdoc.texi: gcc/f/intdoc.in gcc/f/intdoc.c gcc/f/intrin.h gcc/f/intrin.def
 gcc/cp/cfns.h: gcc/cp/cfns.gperf
 gcc/java/keyword.h: gcc/java/keyword.gperf
-gcc/ada/gnat_ug_unx.texi: gcc/ada/gnat_ug.texi gcc/ada/xgnatug.adb gcc/ada/ug_words
-gcc/ada/gnat_ug_vms.texi: gcc/ada/gnat_ug.texi gcc/ada/xgnatug.adb gcc/ada/ug_words
-gcc/ada/gnat_ug_vxw.texi: gcc/ada/gnat_ug.texi gcc/ada/xgnatug.adb gcc/ada/ug_words
-gcc/ada/gnat_ug_wnt.texi: gcc/ada/gnat_ug.texi gcc/ada/xgnatug.adb gcc/ada/ug_words
+gcc/ada/stamp-xgnatug: gcc/ada/gnat_ug.texi gcc/ada/xgnatug.adb gcc/ada/ug_words
+gcc/ada/gnat_ug_unx.texi: gcc/ada/stamp-xgnatug
+gcc/ada/gnat_ug_vms.texi: gcc/ada/stamp-xgnatug
+gcc/ada/gnat_ug_vxw.texi: gcc/ada/stamp-xgnatug
+gcc/ada/gnat_ug_wnt.texi: gcc/ada/stamp-xgnatug
 # testsuite
 # Without this, _Pragma3.c can have a false negative.
 gcc/testsuite/gcc.dg/cpp/_Pragma3.c: gcc/testsuite/gcc.dg/cpp/mi1c.h
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 365f4ca1d7fe..3f7f504fcf6c 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,11 @@
+2003-12-18  Kelley Cook  <kcook@gcc.gnu.org>
+
+	* stamp-xgnatug: New stamp file.
+	* Make-lang.in (stamp-xgnatug):  New stamp file and comment.
+	(ada/doctools/xgnatug): Add $(build_exeext).
+	(ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
+	ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
+
 2003-12-17  Ed Falis  <falis@gnat.com>
 
 	* a-elchha.adb (Tailored_Exception_Information): made Info constant to
diff --git a/gcc/ada/Make-lang.in b/gcc/ada/Make-lang.in
index cf50fb1d8f7e..45e16f94335a 100644
--- a/gcc/ada/Make-lang.in
+++ b/gcc/ada/Make-lang.in
@@ -442,28 +442,48 @@ ada.generated-manpages:
 # Generate documentation.
 #
 # The generated Texinfo files for the User Guide are stored in
-# $(srcdir), like the Info files.
+# $(srcdir).  However, if the documentation files depended on
+# executables in the build tree, there'd be no way to ship a source
+# tree with the documentation already generated such that `make'
+# wouldn't attempt to rebuild it.  So, we punt and arrange for the
+# documentation files to depend on a stamp file which has the
+# combined dependencies of the texi files and the generatator file.
+# This stamp file calls a submake to build the executable.
+# 
+# If gnu make 3.80 is ever made a requirement to build, then
+# this dance could be avoided using an order-only dependency:
+#
+# $(srcdir)/ada/gnat_ug_unx.texi: \
+#     ada/gnat_ug.texi ada/ug_words | ada/doctools/xgnatug$(build_exeext)
+
+$(srcdir)/ada/stamp-xgnatug: ada/xgnatug.adb ada/gnat_ug.texi ada/ug_words
+	$(MAKE) ada/doctools/xgnatug$(build_exeext) 
+	$(STAMP) $(srcdir)/ada/stamp-xgnatug
 
-ada/doctools/xgnatug : ada/xgnatug.adb
+ada/doctools/xgnatug$(build_exeext): ada/xgnatug.adb
 	-$(MKDIR) ada/doctools
 	cp $^ ada/doctools
 	cd ada/doctools && gnatmake -q xgnatug
 
-$(srcdir)/ada/gnat_ug_unx.texi : ada/doctools/xgnatug \
-	$(srcdir)/ada/gnat_ug.texi $(srcdir)/ada/ug_words
-	ada/doctools/xgnatug unx $(srcdir)/ada/gnat_ug.texi $(srcdir)/ada/ug_words $(srcdir)/ada/gnat_ug_unx.texi
-
-$(srcdir)/ada/gnat_ug_vms.texi : ada/doctools/xgnatug \
-	$(srcdir)/ada/gnat_ug.texi $(srcdir)/ada/ug_words
-	ada/doctools/xgnatug vms $(srcdir)/ada/gnat_ug.texi $(srcdir)/ada/ug_words $(srcdir)/ada/gnat_ug_vms.texi
-
-$(srcdir)/ada/gnat_ug_vxw.texi : ada/doctools/xgnatug \
-	$(srcdir)/ada/gnat_ug.texi $(srcdir)/ada/ug_words
-	ada/doctools/xgnatug vxworks $(srcdir)/ada/gnat_ug.texi $(srcdir)/ada/ug_words $(srcdir)/ada/gnat_ug_vxw.texi
-
-$(srcdir)/ada/gnat_ug_wnt.texi : ada/doctools/xgnatug \
-	$(srcdir)/ada/gnat_ug.texi $(srcdir)/ada/ug_words
-	ada/doctools/xgnatug wnt $(srcdir)/ada/gnat_ug.texi $(srcdir)/ada/ug_words $(srcdir)/ada/gnat_ug_wnt.texi
+$(srcdir)/ada/gnat_ug_unx.texi: $(srcdir)/ada/stamp-xgnatug
+	ada/doctools/xgnatug unx $(srcdir)/ada/gnat_ug.texi \
+	  $(srcdir)/ada/ug_words \
+	  $(srcdir)/ada/gnat_ug_unx.texi
+
+$(srcdir)/ada/gnat_ug_vms.texi: $(srcdir)/ada/stamp-xgnatug
+	ada/doctools/xgnatug vms $(srcdir)/ada/gnat_ug.texi \
+ 	  $(srcdir)/ada/ug_words \
+	  $(srcdir)/ada/gnat_ug_vms.texi
+
+$(srcdir)/ada/gnat_ug_vxw.texi: $(srcdir)/ada/stamp-xgnatug
+	ada/doctools/xgnatug vxworks $(srcdir)/ada/gnat_ug.texi \
+ 	  $(srcdir)/ada/ug_words \
+	  $(srcdir)/ada/gnat_ug_vxw.texi
+
+$(srcdir)/ada/gnat_ug_wnt.texi: $(srcdir)/ada/stamp-xgnatug
+	ada/doctools/xgnatug wnt $(srcdir)/ada/gnat_ug.texi \
+	  $(srcdir)/ada/ug_words \
+	  $(srcdir)/ada/gnat_ug_wnt.texi
 
 $(docobjdir)/gnat_ug_unx.info : $(srcdir)/ada/gnat_ug_unx.texi \
 	$(srcdir)/doc/include/fdl.texi $(srcdir)/doc/include/gcc-common.texi \
diff --git a/gcc/ada/stamp-xgnatug b/gcc/ada/stamp-xgnatug
new file mode 100644
index 000000000000..9788f70238c9
--- /dev/null
+++ b/gcc/ada/stamp-xgnatug
@@ -0,0 +1 @@
+timestamp
-- 
GitLab