OSDN Git Service

improve wall of separation between build and install
authorburley <burley@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 22 Feb 1999 08:49:36 +0000 (08:49 +0000)
committerburley <burley@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 22 Feb 1999 08:49:36 +0000 (08:49 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@25367 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/Makefile.in
gcc/ch/ChangeLog
gcc/ch/Make-lang.in
gcc/cp/ChangeLog
gcc/cp/Make-lang.in
gcc/f/ChangeLog
gcc/f/Make-lang.in

index 1ee7875..edde687 100644 (file)
@@ -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.
index f42fcad..93d03cd 100644 (file)
@@ -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.
index a76fe91..2c3f938 100644 (file)
@@ -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.
index 27859f1..e0e9462 100644 (file)
@@ -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:
index c77d184..a4d9d60 100644 (file)
@@ -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
index 8b5b5fc..8be82bf 100644 (file)
@@ -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;; \
index 64b864f..45695f2 100644 (file)
@@ -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.
index 2f37b1b..3cc2884 100644 (file)
@@ -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
 #\f
 # Clean hooks:
 # A lot of the ancillary files are deleted by the main makefile.