I am using Automake 1.11.1, and have recently encountered a subtle issue that causes compilation of some Java programs to fail. Here is a typical build failure, produced from a minimal test case I've assembled, using OpenJDK on Ubuntu's Natty release: make[3]: Entering directory `/tmp/automake-java-bug/org/gnu/bug' CLASSPATH=../../..:./../../..:$CLASSPATH javac -d ../../.. Library.java Application.java ./Library.java:5: duplicate class: org.gnu.bug.Library public class Library ^ Application.java:9: cannot access Library bad class file: RegularFileObject[./Library.java] file does not contain class Library Please remove or make sure it appears in the correct subdirectory of the classpath. Library lib = new Library(); ^ 2 errors make[3]: *** [classdist_noinst.stamp] Error 1 If I copy-and-paste the javac invocation, edit it slightly, and run it... env CLASSPATH=../../..:./../../..: javac -d ../../.. Library.java Application.java ...I get the same error. However, if I remove that trailing colon from CLASSPATH, and try it again... env CLASSPATH=../../..:./../../.. javac -d ../../.. Library.java Application.java ...compilation succeeds. If I invoke the above build with env CLASSPATH=/does-not-exist make then compilation likewise succeeds. Note that I do not have CLASSPATH set in my environment. It would appear that a trailing colon in the CLASSPATH environment variable has a special meaning attached to it, which makes Automake's use of CLASSPATH=mumblemumble:$$CLASSPATH in makefiles problematic. (The straightforward solution would be to replace that construct with CLASSPATH=mumblemumble$${CLASSPATH:+:$$CLASSPATH}, but whether all shells can handle that is an open question.) Attached is a tarball containing the minimal test case. --Daniel P.S.: Please Cc: any replies to me, as I am not subscribed to this list. -- NAME = Daniel Richard G. _\|/_ Remember, skunks MAIL = skunk@iSKUNK.ORG (/o|o\) _- don't smell bad--- MAIL+= skunk@alum.MIT.EDU < (^),> it's the people who WWW = (not there yet!) / \ annoy us that do!