Don't interrupt the make if a generated build file didn't really change.
authorWayne Davison <wayned@samba.org>
Thu, 24 Jul 2008 06:28:57 +0000 (23:28 -0700)
committerWayne Davison <wayned@samba.org>
Thu, 24 Jul 2008 06:28:57 +0000 (23:28 -0700)
.gitignore
Makefile.in
NEWS

index 40664d757039d3796f81f01d8042ef5b34c896f9..b72d3129b212fdfd8dcc4c2eb2b67dd148a50a2a 100644 (file)
@@ -3,10 +3,13 @@
 dummy
 ID
 Makefile
+Makefile.old
 configure.sh
+configure.sh.old
 config.cache
 config.h
 config.h.in
+config.h.in.old
 config.log
 config.status
 /proto.h
index 15315eac2c62b7494092ed342cb74f9fe9679abb..0d77f175f373c3a959561aa58c8c40e2dc3c433a 100644 (file)
@@ -126,11 +126,23 @@ conf:
 conf_stop: configure.sh config.h.in
 
 configure.sh config.h.in: configure.in aclocal.m4
+       @if test -f configure.sh; then cp -p configure.sh configure.sh.old; else touch configure.sh.old; fi
+       @if test -f config.h.in; then cp -p config.h.in config.h.in.old; else touch config.h.in.old; fi
        autoconf -o configure.sh
        autoheader && touch config.h.in
-       @echo 'Configure files changed -- perhaps run:'
-       @echo '  make reconfigure'
-       @exit 1
+       @if diff configure.sh configure.sh.old >/dev/null 2>&1; then \
+           echo "configure.sh is unchanged."; \
+           rm configure.sh.old; \
+       fi
+       @if diff config.h.in config.h.in.old >/dev/null 2>&1; then \
+           echo "config.h.in is unchanged."; \
+           rm config.h.in.old; \
+       fi
+       @if test -f configure.sh.old -o -f config.h.in.old; then \
+           echo 'Configure files changed -- perhaps run:'; \
+           echo '  make reconfigure'; \
+           exit 1; \
+       fi
 
 reconfigure: configure.sh
        ./config.status --recheck
@@ -139,9 +151,15 @@ reconfigure: configure.sh
 make_stop: Makefile
 
 Makefile: Makefile.in config.status
+       @if test -f Makefile; then cp -p Makefile Makefile.old; else touch Makefile.old; fi
        @./config.status
-       @echo "Makefile updated -- rerun your make command."
-       @exit 1
+       @if diff Makefile Makefile.old >/dev/null 2>&1; then \
+           echo "Makefile is unchanged."; \
+           rm Makefile.old; \
+       else \
+           echo "Makefile updated -- rerun your make command."; \
+           exit 1; \
+       fi
 
 proto: proto.h-tstamp
 
@@ -165,7 +183,7 @@ rsyncd.conf.5: rsyncd.conf.yo
 
 clean: cleantests
        rm -f *~ $(OBJS) $(CHECK_PROGS) $(CHECK_OBJS) $(CHECK_SYMLINKS) \
-               rounding rounding.h
+               rounding rounding.h *.old
 
 cleantests:
        rm -rf ./testtmp*
diff --git a/NEWS b/NEWS
index d2e05e71b8d02aa609767500ff1793cf284bf2b2..cb7293a6c0ec835ee46bdc90024138c17d45657c 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -4,19 +4,26 @@ Changes since 3.0.3:
 
   BUG FIXES:
 
-    - Changed the hard-link code to never try to allocate 0 bytes of memory.
-      This fixes a failure on some Operating Systems, such as AIX.
-
-    -  Fixed a potential alignment issue in the IRIX ACL code when allocating
-       the initial "struct acl" object.  Also, cast mallocs to avoid warnings.
+    - Fixed a bug in the hard-linking code where it would sometimes try to
+      allocate 0 bytes of memory (which fails on OSes, such as AIX).
 
     - Fixed a couple issues in the --fake-super handling of xattrs when the
       destination files have root-level attributes (e.g. selinux values) that
       a non-root copy can't affect.
 
+    - Fixed a potential alignment issue in the IRIX ACL code when allocating
+      the initial "struct acl" object.  Also, cast mallocs to avoid warnings.
+
   ENHANCEMENTS:
 
     - Rsync will avoid sending an -e option to the server if an older protocol
       in requested (and thus the option would not be useful).  This lets the
       user specify the --protocol=29 option to access an overly-restrictive
       server.
+
+  DEVELOPER RELATED:
+
+    - The Makefile will not halt for just a timestamp change on the Makefile
+      or the configure files, only for actual changes in content.
+
+    - Enhanced the release scripts to be able to handle a branch release.