[Top][All Lists]
[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