tls.h, rational.h, and integer.h are only re-generated if changed. this obviates...
authorMorgan Deters <mdeters@gmail.com>
Fri, 17 Dec 2010 23:09:15 +0000 (23:09 +0000)
committerMorgan Deters <mdeters@gmail.com>
Fri, 17 Dec 2010 23:09:15 +0000 (23:09 +0000)
config/cvc4.m4
configure.ac

index 76ea2cc79ccd18a383aecbc30e3346e9ff5fd472..27efb8718008357086e25065bf3be6c7fdffae9d 100644 (file)
@@ -60,3 +60,28 @@ shift
 dnl echo "args are now:" "${@}"
 m4_divert_pop([PARSE_ARGS])dnl
 ])# CVC4_REWRITE_ARGS_FOR_BUILD_PROFILE
+
+
+# CVC4_COPY_IF_CHANGED(FROM, TO)
+# ------------------------------
+# Copy file FROM to TO, if they have textual differences.
+AC_DEFUN([CVC4_COPY_IF_CHANGED], [
+if diff -q "$1" "$2" >/dev/null 2>&1; then
+  dnl they are the same
+  :
+else
+  dnl they are different
+  cp "$1" "$2"
+fi
+])# CVC4_COPY_IF_CHANGED
+
+
+# CVC4_CONFIG_FILE_ONLY_IF_CHANGED(FILE)
+# --------------------------------------
+# Run AC_CONFIG_FILES to generate file named in the argument, but if it
+# exists already, only replace it if it would be changed (this preserves
+# the old timestamp if no textual changes are to be made to the file).
+AC_DEFUN([CVC4_CONFIG_FILE_ONLY_IF_CHANGED], [
+AC_CONFIG_FILES([$1.tmp:$1.in],
+                CVC4_COPY_IF_CHANGED([$1.tmp],[$1]))
+])# CVC4_CONFIG_FILE_ONLY_IF_CHANGED
index 60125834278ed0cecfe433a9ea45ba4bf5494c53..707cbea002ca145ee9242ff5e3a9bc09dd2900ec 100644 (file)
@@ -749,11 +749,12 @@ AC_CONFIG_FILES([
   Makefile.builds
   Makefile]
   m4_esyscmd([find contrib lib src test -name Makefile.am | sort | sed 's,\.am$,,'])
-  src/util/rational.h
-  src/util/integer.h
-  src/util/tls.h
 )
 
+CVC4_CONFIG_FILE_ONLY_IF_CHANGED([src/util/rational.h])
+CVC4_CONFIG_FILE_ONLY_IF_CHANGED([src/util/integer.h])
+CVC4_CONFIG_FILE_ONLY_IF_CHANGED([src/util/tls.h])
+
 AC_OUTPUT
 
 # Final information to the user