OSDN Git Service

For PR614:
authorReid Spencer <rspencer@reidspencer.com>
Thu, 25 Aug 2005 04:59:49 +0000 (04:59 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Thu, 25 Aug 2005 04:59:49 +0000 (04:59 +0000)
Move the implementation of the fix from Makefile.rules to Makefile. This
ensures that it is only checked on a top-level rebuild, and not in every
single subdirectory. This removes some annoying messages from the build and
numerous executions of config.status if the .in file changes but not
substantively enough to cause the .h file to be modified by config.status.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23039 91177308-0d34-0410-b5e6-96231b3b80d8

Makefile
Makefile.rules

index 818128e..b474a3a 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -51,3 +51,21 @@ dist-hook::
 
 tools-only: all
 libs-only: all
+
+#------------------------------------------------------------------------
+# Make sure the generated headers are up-to-date. This must be kept in
+# sync with the AC_CONFIG_HEADER invocations in autoconf/configure.ac
+#------------------------------------------------------------------------
+FilesToConfig := \
+  include/llvm/Config/config.h \
+  include/llvm/Support/DataTypes.h \
+  include/llvm/ADT/hash_map \
+  include/llvm/ADT/hash_set \
+  include/llvm/ADT/iterator
+FilesToConfigPATH  := $(addprefix $(LLVM_OBJ_ROOT)/,$(FilesToConfig))
+
+all-local:: $(FilesToConfigPATH)
+$(FilesToConfigPATH) : $(LLVM_OBJ_ROOT)/% : $(LLVM_SRC_ROOT)/%.in 
+       $(Echo) Regenerating $*
+       $(Verb) cd $(LLVM_OBJ_ROOT) && $(ConfigStatusScript) $*
+.PRECIOUS: $(FilesToConfigPATH)
index 9bc8d5b..6566098 100644 (file)
@@ -28,13 +28,6 @@ TopLevelTargets  := check dist dist-check dist-clean tags dist-gzip dist-bzip2 \
 UserTargets      := $(RecursiveTargets) $(LocalTargets) $(TopLevelTargets)
 InternalTargets  := preconditions distdir dist-hook
 
-FilesToConfig := \
-  include/llvm/Config/config.h \
-  include/llvm/Support/DataTypes.h \
-  include/llvm/ADT/hash_map \
-  include/llvm/ADT/hash_set \
-  include/llvm/ADT/iterator
-
 ################################################################################
 # INITIALIZATION: Basic things the makefile needs
 ################################################################################
@@ -84,10 +77,7 @@ ifneq ($(MakefileConfigIn),)
 PreConditions      += $(MakefileConfig)
 endif
 
-FilesToConfigPATH  := $(addprefix $(LLVM_OBJ_ROOT)/,$(FilesToConfig))
-PreConditions      += $(FilesToConfigPATH)
-
-preconditions : $(PreConditions)
+preconditions: $(PreConditions)
 
 #------------------------------------------------------------------------
 # Make sure the BUILT_SOURCES are built first
@@ -145,16 +135,6 @@ $(ConfigStatusScript): $(ConfigureScript)
          $(ConfigStatusScript)
 
 #------------------------------------------------------------------------
-# If we're buildilng LLVM, then make sure the generated headers are Up2Dt
-#------------------------------------------------------------------------
-ifeq ($(LLVM_OBJ_ROOT),$(PROJ_OBJ_ROOT))
-.PRECIOUS: $(FilesToConfigPATH)
-$(FilesToConfigPATH) : $(LLVM_OBJ_ROOT)/% : $(LLVM_SRC_ROOT)/%.in 
-       $(Echo) Regenerating $*
-       $(Verb) cd $(LLVM_OBJ_ROOT) && $(ConfigStatusScript) $*
-endif
-
-#------------------------------------------------------------------------
 # Make sure the configuration makefile is up to date
 #------------------------------------------------------------------------
 ifneq ($(MakefileConfigIn),)