automake-patches
[Top][All Lists]
Advanced

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

Re: [PATCH] {master} coverage: more on java support: EXTRA_ and noinst_


From: Ralf Wildenhues
Subject: Re: [PATCH] {master} coverage: more on java support: EXTRA_ and noinst_ prefixes
Date: Sat, 9 Apr 2011 12:50:02 +0200
User-agent: Mutt/1.5.20 (2010-08-04)

Hi Stefano,

* Stefano Lattarini wrote on Fri, Apr 08, 2011 at 10:59:55AM CEST:
> * tests/java-extra.test: New test, checking support for the
> prefix `EXTRA_' with the JAVA primary.
> * tests/java-noinst.test: New test, checking support for the
> prefix `noinst_' with the JAVA primary.
> * tests/Makefile.am (TESTS): Update.

> --- /dev/null
> +++ b/tests/java-extra.test

> +# Check use of EXTRA with the JAVA primary.  Also test interaction
> +# of JAVA with conditionals (it's natural to test it here, since
> +# JAVA_EXTRA exists mostly for ensuring interoperation with Automake

s/for ensuring/to ensure/
s/\(JAVA\)_\(EXTRA\)/\2_\1/

> +# conditionals).

High-level question: I don't see where EXTRA_JAVA is documented in the
manual.  Can we reasonably infer its semantics from somewhere there?
If not, I think it would be prudent to document intended semantics.
Thanks.

> +cat >> configure.in << 'END'
> +AC_CHECK_PROG([HAS_JAVAC], [javac], [:], [exit])
> +($HAS_JAVAC 77); $HAS_JAVAC 77
> +AC_OUTPUT
> +END
> +
> +cat > Makefile.am << 'END'
> +javadir = $(pkgdatadir)/java
> +
> +EXTRA_JAVA = Class1.java Class2.java Class3.java
> +
> +java_JAVA = Class1.java
> +
> +if COND
> +java_JAVA += Class2.java
> +else !COND
> +java_JAVA += Class3.java
> +endif !COND
> +
> +Class3.java: Makefile
> +     echo 'class Class3 {}' > $@
> +CLEANFILES = Class3.java
> +END
> +
> +echo "class Class1 {}" > Class1.java
> +echo "class Class2 {}" > Class2.java
> +
> +$ACLOCAL
> +$AUTOCONF
> +$AUTOMAKE
> +
> +./configure cond=yes

This doesn't make sense to me, $cond is not referenced in configure.

> +$MAKE
> +ls -l
> +test -f Class1.class
> +test -f Class2.class
> +test ! -f Class3.class
> +test ! -f Class3.java
> +
> +$MAKE distclean
> +
> +./configure cond=no
> +$MAKE
> +ls -l
> +test -f Class1.class
> +test ! -f Class2.class
> +test -f Class3.class
> +test -f Class3.java

> --- /dev/null
> +++ b/tests/java-noinst.test

> +# Make sure that noinst_JAVA causes generated *.class files not to be 
> installed.
> +
> +. ./defs || Exit 1
> +
> +set -e
> +
> +cat >> configure.in << 'END'
> +AC_CHECK_PROG([HAS_JAVAC], [javac], [:], [exit])
> +($HAS_JAVAC 77); $HAS_JAVAC 77
> +AC_OUTPUT
> +END
> +
> +cat > Foo.java <<'END'
> +class Foo { }
> +END
> +
> +$ACLOCAL
> +$AUTOCONF
> +
> +: > Makefile.in # Will be updated later.
> +
> +./configure --prefix="`pwd`/_inst"
> +
> +# We need this hacky loop because multiple uses of the JAVA primary
> +# in the same Makefile.am are not allowed.
> +
> +for prefix in '' nodist_ dist_; do
> +  echo "${prefix}noinst_JAVA = Foo.java" > Makefile.am
> +  $AUTOMAKE
> +  ./config.status Makefile
> +  $MAKE
> +  test -f Foo.class
> +  $MAKE install
> +  test ! -d _inst
> +done

Thanks,
Ralf



reply via email to

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