Instead of using the discovered java bits just for jni.h, also use
javac from that directory. Add JAVA_VERSION param to set language
version for newer compilers.
Signed-off-by: Keith Packard <keithp@keithp.com>
-AM_JAVACFLAGS=-target 1.6 -encoding UTF-8 -Xlint:deprecation -Xlint:unchecked -source 6
+AM_JAVACFLAGS=$(JAVAC_VERSION_FLAGS) -encoding UTF-8 -Xlint:deprecation -Xlint:unchecked
-AM_JAVACFLAGS=-target 1.6 -encoding UTF-8 -Xlint:deprecation -Xlint:unchecked -source 6
+AM_JAVACFLAGS=$(JAVAC_VERSION_FLAGS) -encoding UTF-8 -Xlint:deprecation -Xlint:unchecked
-AM_JAVACFLAGS=-target 1.6 -encoding UTF-8 -Xlint:deprecation -Xlint:unchecked -source 6
+AM_JAVACFLAGS=$(JAVAC_VERSION_FLAGS) -encoding UTF-8 -Xlint:deprecation -Xlint:unchecked
-AC_ARG_WITH(jvm, AS_HELP_STRING([--with-jvm-include=PATH],
- [Set jvm include path for jni builds (default searches in /usr/lib/jvm)]),
- [JVM_INCLUDE=$withval], [JVM_INCLUDE=auto])
-
-if test "x$JVM_INCLUDE" = "xauto"; then
- AC_MSG_CHECKING([JVM include files])
- for jvm in default-java java-6-openjdk java-6-sun; do
- if test "x$JVM_INCLUDE" = "xauto"; then
+AC_ARG_WITH(jvm, AS_HELP_STRING([--with-jvm=PATH],
+ [Set jvm path for java builds (default searches in /usr/lib/jvm)]),
+ [JVM=$withval], [JVM=auto])
+
+if test "x$JVM" = "xauto"; then
+ AC_MSG_CHECKING([JVM])
+ for jvm in default-java java-6-openjdk java-7-openjdk java-8-openjdk java-9-openjdk java-10-openjdk java-11-openjdk java-12-openjdk java-13-openjdk java-6-sun; do
+ if test "x$JVM" = "xauto"; then
INCLUDE="/usr/lib/jvm/$jvm/include"
if test -f "$INCLUDE"/jni.h; then
INCLUDE="/usr/lib/jvm/$jvm/include"
if test -f "$INCLUDE"/jni.h; then
+ JVM=/usr/lib/jvm/"$jvm"
- if test "x$JVM_INCLUDE" = "xauto"; then
- AC_MSG_ERROR([no JVM include files found])
+ if test "x$JVM" = "xauto"; then
+ AC_MSG_ERROR([no JVM files found])
- AC_MSG_RESULT([$JVM_INCLUDE])
+AC_ARG_WITH(java-version, AS_HELP_STRING([--with-java-version=7],
+ [Set java language compatibility version (default is 7)]),
+ [JAVA_VERSION=$withval], [JAVA_VERSION=7])
+
+JAVAC="$JVM"/bin/javac
+JAVA="$JVM"/bin/java
+JVM_INCLUDE="$JVM"/include
+JAVAC_VERSION_FLAGS="-target 1.$JAVA_VERSION -source 1.$JAVA_VERSION"
+
+AC_SUBST(JAVAC)
+AC_SUBST(JAVA)
+AC_SUBST(JVM)
+AC_SUBST(JAVAC_VERSION_FLAGS)
+
AC_ARG_WITH(android, AS_HELP_STRING([--with-android=PATH],
[Set android SDK path (default searches in a variety of places)]),
AC_ARG_WITH(android, AS_HELP_STRING([--with-android=PATH],
[Set android SDK path (default searches in a variety of places)]),
AM_CFLAGS=-DLINUX -DPOSIX_TTY -I$(JVM_INCLUDE) -I$(JVM_INCLUDE)/linux
AM_CFLAGS=-DLINUX -DPOSIX_TTY -I$(JVM_INCLUDE) -I$(JVM_INCLUDE)/linux
-AM_JAVACFLAGS=-target 1.6 -encoding UTF-8 -Xlint:deprecation -source 6
+AM_JAVACFLAGS=$(JAVAC_VERSION_FLAGS) -encoding UTF-8 -Xlint:deprecation -Xlint:unchecked
altoslibdir=$(libdir)/altos
altoslibdir=$(libdir)/altos
-AM_JAVACFLAGS=-target 1.6 -encoding UTF-8 -Xlint:deprecation -Xlint:unchecked -source 6
+AM_JAVACFLAGS=$(JAVAC_VERSION_FLAGS) -encoding UTF-8 -Xlint:deprecation -Xlint:unchecked
altoslibdir=$(libdir)/altos
altoslibdir=$(libdir)/altos
-AM_JAVACFLAGS=-target 1.6 -encoding UTF-8 -Xlint:deprecation -Xlint:unchecked -source 6
+AM_JAVACFLAGS=$(JAVAC_VERSION_FLAGS) -encoding UTF-8 -Xlint:deprecation -Xlint:unchecked
altoslibdir=$(libdir)/altos
altoslibdir=$(libdir)/altos
-AM_JAVACFLAGS=-target 1.6 -encoding UTF-8 -Xlint:deprecation -Xlint:unchecked -source 6
+AM_JAVACFLAGS=$(JAVAC_VERSION_FLAGS) -encoding UTF-8 -Xlint:deprecation -Xlint:unchecked
-AM_JAVACFLAGS=-target 1.6 -encoding UTF-8 -Xlint:deprecation -Xlint:unchecked -source 6
+AM_JAVACFLAGS=$(JAVAC_VERSION_FLAGS) -encoding UTF-8 -Xlint:deprecation -Xlint:unchecked