summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog15
-rw-r--r--configure.ac30
-rw-r--r--examples/Makefile.am12
-rw-r--r--lib/Makefile.am13
-rw-r--r--m4/acinclude.m420
-rwxr-xr-xtools/Makefile.am13
6 files changed, 97 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 25f5b34c2..32fff27f2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2014-10-13 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * configure.ac:
+ Add --enable-warnings so warnings can be turned
+ on and off. Invoke IT_USING_ECJ during compiler
+ checks.
+ * examples/Makefile.am:
+ Split options for GCJ, javac and ecj.
+ * lib/Makefile.am: Likewise.
+ * m4/acinclude.m4:
+ (IT_USING_ECJ): New macro taken from IcedTea to
+ detect the use of ecj.
+ * tools/Makefile.am:
+ Split options for GCJ, javac and ecj.
+
2014-05-04 Andrew John Hughes <gnu_andrew@member.fsf.org>
* javax/lang/model/util/AbstractAnnotationValueVisitor6.java:
diff --git a/configure.ac b/configure.ac
index 5f2538d5c..2a4177893 100644
--- a/configure.ac
+++ b/configure.ac
@@ -853,6 +853,35 @@ AC_ARG_ENABLE([debug],
AC_SUBST(LIBDEBUG)
dnl -----------------------------------------------------------
+dnl Enable warnings at compile time.
+dnl -----------------------------------------------------------
+AC_MSG_CHECKING([whether to enable warnings])
+AC_ARG_ENABLE([warnings],
+ [AS_HELP_STRING(--enable-warnings,enable warnings during compiling)],
+ [case "${enableval}" in
+ yes)
+ WARNINGS="true"
+ ;;
+ no)
+ WARNINGS="false"
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${enableval} for --enable-warnings) ;;
+ esac],
+ [WARNINGS="false"])
+AC_MSG_RESULT(${WARNINGS})
+if test "x$WARNINGS" = "xtrue"; then
+ JAVAC_WARNINGS="-Xlint:unchecked,cast,divzero,empty,finally,overrides"
+ ECJ_WARNINGS="-warn:+all -warn:-deprecation,emptyBlock,nls,resource,serial,unavoidableGenericProblems,unqualifiedField,unusedPrivate"
+ AC_SUBST(JAVAC_WARNINGS)
+ AC_SUBST(ECJ_WARNINGS)
+else
+ JAVAC_WARNINGS="-nowarn"
+ ECJ_WARNINGS="-nowarn"
+fi
+AC_SUBST(WARNINGS)
+
+dnl -----------------------------------------------------------
dnl Enable execution of all static initializer loadLibrary()
dnl calls at compile time. By default most people will not
dnl want to disable this, but some VMs (gcj) don't need or want
@@ -997,6 +1026,7 @@ if test "x${use_glibj_zip}" = xfalse || \
test "x${build_class_files}" != xno; then
AC_PROG_JAVAC_WORKS
CLASSPATH_JAVAC_MEM_CHECK
+ IT_USING_ECJ
fi
dnl -----------------------------------------------------------
diff --git a/examples/Makefile.am b/examples/Makefile.am
index ff4780124..ad2158323 100644
--- a/examples/Makefile.am
+++ b/examples/Makefile.am
@@ -1,10 +1,18 @@
## Input file for automake to generate the Makefile.in used by configure
GLIBJ_CLASSPATH='$(top_builddir)/lib/glibj.zip:$(top_builddir)/lib'
+# source, target and classpath options
+GCJ_OPTS = -fsource=1.5 -ftarget=1.5 --encoding=UTF-8 --bootclasspath=$(GLIBJ_CLASSPATH) --classpath='$(top_builddir)/tools/tools.zip'
+ECJ_OPTS = -source 1.5 -target 1.5 -encoding UTF-8 -bootclasspath $(GLIBJ_CLASSPATH) -classpath '$(top_builddir)/tools/tools.zip'
+
if GCJ_JAVAC
-JCOMPILER = $(JAVAC) $(JAVACFLAGS) -fsource=1.5 -ftarget=1.5 --encoding=UTF-8 --bootclasspath=$(GLIBJ_CLASSPATH) --classpath='$(top_builddir)/tools/tools.zip'
+JCOMPILER = $(JAVAC) $(JAVACFLAGS) $(GCJ_OPTS)
+else
+if ECJ_JAVAC
+JCOMPILER = $(JAVAC) $(JAVACFLAGS) $(ECJ_WARNINGS) $(ECJ_OPTS)
else
-JCOMPILER = $(JAVAC) $(JAVACFLAGS) -source 1.5 -target 1.5 -encoding UTF-8 -bootclasspath $(GLIBJ_CLASSPATH) -classpath '$(top_builddir)/tools/tools.zip'
+JCOMPILER = $(JAVAC) $(JAVACFLAGS) $(JAVAC_WARNINGS) $(ECJ_OPTS)
+endif
endif
# All our example java source files
diff --git a/lib/Makefile.am b/lib/Makefile.am
index df02fad25..68fed7564 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -7,11 +7,20 @@ sinclude $(JAVA_DEPEND)
compile_classpath = $(vm_classes):$(top_srcdir):$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax:$(top_srcdir)/external/relaxngDatatype:$(top_srcdir)/external/jsr166:.:$(PATH_TO_GLIBJ_ZIP):$(PATH_TO_ESCHER)
+# source,target and classpath options
+GCJ_OPTS=-fsource=1.6 -ftarget=1.6 --bootclasspath='' --classpath=$(compile_classpath)
+ECJ_OPTS=-source 1.6 -target 1.6 -bootclasspath '' -classpath $(compile_classpath)
+JAVAC_OPTS=$(ECJ_OPTS)
+
# handling source to bytecode compiler programs like gcj, jikes and kjc
if GCJ_JAVAC
-JCOMPILER = $(JAVAC) $(JAVACFLAGS) -fsource=1.6 -ftarget=1.6 --bootclasspath='' --classpath=$(compile_classpath) -d . @classes
+JCOMPILER = $(JAVAC) $(JAVACFLAGS) $(GCJ_OPTS) -d . @classes
+else
+if ECJ_JAVAC
+JCOMPILER = $(JAVAC) $(JAVACFLAGS) $(ECJ_WARNINGS) $(ECJ_OPTS) $(JAVAC_MEM_OPT) -d . @classes
else
-JCOMPILER = $(JAVAC) $(JAVACFLAGS) $(JAVAC_MEM_OPT) -source 1.6 -target 1.6 -bootclasspath '' -classpath $(compile_classpath) -d . @classes
+JCOMPILER = $(JAVAC) $(JAVACFLAGS) $(JAVAC_WARNINGS) $(JAVAC_OPTS) $(JAVAC_MEM_OPT) -d . @classes
+endif
endif
if CREATE_COLLECTIONS
diff --git a/m4/acinclude.m4 b/m4/acinclude.m4
index e0d46ccff..aeea0e2fb 100644
--- a/m4/acinclude.m4
+++ b/m4/acinclude.m4
@@ -289,3 +289,23 @@ AC_DEFUN([CLASSPATH_COND_IF],
m4_default([$4], [:])
fi
])])
+
+dnl ---------------------------------------------------------------
+dnl IT_USING_ECJ
+dnl ---------------------------------------------------------------
+dnl Taken from IcedTea 2.x. Determines if javac is ecj or not
+dnl ---------------------------------------------------------------
+AC_DEFUN_ONCE([IT_USING_ECJ],[
+AC_REQUIRE([AC_PROG_JAVAC])
+AC_CACHE_CHECK([if we are using ecj as javac], it_cv_ecj, [
+if $JAVAC -version 2>&1| grep '^Eclipse' >&AS_MESSAGE_LOG_FD ; then
+ it_cv_ecj=yes;
+else
+ it_cv_ecj=no;
+fi
+])
+USING_ECJ=$it_cv_ecj
+AC_SUBST(USING_ECJ)
+AM_CONDITIONAL(ECJ_JAVAC, test x"${USING_ECJ}" = xyes)
+AC_PROVIDE([$0])dnl
+])
diff --git a/tools/Makefile.am b/tools/Makefile.am
index c5db7cd0a..7633f869c 100755
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -13,10 +13,19 @@ GLIBJ_BOOTCLASSPATH='$(top_builddir)/lib/glibj.zip:$(top_builddir)/lib'
GLIBJ_CLASSPATH=asm:$(ANTLR_CLASSPATH)
# Setup the compiler to use the GNU Classpath library we just built.
+
+# source, target and classpath options
+GCJ_OPTS = -fsource=1.5 -ftarget=1.5 --encoding=UTF-8 --bootclasspath=$(GLIBJ_BOOTCLASSPATH) --classpath=$(GLIBJ_CLASSPATH)
+ECJ_OPTS = -source 1.5 -target 1.5 -encoding UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath $(GLIBJ_CLASSPATH)
+
if GCJ_JAVAC
-JCOMPILER = $(JAVAC) $(JAVACFLAGS) -fsource=1.5 -ftarget=1.5 --encoding=UTF-8 --bootclasspath=$(GLIBJ_BOOTCLASSPATH) --classpath=$(GLIBJ_CLASSPATH)
+JCOMPILER = $(JAVAC) $(JAVACFLAGS) $(GCJ_OPTS)
else
-JCOMPILER = $(JAVAC) $(JAVACFLAGS) -source 1.5 -target 1.5 -encoding UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath $(GLIBJ_CLASSPATH)
+if ECJ_JAVAC
+JCOMPILER = $(JAVAC) $(JAVACFLAGS) $(ECJ_WARNINGS) $(ECJ_OPTS)
+else
+JCOMPILER = $(JAVAC) $(JAVACFLAGS) $(JAVAC_WARNINGS) $(ECJ_OPTS)
+endif
endif
if CREATE_WRAPPERS