automake-patches
[Top][All Lists]
Advanced

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

Re: [PATCH] {master} Improve and extend tests on `:=' variable assignmen


From: Ralf Wildenhues
Subject: Re: [PATCH] {master} Improve and extend tests on `:=' variable assignments.
Date: Mon, 29 Nov 2010 07:22:51 +0100
User-agent: Mutt/1.5.20 (2010-08-04)

* Stefano Lattarini wrote on Thu, Nov 25, 2010 at 02:37:28PM CET:
> The attached patch is based off of maint, and intended for master.
> OK to apply?

With nits addressed.

Thanks,
Ralf

> Improve and extend tests on `:=' variable assignments.
> 
> * tests/colneq.test: Avoid useless use of wildcards and extra
> variable assignments in Makefile.am.  Use command-line automake
> options instead of editing AUTOMAKE_OPTIONS in Makefile.am.
> Make grepping of the generated Makefile.in slightly stricter.
> Add a trailing `:' command.
> * tests/colneq.test: Avoid useless use of EXTRA_DIST special
> variable in Makefile.am.  Do not create dummy files which are
> not needed anymore.  Also run autoconf, ./configure and make.
> Add a trailing `:' command.
> * tests/colneq3.test: New test, similar to colneq.test, but
> running ./configure and make.
> * tests/Makefile.am (TESTS): Update.

> --- a/tests/colneq.test
> +++ b/tests/colneq.test

> @@ -21,14 +22,14 @@
>  set -e
>  
>  cat > Makefile.am << 'END'
> -ICONS := $(wildcard *.xbm)

Please leave the wildcard line in.  Removing it makes assumptions about
the parser.

> -data_DATA = $(ICONS)
> +FOOBAR := zardoz
>  END
>  
>  $ACLOCAL
>  AUTOMAKE_fails
>  grep ':=.*not portable' stderr
>  
> -echo 'AUTOMAKE_OPTIONS = -Wno-portability' >> Makefile.am
> -$AUTOMAKE
> -grep 'ICONS :=' Makefile.in
> +$AUTOMAKE -Wno-portability
> +grep '^FOOBAR *:= *zardoz *$' Makefile.in
> +
> +:

> --- a/tests/colneq2.test
> +++ b/tests/colneq2.test
> @@ -20,14 +20,23 @@
>  
>  set -e
>  
> +cat >> configure.in << 'END'
> +AC_OUTPUT
> +END
> +
>  cat > Makefile.am << 'END'
>  t = a b c
> -EXTRA_DIST = $(t:=.test)

Please leave the EXTRA_DIST line in.  It is something different if
automake skips a normal variable containing this, and a variable that is
special to automake.

> +FOO = $(t:=.test)
> +.PHONY: test
> +test:
> +     test x'$(FOO)' = x'a.test b.test c.test'
>  END
>  
> -: > a.test
> -: > b.test
> -: > c.test
> -
>  $ACLOCAL
> +$AUTOCONF
>  $AUTOMAKE
> +
> +./configure
> +$MAKE test
> +
> +:

> --- /dev/null
> +++ b/tests/colneq3.test
> @@ -0,0 +1,46 @@

> +# Test that := definitions work as expected at make time.
> +
> +required=GNUmake
> +. ./defs || Exit 1
> +
> +set -e
> +
> +cat >> configure.in << 'END'
> +AC_OUTPUT
> +END
> +
> +cat > Makefile.am << 'END'
> +BAR := $(FOO)
> +BAZ = $(FOO)
> +FOO := foo

Uh, oh.  Thin ice.  This is OK, but we gotta remember that it won't
work reliably if some of these variables are actually automake-set
before they are overridden.  automake generally orders all of its
variable settings before all of the user ones (so the user ones are
preferred).  When I override, e.g., libdir here, however, it doesn't
get reordered to the user part.  I wonder whether that is a bug in
automake.

> +.PHONY: test
> +test:
> +     test x'$(FOO)' = x'foo'
> +     test x'$(BAZ)' = x'foo'
> +     test x'$(BAR)' = x
> +END
> +
> +$ACLOCAL
> +$AUTOCONF
> +$AUTOMAKE -Wno-portability 

Trailing white space.

> +
> +./configure
> +$MAKE test
> +
> +:




reply via email to

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