On Sat, Feb 26, 2011 at 7:46 AM, Ralf Wildenhues <ralf.wildenh...@gmx.de> wrote: > [ adding autoconf-patches; this is <http://debbugs.gnu.org/8111> ] > > * Jack Kelly wrote on Thu, Feb 24, 2011 at 11:49:44PM CET: >> On Fri, Feb 25, 2011 at 6:36 AM, Ralf Wildenhues wrote: >> > Can we fix this somehow in either Autoconf or Automake? >> >> Could we save the results of tracing AC_CONFIG_SUBDIRS calls? If >> there's a change, invoke ./config.status --recheck. If not, >> config.status --recheck --no-recursion. > > Well, the rule that invokes 'config.status --recheck', let's call it the > config.status rule, does not invoke any autotools, thus no m4. Any > rule that invokes m4 must be a developer rule, but the config.status > rule is a user rule, which is even in place with maintainer-mode. > So we cannot mix these two concepts.
If they are changing `configure.ac', they will be invoking developer rules. I don't mean trace in the ./config.status --recheck rule, but instead at `automake' time: If there are any AC_CONFIG_SUBDIRS calls, write them out to a trace file (such as build-aux/subdirs.trace). Save the previous trace as build-aux/subdirs.trace.old. Now the rule to call config.status --recheck needs to only run `diff'. Having clarified myself, I think your method makes more sense (and has no additional files to dist). Comments on that below. > Since 'makefile' might be spelt in various different > ways, we can take presence of 'config.status' in the subdir build tree > as indicator, that should be good enough. You should add a comment to this effect in your status.m4 changes. Currently, it looks like you've tested for config.status by mistake. > I'm still wondering whether we should rename the option > --new-recursion-only however, that would be more precise. > Other than that, the patch below seems to do what I want. Yes. the name becomes very confusing. Maybe --recursion=no (with --no-recursion as an alias), --recursion=new-only? -- Jack