This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

A patch for gcc/intl parallel build


Here is a patch for

http://gcc.gnu.org/ml/gcc-bugs/2000-06/msg00264.html


-- 
H.J. Lu (hjl@gnu.org)
---
2000-06-09  H.J. Lu  (hjl@gnu.org)

	* Makefile.in (INTL_SUBDIRS): Remove $(POSUB).
	($(top_builddir)/intl/libintl.a): Depend on intl.intl.all.
	(intl.*): Add $(POSUB) to $(INTL_SUBDIRS).
	(intl.intl.all): New target.
	(intl.all): Rewrite rule and depend on intl.intl.all.

--- gcc/Makefile.in.intl	Fri Jun  9 17:15:35 2000
+++ gcc/Makefile.in	Fri Jun  9 17:29:46 2000
@@ -316,7 +316,7 @@ INTLLIBS = @INTLLIBS@
 
 # List of internationalization subdirectories.
 POSUB = @POSUB@
-INTL_SUBDIRS = intl $(POSUB)
+INTL_SUBDIRS = intl
 
 # Additional system libraries to link with.
 CLIB=
@@ -1747,24 +1747,35 @@ intl.o: intl.c intl.h gansidecl.h Makefi
 	  -DLOCALEDIR=\"$(localedir)\" \
 	  -c `echo $(srcdir)/intl.c | sed 's,^\./,,'`
 
-# This is needed to when doing a partial build after a `make clean'.
-# libintl.a does not depend on intl.all,
-# as that would force a lot of recompiling.
-$(top_builddir)/intl/libintl.a:
-	@echo "$(MAKE) intl.all"
-	@$(MAKE) $(FLAGS_TO_PASS) intl.all
+$(top_builddir)/intl/libintl.a: intl.intl.all
 
 # Make sure all the headers are there for xgettext to scan.
 $(INTL_TARGETS): $(srcdir)/c-gperf.h \
     $(srcdir)/c-parse.c $(srcdir)/c-parse.h
 
-intl.all intl.install intl.uninstall intl.distdir \
+intl.install intl.uninstall intl.distdir \
   intl.mostlyclean intl.clean intl.distclean intl.maintainer-clean:
-	@for d in $(INTL_SUBDIRS); do \
+	@for d in $(INTL_SUBDIRS) $(POSUB); do \
 	  target=`expr $@ : 'intl.\(.*\)'` && \
 	  echo "(cd $$d && $(MAKE) $$target)" && \
 	  (cd $$d && AWK='$(AWK)' $(MAKE) $(SUBDIR_FLAGS_TO_PASS) $$target); \
 	  if [ $$? -eq 0 ] ; then true ; else exit 1 ; fi ; \
+	done
+
+intl.intl.all:
+	@for d in $(INTL_SUBDIRS); do \
+	  echo "(cd $$d && $(MAKE) all)" && \
+	  (cd $$d && AWK='$(AWK)' $(MAKE) $(SUBDIR_FLAGS_TO_PASS) all); \
+	  if [ $$? -eq 0 ] ; then true ; else exit 1 ; fi ; \
+	done
+
+intl.all: intl.intl.all
+	@for d in . $(POSUB); do \
+	  if [ $$d != "." ]; then \
+	    echo "(cd $$d && $(MAKE) all)" && \
+	    (cd $$d && AWK='$(AWK)' $(MAKE) $(SUBDIR_FLAGS_TO_PASS) all); \
+	    if [ $$? -eq 0 ] ; then true ; else exit 1 ; fi ; \
+	  else true; fi; \
 	done
 
 # intl.distdir doesn't copy the intl makefiles (since they aren't distributed),

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]