aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorCraig Burley <craig@jcb-sc.com>1999-02-22 08:49:36 +0000
committerCraig Burley <burley@gcc.gnu.org>1999-02-22 03:49:36 -0500
commit43297964f38d3096816b824a1d5557714471b2ce (patch)
treeba621587c9761eda2f90d62ec9556008acf4c724 /gcc
parenta2cf7debc7c05419c10d07324e93b157b4717283 (diff)
downloadgcc-43297964f38d3096816b824a1d5557714471b2ce.zip
gcc-43297964f38d3096816b824a1d5557714471b2ce.tar.gz
gcc-43297964f38d3096816b824a1d5557714471b2ce.tar.bz2
improve wall of separation between build and install
From-SVN: r25367
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/Makefile.in4
-rw-r--r--gcc/ch/ChangeLog12
-rw-r--r--gcc/ch/Make-lang.in15
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/Make-lang.in5
-rw-r--r--gcc/f/ChangeLog8
-rw-r--r--gcc/f/Make-lang.in32
8 files changed, 65 insertions, 22 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1ee7875..edde687 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,4 +1,9 @@
Mon Feb 22 11:40:44 1999 Craig Burley <craig@jcb-sc.com>
+Sat Feb 20 09:59:36 1999 Craig Burley <craig@jcb-sc.com>
+
+ * Makefile.in (all.internal, all.cross): Depend on `doc'
+ target, to ensure docs get made before installation.
+
Decrease spurious warnings from -fsyntax-only:
* stmt.c (expand_expr_stmt): Expand expr even when -fsyntax-only.
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index f42fcad..93d03cd 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -824,12 +824,12 @@ config.status: configure version.c
LANGUAGES="$(CONFIG_LANGUAGES)" $(SHELL) config.status --recheck; \
fi
-all.internal: start.encap rest.encap
+all.internal: start.encap rest.encap doc
# This is what to compile if making a cross-compiler.
# Note that we can compile enquire using the cross-compiler just built,
# although we can't run it on this machine.
all.cross: native gcc-cross specs stmp-headers $(STMP_FIXPROTO) $(LIBGCC) \
- $(LIBGCC1_TEST) $(EXTRA_PARTS) lang.all.cross
+ $(LIBGCC1_TEST) $(EXTRA_PARTS) lang.all.cross doc
# This is what to compile if making gcc with a cross-compiler.
all.build: native xgcc$(exeext) $(EXTRA_PARTS) lang.all.build
# This is what must be made before installing GCC and converting libraries.
diff --git a/gcc/ch/ChangeLog b/gcc/ch/ChangeLog
index a76fe91..2c3f938 100644
--- a/gcc/ch/ChangeLog
+++ b/gcc/ch/ChangeLog
@@ -1,4 +1,16 @@
Sun Jan 31 20:34:29 1999 Zack Weinberg <zack@rabi.columbia.edu>
+1999-02-20 Craig Burley <craig@jcb-sc.com>
+
+ * Make-lang.in (CHILL.info): Depend on intermediate ch/chill.info
+ target instead of the chill.texi file.
+ (ch/chill.info): New target, depends on the chill.texi source file.
+ Its command writes ch/chill.info instead of chill.info.
+ (CHILL.install-info): Install from ch/chill.info instead of
+ chill.info.
+ If any ch/chill.info* files exist, delete *all* chill.info* files
+ in $infodir first, not just the ones corresponding to the
+ files to be installed (just in case the docs get smaller).
+
* decl2.c: Don't define flag_no_ident here. Don't process
-f(no-)ident here.
diff --git a/gcc/ch/Make-lang.in b/gcc/ch/Make-lang.in
index 27859f1..e0e9462 100644
--- a/gcc/ch/Make-lang.in
+++ b/gcc/ch/Make-lang.in
@@ -107,8 +107,10 @@ CHILL.all.cross: chill-cross
CHILL.start.encap: chill
CHILL.rest.encap:
-CHILL.info: $(srcdir)/ch/chill.texi
- $(MAKEINFO) -I$(srcdir)/ch $(srcdir)/ch/chill.texi -o chill.info
+CHILL.info: ch/chill.info
+
+ch/chill.info: $(srcdir)/ch/chill.texi
+ $(MAKEINFO) -I$(srcdir)/ch $(srcdir)/ch/chill.texi -o ch/chill.info
chill.dvi: $(srcdir)/ch/chill.texi $(srcdir)/extend.texi $(srcdir)/invoke.texi $(srcdir)/md.texi $(srcdir)/rtl.texi $(srcdir)/tm.texi
cd ch ; \
@@ -139,10 +141,13 @@ CHILL.install-common:
fi ; \
fi
+# Don't delete $(infodir)/ch.info* unless there's actually new
+# docs to install (in case LANGUAGES didn't contain chill earlier).
CHILL.install-info:
- -for i in chill.info*; do \
- rm -f $(infodir)/$$i; \
- $(INSTALL_DATA) $$i $(infodir)/$$i; \
+ -for i in ch/chill.info*; do \
+ rm -f $(infodir)/chill.info*; \
+ realfile=`echo $$i | sed -e 's|.*/\([^/]*\)$$|\1|'`; \
+ $(INSTALL_DATA) $$i $(infodir)/$$realfile; \
done
CHILL.install-man:
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index c77d184..a4d9d60 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,4 +1,10 @@
Sun Feb 21 20:38:00 1999 H.J. Lu (hjl@gnu.org)
+1999-02-20 Craig Burley <craig@jcb-sc.com>
+
+ * Make-lang.in (cplib2.ready): Don't consider updating
+ cplib2 stuff if the current directory isn't writable, as
+ it won't work (such as during a `make install').
+
* decl2.c (start_objects): Make file scope constructors and
destructors local to the file if ASM_OUTPUT_CONSTRUCTOR and
diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in
index 8b5b5fc..8be82bf 100644
--- a/gcc/cp/Make-lang.in
+++ b/gcc/cp/Make-lang.in
@@ -189,8 +189,11 @@ cplib2.txt: $(CXX_LIB2SRCS) $(CXX_EXTRA_HEADERS) cplib2.ready
mv -f cplib2.new cplib2.txt
# Or if it would be different.
+# Don't try to do write if `.' is not writable;
+# in that case, we're installing from someone else's directory.
+# But go ahead and fail if that directory hasn't been properly built.
cplib2.ready: $(GCC_PASSES) $(LANGUAGES) $(LIBGCC2_DEPS) stmp-int-hdrs
- @if [ -r cplib2.txt ]; then \
+ @if [ -r cplib2.txt -a -w . ]; then \
case " $(LANGUAGES) " in \
*" "[cC]"++ "*) \
echo $(CXX_LIB2FUNCS) > cplib2.new;; \
diff --git a/gcc/f/ChangeLog b/gcc/f/ChangeLog
index 64b864f..45695f2 100644
--- a/gcc/f/ChangeLog
+++ b/gcc/f/ChangeLog
@@ -1,4 +1,12 @@
1999-02-20 Craig Burley <craig@jcb-sc.com>
+1999-02-20 Craig Burley <craig@jcb-sc.com>
+
+ * Make-lang.in (f77.install-common, f77.install-info,
+ f77.install-man, f77.uninstall): Use `$(prefix)/lang-f77'
+ instead of `lang-f77' for flag file, to be sure of a
+ writable directory, and remove the flag file after each
+ operation to keep things clean.
+
* g77.texi: Properly attribute Priest document; clarify
that it is in the .ps version of the Goldberg document.
diff --git a/gcc/f/Make-lang.in b/gcc/f/Make-lang.in
index 2f37b1b..3cc2884 100644
--- a/gcc/f/Make-lang.in
+++ b/gcc/f/Make-lang.in
@@ -331,10 +331,10 @@ f77.install-normal:
# and also as either g77 (if native) or $(tooldir)/bin/g77.
f77.install-common:
case "$(LANGUAGES)" in \
- *[fF]77*) touch lang-f77;; \
- *) rm -f lang-f77;; \
+ *[fF]77*) touch $(prefix)/lang-f77;; \
+ *) rm -f $(prefix)/lang-f77;; \
esac
- -if [ -f lang-f77 -a -f f771$(exeext) ] ; then \
+ -if [ -f $(prefix)/lang-f77 -a -f f771$(exeext) ] ; then \
if [ -f g77-cross$(exeext) ] ; then \
rm -f $(bindir)/$(G77_CROSS_NAME)$(exeext); \
$(INSTALL_PROGRAM) g77-cross$(exeext) $(bindir)/$(G77_CROSS_NAME)$(exeext); \
@@ -354,15 +354,16 @@ f77.install-common:
echo ' f77-install-ok in the source or build directory.)'; \
echo ''; \
else true; fi
+ rm -f $(prefix)/lang-f77
# $(INSTALL_DATA) might be a relative pathname, so we can't cd into srcdir
# to do the install. The sed rule was copied from stmp-int-hdrs.
f77.install-info: f77.info
case "$(LANGUAGES)" in \
- *[fF]77*) touch lang-f77;; \
- *) rm -f lang-f77;; \
+ *[fF]77*) touch $(prefix)/lang-f77;; \
+ *) rm -f $(prefix)/lang-f77;; \
esac
- if [ -f lang-f77 -a -f f/g77.info ] ; then \
+ if [ -f $(prefix)/lang-f77 -a -f f/g77.info ] ; then \
rm -f $(infodir)/g77.info*; \
for f in f/g77.info*; do \
realfile=`echo $$f | sed -e 's|.*/\([^/]*\)$$|\1|'`; \
@@ -370,19 +371,20 @@ f77.install-info: f77.info
done; \
chmod a-x $(infodir)/g77.info*; \
else true; fi
- @if [ -f lang-f77 -a -f $(srcdir)/f/g77.info ] ; then \
+ @if [ -f $(prefix)/lang-f77 -a -f $(srcdir)/f/g77.info ] ; then \
if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
echo " install-info --info-dir=$(infodir) $(infodir)/g77.info"; \
install-info --info-dir=$(infodir) $(infodir)/g77.info || : ; \
else : ; fi; \
else : ; fi
+ rm -f $(prefix)/lang-f77
f77.install-man: $(srcdir)/f/g77.1
case "$(LANGUAGES)" in \
- *[fF]77*) touch lang-f77;; \
- *) rm -f lang-f77;; \
+ *[fF]77*) touch $(prefix)/lang-f77;; \
+ *) rm -f $(prefix)/lang-f77;; \
esac
- -if [ -f lang-f77 -a -f f771$(exeext) ] ; then \
+ -if [ -f $(prefix)/lang-f77 -a -f f771$(exeext) ] ; then \
if [ -f g77-cross$(exeext) ] ; then \
rm -f $(man1dir)/$(G77_CROSS_NAME)$(manext); \
$(INSTALL_DATA) $(srcdir)/f/g77.1 $(man1dir)/$(G77_CROSS_NAME)$(manext); \
@@ -393,25 +395,27 @@ f77.install-man: $(srcdir)/f/g77.1
chmod a-x $(man1dir)/$(G77_INSTALL_NAME)$(manext); \
fi; \
else true; fi
+ rm -f $(prefix)/lang-f77
f77.uninstall:
case "$(LANGUAGES)" in \
- *[fF]77*) touch lang-f77;; \
- *) rm -f lang-f77;; \
+ *[fF]77*) touch $(prefix)/lang-f77;; \
+ *) rm -f $(prefix)/lang-f77;; \
esac
- @if [ -f lang-f77 ] ; then \
+ @if [ -f $(prefix)/lang-f77 ] ; then \
if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
echo " install-info --delete --info-dir=$(infodir) $(infodir)/g77.info"; \
install-info --delete --info-dir=$(infodir) $(infodir)/g77.info || : ; \
else : ; fi; \
else : ; fi
- -if [ -f lang-f77 ]; then \
+ -if [ -f $(prefix)/lang-f77 ]; then \
rm -rf $(bindir)/$(G77_INSTALL_NAME)$(exeext); \
rm -rf $(bindir)/$(G77_CROSS_NAME)$(exeext); \
rm -rf $(man1dir)/$(G77_INSTALL_NAME)$(manext); \
rm -rf $(man1dir)/$(G77_CROSS_NAME)$(manext); \
rm -rf $(infodir)/g77.info*; \
fi
+ rm -f $(prefix)/lang-f77
#
# Clean hooks:
# A lot of the ancillary files are deleted by the main makefile.