You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

133 lines
4.0 KiB

24 years ago
24 years ago
24 years ago
24 years ago
24 years ago
  1. dnl
  2. dnl $Id$
  3. dnl
  4. PHP_ARG_WITH(java, for JAVA support,
  5. [ --with-java[=DIR] Include Java support. DIR is the JDK base install directory.
  6. This extension is always built as shared.])
  7. if test "$PHP_JAVA" != "no"; then
  8. pltform=`uname -s 2>/dev/null`
  9. java_libext=libjava.so
  10. case $pltform in
  11. AIX) java_libext=libjava.a ;;
  12. HP-UX) java_libext=libjava.sl ;;
  13. esac
  14. if test "$PHP_JAVA" = "yes"; then
  15. if JAVA_JAR=`which jar 2>/dev/null`; then
  16. JAVA_JAR="$JAVA_JAR cf"
  17. else
  18. JAVA_JAR=
  19. fi
  20. PHP_JAVAC=`which javac`
  21. if test -z "$PHP_JAVAC"; then
  22. AC_MSG_ERROR([Unable to locate the javac binary in your system path
  23. Either adjust your Java installation or provide the Java installation path,
  24. e.g. --with-java=/java expecting /java/bin/ to contain the binaries])
  25. fi
  26. PHP_JAVA=`cd \`dirname \\\`which javac\\\`\`/..;pwd`
  27. else
  28. test -x $PHP_JAVA/bin/jar && JAVA_JAR="$PHP_JAVA/bin/jar cf"
  29. fi
  30. # substitute zip for systems which don't have jar
  31. if test -z "$JAVA_JAR"; then
  32. JAVA_JAR='zip -q0'
  33. fi
  34. if test -x $PHP_JAVA/bin/javac; then
  35. JAVA_C=$PHP_JAVA/bin/javac
  36. else
  37. AC_MSG_ERROR([Can not find the javac binary under $PHP_JAVA/bin/])
  38. fi
  39. if test -d $PHP_JAVA/lib/kaffe; then
  40. PHP_ADD_LIBPATH($PHP_JAVA/lib)
  41. JAVA_CFLAGS=-DKAFFE
  42. JAVA_INCLUDE=-I$PHP_JAVA/include/kaffe
  43. JAVA_CLASSPATH=$PHP_JAVA/share/kaffe/Klasses.jar
  44. JAVA_LIB=kaffevm
  45. JAVA_LIBPATH=$PHP_JAVA/lib/kaffe
  46. java_libext=kaffevm
  47. test -f $PHP_JAVA/lib/$JAVA_LIB && JAVA_LIBPATH=$PHP_JAVA/lib
  48. test -f $PHP_JAVA/lib/kaffe/$JAVA_LIB && JAVA_LIBPATH=$PHP_JAVA/lib/kaffe
  49. # accomodate old versions of kaffe which don't support jar
  50. if kaffe -version 2>&1 | grep 1.0b > /dev/null; then
  51. JAVA_JAR='zip -q0'
  52. fi
  53. elif test -f $PHP_JAVA/lib/$java_libext; then
  54. JAVA_LIB=java
  55. JAVA_LIBPATH=$PHP_JAVA/lib
  56. JAVA_INCLUDE=-I$PHP_JAVA/include
  57. test -f $PHP_JAVA/lib/classes.zip && JAVA_CFLAGS=-DJNI_11
  58. test -f $PHP_JAVA/lib/jvm.jar && JAVA_CFLAGS=-DJNI_12
  59. test -f $PHP_JAVA/lib/classes.zip && JAVA_CLASSPATH=$PHP_JAVA/lib/classes.zip
  60. test -f $PHP_JAVA/lib/jvm.jar && JAVA_CLASSPATH=$PHP_JAVA/lib/jvm.jar
  61. for i in $PHP_JAVA/include/*; do
  62. test -f $i/jni_md.h && JAVA_INCLUDE="$JAVA_INCLUDE $i"
  63. done
  64. else
  65. for i in `find $PHP_JAVA/include -type d`; do
  66. test -f $i/jni.h && JAVA_INCLUDE=-I$i
  67. test -f $i/jni_md.h && JAVA_INCLUDE="$JAVA_INCLUDE -I$i"
  68. done
  69. for i in `find $PHP_JAVA/. -type d`; do
  70. test -f $i/classes.zip && JAVA_CFLAGS=-DJNI_11
  71. test -f $i/rt.jar && JAVA_CFLAGS=-DJNI_12
  72. test -f $i/classes.zip && JAVA_CLASSPATH=$i/classes.zip
  73. test -f $i/rt.jar && JAVA_CLASSPATH=$i/rt.jar
  74. if test -f $i/$java_libext; then
  75. JAVA_LIB=java
  76. JAVA_LIBPATH=$i
  77. test -d $i/hotspot && PHP_ADD_LIBPATH($i/hotspot)
  78. test -d $i/classic && PHP_ADD_LIBPATH($i/classic)
  79. test -d $i/server && PHP_ADD_LIBPATH($i/server)
  80. test -d $i/native_threads && PHP_ADD_LIBPATH($i/native_threads)
  81. fi
  82. done
  83. if test -z "$JAVA_INCLUDE"; then
  84. AC_MSG_RESULT(no)
  85. AC_MSG_ERROR(unable to find Java VM libraries)
  86. fi
  87. JAVA_CFLAGS="$JAVA_CFLAGS -D_REENTRANT"
  88. fi
  89. AC_DEFINE(HAVE_JAVA,1,[ ])
  90. if test -z "$JAVA_LIBPATH"; then
  91. AC_MSG_ERROR(unable to find Java VM libraries)
  92. fi
  93. PHP_ADD_LIBPATH($JAVA_LIBPATH)
  94. JAVA_CFLAGS="$JAVA_CFLAGS '-DJAVALIB=\"$JAVA_LIBPATH/$java_libext\"'"
  95. if test "$PHP_SAPI" != "servlet"; then
  96. PHP_NEW_EXTENSION(java, java.c, shared,, $JAVA_CFLAGS $JAVA_INCLUDE)
  97. if test "$PHP_SAPI" = "cgi"; then
  98. PHP_ADD_LIBRARY($JAVA_LIB)
  99. fi
  100. INSTALL_IT="$INSTALL_IT; \$(srcdir)/build/shtool mkdir -p -f -m 0755 \$(INSTALL_ROOT)\$(libdir)"
  101. INSTALL_IT="$INSTALL_IT; \$(INSTALL) -m 0755 \$(srcdir)/ext/java/php_java.jar \$(INSTALL_ROOT)\$(libdir)"
  102. fi
  103. PHP_SUBST(JAVA_CLASSPATH)
  104. PHP_SUBST(JAVA_JAR)
  105. PHP_SUBST(JAVA_C)
  106. PHP_ADD_MAKEFILE_FRAGMENT
  107. fi