This is the mail archive of the automake@gnu.org mailing list for the automake project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Conditionally compiling Java


>>> "Braden" == Braden McDaniel <braden@endoframe.com> writes:

[...]

 Braden> if WITH_JDK
 Braden> noinst_JAVA = MyClass1.java MyClass2.java
 Braden> endif

 Braden> Works if WITH_JDK is true; but if WITH_JDK is false,
 Braden> javac still gets called, but with no source file
 Braden> arguments. 

Could you try this patch?

Index: ChangeLog
--- ChangeLog
+++ ChangeLog
@@ -1,1 +1,9 @@
+2002-06-11  Alexandre Duret-Lutz  <duret_g@epita.fr>
+
+	* lib/am/java.am (class%DIR%.stamp): Don't run $(JAVAC) when there
+	is no file to compile.
+	* tests/java2.test: New file.
+	* tests/Makefile.am (TESTS): Add java2.test.
+	Reported by Braden N. McDaniel.
+

Index: lib/am/java.am
===================================================================
RCS file: /cvs/automake/automake/lib/am/java.am,v
retrieving revision 1.15
diff -u -r1.15 java.am
--- lib/am/java.am	30 May 2001 02:02:50 -0000	1.15
+++ lib/am/java.am	11 Jun 2002 17:02:40 -0000
@@ -27,8 +27,11 @@
 JAVAROOT = $(top_builddir)
 
 class%DIR%.stamp: $(%DIR%_JAVA)
-	$(CLASSPATH_ENV) $(JAVAC) -d $(JAVAROOT) \
-	  $(AM_JAVACFLAGS) $(JAVACFLAGS) $?
+	@if test -n "$?"; then \
+	  echo '$(CLASSPATH_ENV) $(JAVAC) -d $(JAVAROOT) $(AM_JAVACFLAGS) $(JAVACFLAGS) $?' ; \
+	  $(CLASSPATH_ENV) $(JAVAC) -d $(JAVAROOT) \
+	    $(AM_JAVACFLAGS) $(JAVACFLAGS) $?; \
+	else :; fi
 	echo timestamp > class%DIR%.stamp
 
 
Index: tests/Makefile.am
===================================================================
RCS file: /cvs/automake/automake/tests/Makefile.am,v
retrieving revision 1.385.2.13
diff -u -r1.385.2.13 Makefile.am
--- tests/Makefile.am	8 Jun 2002 16:56:56 -0000	1.385.2.13
+++ tests/Makefile.am	11 Jun 2002 17:02:40 -0000
@@ -183,6 +183,7 @@
 interp.test \
 interp2.test \
 java.test \
+java2.test \
 javaprim.test \
 javasubst.test \
 ldadd.test \
Index: tests/java2.test
===================================================================
RCS file: tests/java2.test
diff -N tests/java2.test
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ tests/java2.test	11 Jun 2002 17:02:40 -0000
@@ -0,0 +1,35 @@
+#! /bin/sh
+
+# Make sure that Java rules doesn't attempt to run javac when there is
+# no classes to compile.
+# Report from Braden McDaniel.
+
+. $srcdir/defs || exit 1
+
+set -e
+
+cat >> configure.in << 'END'
+AM_CONDITIONAL(WITH_JDK, false)
+AC_OUTPUT
+END
+
+cat > Makefile.am << 'END'
+JAVAC = false
+JAVAROOT = $(top_builddir)/java
+
+JAVA_FILES = MyClass1.java
+
+if WITH_JDK
+noinst_JAVA = $(JAVA_FILES)
+endif
+
+EXTRA_DIST = $(JAVA_FILES)
+END
+
+: >MyClass1.java
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE
+./configure
+$MAKE

-- 
Alexandre Duret-Lutz



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]