autoconf-patches
[Top][All Lists]
Advanced

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

Re: Avoid certain spurious `testsuite' rebuilds


From: Ralf Wildenhues
Subject: Re: Avoid certain spurious `testsuite' rebuilds
Date: Sat, 1 Apr 2006 15:04:00 +0200
User-agent: Mutt/1.5.9i

Hi Noah,

A quick first review:

* Noah Misch wrote on Fri, Mar 31, 2006 at 06:09:06PM CEST:

> 2006-03-31  Noah Misch  <address@hidden>
> 
>       Do not rebuild `testsuite' when a lib/autoconf/*.m4 edit does not affect
>       the generated test cases.

> @@ -79,6 +79,10 @@ $(wrappers): wrapper.in
>  ## Test suite.  ##
>  ## ------------ ##
>  
> +stamp_tgat = $(srcdir)/stamp-tgat
> +stamp_acm4 = $(srcdir)/stamp-acm4
> +EXTRA_DIST += $(stamp_tgat) $(stamp_acm4)
> +
>  TESTSUITE_GENERATED_AT = \
>       $(srcdir)/aclang.at \
>       $(srcdir)/acc.at \
> @@ -112,7 +116,8 @@ TESTSUITE = ./testsuite
>  AUTOTEST = ./autom4te --language=autotest
>  $(TESTSUITE): $(srcdir)/package.m4 \
>             local.at \
> -           $(TESTSUITE_AT) \
> +           $(TESTSUITE_HAND_AT) \
> +           $(stamp_tgat) $(TESTSUITE_GENERATED_AT) \
>             $(autotest_m4f_dependencies)
>       cd $(top_builddir)/lib/autotest && $(MAKE) $(AM_MAKEFLAGS) autotest.m4f
>       $(AUTOTEST) -I $(srcdir) suite.at -o address@hidden
> @@ -161,9 +166,54 @@ AUTOCONF_FILES = $(autoconfdir)/general.
>                $(autoconfdir)/types.m4 \
>                $(autoconfdir)/programs.m4
>  

> +
> +## Rebuild TESTSUITE_GENERATED_AT when their sources change.
> +$(stamp_tgat): $(stamp_acm4)
> +     test -f updated && mv -f updated $@; :

`updated' and `$(stamp_tgat)' aka `$(srcdir)/stamp-tgat' may not be on
the same mount point.

> +$(stamp_acm4): mktests.sh $(AUTOCONF_FILES)
> +     touch updated

If you want to be compatible to old BSDs, avoid touch for creating files
or updating time stamps, see autoconf.texi.  I don't know if we can
ignore this in practice, though.

> +     { ($(do_update)) && \
> +         if test -f $(stamp_tgat); then rm -f updated; fi; } \
> +       || test $$? -eq 55
> +     touch $@

Likewise.

> +## Rebuild TESTSUITE_GENERATED_AT when the developer deletes one of them.
> +$(TESTSUITE_GENERATED_AT):
> +     $(do_update) || :
>  
>  
>  ## maintainer-check ##

[ mktests ]
> -    rm -f ac$base.tat ac$base.at
> -    touch ac$base.at
> +    rm -f ac$base.tat
> +    if test -s ac$base.at; then
> +     rm -f ac$base.at
> +     touch ac$base.at

I guess the same applies here.

> +     exit_val=55
> +    fi
>    fi
>  done

Cheers, and thanks!
Ralf




reply via email to

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