On Thu, Mar 15, 2007 at 12:53:33PM -0400, Ken Murchison wrote: > Gary Mills wrote: > >On Tue, Jan 23, 2007 at 09:50:32AM -0500, Ken Murchison wrote: > >>Gary Mills wrote: > >> > >>>This behavior is annoying because I build the Cyrus software on a > >>>development server but then install it on other servers where there > >>>is no compiler and the source tree is mounted read-only. This breaks > >>>`make install', which should only install things, not recompile them. > >>>Can this be fixed, or am I condemned to hack Makefiles myself? > >>A 'make install' shouldn't compile anything if all of the generated > >>files already exist. I would consider this a bug and would gladly > >>accept a patch which fixes this behavior. > > > >I've attached a patch, against cyrus-imapd-2.3.8, that does just that. > > I'm finally looking at this patch, but what if I just do 'make imapd'? > If any of the source files has been updated, we won't get an update > CYRUS_CVSDATE
The perl portions are okay, but in the imap portion it seems that I've fixed my problem but not yours. The thing is that it's not possible to have a file that's updated when any component is updated, and also required by one of those components. That's what causes the repeat. My fix was not to change the timestamp on the file when its contents had not changed. That stopped the repeat, but doesn't give you what you need for CVS. However, since `make' only cares about the timestamp, and CVS only cares about the content, of the xversion.h file, it might be possible to make this work for both. The trick would be to get the dependancies correct in the Makefile. I'll have another attempt, unless somebody beats me to it. -- -Gary Mills- -Unix Support- -U of M Academic Computing and Networking- ---- Cyrus Home Page: http://cyrusimap.web.cmu.edu/ Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html