Makefile.in (POSTCOMPILE): New variable.
authorTom Tromey <tromey@redhat.com>
Fri, 28 Mar 2008 13:32:47 +0000 (13:32 +0000)
committerTom Tromey <tromey@gcc.gnu.org>
Fri, 28 Mar 2008 13:32:47 +0000 (13:32 +0000)
* Makefile.in (POSTCOMPILE): New variable.
(.c.o): Use it.

From-SVN: r133682

libcpp/ChangeLog
libcpp/Makefile.in

index 8e8dfe4626f8771f49d427fa5144ebe5f1215944..0b3ce8b3a0c0a09f5480e009835764f583f61b50 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 7f4be52ddeeb0d7856c040d8f30066b06005a4d1..4112c6633de0381778907b56191f7f7f8fa9338b 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: