Mercurial > hg > octave-nkf
diff configure.ac @ 15625:acf0addfc610
include Octave Forge java package in core Octave
* scripts/java: New directory tree.
* scripts/Makefile.am: Include java/module.mk.
(JAR_FILES): New variable.
(nobase_fcnfile_DATA): Include $(JAR_FILES) in the list.
(all-local): Depend on $(JAR_FILES).
(java/PKG_ADD, java_GEN_FCN_FILES, java/$(octave_dirstamp)):
New rules.
* libinterp/link-deps (LIBOCTINTERP_LINK_DEP): Include $(JAVA_LIBS) in
the list.
* dldfcn/__java__.h, dldfcn/__java__.cc: New files.
* dldfcn/module-files (__java__.cc): New file description.
* doc/interpreter/java.txi: New file.
* doc/interpreter/octave.texi: Include java.texi.
* doc/interpreter/java-images: New directory.
* doc/interpreter/Makefile.am (JAVA_IMAGES): New variable.
(IMAGES): Include $(JAVA_IMAGSES) in the list.
(MUNGED_TEXI_SRC): Include java.texi in the list.
* configure.ac: Check for Java libraries and tools.
Include Java info in the summary message.
* build-aux/common.mk (JAVA_CPPFLAGS, JAVA_LIBS): New variables.
* NEWS: Update.
* contributors.in: Include Martin Hepperle in the list.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Fri, 23 Nov 2012 15:29:13 -0500 |
parents | fcdc284f96ef |
children | e88b31c485c0 |
line wrap: on
line diff
--- a/configure.ac +++ b/configure.ac @@ -738,6 +738,105 @@ AC_SUBST(LLVM_LDFLAGS) AC_SUBST(LLVM_LIBS) +### Check for Java. + +warn_java= + +if test -z "$JAVA_HOME"; then + AC_CHECK_PROG(JAVA, java, java) + AC_CHECK_PROG(JAVAC, javac, javac) + AC_CHECK_PROG(JAR, jar, jar) +else + AC_PATH_PROG(JAVA, java, [], [$JAVA_HOME/bin$PATH_SEPARATOR$PATH]) + AC_PATH_PROG(JAVAC, javac, [], [$JAVA_HOME/bin$PATH_SEPARATOR$PATH]) + AC_PATH_PROG(JAR, jar, [], [$JAVA_HOME/bin$PATH_SEPARATOR$PATH]) +fi +HAVE_JAVA=no +if test -n "$JAVAC" -a -n "$JAR"; then + AC_MSG_CHECKING([for Java version]) + java_version=[`$JAVA -version 2>&1 | sed -n -e 's/^java version[^0-9"]*"\([^"]*\)"/\1/p'`] + AC_MSG_RESULT($java_version) + java_major=[`echo -n $java_version | sed -e 's/^\([0-9][0-9]*\)\.\([0-9][0-9]*\)\..*$/\1/'`] + java_minor=[`echo -n $java_version | sed -e 's/^\([0-9][0-9]*\)\.\([0-9][0-9]*\)\..*$/\2/'`] + if test $java_major -ge 1 -a $java_minor -ge 5; then + case "$canonical_host_type" in + *-msdosmsvc*) + HAVE_JAVA=yes + JAVA_LIBS=-ladvapi32 + ;; + *) + if test -z "$JAVA_HOME"; then + # This is the location of Java on an OS X box. In this + # directory we can find the various versions of a + # JavaVMs. Check for the newest version set the JAVA_HOME + # variable. + if test -d "/System/Library/Frameworks/JavaVM.framework"; then + # Sneak the -framework flag into mkoctfile via LFLAGS + LFLAGS="$LFLAGS -framework JavaVM" + JAVA_TEMP="/System/Library/Frameworks/JavaVM.framework" + JAVA_HOME="${JAVA_TEMP}/Home" + JAVA_ARCH="${JAVA_TEMP}/Libraries/libjvm_compat.dylib" + # According to: + # http://developer.apple.com/unix/crossplatform.html + # you need to explicitely set the include path + JAVA_CPPFLAGS="-I${JAVA_HOME}/include" + HAVE_JAVA=yes + # This is the Debian default path + elif test -d "/usr/lib/jvm/default-java"; then + JAVA_HOME=/usr/lib/jvm/default-java + # This is the path of java 6 on debian + elif test -d "/usr/lib/jvm/java-6-sun"; then + JAVA_HOME=//usr/lib/jvm/java-6-sun + else + JAVA_HOME=/usr/lib/jvm + fi + fi + JAVA_HOME=[`echo -n $JAVA_HOME | sed -e 's|/$||'`] + if test -z "$JAVA_ARCH"; then + if test -d "${JAVA_HOME}/jre/lib/i386"; then + JAVA_ARCH="i386"; + elif test -d "${JAVA_HOME}/jre/lib/amd64"; then + JAVA_ARCH="amd64" + elif test -d "${JAVA_HOME}/jre/lib/mac"; then + JAVA_ARCH="mac" + elif test -d "${JAVA_HOME}/jre/lib/maci"; then + JAVA_ARCH="maci" + elif test -d "${JAVA_HOME}/jre/lib/solaris"; then + JAVA_ARCH="solaris" + elif test -d "${JAVA_HOME}/jre/lib/solarisv9"; then + JAVA_ARCH="solarisv9" + fi + fi + if test -n "$JAVA_ARCH"; then + HAVE_JAVA=yes + case "$canonical_host_type" in + *-mingw* | *-cygwin*) + JAVA_LIBS=-ladvapi32 + JAVA_CPPFLAGS="-I${JAVA_HOME}/include -I${JAVA_HOME}/include/win32" + ;; + *) + JAVA_CPPFLAGS="-I${JAVA_HOME}/include -I${JAVA_HOME}/include/linux" + ;; + esac + fi + ;; + esac + if test "$HAVE_JAVA" = "yes"; then + AC_DEFINE(HAVE_JAVA, 1, + [Define to 1 if Java is available and is at least version 1.5]) + fi + else + warn_java="Java 1.5 or later not found. Octave will not be able to call Java methods." + fi +fi + +AC_SUBST(JAVAC) +AC_SUBST(JAR) +AC_SUBST(JAVA_CPPFLAGS) +AC_SUBST(JAVA_LIBS) +AC_DEFINE_UNQUOTED([JAVA_HOME], ["$JAVA_HOME"], [Java home.]) +AC_DEFINE_UNQUOTED([JAVA_ARCH], ["$JAVA_ARCH"], [Java arch.]) + ### Check for HDF5 library. save_CPPFLAGS="$CPPFLAGS" @@ -2535,6 +2634,10 @@ HDF5 CPPFLAGS: $HDF5_CPPFLAGS HDF5 LDFLAGS: $HDF5_LDFLAGS HDF5 libraries: $HDF5_LIBS + Java arch: $JAVA_ARCH + Java home: $JAVA_HOME + Java CPPFLAGS: $JAVA_CPPFLAGS + Java libraries: $JAVA_LIBS LAPACK libraries: $LAPACK_LIBS LLVM CPPFLAGS: $LLVM_CPPFLAGS LLVM LDFLAGS: $LLVM_LDFLAGS