📄 aclocal_java.m4
字号:
dnldnl (C) 2001 by Argonne National Laboratorydnl See COPYRIGHT in top-level directory.dnldnl @author Anthony Chandnldnl-------------------------------------------------------------------------dnl JAC_TRY_COMPILE - test the compilation of java programdnldnl JAC_TRY_COMPILE( JC, JFLAGS, IMPORTS, PROGRAM-BODYdnl [, ACTION-IF-WORKING [ , ACTION-IF-NOT-WORKING ] ] )dnl JC - java compilerdnl JFLAGS - java compiler flags, like options: -d and -classpath, ...dnl IMPORTS - java import statements, besides top level "class" statementdnl PROGRAM_BODY - java program bodydnlAC_DEFUN(JAC_TRY_COMPILE,[dnl - set internal JC and JFLAGS variablesjac_JC="$1"jac_JFLAGS="$2"dnl - set the testing java programchangequote(,) rm -f conftest* cat > conftest.java <<EOF$3class conftest {$4}EOFchangequote([,])dnl jac_compile='${jac_JC} ${jac_JFLAGS} conftest.java 1>&AC_FD_CC' if AC_TRY_EVAL(jac_compile) && test -s conftest.class ; then ifelse([$5],,:,[rm -rf conftest* ; $5]) else ifelse([$6],,:,[rm -rf conftest* ; $6]) fi])dnldnldnl JAC_TRY_RMIC - test the rmic programdnldnl JAC_TRY_RMIC( RMIC, JRFLAGS, JC, JFLAGSdnl [, ACTION-IF-WORKING [ , ACTION-IF-NOT-WORKING ] ] )dnl RMIC - rmic compilerdnl JRFLAGS - rmic compiler flags, like options: -d and -classpath, ...dnl JC - java compilerdnl JFLAGS - java compiler flags, like options: -d and -classpath, ...dnlAC_DEFUN(JAC_TRY_RMIC,[dnl - set internal RMIC and JRFLAGS variablesjac_RMIC="$1"jac_JRFLAGS="$2"dnl - set internal JC and JFLAGS variablesjac_JC="$3"jac_JFLAGS="$4"dnl - set the testing java programchangequote(,) rm -f conftest*dnl cat > conftest_remote.java <<EOFimport java.rmi.*;public interface conftest_remote extends Remote{ public void remote_interface() throws RemoteException;}EOFdnl cat > conftest_rmic.java <<EOFimport java.rmi.*;import java.rmi.server.*;public class conftest_rmic extends UnicastRemoteObject implements conftest_remote{ public conftest_rmic() throws RemoteException { super(); } public void remote_interface() throws RemoteException {}}EOFchangequote([,])dnl jac_compile='${jac_JC} ${jac_JFLAGS} conftest_remote.java conftest_rmic.java 1>&AC_FD_CC' if AC_TRY_EVAL(jac_compile) && test -s conftest_rmic.class ; then jac_rmic='${jac_RMIC} ${jac_JRFLAGS} conftest_rmic 1>&AC_FD_CC' if AC_TRY_EVAL(jac_rmic) && test -s conftest_rmic_Stub.class ; then ifelse([$5],,:,[rm -rf conftest* ; $5]) else ifelse([$6],,:,[rm -rf conftest* ; $6]) fi else ifelse([$6],,:,[rm -rf conftest* ; $6]) fi])dnldnldnl JAC_FIND_PROG_IN_KNOWNS - locate Java program in standard known locationsdnldnl JAC_FIND_PROG_IN_KNOWNS( PROG_VAR, PROG-TO-CHECK-FORdnl [, TEST-ACTION-IF-FOUND] )dnldnl PROG_VAR - returned variable name of PROG-TO-CHECK-FORdnl PROG-TO-CHECK-FOR - java program to check for, e.g. javac or javadnl TEST-ACTION-IF-FOUND - testing program for PROG-TO-CHECK-FOR.dnl if TRUE, it must return jac_prog_working=yesdnl if FALSE, it must return jac_prog_working=nodnlAC_DEFUN([JAC_FIND_PROG_IN_KNOWNS],[$1=""# Determine the system typeAC_REQUIRE([AC_CANONICAL_HOST])subdir=""case "$host" in mips-sgi-irix*) if test -d "/software/irix" ; then subdir="irix" elif test -d "/software/irix-6" ; then subdir="irix-6" fi ;; *linux*) if test -d "/software/linux" ; then subdir="linux" fi ;; *solaris*) if test -d "/software/solaris" ; then subdir="solaris" elif test -d "/software/solaris-2" ; then subdir="solaris-2" fi ;; *sun4*) if test -d "/software/sun4" ; then subdir="sun4" fi ;; *aix*) if test -d "/software/aix-4" ; then subdir="aix-4" fi ;; *rs6000*) if test -d "/software/aix-4" ; then subdir="aix-4" fi ;; *freebsd*) if test -d "/software/freebsd" ; then subdir="freebsd" fiesac#if test -z "$subdir" ; then if test -d "/software/common" ; then subdir="common" fifi#AC_MSG_CHECKING([for $2 in known locations])reverse_dirs=""for dir in \ /usr \ /usr/jdk* \ /usr/j2sdk* \ /usr/java* \ /usr/java/jdk* \ /usr/java/j2sdk* \ /usr/local \ /usr/local/java* \ /usr/local/jdk* \ /usr/local/j2sdk* \ /usr/share \ /usr/share/java* \ /usr/share/jdk* \ /usr/share/j2sdk* \ /usr/contrib \ /usr/contrib/java* \ /usr/contrib/jdk* \ /usr/contrib/j2sdk* \ /System/Library/Frameworks/JavaVM.framework/Versions/*/Home \ $HOME/java* \ $HOME/jdk* \ $HOME/j2sdk* \ /opt/jdk* \ /opt/j2sdk* \ /opt/java* \ /opt/local \ /opt/local/jdk* \ /opt/local/j2sdk* \ /opt/local/java* \ /Tools/jdk* \ /Tools/j2sdk* \ /software/$subdir/apps/packages/java* \ /software/$subdir/apps/packages/jdk* \ /software/$subdir/apps/packages/j2sdk* \ /software/$subdir/com/packages/java* \ /software/$subdir/com/packages/jdk* \ /software/$subdir/com/packages/j2sdk* \ /soft/apps/packages/java* \ /soft/apps/packages/jdk* \ /soft/apps/packages/j2sdk* \ /soft/com/packages/java* \ /soft/com/packages/jdk* \ /soft/com/packages/j2sdk* \ /local/encap/java* \ /local/encap/j2sdk* \ /local/encap/jdk* ; do if test -d $dir ; then reverse_dirs="$dir $reverse_dirs" fidonednlfor dir in $reverse_dirs ; do if test -d $dir ; then case "$dir" in *java-workshop* ) if test -d "$dir/JDK/bin" ; then if test -x "$dir/JDK/bin/$2" ; then $1="$dir/JDK/bin/$2" fi fi ;;dnl *java* | *jdk* | *j2sdk* | *Frameworks* ) *) if test -x "$dir/bin/$2" ; then $1="$dir/bin/$2" fi ;; esacdnl # Not all releases work. Try a simple program if test -n "[$]$1" ; then AC_MSG_RESULT([found [$]$1]) ifelse([$3],, break, [ AC_MSG_CHECKING([if [$]$1 works]) $3 if test "$jac_prog_working" = "yes" ; then AC_MSG_RESULT(yes) break else AC_MSG_RESULT(no) AC_MSG_CHECKING([for working $2 in known locations]) $1="" fi ]) fidnl fidoneif test -z "[$]$1" ; then AC_MSG_RESULT(not found)fi])dnldnldnl JAC_FIND_PROG_IN_PATH - locate Java program in user's $PATHdnldnl JAC_FIND_PROG_IN_PATH( PROG_VAR, PROG-TO-CHECK-FORdnl [, CHECKING-ACTION-IF-FOUND] )dnldnl PROG_VAR - returned variable name of PROG-TO-CHECK-FORdnl PROG-TO-CHECK-FOR - java program to check for, e.g. javac or javadnl TEST-ACTION-IF-FOUND - testing program for PROG-TO-CHECK-FOR.dnl if TRUE, it must return jac_prog_working=yesdnl if FALSE, it must return jac_prog_working=nodnlAC_DEFUN([JAC_FIND_PROG_IN_PATH], [AC_MSG_CHECKING([for $2 in user's PATH])if test -n "$PATH" ; then $1="" dnl It is safer to create jac_PATH than modify IFS, because the potential dnl 3rd argument, TEST-ACTION, may contain code in modifying IFS jac_PATH=`echo $PATH | sed 's/:/ /g'` for dir in ${jac_PATH} ; do if test -d "$dir" -a -x "$dir/$2" ; then $1="$dir/$2" # Not all releases work. Try a simple program if test -n "[$]$1" ; then AC_MSG_RESULT([found [$]$1]) ifelse([$3],, break, [ AC_MSG_CHECKING([if [$]$1 works]) $3 if test "$jac_prog_working" = "yes" ; then AC_MSG_RESULT(yes) break else AC_MSG_RESULT(no) AC_MSG_CHECKING([for working $2 in user's PATH]) $1="" fi ]) fi fi donefiif test -z "[$]$1" ; then AC_MSG_RESULT(not found)fi])dnldnldnl JAC_PATH_PROG - locate Java program in user's $PATH then known locationsdnldnl JAC_PATH_PROG( PROG_VAR, PROG-TO-CHECK-FOR [, CHECKING-ACTION-IF-FOUND] )
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -