2001-11-30 19:00:13 +00:00
|
|
|
dnl
|
|
|
|
dnl $Id$
|
|
|
|
dnl
|
2002-08-11 15:33:25 +00:00
|
|
|
AC_DEFUN(JAVA_FIND_JAR, [
|
|
|
|
AC_MSG_CHECKING([Java Jar location])
|
2002-04-21 02:50:38 +00:00
|
|
|
if test "$PHP_JAVA" = "yes"; then
|
2002-04-14 00:40:36 +00:00
|
|
|
if JAVA_JAR=`which jar 2>/dev/null`; then
|
|
|
|
JAVA_JAR="$JAVA_JAR cf"
|
|
|
|
else
|
|
|
|
JAVA_JAR=
|
|
|
|
fi
|
2002-08-19 21:49:37 +00:00
|
|
|
PHP_JAVA=`cd \`dirname \\\`which javac\\\`\`/..;pwd`
|
2002-08-11 15:33:25 +00:00
|
|
|
|
|
|
|
dnl
|
|
|
|
dnl substitue zip for systems which don't have jar
|
|
|
|
dnl
|
|
|
|
if test -z "$JAVA_JAR"; then
|
|
|
|
JAVA_JAR='zip -q0'
|
2002-05-11 03:11:46 +00:00
|
|
|
fi
|
2002-08-14 14:36:08 +00:00
|
|
|
else
|
2002-08-21 01:41:22 +00:00
|
|
|
dnl
|
|
|
|
dnl we have a custom path defined so use it
|
|
|
|
dnl
|
2002-08-14 17:04:05 +00:00
|
|
|
if test -x $PHP_JAVA/bin/jar; then
|
2002-08-14 16:53:49 +00:00
|
|
|
JAVA_JAR="$PHP_JAVA/bin/jar cf"
|
2002-08-14 14:36:08 +00:00
|
|
|
else
|
|
|
|
AC_MSG_ERROR([Unable to locate $PHP_JAVA/bin])
|
|
|
|
fi
|
2002-08-11 15:33:25 +00:00
|
|
|
fi
|
2002-08-14 14:36:08 +00:00
|
|
|
PHP_SUBST(JAVA_JAR)
|
2002-08-14 14:37:04 +00:00
|
|
|
AC_MSG_RESULT([$JAVA_JAR])
|
2002-08-11 15:33:25 +00:00
|
|
|
])
|
|
|
|
|
|
|
|
AC_DEFUN(JAVA_FIND_C, [
|
|
|
|
AC_MSG_CHECKING([Java C location])
|
2002-08-21 01:41:22 +00:00
|
|
|
if test "$PHP_JAVA" = "yes"; then
|
|
|
|
JAVA_C=`which javac`
|
|
|
|
else
|
|
|
|
dnl
|
|
|
|
dnl We've been given a path to use, so use it
|
|
|
|
dnl
|
|
|
|
if test -x $PHP_JAVA/bin/javac; then
|
|
|
|
JAVA_C=$PHP_JAVA/bin/javac
|
|
|
|
else
|
|
|
|
AC_MSG_ERROR([Unable to locate $PHP_JAVA/bin])
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
if test -z "$JAVA_C"; then
|
|
|
|
AC_MSG_ERROR([Unable to locate the javac binary in your system path
|
2002-08-11 15:33:25 +00:00
|
|
|
Either adjust your Java installation or provide the Java installation path,
|
|
|
|
e.g. --with-java=/java expecting /java/bin/ to contain the binaries])
|
2002-03-31 15:41:24 +00:00
|
|
|
fi
|
2000-01-28 10:53:06 +00:00
|
|
|
|
2002-08-11 15:33:25 +00:00
|
|
|
PHP_SUBST(JAVA_C)
|
2002-08-14 15:29:48 +00:00
|
|
|
AC_MSG_RESULT([$JAVA_C])
|
2002-08-11 15:33:25 +00:00
|
|
|
])
|
|
|
|
|
|
|
|
AC_DEFUN(JAVA_CHECK_LIB, [
|
|
|
|
AC_MSG_CHECKING([Checking for libjava])
|
|
|
|
if test -d $PHP_JAVA/lib/kaffe; then
|
|
|
|
PHP_ADD_LIBPATH($PHP_JAVA/lib)
|
|
|
|
JAVA_CFLAGS=-DKAFFE
|
|
|
|
JAVA_INCLUDE=-I$PHP_JAVA/include/kaffe
|
|
|
|
JAVA_CLASSPATH=$PHP_JAVA/share/kaffe/Klasses.jar
|
|
|
|
JAVA_LIB=kaffevm
|
|
|
|
JAVA_LIBPATH=$PHP_JAVA/lib/kaffe
|
|
|
|
java_libext=kaffevm
|
|
|
|
|
|
|
|
test -f $PHP_JAVA/lib/$JAVA_LIB && JAVA_LIBPATH=$PHP_JAVA/lib
|
|
|
|
test -f $PHP_JAVA/lib/kaffe/$JAVA_LIB && JAVA_LIBPATH=$PHP_JAVA/lib/kaffe
|
|
|
|
|
|
|
|
dnl
|
|
|
|
dnl accomodate old versions of kaffe which don't support jar
|
|
|
|
dnl
|
|
|
|
if kaffe -version 2>&1 | grep 1.0b > /dev/null; then
|
|
|
|
JAVA_JAR='zip -q0'
|
|
|
|
fi
|
|
|
|
elif test -f $PHP_JAVA/lib/$java_libext; then
|
|
|
|
JAVA_LIB=java
|
|
|
|
JAVA_LIBPATH=$PHP_JAVA/lib
|
|
|
|
JAVA_INCLUDE=-I$PHP_JAVA/include
|
|
|
|
|
|
|
|
test -f $PHP_JAVA/lib/classes.zip && JAVA_CFLAGS=-DJNI_11
|
|
|
|
test -f $PHP_JAVA/lib/jvm.jar && JAVA_CFLAGS=-DJNI_12
|
|
|
|
test -f $PHP_JAVA/lib/classes.zip && JAVA_CLASSPATH=$PHP_JAVA/lib/classes.zip
|
|
|
|
test -f $PHP_JAVA/lib/jvm.jar && JAVA_CLASSPATH=$PHP_JAVA/lib/jvm.jar
|
|
|
|
|
|
|
|
for i in $PHP_JAVA/include/*; do
|
|
|
|
test -f $i/jni_md.h && JAVA_INCLUDE="$JAVA_INCLUDE $i"
|
|
|
|
done
|
2002-08-14 17:49:41 +00:00
|
|
|
dnl
|
|
|
|
dnl sample JDK v 1.4 path
|
|
|
|
dnl /usr/java/j2sdk1.4.0_01/jre/lib/i386/libjava.so
|
|
|
|
dnl
|
2002-08-11 15:33:25 +00:00
|
|
|
else
|
|
|
|
dnl
|
|
|
|
dnl We have to find everything
|
|
|
|
dnl
|
|
|
|
for i in `find $PHP_JAVA/include -type d`; do
|
2003-01-12 08:03:18 +00:00
|
|
|
test -f $i/jni.h && JAVA_INCLUDE="$JAVA_INCLUDE -I$i"
|
2002-08-14 16:01:13 +00:00
|
|
|
test -f $i/jni_md.h && JAVA_INCLUDE="$JAVA_INCLUDE -I$i"
|
2002-08-11 15:33:25 +00:00
|
|
|
done
|
|
|
|
|
2002-11-29 13:30:29 +00:00
|
|
|
for i in `find $PHP_JAVA/ -type d`; do
|
2002-08-11 15:33:25 +00:00
|
|
|
test -f $i/classes.zip && JAVA_CFLAGS=-DJNI_11
|
|
|
|
test -f $i/rt.jar && JAVA_CFLAGS=-DJNI_12
|
|
|
|
test -f $i/classes.zip && JAVA_CLASSPATH=$i/classes.zip
|
|
|
|
test -f $i/rt.jar && JAVA_CLASSPATH=$i/rt.jar
|
|
|
|
|
|
|
|
if test -f $i/$java_libext; then
|
|
|
|
JAVA_LIB=java
|
|
|
|
JAVA_LIBPATH=$i
|
|
|
|
|
|
|
|
test -d $i/hotspot && PHP_ADD_LIBPATH($i/hotspot)
|
|
|
|
test -d $i/classic && PHP_ADD_LIBPATH($i/classic)
|
|
|
|
test -d $i/server && PHP_ADD_LIBPATH($i/server)
|
|
|
|
test -d $i/native_threads && PHP_ADD_LIBPATH($i/native_threads)
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
|
|
|
if test -z "$JAVA_INCLUDE"; then
|
|
|
|
AC_MSG_RESULT(no)
|
2002-08-14 17:49:41 +00:00
|
|
|
AC_MSG_ERROR(unable to find Java VM includes)
|
2002-08-11 15:33:25 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
JAVA_CFLAGS="$JAVA_CFLAGS -D_REENTRANT"
|
|
|
|
fi
|
2002-08-19 21:49:37 +00:00
|
|
|
|
|
|
|
AC_MSG_RESULT([$JAVA_LIBPATH])
|
2002-08-11 15:33:25 +00:00
|
|
|
])
|
|
|
|
|
|
|
|
|
|
|
|
PHP_ARG_WITH(java, for Java support,
|
|
|
|
[ --with-java[=DIR] Include Java support. DIR is the JDK base install directory.
|
|
|
|
This extension is always built as shared.])
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
|
2002-08-11 15:33:25 +00:00
|
|
|
if test "$PHP_JAVA" != "no"; then
|
|
|
|
platform=`uname -s 2>/dev/null`
|
|
|
|
java_libext=libjava.so
|
|
|
|
case $platform in
|
|
|
|
AIX) java_libext=libjava.a ;;
|
|
|
|
HP-UX) java_libext=libjava.sl ;;
|
|
|
|
Darwin) java_libext=libjava.jnilib ;;
|
|
|
|
esac
|
|
|
|
JAVA_FIND_JAR()
|
|
|
|
JAVA_FIND_C()
|
2002-03-31 15:41:24 +00:00
|
|
|
|
2002-08-11 15:33:25 +00:00
|
|
|
if test "$platform" = "Darwin"; then
|
|
|
|
AC_CHECK_HEADERS([JavaVM/JavaVM.h])
|
|
|
|
AC_CHECK_HEADERS([JavaVM/jni.h])
|
2002-08-21 01:41:22 +00:00
|
|
|
dnl JAVA_CLASSPATH=/System/Library/Frameworks/JavaVM.framework/Classes/classes.jar
|
2002-08-11 15:33:25 +00:00
|
|
|
PHP_CHECK_FRAMEWORK("JavaVM", JNI_CreateJavaVM,[AC_DEFINE(HAVE_JAVA,1,[ ])])
|
|
|
|
PHP_ADD_FRAMEWORK("JavaVM")
|
2002-08-21 01:41:22 +00:00
|
|
|
JAVA_CFLAGS="-x objective-c"
|
2002-03-31 15:41:24 +00:00
|
|
|
else
|
2002-08-11 15:33:25 +00:00
|
|
|
JAVA_CHECK_LIB()
|
|
|
|
AC_DEFINE(HAVE_JAVA,1,[ ])
|
2002-03-31 15:41:24 +00:00
|
|
|
|
2002-08-11 15:33:25 +00:00
|
|
|
if test -z "$JAVA_LIBPATH"; then
|
2002-08-14 17:49:41 +00:00
|
|
|
AC_MSG_ERROR([unable to find Java VM libraries in $PHP_JAVA])
|
2001-09-10 16:59:31 +00:00
|
|
|
fi
|
2000-03-25 15:57:04 +00:00
|
|
|
|
2002-08-11 15:33:25 +00:00
|
|
|
PHP_ADD_LIBPATH($JAVA_LIBPATH)
|
|
|
|
JAVA_CFLAGS="$JAVA_CFLAGS '-DJAVALIB=\"$JAVA_LIBPATH/$java_libext\"'"
|
2002-03-31 15:41:24 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
if test "$PHP_SAPI" != "servlet"; then
|
|
|
|
PHP_NEW_EXTENSION(java, java.c, shared,, $JAVA_CFLAGS $JAVA_INCLUDE)
|
|
|
|
|
|
|
|
if test "$PHP_SAPI" = "cgi"; then
|
2002-08-11 15:33:25 +00:00
|
|
|
if test "$platform" != "Darwin"; then
|
|
|
|
PHP_ADD_LIBRARY($JAVA_LIB)
|
|
|
|
fi
|
2000-04-01 16:21:55 +00:00
|
|
|
fi
|
2000-03-13 01:11:36 +00:00
|
|
|
|
2002-03-31 15:41:24 +00:00
|
|
|
INSTALL_IT="$INSTALL_IT; \$(srcdir)/build/shtool mkdir -p -f -m 0755 \$(INSTALL_ROOT)\$(libdir)"
|
|
|
|
INSTALL_IT="$INSTALL_IT; \$(INSTALL) -m 0755 \$(srcdir)/ext/java/php_java.jar \$(INSTALL_ROOT)\$(libdir)"
|
@ Added Zend OO syntax overloading support for Java components
#
# My lawyer made me do this:
#
Users of PHP are hereby granted a non-exclusive, irrevocable, world-wide,
royalty-free, non-transferable license to use, execute, prepare derivative
works of, and distribute (internally and externally, and including derivative
works) the code accompanying this license as part of, and integrated into PHP.
WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
AND ANY WARRANTY OF NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE
OR PERFORMANCE OF THIS CODE REMAINS WITH USERS OF PHP. The owner of this code
represents and warrants that it is legally entitled to grant the above license.
1999-11-09 12:02:22 +00:00
|
|
|
fi
|
2002-03-31 15:41:24 +00:00
|
|
|
|
|
|
|
PHP_SUBST(JAVA_CLASSPATH)
|
2003-01-12 08:03:18 +00:00
|
|
|
PHP_SUBST(JAVA_INCLUDE)
|
|
|
|
PHP_SUBST(JAVA_CFLAGS)
|
2002-03-31 15:41:24 +00:00
|
|
|
|
|
|
|
PHP_ADD_MAKEFILE_FRAGMENT
|
|
|
|
fi
|
|
|
|
|