OSDN Git Service

* Makefile.in (POSTCOMPILE): New variable.
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 28 Mar 2008 13:32:47 +0000 (13:32 +0000)
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 28 Mar 2008 13:32:47 +0000 (13:32 +0000)
(.c.o): Use it.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133682 138bc75d-0d04-0410-961f-82ee72b054a4

libcpp/ChangeLog
libcpp/Makefile.in

index 8e8dfe4..0b3ce8b 100644 (file)
@@ -1,3 +1,8 @@
+2008-03-28  Tom Tromey  <tromey@redhat.com>
+
+       * Makefile.in (POSTCOMPILE): New variable.
+       (.c.o): Use it.
+
 2008-03-13  Tom Tromey  <tromey@redhat.com>
 
        PR libcpp/35322:
index 7f4be52..4112c66 100644 (file)
@@ -1,7 +1,7 @@
 # @configure_input@
 # Makefile for libcpp.  Run 'configure' to generate Makefile from Makefile.in
 
-# Copyright (C) 2004 Free Software Foundation, Inc.
+# Copyright (C) 2004, 2008 Free Software Foundation, Inc.
 
 #This file is part of libcpp.
 
@@ -197,16 +197,24 @@ update-po: $(CATALOGS:.gmo=.pox)
 # Dependency rule.
 COMPILE.base = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(ALL_CFLAGS) -c
 ifeq ($(DEPMODE),depmode=gcc3)
-COMPILE = $(COMPILE.base) -o $@ -MT $@ -MMD -MP -MF $(DEPDIR)/$*.Po
+# Note that we put the dependencies into a .Tpo file, then move them
+# into place if the compile succeeds.  We need this because gcc does
+# not atomically write the dependency output file.
+COMPILE = $(COMPILE.base) -o $@ -MT $@ -MMD -MP -MF $(DEPDIR)/$*.Tpo
+POSTCOMPILE = @mv $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 else
 COMPILE = source='$<' object='$@' libtool=no DEPDIR=$(DEPDIR) $(DEPMODE) \
          $(depcomp) $(COMPILE.base)
+# depcomp handles atomicity for us, so we don't need a postcompile
+# step.
+POSTCOMPILE =
 endif
 
 # Implicit rules and I18N
 
 .c.o:
        $(COMPILE) $<
+       $(POSTCOMPILE)
 
 # N.B. We do not attempt to copy these into $(srcdir).
 .po.gmo: