This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
A patch for gcc/intl parallel build
- To: gcc-patches at gcc dot gnu dot org
- Subject: A patch for gcc/intl parallel build
- From: "H . J . Lu" <hjl at valinux dot com>
- Date: Fri, 9 Jun 2000 17:38:55 -0700
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),