acjdk.m4
上传用户:shenzhenrh
上传日期:2013-05-12
资源大小:2904k
文件大小:11k
源码类别:

信息检索与抽取

开发平台:

Unix_Linux

  1. AC_DEFUN([vj_FIND_JDK],
  2. [if test -z "$jdkdir" ; then
  3.   test -n "$JAVAC" || AC_PATH_PROG(JAVAC, javac, missing)
  4.   if test $JAVAC != missing; then
  5.     changequote(,)
  6.     jdkdir=`echo $JAVAC | sed -e 's//javac$//' -e 's//[^/][^/]*$//'`
  7.     changequote([,])
  8.   fi
  9. fi
  10. AC_MSG_CHECKING(for JDK)
  11. test -z "$jdkdir" && jdkdir=no
  12. if test $jdkdir = no; then
  13.   AC_MSG_RESULT(no)
  14.   jdkdir=
  15.   JAVASTUBS=
  16.   JAVASWARMSCRIPTS=
  17.   KAWAJAR=
  18. else
  19.   MACOSJAVA=no
  20.   expand_jdkdir=`eval echo $jdkdir`
  21.   USEDOSCLASSPATH=no
  22.   if test $expand_jdkdir = /System/Library/Frameworks/JavaVM.framework; then
  23.     MACOSJAVA=yes
  24.     jdkincludedir=$jdkdir/Headers
  25.     expand_jdkincludedir=$expand_jdkdir/Headers
  26.   elif test $expand_jdkdir = /usr && test -d /usr/include/java; then
  27.     jdkincludedir=$jdkdir/include/java
  28.     expand_jdkincludedir=$expand_jdkdir/include/java
  29.   else
  30.     jdkincludedir=$jdkdir/include
  31.     expand_jdkincludedir=$expand_jdkdir/include
  32.   fi
  33.   JAVASWARM_LIB_NAME=javaswarm
  34.   if test -f $expand_jdkincludedir/jni.h && test ! -f $expand_jdkincludedir/kaffe/jni.h; then
  35.     JAVAINCLUDES="-I$jdkincludedir"
  36.     if test -f $expand_jdkincludedir/linux/jni_md.h; then
  37.       JAVAINCLUDES="$JAVAINCLUDES -I$jdkincludedir/linux"
  38.       if test -d ${expand_jdkdir}/bin/i386/native_threads; then
  39. threads=native
  40.         proc=i386
  41.       # no more bin/i386 as of 1.4.3
  42.       elif test -d ${jdkdir}/jre/lib/i386/native_threads; then 
  43.         threads=native
  44.         JAVACMD="${jdkdir}/jre/bin/java"
  45.       elif test -d ${expand_jdkdir}/bin/linux/native_threads; then # IBMJDK
  46. threads=native
  47.         proc=linux
  48.       elif test -d ${expand_jdkdir}/bin/ppc/native_threads; then
  49.         threads=native
  50.         proc=ppc
  51.       elif test -d ${expand_jdkdir}/bin/ppc/green_threads; then
  52.         threads=green
  53.         proc=ppc
  54.         extra_JAVAENV="_JVM_THREADS_TYPE=green_threads"
  55.       elif test -d ${expand_jdkdir}/bin/i386/green_threads; then
  56.         threads=green
  57.         proc=i386
  58.       else
  59.         AC_MSG_ERROR([Can't find threads])
  60.       fi
  61.     elif test -f $expand_jdkincludedir/solaris/jni_md.h; then
  62.       JAVAINCLUDES="$JAVAINCLUDES -I$jdkincludedir/solaris"
  63.       if test -d ${jdkdir}/bin/sparc/native_threads; then
  64. threads=native
  65.       # no more bin/sparc as of 1.4.3
  66.       elif test -d ${jdkdir}/jre/lib/sparc/native_threads; then 
  67.         threads=native
  68.         JAVACMD="${jdkdir}/jre/bin/java"
  69.       elif test -d ${jdkdir}/bin/sparc/green_threads; then
  70.         threads=green
  71.       else
  72.         AC_MSG_ERROR([Can't find threads])
  73.       fi
  74.       proc=sparc
  75.     elif test -f $expand_jdkincludedir/freebsd/jni_md.h; then
  76.       JAVAINCLUDES="$JAVAINCLUDES -I$jdkincludedir/freebsd"
  77.       threads=green
  78.       proc=i386
  79.     elif test -f $expand_jdkincludedir/irix/jni_md.h; then
  80.       JAVAINCLUDES="$JAVAINCLUDES -I$jdkincludedir/irix"
  81.       threads=green
  82.       proc=mips
  83.       JAVALIBS="${jdkdir}/lib32/${proc}/${threads}_threads"
  84.       JAVACMD="${jdkdir}/bin32/${proc}/${threads}_threads/java"
  85.     elif test -f $expand_jdkincludedir/alpha/jni_md.h; then
  86.       JAVAINCLUDES="$JAVAINCLUDES -I$jdkincludedir/alpha"
  87.       JAVALIBS='${jdkdir}/shlib'
  88.       threads=native
  89.       proc=alpha
  90.     elif test -f $expand_jdkincludedir/hp-ux/jni_md.h; then
  91.       JAVAINCLUDES="$JAVAINCLUDES -I$jdkincludedir/hp-ux"
  92.       if test -d ${expand_jdkdir}/lib/PA_RISC/native_threads; then
  93.         threads=native
  94.       else
  95.         threads=green
  96.       fi
  97.       proc=PA_RISC
  98.     elif test -f $expand_jdkincludedir/winnt/jni_md.h; then
  99.       JAVAINCLUDES="$JAVAINCLUDES -I$jdkincludedir/winnt"
  100.       JAVALIBS=no
  101.       JAVACMD='${jdkdir}/bin/java'
  102.     elif test -f $expand_jdkincludedir/win32/jni_md.h; then
  103.       JAVAINCLUDES="$JAVAINCLUDES -I$jdkincludedir/win32"
  104.       JAVALIBS=no
  105.       JAVACMD='${jdkdir}/bin/java'
  106.     elif test -f $expand_jdkincludedir/NSJavaConfiguration.h; then
  107.       JAVALIBS='${jdkdir}/Libraries'
  108.       JAVACMD='${jdkdir}/Commands/java'
  109.     elif test -d $expand_jdkincludedir/kaffe; then
  110.       JAVAINCLUDES="$JAVAINCLUDES -I$jdkincludedir/kaffe"
  111.       JAVACMD='${jdkdir}/jre/bin/kaffe-bin'
  112.     else
  113.       JAVAINCLUDES="$JAVAINCLUDES -I$jdkincludedir/genunix"
  114.       JAVACMD='${jdkdir}/bin/java'
  115.       threads=green
  116.       proc=$target_cpu
  117.     fi
  118.     if test "$JAVALIBS" = no; then
  119.       JAVALIBS=
  120.     else
  121.       if test -z "$JAVALIBS"; then
  122.         if test -d "${expand_jdkdir}/jre/lib/${proc}"; then
  123.           if test -d "${expand_jdkdir}/jre/lib/${proc}/${threads}_threads"; then
  124.             JAVALIBS="${jdkdir}/jre/lib/${proc}/${threads}_threads"
  125.           fi
  126.           JAVALIBS="${JAVALIBS}:${jdkdir}/jre/lib/${proc}"
  127.           if test -d "${expand_jdkdir}/jre/lib/${proc}/hotspot"; then
  128.             JAVALIBS="${JAVALIBS}:${jdkdir}/jre/lib/${proc}/hotspot"
  129.           elif test -d "${expand_jdkdir}/jre/lib/${proc}/classic"; then
  130.             JAVALIBS="${JAVALIBS}:${jdkdir}/jre/lib/${proc}/classic"
  131.           fi
  132.         elif test -d "${expand_jdkdir}/lib/${proc}/${threads}_threads"; then
  133.           JAVALIBS="${jdkdir}/lib/${proc}/${threads}_threads"
  134.         else
  135.           AC_MSG_ERROR([Cannot find JDK library])
  136.         fi
  137.       fi
  138.     fi
  139.     test -n "$JAVACMD" || JAVACMD="${jdkdir}/jre/bin/${proc}/${threads}_threads/java"
  140.     if test -f ${expand_jdkdir}/jre/lib/rt.jar; then
  141.       JAVACLASSES=${jdkdir}/jre/lib/rt.jar
  142.     elif test -f ${expand_jdkdir}/lib/rt.jar; then
  143.       JAVACLASSES=${jdkdir}/lib/rt.jar
  144.     elif test -f ${expand_jdkdir}/Classes/classes.jar; then
  145.       JAVACLASSES=${jdkdir}/Classes/classes.jar
  146.       javac_default='${jdkdir}/Commands/javac'
  147.       test -n "$JAR" || JAR='${jdkdir}/Commands/jar'
  148.     else
  149.       JAVACLASSES=${jdkdir}/lib/classes.zip
  150.     fi
  151.     if test "$host_os" = cygwin; then
  152.       JAVACLASSESARG="`cygpath -w ${JAVACLASSES}`"
  153.       JAVAENV=
  154.       javac_default=${jdkdir}/bin/javac
  155.       USEDOSCLASSPATH=yes
  156.       JAVASWARM_DLL_ENTRY='__cygwin_noncygwin_dll_entry@12'
  157.     else
  158.       JAVAENV="APPHOME=${jdkdir} $SHLIBPATH_VAR=$JAVALIBS:${$SHLIBPATH_VAR}"
  159.       if test -z "$javac_default"; then
  160.         javac_default='JAVA_HOME=${jdkdir} ${jdkdir}/bin/javac'
  161.       fi
  162.     fi
  163.     JAVAENV="$extra_JAVAENV $JAVAENV"
  164.     JAVA='${JAVAENV} ${JAVACMD}'
  165.     JAVASTUBS_FUNCTION=java-run-all-unicode
  166.     JAVALIBPREFIX=''
  167.     JAVALIBPATH_VAR=
  168.   elif test -f $expand_jdkincludedir/japhar/jni.h; then
  169.     JAVAINCLUDES="-I$jdkincludedir/japhar"
  170.     JAVACLASSES="`$jdkdir/bin/japhar-config info datadir`"
  171.     JAVACMD='${jdkdir}/bin/japhar'
  172.     JAVAENV=''
  173.     JAVA='${JAVACMD}'
  174.     JAVASTUBS_FUNCTION=java-run-all-unicode
  175.     JAVALIBS='${jdkdir}/lib'
  176.     javac_default='${jdkdir}/bin/javac'
  177.     JAVALIBPREFIX=japhar_
  178.     JAVALIBPATH_VAR=
  179.   elif test -f $expand_jdkincludedir/kaffe/jni.h ; then
  180.     JAVAINCLUDES="-I$jdkincludedir/kaffe"
  181.     JAVASWARM_LIB_NAME=kaffeswarm
  182.     if test -x "$expand_jdkdir/bin/kaffe" ; then
  183.       kaffebindir="$expand_jdkdir/bin"
  184.       javac_default='${jdkdir}/bin/javac'
  185.     elif test -x "$expand_jdkdir/lib/kaffe/bin/kaffe"; then
  186.       kaffebindir="$expand_jdkdir/lib/kaffe/bin"
  187.       javac_default='${jdkdir}/lib/kaffe/bin/javac'
  188.     else
  189.       AC_MSG_ERROR([Cannot find kaffe script])
  190.     fi
  191.     kaffe_prefix=`sed -n 's/^prefix="(.*)"/1/p' < $kaffebindir/kaffe`
  192.     kaffe_datadir=`sed -n 's/^: ${KAFFE_CLASSDIR="(.*)"}/1/p' < $kaffebindir/kaffe`
  193.     kaffe_expanded_datadir=`echo $kaffe_datadir | sed  "s,\${prefix},${kaffe_prefix},"`
  194.     jdkdatadir=`eval echo $kaffe_expanded_datadir`
  195.     JAVACLASSES="${jdkdatadir}/Klasses.jar"
  196.     if test "$host_os" = cygwin; then
  197.       JAVACLASSESARG="`cygpath -w ${jdkdatadir}/Klasses.jar`"
  198.       if test -n "$SWARMROOT"; then
  199.         jdkdatadir=`echo $jdkdatadir | sed "s,$SWARMROOT,\${SWARMROOT},g"`
  200.       fi
  201.       USEDOSCLASSPATH=yes
  202.       # ${jdkdir}/lib/kaffe is included so that .la file can be found
  203.       JAVALIBS="${jdkdir}/bin:${jdkdir}/lib/kaffe"
  204.       JAVALIBSARG="`cygpath -w ${expand_jdkdir}/bin`;`cygpath -w ${expand_jdkdir}/lib/kaffe`"
  205.       JAVASWARM_LIB_NAME=libkaffeswarm
  206.       JAVASWARM_DLL_ENTRY='__cygwin_dll_entry@12'
  207.     else
  208.       JAVALIBS='${jdkdir}/lib/kaffe'
  209.       JAVALIBSARG=$JAVALIBS
  210.     fi
  211.     AC_DEFINE(HAVE_KAFFE,1,[defined if Java support using Kaffe is to be provided])
  212.     JAVASTUBS_FUNCTION=java-run-all-literal
  213.     if test -x "${expand_jdkdir}/libexec/Kaffe"; then
  214.       JAVACMD='${jdkdir}/libexec/Kaffe'
  215.     elif test -x "${expand_jdkdir}/lib/kaffe/Kaffe"; then
  216.       JAVACMD='${jdkdir}/lib/kaffe/Kaffe'
  217.     elif test -x "${expand_jdkdir}/lib/kaffe/bin/Kaffe"; then
  218.       JAVACMD='${jdkdir}/lib/kaffe/bin/Kaffe'
  219.     else
  220.       AC_MSG_ERROR([Cannot find Kaffe executable])
  221.     fi
  222.     JAVAENV=''
  223.     JAVA='KAFFELIBRARYPATH="${JAVALIBSARG}" ${JAVACMD}'
  224.     JAVALIBPREFIX=
  225.     JAVALIBPATH_VAR=KAFFELIBRARYPATH
  226.   else
  227.     AC_MSG_ERROR([Please use --with-jdkdir to specify location of JDK.])
  228.   fi
  229.   AC_MSG_RESULT($jdkdir)
  230.   AC_DEFINE(HAVE_JDK,1,[defined if Java support is to be provided])
  231.   JAVASTUBS=stubs
  232.   JAVASWARMSCRIPTS="javaswarm javacswarm"
  233.   if test "$host_os" = cygwin; then
  234.     JAVASWARMSCRIPTS="$JAVASWARMSCRIPTS jdkswarm jdkcswarm"
  235.   fi
  236.   AC_SUBST(JAVASWARM_DLL_ENTRY)
  237.   AC_SUBST(JAVASWARM_LIB_NAME)
  238.   JAVAC=${JAVAC-$javac_default}
  239.   KAWAJAR=kawa-1.6.70.jar
  240. fi 
  241. AC_SUBST(JAVASTUBS)
  242. AC_SUBST(JAVASTUBS_FUNCTION)
  243. AC_SUBST(JAVAINCLUDES)
  244. AC_SUBST(JAVALIBS)
  245. test -n "$JAVALIBSARG" || JAVALIBSARG=$JAVALIBS
  246. AC_SUBST(JAVALIBSARG)
  247. AC_SUBST(JAVALIBPREFIX)
  248. test -n "$JAVALIBPATH_VAR" || JAVALIBPATH_VAR="_JAVASWARM_LIBPATH"
  249. AC_SUBST(JAVALIBPATH_VAR)
  250. AC_SUBST(JAVASWARMSCRIPTS)
  251. AC_SUBST(JAVACLASSES)
  252. test -n "$JAVACLASSESARG" || JAVACLASSESARG=$JAVACLASSES
  253. AC_SUBST(JAVACLASSESARG)
  254. AC_SUBST(USEDOSCLASSPATH)
  255. AC_SUBST(JAVACMD)
  256. AC_SUBST(JAVAENV)
  257. AC_SUBST(JAVA)
  258. if test -n "$JAR"; then
  259.   jar_home=`echo $JAR | sed 's//bin/jar$//'`
  260.   JAR="JAVA_HOME=${jar_home} $JAR"
  261. else
  262.   JAR='JAVA_HOME=${jdkdir} ${jdkdir}/bin/jar'
  263. fi
  264. if test -n "$JAR_CLASSPATH" ; then
  265.   JAR="CLASSPATH=$JAR_CLASSPATH $JAR"
  266. fi
  267. AC_SUBST(JAR)
  268. AC_SUBST(jdkdir)
  269. AC_SUBST(KAWAJAR)
  270. ])
  271. AC_DEFUN([md_CHECK_JNI_H],
  272. [last_cppflags=$CPPFLAGS
  273. CPPFLAGS="$JAVAINCLUDES $CPPFLAGS"
  274. AC_TRY_COMPILE([#include <jni.h>],[],jni_h_works=yes,jni_h_works=no)
  275. CPPFLAGS=$last_cppflags
  276. if test $jni_h_works = no; then
  277.   AC_CHECK_SIZEOF(int, 4)
  278.   AC_CHECK_SIZEOF(long, 4)
  279.   AC_CHECK_SIZEOF(long long, 8)
  280.   if test $ac_cv_sizeof_int = 8; then
  281.     swarm_int64=int
  282.   elif test $ac_cv_sizeof_long = 8; then
  283.     swarm_int64=long
  284.   elif test $ac_cv_sizeof_long_long = 8; then
  285.     swarm_int64='long long'
  286.   else
  287.     AC_MSG_ERROR(Cannot find 8 byte integer for jni.h)
  288.   fi
  289.   CPPFLAGS="$JAVAINCLUDES $CPPFLAGS"
  290.   AC_DEFINE_UNQUOTED(SWARM_INT64, $swarm_int64, [type of integer that is 64 bits])
  291.   AC_TRY_COMPILE([#define __int64 SWARM_INT64
  292. #include <jni.h>],[],AC_DEFINE(JNI_H_NEEDS_INT64,1,[define if __int64 needs to be defined for jni.h]))
  293.   CPPFLAGS=$last_cppflags
  294. fi
  295. ])