comparison configure.ac @ 15736:6faa01ff2967

build: Add --disable-java option to configure (bug #37838). * configure.ac: Use AC_ARG_ENABLE macro to add --disable-java option. Use AC_ARG_VAR to grab JAVA_HOME value from environment if it exists. Set Automake Conditional AMCOND_HAVE_JAVA if Java Interface is being built. * libinterp/dldfcn/__java__.cc: Include <config.h> and wrap file in #ifdef HAVE_JAVA. * scripts/Makefile.am: Use AMCOND_HAVE_JAVA to control building of Java interface.
author Rik <rik@octave.org>
date Thu, 06 Dec 2012 10:37:54 -0800
parents 1090b62af49d
children e340df7b8034
comparison
equal deleted inserted replaced
15735:487ecfde7feb 15736:6faa01ff2967
735 735
736 AC_SUBST(LLVM_CPPFLAGS) 736 AC_SUBST(LLVM_CPPFLAGS)
737 AC_SUBST(LLVM_CXXFLAGS) 737 AC_SUBST(LLVM_CXXFLAGS)
738 AC_SUBST(LLVM_LDFLAGS) 738 AC_SUBST(LLVM_LDFLAGS)
739 AC_SUBST(LLVM_LIBS) 739 AC_SUBST(LLVM_LIBS)
740
741 ### Check for Java.
742
743 warn_java=
744
745 if test -z "$JAVA_HOME"; then
746 AC_CHECK_PROG(JAVA, java, java)
747 AC_CHECK_PROG(JAVAC, javac, javac)
748 AC_CHECK_PROG(JAR, jar, jar)
749 else
750 AC_PATH_PROG(JAVA, java, [], [$JAVA_HOME/bin$PATH_SEPARATOR$PATH])
751 AC_PATH_PROG(JAVAC, javac, [], [$JAVA_HOME/bin$PATH_SEPARATOR$PATH])
752 AC_PATH_PROG(JAR, jar, [], [$JAVA_HOME/bin$PATH_SEPARATOR$PATH])
753 fi
754 HAVE_JAVA=no
755 if test -n "$JAVAC" -a -n "$JAR"; then
756 AC_MSG_CHECKING([for Java version])
757 java_version=[`$JAVA -version 2>&1 | sed -n -e 's/^java version[^0-9"]*"\([^"]*\)"/\1/p'`]
758 AC_MSG_RESULT($java_version)
759 java_major=[`echo $java_version | sed -e 's/^\([0-9][0-9]*\)\.\([0-9][0-9]*\)\..*$/\1/'`]
760 java_minor=[`echo $java_version | sed -e 's/^\([0-9][0-9]*\)\.\([0-9][0-9]*\)\..*$/\2/'`]
761 if test $java_major -ge 1 -a $java_minor -ge 5; then
762 case "$canonical_host_type" in
763 *-msdosmsvc*)
764 HAVE_JAVA=yes
765 JAVA_LIBS=-ladvapi32
766 ;;
767 *)
768 if test -z "$JAVA_HOME"; then
769 # This is the location of Java on an OS X box. In this
770 # directory we can find the various versions of a
771 # JavaVMs. Check for the newest version set the JAVA_HOME
772 # variable.
773 if test -d "/System/Library/Frameworks/JavaVM.framework"; then
774 # Sneak the -framework flag into mkoctfile via LFLAGS
775 LFLAGS="$LFLAGS -framework JavaVM"
776 JAVA_TEMP="/System/Library/Frameworks/JavaVM.framework"
777 JAVA_HOME="${JAVA_TEMP}/Home"
778 JAVA_ARCH="${JAVA_TEMP}/Libraries/libjvm_compat.dylib"
779 JAVA_LIBS="-framework JavaVM"
780 # According to:
781 # http://developer.apple.com/unix/crossplatform.html
782 # you need to explicitely set the include path
783 JAVA_CPPFLAGS="-I${JAVA_HOME}/include"
784 HAVE_JAVA=yes
785 # This is the Debian default path
786 elif test -d "/usr/lib/jvm/default-java"; then
787 JAVA_HOME=/usr/lib/jvm/default-java
788 # This is the path of java 6 on debian
789 elif test -d "/usr/lib/jvm/java-6-sun"; then
790 JAVA_HOME=//usr/lib/jvm/java-6-sun
791 else
792 JAVA_HOME=/usr/lib/jvm
793 fi
794 fi
795 JAVA_HOME=[`echo $JAVA_HOME | sed -e 's|/$||'`]
796 if test -z "$JAVA_ARCH"; then
797 if test -d "${JAVA_HOME}/jre/lib/i386"; then
798 JAVA_ARCH="i386";
799 elif test -d "${JAVA_HOME}/jre/lib/amd64"; then
800 JAVA_ARCH="amd64"
801 elif test -d "${JAVA_HOME}/jre/lib/mac"; then
802 JAVA_ARCH="mac"
803 elif test -d "${JAVA_HOME}/jre/lib/maci"; then
804 JAVA_ARCH="maci"
805 elif test -d "${JAVA_HOME}/jre/lib/solaris"; then
806 JAVA_ARCH="solaris"
807 elif test -d "${JAVA_HOME}/jre/lib/solarisv9"; then
808 JAVA_ARCH="solarisv9"
809 fi
810 fi
811 if test -n "$JAVA_ARCH"; then
812 HAVE_JAVA=yes
813 case "$canonical_host_type" in
814 *-mingw* | *-cygwin*)
815 JAVA_LIBS=-ladvapi32
816 JAVA_CPPFLAGS="-I${JAVA_HOME}/include -I${JAVA_HOME}/include/win32"
817 ;;
818 *)
819 JAVA_CPPFLAGS="-I${JAVA_HOME}/include -I${JAVA_HOME}/include/linux"
820 ;;
821 esac
822 fi
823 ;;
824 esac
825 if test "$HAVE_JAVA" = "yes"; then
826 AC_DEFINE(HAVE_JAVA, 1,
827 [Define to 1 if Java is available and is at least version 1.5])
828 fi
829 else
830 warn_java="Java 1.5 or later not found. Octave will not be able to call Java methods."
831 fi
832 fi
833
834 AC_SUBST(JAVAC)
835 AC_SUBST(JAR)
836 AC_SUBST(JAVA_CPPFLAGS)
837 AC_SUBST(JAVA_LIBS)
838 AC_DEFINE_UNQUOTED([JAVA_HOME], ["$JAVA_HOME"], [Java home.])
839 AC_DEFINE_UNQUOTED([JAVA_ARCH], ["$JAVA_ARCH"], [Java arch.])
840 740
841 ### Check for HDF5 library. 741 ### Check for HDF5 library.
842 742
843 save_CPPFLAGS="$CPPFLAGS" 743 save_CPPFLAGS="$CPPFLAGS"
844 save_LIBS="$LIBS" 744 save_LIBS="$LIBS"
2283 fi 2183 fi
2284 2184
2285 AC_SUBST(WARN_CFLAGS) 2185 AC_SUBST(WARN_CFLAGS)
2286 AC_SUBST(WARN_CXXFLAGS) 2186 AC_SUBST(WARN_CXXFLAGS)
2287 2187
2188 ### Check for Java.
2189
2190 build_java=true
2191 AC_ARG_ENABLE([java],
2192 [AS_HELP_STRING([--disable-java],
2193 [disable Java interface])],
2194 [if test "$enableval" = no; then
2195 build_java=false
2196 fi],
2197 [])
2198
2199 HAVE_JAVA=no
2200 ## Grab JAVA_HOME from environment variable if it exists
2201 AC_ARG_VAR([JAVA_HOME], [path to Java installation])
2202 JAVA_ARCH=
2203 JAVAC=
2204 JAR=
2205 JAVA_CPPFLAGS=
2206 JAVA_LIBS=
2207
2208 if test $build_java = true; then
2209
2210 warn_java=
2211
2212 if test -z "$JAVA_HOME"; then
2213 AC_CHECK_PROG(JAVA, java, java)
2214 AC_CHECK_PROG(JAVAC, javac, javac)
2215 AC_CHECK_PROG(JAR, jar, jar)
2216 else
2217 AC_PATH_PROG(JAVA, java, [], [$JAVA_HOME/bin$PATH_SEPARATOR$PATH])
2218 AC_PATH_PROG(JAVAC, javac, [], [$JAVA_HOME/bin$PATH_SEPARATOR$PATH])
2219 AC_PATH_PROG(JAR, jar, [], [$JAVA_HOME/bin$PATH_SEPARATOR$PATH])
2220 fi
2221 if test -n "$JAVAC" -a -n "$JAR"; then
2222 AC_MSG_CHECKING([for Java version])
2223 java_version=[`$JAVA -version 2>&1 | sed -n -e 's/^java version[^0-9"]*"\([^"]*\)"/\1/p'`]
2224 AC_MSG_RESULT($java_version)
2225 java_major=[`echo $java_version | sed -e 's/^\([0-9][0-9]*\)\.\([0-9][0-9]*\)\..*$/\1/'`]
2226 java_minor=[`echo $java_version | sed -e 's/^\([0-9][0-9]*\)\.\([0-9][0-9]*\)\..*$/\2/'`]
2227 if test $java_major -ge 1 -a $java_minor -ge 5; then
2228 case "$canonical_host_type" in
2229 *-msdosmsvc*)
2230 HAVE_JAVA=yes
2231 JAVA_LIBS=-ladvapi32
2232 ;;
2233 *)
2234 if test -z "$JAVA_HOME"; then
2235 # This is the location of Java on an OS X box. In this
2236 # directory we can find the various versions of a
2237 # JavaVMs. Check for the newest version set the JAVA_HOME
2238 # variable.
2239 if test -d "/System/Library/Frameworks/JavaVM.framework"; then
2240 # Sneak the -framework flag into mkoctfile via LFLAGS
2241 LFLAGS="$LFLAGS -framework JavaVM"
2242 JAVA_TEMP="/System/Library/Frameworks/JavaVM.framework"
2243 JAVA_HOME="${JAVA_TEMP}/Home"
2244 JAVA_ARCH="${JAVA_TEMP}/Libraries/libjvm_compat.dylib"
2245 JAVA_LIBS="-framework JavaVM"
2246 # According to:
2247 # http://developer.apple.com/unix/crossplatform.html
2248 # you need to explicitly set the include path
2249 JAVA_CPPFLAGS="-I${JAVA_HOME}/include"
2250 HAVE_JAVA=yes
2251 # This is the Debian default path
2252 elif test -d "/usr/lib/jvm/default-java"; then
2253 JAVA_HOME=/usr/lib/jvm/default-java
2254 # This is the path of java 6 on debian
2255 elif test -d "/usr/lib/jvm/java-6-sun"; then
2256 JAVA_HOME=//usr/lib/jvm/java-6-sun
2257 else
2258 JAVA_HOME=/usr/lib/jvm
2259 fi
2260 fi
2261 JAVA_HOME=[`echo $JAVA_HOME | sed -e 's|/$||'`]
2262 if test -z "$JAVA_ARCH"; then
2263 if test -d "${JAVA_HOME}/jre/lib/i386"; then
2264 JAVA_ARCH="i386";
2265 elif test -d "${JAVA_HOME}/jre/lib/amd64"; then
2266 JAVA_ARCH="amd64"
2267 elif test -d "${JAVA_HOME}/jre/lib/mac"; then
2268 JAVA_ARCH="mac"
2269 elif test -d "${JAVA_HOME}/jre/lib/maci"; then
2270 JAVA_ARCH="maci"
2271 elif test -d "${JAVA_HOME}/jre/lib/solaris"; then
2272 JAVA_ARCH="solaris"
2273 elif test -d "${JAVA_HOME}/jre/lib/solarisv9"; then
2274 JAVA_ARCH="solarisv9"
2275 fi
2276 fi
2277 if test -n "$JAVA_ARCH"; then
2278 HAVE_JAVA=yes
2279 case "$canonical_host_type" in
2280 *-mingw* | *-cygwin*)
2281 JAVA_LIBS=-ladvapi32
2282 JAVA_CPPFLAGS="-I${JAVA_HOME}/include -I${JAVA_HOME}/include/win32"
2283 ;;
2284 *)
2285 JAVA_CPPFLAGS="-I${JAVA_HOME}/include -I${JAVA_HOME}/include/linux"
2286 ;;
2287 esac
2288 fi
2289 ;;
2290 esac
2291 if test "$HAVE_JAVA" = "yes"; then
2292 AC_DEFINE(HAVE_JAVA, 1,
2293 [Define to 1 if Java is available and is at least version 1.5])
2294 fi
2295 else
2296 warn_java="Java 1.5 or later not found. Octave will not be able to call Java methods."
2297 fi
2298 fi
2299 fi
2300
2301 ## For later reporting in configure summary
2302 if test $HAVE_JAVA = no; then
2303 build_java=false
2304 fi
2305 AM_CONDITIONAL([AMCOND_HAVE_JAVA], [test $HAVE_JAVA = yes])
2306 AC_SUBST(JAVAC)
2307 AC_SUBST(JAR)
2308 AC_SUBST(JAVA_CPPFLAGS)
2309 AC_SUBST(JAVA_LIBS)
2310 AC_DEFINE_UNQUOTED([JAVA_HOME], ["$JAVA_HOME"], [Java home.])
2311 AC_DEFINE_UNQUOTED([JAVA_ARCH], ["$JAVA_ARCH"], [Java arch.])
2312
2288 ### GUI/Qt related tests. 2313 ### GUI/Qt related tests.
2289 2314
2290 HAVE_QT=false 2315 HAVE_QT=false
2291 QT_CPPFLAGS= 2316 QT_CPPFLAGS=
2292 QT_LDFLAGS= 2317 QT_LDFLAGS=
2642 graphics CFLAGS: $GRAPHICS_CFLAGS 2667 graphics CFLAGS: $GRAPHICS_CFLAGS
2643 graphics libraries: $GRAPHICS_LIBS 2668 graphics libraries: $GRAPHICS_LIBS
2644 HDF5 CPPFLAGS: $HDF5_CPPFLAGS 2669 HDF5 CPPFLAGS: $HDF5_CPPFLAGS
2645 HDF5 LDFLAGS: $HDF5_LDFLAGS 2670 HDF5 LDFLAGS: $HDF5_LDFLAGS
2646 HDF5 libraries: $HDF5_LIBS 2671 HDF5 libraries: $HDF5_LIBS
2672 Java home: $JAVA_HOME
2647 Java arch: $JAVA_ARCH 2673 Java arch: $JAVA_ARCH
2648 Java home: $JAVA_HOME
2649 Java CPPFLAGS: $JAVA_CPPFLAGS 2674 Java CPPFLAGS: $JAVA_CPPFLAGS
2650 Java libraries: $JAVA_LIBS 2675 Java libraries: $JAVA_LIBS
2651 LAPACK libraries: $LAPACK_LIBS 2676 LAPACK libraries: $LAPACK_LIBS
2652 LLVM CPPFLAGS: $LLVM_CPPFLAGS 2677 LLVM CPPFLAGS: $LLVM_CPPFLAGS
2653 LLVM LDFLAGS: $LLVM_LDFLAGS 2678 LLVM LDFLAGS: $LLVM_LDFLAGS
2682 Default pager: $DEFAULT_PAGER 2707 Default pager: $DEFAULT_PAGER
2683 gnuplot: $GNUPLOT 2708 gnuplot: $GNUPLOT
2684 2709
2685 Build Octave GUI: $build_gui 2710 Build Octave GUI: $build_gui
2686 JIT compiler for loops: $build_jit 2711 JIT compiler for loops: $build_jit
2712 Build Java interface: $build_java
2687 Do internal array bounds checking: $BOUNDS_CHECKING 2713 Do internal array bounds checking: $BOUNDS_CHECKING
2688 Use octave_allocator: $USE_OCTAVE_ALLOCATOR 2714 Use octave_allocator: $USE_OCTAVE_ALLOCATOR
2689 Build static libraries: $STATIC_LIBS 2715 Build static libraries: $STATIC_LIBS
2690 Build shared libraries: $SHARED_LIBS 2716 Build shared libraries: $SHARED_LIBS
2691 Dynamic Linking: $ENABLE_DYNAMIC_LINKING $DL_API_MSG 2717 Dynamic Linking: $ENABLE_DYNAMIC_LINKING $DL_API_MSG