public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* Re: parallel builds
@ 1997-08-17 21:55 David S. Miller
  0 siblings, 0 replies; 3+ messages in thread
From: David S. Miller @ 1997-08-17 21:55 UTC (permalink / raw)
  To: egcs

   From: hjl@lucon.org (H.J. Lu)
   Date: Sun, 17 Aug 1997 09:55:31 -0700 (PDT)

   Here is my patch. I can finish my 3-stage bootstap in 10:30
   minutes.

Thanks, it works well for me as well.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: parallel builds
@ 1997-08-17 16:44 H.J. Lu
  0 siblings, 0 replies; 3+ messages in thread
From: H.J. Lu @ 1997-08-17 16:44 UTC (permalink / raw)
  To: egcs

> 
> 
> There seems to be a dependency miss still when doing parallel builds
> of the egcs snapshots.  Is anyone else playing with this or could
> suggest a fix?
> 

Here is my patch. I can finish my 3-stage bootstap in 10:30 minutes.


-- 
H.J. Lu (hjl@gnu.ai.mit.edu)
---
Sat Aug 16 16:39:33 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)

	* Make-lang.in ($(srcdir)/f/runtime/configure,
	$(srcdir)/f/runtime/libU77/configure, f77.mostlyclean,
	f77.clean, f77.distclean, f77.maintainer-clean, f77.realclean):
	Handle absolute pathname of $(srcdir).
	(stmp-f2c.h): New.
	(include/f2c.h, f/runtime/Makefile, f/runtime/libF77/Makefile,
	f/runtime/libI77/Makefile, f/runtime/libU77/Makefile): Only
	depend on stmp-f2c.h.
	(f77.maintainer-clean): Don't make itself.

Index: f/Make-lang.in
===================================================================
RCS file: /home/work/cvs/gnu/egcs/f/Make-lang.in,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Make-lang.in
--- Make-lang.in	1997/08/16 03:49:02	1.1.1.1
+++ Make-lang.in	1997/08/17 15:19:29
@@ -264,11 +264,7 @@
 # configure, not a Cygnus-type one.  It needs to be run *after* the
 # appropriate (cross-)compiler has been built, thus depend on GCC_PARTS.
 # NB, sh uses the *first* value of $a from `a=fred a=joe prog'.
-include/f2c.h \
-f/runtime/Makefile \
-f/runtime/libF77/Makefile \
-f/runtime/libI77/Makefile \
-f/runtime/libU77/Makefile: \
+stmp-f2c.h: \
   $(srcdir)/f/runtime/f2c.h.in \
   $(srcdir)/f/com.h $(srcdir)/f/proj.h \
   $(srcdir)/f/runtime/Makefile.in \
@@ -279,6 +275,7 @@
   $(srcdir)/f/runtime/libU77/configure \
   $(GCC_PARTS)
 # The make "stage?" in compiler spec. is fully qualified as above
+	rm -f stmp-f2c.h
 	top=`pwd`; \
 	src=`cd $(srcdir); pwd`; \
 	  cd f/runtime; \
