Commit 43297964 by Craig Burley Committed by Craig Burley

improve wall of separation between build and install

From-SVN: r25367
parent a2cf7deb
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.
......
......@@ -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.
......
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.
......
......@@ -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:
......
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
......
......@@ -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;; \
......
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.
......
......@@ -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.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment