From 92d706a274c694cb63443dfb92f83993dab6e7fe Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Wed, 23 Jul 2008 23:28:57 -0700 Subject: [PATCH] Don't interrupt the make if a generated build file didn't really change. --- .gitignore | 3 +++ Makefile.in | 30 ++++++++++++++++++++++++------ NEWS | 17 ++++++++++++----- 3 files changed, 39 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 40664d75..b72d3129 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/Makefile.in b/Makefile.in index 15315eac..0d77f175 100644 --- a/Makefile.in +++ b/Makefile.in @@ -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 d2e05e71..cb7293a6 100644 --- 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. -- 2.34.1