Philip Willoughby wrote: > In my experience, autoconf et al will only be re-run if you have changed a > Makefile.am or configure.[in|ac] file. Are you, perhaps, using an editor > to view one of these files and then saving and exiting? This will of > course update the timestamp on the file and cause make to think it's > dependants are out of date. > > The answer in this case is, of course, to stop changing the file modify > time. > > If you're on linux you probably have a command-line program called `stat' > which can tell you everything you need to know about the file modify times. > If you can find an instance where things are being re-run but haven't been > changed that's an interesting bug, but probably not a bug in automake (I'd > blame make itself). > I think I understand the problem a bit better now, and like you said it must be a problem with the time stamps.
You see, we use CVS for our project ( http://sourceforge.net/projects/disec if you are interested ;) ). What we do is to include the configure.ac and Makefile.am files in our CVS tree, since this isn't a "distribution", but the necessary things for developpers who want to change the Makefile.am files to include new programs etc etc. I think this is the cause of the problem, and this would't happen if we would only include the Makefile.in for example. So if I checkout (download) the entire project, a ./configure -> make will run aclocal, automake again. I tried running autoconf, automake, configure, (putting everything up to date) and then commiting the changes to the CVS repository, but another checkout did the same problem. I realized that doing a checkout changes the timestamps (using stat, the CHANGE attribute becomes the current time for all the files), and this is what causes the problem. For example, after a checkout, I did a 'touch' to update the timestamp of aclocal.m4, and then, after a configure -> make, it only ran automake and configure again, not aclocal this time! So, by seeing this, and from what you told me, I understood the problem was that after a checkout, the timestamp of the Makefile.am files was newer that the one of the Makefile.in files. So I updated the time stamps of all the Makefile.in files, as well as the timestamp of the configure file, and then a configure -> make worked without running aclocal and automake again :) If you have used CVS or something similar, do you have any ideas how to work around this, apart from updating the timestamps after every checkout? I couldn't find an option to 'leave the timestamps unchanged', or something similar... Thanks :) Jean-Guillaume