I have a project with autotools: automake, autoconf.
I want to prohibit make from remaking files configure, Makefile.in, etc; just to do compile job.
Some of files are edited by hand, and I know that I should not to do this. (Or the project was updated from CVS with all generated files stored in CVS).
But at the moment I have no correct version autotools installed.
What must be modification times of this files (which must be newer/older):
aclocal.m4
configure.in
confdb/ax_prefix_config_h.m4
Makefile.am
Makefile.in
Makefile
configure
config.status
Or: what sequence of touch commands must I do to achieve my goal?
First of all, if you edit a generated file directly, it wouldn’t be rebuilt anyway, because it is then newer then its prerequisites.
Then, there are two separate things going on here:
config.statusandMakefileare created during the build. It’s hard to prevent these from being remade during the build unless you make their timestamps newer.The other files are generated by the various autotools. Recent versions of Automake do not create rules by default that remake them automatically. Depending on your package, you might want to use the
configureoption--disable-maintainer-mode. The Automake documentation contains some more interesting information about that option.One trick I sometimes use with a package that I don’t know much about or that has a pretty messed up build system is to run something like
so that if these programs happen to be called, a noop would be substituted.