automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ./Configure -> make => configure again?!?


From: Jean-Guillaume Paradis (LMC)
Subject: Re: ./Configure -> make => configure again?!?
Date: Wed, 05 Mar 2003 09:37:32 -0500

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]