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