@@ -295,6 +292,14 @@
 	     *) echo '$(GCC_FOR_TARGET)';; esac`" \
 	  $(F77_FLAGS_TO_PASS) CONFIG_SITE=/dev/null $(SHELL) \
 	  $${src}/f/runtime/libU77/configure --srcdir=$${src}/f/runtime/libU77
+	touch stmp-f2c.h
+
+# Support parallel build.
+include/f2c.h \
+f/runtime/Makefile \
+f/runtime/libF77/Makefile \
+f/runtime/libI77/Makefile \
+f/runtime/libU77/Makefile: stmp-f2c.h
 
 #For now, omit f2c stuff.  -- burley
 #f2c: stmp-headers f/f2c/Makefile
@@ -343,10 +348,15 @@
 	  --no-validate news0.texi -o NEWS
 
 $(srcdir)/f/runtime/configure: $(srcdir)/f/runtime/configure.in 
-	cd f/runtime && $(MAKE) srcdir=../../$(srcdir)/f/runtime -f ../../$(srcdir)/f/runtime/Makefile.in rebuilt
+	case $(srcdir) in \
+	/*) cd f/runtime && $(MAKE) srcdir=$(srcdir)/f/runtime -f $(srcdir)/f/runtime/Makefile.in rebuilt;; \
+	*) cd f/runtime && $(MAKE) srcdir=../../$(srcdir)/f/runtime -f ../../$(srcdir)/f/runtime/Makefile.in rebuilt;; \
+	esac
 $(srcdir)/f/runtime/libU77/configure: $(srcdir)/f/runtime/libU77/configure.in
-	cd f/runtime && $(MAKE) srcdir=../../$(srcdir)/f/runtime -f ../../$(srcdir)/f/runtime/Makefile.in rebuilt
-
+	case $(srcdir) in \
+	/*) cd f/runtime && $(MAKE) srcdir=$(srcdir)/f/runtime -f $(srcdir)/f/runtime/Makefile.in rebuilt;; \
+	*) cd f/runtime && $(MAKE) srcdir=../../$(srcdir)/f/runtime -f ../../$(srcdir)/f/runtime/Makefile.in rebuilt;; \
+	esac
 f77.rebuilt: $(srcdir)/f/g77.info $(srcdir)/f/BUGS $(srcdir)/f/INSTALL \
   $(srcdir)/f/NEWS $(srcdir)/f/runtime/configure \
   $(srcdir)/f/runtime/libU77/configure
@@ -487,11 +497,20 @@
 f77.mostlyclean:
 	-rm -f f/*$(objext)
 	-rm -f f/fini f/f771 f/stamp-str f/str-*.h f/str-*.j f/intdoc
-	-cd f/runtime; $(MAKE) -f ../../$(srcdir)/f/runtime/Makefile.in mostlyclean
+	-case $(srcdir) in \
+	/*) cd f/runtime; $(MAKE) -f $(srcdir)/f/runtime/Makefile.in mostlyclean;; \
+	*) cd f/runtime; $(MAKE) -f ../../$(srcdir)/f/runtime/Makefile.in mostlyclean;; \
+	esac
 f77.clean:
-	-cd f/runtime; $(MAKE) -f ../../$(srcdir)/f/runtime/Makefile.in clean
+	-case $(srcdir) in \
+	/*) cd f/runtime; $(MAKE) -f $(srcdir)/f/runtime/Makefile.in clean;; \
+	*) cd f/runtime; $(MAKE) -f ../../$(srcdir)/f/runtime/Makefile.in clean;; \
+	esac
 f77.distclean:
-	-cd f/runtime; $(MAKE) -f ../../$(srcdir)/f/runtime/Makefile.in distclean
+	-case $(srcdir) in \
+	/*) cd f/runtime; $(MAKE) -f $(srcdir)/f/runtime/Makefile.in distclean;; \
+	*) cd f/runtime; $(MAKE) -f ../../$(srcdir)/f/runtime/Makefile.in distclean;; \
+	esac
 	-rm -f f/Makefile
 # like gcc's extraclean, which does clean f/ for us, but not f/gbe,
 # f/runtime, f/runtime/libF77, f/runtime/libI77, and f/runtime/libU77,
@@ -509,8 +528,10 @@
 	-rm -f f/*/*/*lose f/*/*/*.s f/*/*/*.s[0-9] f/*/*/*.i
 # realclean is the pre-2.7.0 name for maintainer-clean
 f77.maintainer-clean f77.realclean: f77.distclean
-	-cd f/runtime; $(MAKE) -f ../../$(srcdir)/f/runtime/Makefile.in maintainer-clean
-	-$(MAKE) f77.maintainer-clean
+	-case $(srcdir) in \
+	/*) cd f/runtime; $(MAKE) -f $(srcdir)/f/runtime/Makefile.in maintainer-clean;; \
+	*) cd f/runtime; $(MAKE) -f ../../$(srcdir)/f/runtime/Makefile.in maintainer-clean;; \
+	esac
 	-rm -f f/g77.info* f/g77.*aux f/TAGS f/BUGS f/INSTALL f/NEWS f/intdoc.texi
 # Stage hooks:
 # The main makefile has already created stage?/f.

Sat Aug 16 16:39:33 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)

	* Makefile.in (mostlyclean, clean): Check if Makefile exists
	before using it. Remove stamp-*.
	(stamp-libi77, stamp-libf77, stamp-libu77): New.
	(stamp-lib): Only depend on stamp-libi77 stamp-libf77
	stamp-libu77

Index: f/runtime/Makefile.in
===================================================================
RCS file: /home/work/cvs/gnu/egcs/f/runtime/Makefile.in,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile.in
--- Makefile.in	1997/08/16 03:49:07	1.1.1.1
+++ Makefile.in	1997/08/17 15:52:21
@@ -168,12 +168,12 @@
 	RANLIB_TEST="$(RANLIB_TEST)" \
 	SHELL="$(SHELL)"
 
-all: ../../include/f2c.h libi77 libf77 libu77 $(lib)
+all: ../../include/f2c.h $(lib)
 
 $(lib): stamp-lib ; @true
-stamp-lib: $(FOBJ) $(IOBJ) $(UOBJ)
+stamp-lib: stamp-libf77 stamp-libi77 stamp-libu77
 	rm -f stamp-lib
-	$(AR) $(AR_FLAGS) $(lib) $?
+	$(AR) $(AR_FLAGS) $(lib) $(FOBJ) $(IOBJ) $(UOBJ)
 	for name in $(F2CEXT); \
 	do \
 	  echo $${name}; \
@@ -188,26 +188,32 @@
 	  else true; fi
 	touch stamp-lib
 
-libi77: libI77/Makefile
+stamp-libi77: libI77/Makefile
+	rm -f stamp-libi77
 	if test "$(CROSS)"; then \
 	  cd libI77;  $(MAKE) -f Makefile $(CROSS_FLAGS_TO_PASS) all ; \
 	else \
 	  cd libI77;  $(MAKE) -f Makefile $(FLAGS_TO_PASS) all ; \
 	fi
+	touch stamp-libi77
 
-libf77: libF77/Makefile
+stamp-libf77: libF77/Makefile
+	rm -f stamp-libf77
 	if test "$(CROSS)"; then \
 	  cd libF77;  $(MAKE) -f Makefile $(CROSS_FLAGS_TO_PASS) all ; \
 	else \
 	  cd libF77;  $(MAKE) -f Makefile $(FLAGS_TO_PASS) all ; \
 	fi
+	touch stamp-libf77
 
-libu77: libU77/Makefile
+stamp-libu77: libU77/Makefile
+	rm -f stamp-libu77
 	if test "$(CROSS)"; then \
 	  cd libU77;  $(MAKE) -f Makefile $(CROSS_FLAGS_TO_PASS) all ; \
 	else \
 	  cd libU77;  $(MAKE) -f Makefile $(FLAGS_TO_PASS) all ; \
 	fi
+	touch stamp-libu77
 
 ${srcdir}/configure: ${srcdir}/configure.in
 	rm -f config.cache && cd ${srcdir} && autoconf && rm -f config.cache
@@ -230,11 +236,20 @@
 #	cd libU77; $(FLAGS_TO_PASS) CONFIG_SITE=/dev/null $(SHELL) config.status --recheck
 
 mostlyclean:
-	for i in libI77 libF77 libU77; do cd $$i; $(MAKE) -f Makefile mostlyclean; cd ..;  done
+	-rm -f stamp-*
+	for i in libI77 libF77 libU77; do \
+	  if [ -f $$i/Makefile ]; then \
+	    cd $$i; $(MAKE) -f Makefile mostlyclean; cd ..; \
+	  fi; \
+	done
 
 clean:
-	-rm -f config.log config.cache
-	for i in libI77 libF77 libU77; do cd $$i; $(MAKE) -f Makefile clean; cd ..;  done
+	-rm -f config.log config.cache stamp-*
+	for i in libI77 libF77 libU77; do \
+	  if [ -f $$i/Makefile ]; then \
+	    cd $$i; $(MAKE) -f Makefile clean; cd ..; \
+	  fi; \
+	done
 
 distclean: clean
 	-rm -f Makefile lib?77/Makefile config.status libU77/config.status ../../include/f2c.h

Sat Aug 16 16:39:33 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)

	* objc/Make-lang.in ($(OBJC_O)): Also depend on cc1obj.

Sat Jun 28 09:32:41 1997  Jim Meyering <meyering@@eng.ascend.com>

	* objc/Make-lang.in ($(OBJC_O)): Also depend on $(GCC_PASSES).

Index: objc/Make-lang.in
===================================================================
RCS file: /home/work/cvs/gnu/egcs/objc/Make-lang.in,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Make-lang.in
--- Make-lang.in	1997/08/16 03:49:09	1.1.1.1
+++ Make-lang.in	1997/08/17 00:15:42
@@ -176,6 +176,8 @@
 	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) \
 	-c $(srcdir)/objc/libobjc_entry.c -o $@
 
+$(OBJC_O): $(GCC_PASSES) cc1obj
+
 # Build the Objective C runtime library.
 libobjc.a: cc1obj specs stmp-int-hdrs libgcc2.ready \
  $(USE_COLLECT2) $(EXTRA_PARTS) $(OBJC_O)

^ permalink raw reply	[flat|nested] 3+ messages in thread

* parallel builds
@ 1997-08-16  4:00 David S. Miller
  0 siblings, 0 replies; 3+ messages in thread
From: David S. Miller @ 1997-08-16  4:00 UTC (permalink / raw)
  To: egcs

There seems to be a dependency miss still when doing parallel builds
of the egcs snapshots.  Is anyone else playing with this or could
suggest a fix?

Later,
David "Sparc" Miller
davem@caip.rutgers.edu

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~1997-08-17 21:55 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1997-08-17 21:55 parallel builds David S. Miller
  -- strict thread matches above, loose matches on Subject: below --
1997-08-17 16:44 H.J. Lu
1997-08-16  4:00 David S. Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).