| 0 | 1 dnl                                            -*- Autoconf -*- | 
|  | 2 dnl @synopsis CHECK_JAVA() | 
|  | 3 dnl | 
|  | 4 dnl Need to specify --with-java and --with-javaos | 
|  | 5 dnl @author Alan Bleasby | 
|  | 6 dnl | 
|  | 7 dnl This macro calls: | 
|  | 8 dnl | 
|  | 9 dnl   AC_SUBST([JAVA_CFLAGS]) | 
|  | 10 dnl   AC_SUBST([JAVA_CPPFLAGS]) | 
|  | 11 dnl   AC_SUBST([JAVA_LDFLAGS]) | 
|  | 12 dnl | 
|  | 13 dnl   AM_CONDITIONAL([JAVA_BUILD], ...) | 
|  | 14 dnl | 
|  | 15 dnl And sets: | 
|  | 16 dnl | 
|  | 17 dnl   AC_DEFINE([HAVE_JAVA], ...) | 
|  | 18 dnl | 
|  | 19 dnl   AC_PATH_PROG([ANT], ...) | 
|  | 20 dnl   AC_PATH_PROG([JAR], ...) | 
|  | 21 dnl   AC_PATH_PROG([JAVA], ...) | 
|  | 22 dnl   AC_PATH_PROG([JAVAC], ...) | 
|  | 23 | 
|  | 24 AC_DEFUN([CHECK_JAVA], | 
|  | 25 [ | 
|  | 26   JAVA_CFLAGS="" | 
|  | 27   JAVA_CPPFLAGS="" | 
|  | 28   JAVA_LDFLAGS="" | 
|  | 29 | 
|  | 30   have_java="yes" | 
|  | 31   auth_java="" | 
|  | 32 | 
|  | 33   AC_MSG_CHECKING([for Java JNI]) | 
|  | 34 | 
|  | 35   AC_ARG_WITH([java], | 
|  | 36   [AS_HELP_STRING([--with-java@<:@=ARG@:>@], | 
|  | 37   [root directory path of Java installation])], | 
|  | 38   [ | 
|  | 39     AC_MSG_RESULT([${withval}]) | 
|  | 40     AS_IF([test "x${withval}" = "xno"], [have_java="no"]) | 
|  | 41   ], | 
|  | 42   [ | 
|  | 43     AC_MSG_RESULT([no]) | 
|  | 44     have_java="no" | 
|  | 45   ]) | 
|  | 46 | 
|  | 47   AS_IF([test "x${have_java}" = "xyes"], | 
|  | 48   [ | 
|  | 49     # If specified, the Java JNI include directory has to exist. | 
|  | 50     AS_IF([test -d ${with_java}], | 
|  | 51     [AS_VAR_SET([JAVA_CPPFLAGS], ["-I${withval}"])], | 
|  | 52     [ | 
|  | 53       have_java="no" | 
|  | 54       AC_MSG_ERROR([Java include directory ${withval} does not exist]) | 
|  | 55     ]) | 
|  | 56   ]) | 
|  | 57 | 
|  | 58   AC_MSG_CHECKING([for Java JNI OS]) | 
|  | 59 | 
|  | 60   AC_ARG_WITH([javaos], | 
|  | 61   [AS_HELP_STRING([--with-javaos@<:@=ARG@:>@], | 
|  | 62   [root directory path of Java OS include])], | 
|  | 63   [ | 
|  | 64     AC_MSG_RESULT([${withval}]) | 
|  | 65 | 
|  | 66     AS_IF([test "x${withval}" != "xno"], | 
|  | 67     [ | 
|  | 68       # If specified, the Java JNI OS include directory has to exist. | 
|  | 69       AS_IF([test "x${have_java}" = "xyes" && test -d ${withval}], | 
|  | 70       [AS_VAR_APPEND([JAVA_CPPFLAGS], [" -I${withval}"])], | 
|  | 71       [ | 
|  | 72         have_java="no" | 
|  | 73         AC_MSG_ERROR([Java OS include directory ${withval} does not exist]) | 
|  | 74       ]) | 
|  | 75     ]) | 
|  | 76   ], | 
|  | 77   [ | 
|  | 78     AC_MSG_RESULT([no]) | 
|  | 79   ]) | 
|  | 80 | 
|  | 81   # Authorisation type | 
|  | 82 | 
|  | 83   AC_MSG_CHECKING([for authorisation type]) | 
|  | 84 | 
|  | 85   AC_ARG_WITH([auth], | 
|  | 86   [AS_HELP_STRING([--with-auth@<:@=ARG@:>@], | 
|  | 87   [authorisation mechanism for Jemboss server @<:@default=PAM@:>@])], | 
|  | 88   [ | 
|  | 89     AS_IF([test "x${withval}" != "xno"], | 
|  | 90     [ | 
|  | 91       AC_MSG_RESULT([yes]) | 
|  | 92 | 
|  | 93       AS_CASE([${withval}], | 
|  | 94       [yes], | 
|  | 95       [ | 
|  | 96         auth_java="PAM" | 
|  | 97         AC_CHECK_LIB([pam], [main], | 
|  | 98         [AS_VAR_APPEND([JAVA_LDFLAGS], [" -lpam"])]) | 
|  | 99       ], | 
|  | 100       [pam], | 
|  | 101       [ | 
|  | 102         auth_java="PAM" | 
|  | 103         AC_CHECK_LIB([pam], [main], | 
|  | 104         [AS_VAR_APPEND([JAVA_LDFLAGS], [" -lpam"])]) | 
|  | 105       ], | 
|  | 106       [shadow], | 
|  | 107       [ | 
|  | 108         auth_java="N_SHADOW" | 
|  | 109         AC_CHECK_LIB([crypy], [main], | 
|  | 110         [AS_VAR_APPEND([JAVA_LDFLAGS], [" -lcrypt"])]) | 
|  | 111       ], | 
|  | 112       [rshadow], | 
|  | 113       [ | 
|  | 114         auth_java="R_SHADOW" | 
|  | 115         AC_CHECK_LIB([crypy], [main], | 
|  | 116         [AS_VAR_APPEND([JAVA_LDFLAGS], [" -lcrypt"])]) | 
|  | 117       ], | 
|  | 118       [noshadow], | 
|  | 119       [auth_java="NO_SHADOW"], | 
|  | 120       [rnoshadow], | 
|  | 121       [auth_java="RNO_SHADOW"], | 
|  | 122       [aixshadow], | 
|  | 123       [auth_java="AIX_SHADOW"], | 
|  | 124       [hpuxshadow], | 
|  | 125       [auth_java="HPUX_SHADOW"]) | 
|  | 126     ], | 
|  | 127     [AC_MSG_RESULT([no])]) | 
|  | 128   ], | 
|  | 129   [AC_MSG_RESULT([no])]) | 
|  | 130 | 
|  | 131   AS_IF([test -n "${auth_java}"], | 
|  | 132   [AS_VAR_APPEND([JAVA_CPPFLAGS], [" -D${auth_java}"])], | 
|  | 133   [AS_VAR_APPEND([JAVA_CPPFLAGS], [" -DNO_AUTH"])]) | 
|  | 134 | 
|  | 135   # Threading type | 
|  | 136 | 
|  | 137   AC_MSG_CHECKING([for threading type]) | 
|  | 138 | 
|  | 139   AC_ARG_WITH([thread], | 
|  | 140   [AS_HELP_STRING([--with-thread@<:@=ARG@:>@], | 
|  | 141   [thread type @<:@default=linux@:>@])], | 
|  | 142   [ | 
|  | 143     AS_IF([test "x${withval}" != "xno"], | 
|  | 144     [ | 
|  | 145       AC_MSG_RESULT([yes]) | 
|  | 146 | 
|  | 147       AS_CASE([${withval}], | 
|  | 148       [yes], | 
|  | 149       [ | 
|  | 150         AS_VAR_APPEND([JAVA_CPPFLAGS], [" -D_REENTRANT"]) | 
|  | 151         AS_VAR_APPEND([JAVA_LDFLAGS], [" -lpthread"]) | 
|  | 152         # AS_VAR_APPEND([LIBS], [" -lpthread"]) | 
|  | 153       ], | 
|  | 154       [freebsd], | 
|  | 155       [ | 
|  | 156         AS_VAR_APPEND([JAVA_CPPFLAGS], [" -D_THREAD_SAFE"]) | 
|  | 157         AS_VAR_APPEND([JAVA_LDFLAGS], [" -pthread"]) | 
|  | 158         # AS_VAR_APPEND([LIBS], [" -lc_r"]) | 
|  | 159       ], | 
|  | 160       [linux], | 
|  | 161       [ | 
|  | 162         AS_VAR_APPEND([JAVA_CPPFLAGS], [" -D_REENTRANT"]) | 
|  | 163         AS_VAR_APPEND([JAVA_LDFLAGS], [" -lpthread"]) | 
|  | 164         # AS_VAR_APPEND([LIBS], [" -lpthread"]) | 
|  | 165       ], | 
|  | 166       [solaris], | 
|  | 167       [ | 
|  | 168         AS_VAR_APPEND([JAVA_CPPFLAGS], [" -D_POSIX_C_SOURCE=199506L"]) | 
|  | 169         AS_VAR_APPEND([JAVA_LDFLAGS], [" -lpthread"]) | 
|  | 170         # AS_VAR_APPEND([LIBS], [" -lpthread"]) | 
|  | 171       ], | 
|  | 172       [macos], | 
|  | 173       [ | 
|  | 174         # AS_VAR_APPEND([JAVA_CPPFLAGS], [""]) | 
|  | 175         # AS_VAR_APPEND([JAVA_LDFLAGS], [" -lpthread"]) | 
|  | 176         # AS_VAR_APPEND([LIBS], [" -lpthread"]) | 
|  | 177       ], | 
|  | 178       [hpux], | 
|  | 179       [ | 
|  | 180         AS_VAR_APPEND([JAVA_CFLAGS], [" -Ae +z"]) | 
|  | 181         AS_VAR_APPEND([JAVA CPPFLAGS], [" -DNATIVE -D_POSIX_C_SOURCE=199506L"]) | 
|  | 182         AS_VAR_APPEND([JAVA_LDFLAGS], [" -lpthread"]) | 
|  | 183         # AS_VAR_APPEND([LIBS], [" -lpthread"]) | 
|  | 184       ], | 
|  | 185       [irix], | 
|  | 186       [ | 
|  | 187         # AS_VAR_APPEND([JAVA_CFLAGS], [""]) | 
|  | 188         AS_VAR_APPEND([JAVA_LDFLAGS], [" -lpthread"]) | 
|  | 189         AS_VAR_APPEND([LIBS], [" -lpthread"]) | 
|  | 190       ], | 
|  | 191       [aix], | 
|  | 192       [ | 
|  | 193         AS_VAR_APPEND([JAVA_CPPFLAGS], [" -D_REENTRANT"]) | 
|  | 194         AS_VAR_APPEND([JAVA_LDFLAGS], [" -lpthread"]) | 
|  | 195         AS_VAR_APPEND([LIBS], [" -lpthread"]) | 
|  | 196       ], | 
|  | 197       [osf], | 
|  | 198       [ | 
|  | 199         AS_VAR_APPEND([JAVA_CPPFLAGS], [" -D_REENTRANT -D_OSF_SOURCE"]) | 
|  | 200         AS_VAR_APPEND([JAVA_LDFLAGS], [" -lpthread"]) | 
|  | 201         AS_VAR_APPEND([LIBS], [" -lpthread"]) | 
|  | 202       ]) | 
|  | 203     ], | 
|  | 204     [AC_MSG_RESULT([no])]) | 
|  | 205   ], | 
|  | 206   [AC_MSG_RESULT([no])]) | 
|  | 207 | 
|  | 208   # Test for programs ant, jar, java and javac. | 
|  | 209 | 
|  | 210   AS_IF([test "x${have_java}" = "xyes"], | 
|  | 211   [ | 
|  | 212     AC_PATH_PROG([ANT], [ant], [no]) | 
|  | 213     AS_IF([test "x${ANT}" = "xno"], [have_java="no"]) | 
|  | 214 | 
|  | 215     AC_PATH_PROG([JAR], [jar], [no]) | 
|  | 216     AS_IF([test "x${JAR}" = "xno"], [have_java="no"]) | 
|  | 217 | 
|  | 218     AC_PATH_PROG([JAVA], [java], [no]) | 
|  | 219     AS_IF([test "x${JAVA}" = "xno"], [have_java="no"]) | 
|  | 220 | 
|  | 221     AC_PATH_PROG([JAVAC], [javac], [no]) | 
|  | 222     AS_IF([test "x${JAVAC}" = "xno"], [have_java="no"]) | 
|  | 223   ]) | 
|  | 224 | 
|  | 225   AS_IF([test "x${have_java}" = "xyes"], | 
|  | 226   [ | 
|  | 227     AC_DEFINE([HAVE_JAVA], [1], | 
|  | 228     [Define to 1 if the Java Native Interface (JNI) is available.]) | 
|  | 229 | 
|  | 230     ### FIXME: Append -DDEBIAN for the moment. | 
|  | 231     # Debian uses PAM service "ssh" instead of "login", see ajjava.c | 
|  | 232     # This could use AC_DEFINE() if no better option was avialable. | 
|  | 233     # Ultimately, this should be configurable via server configuration | 
|  | 234     # files. | 
|  | 235     AS_IF([test -f "/etc/debian_release" || test -f /etc/debian_version], | 
|  | 236     [AS_VAR_APPEND([JAVA_CPPFLAGS], [" -DDEBIAN"])]) | 
|  | 237   ]) | 
|  | 238 | 
|  | 239   AC_ARG_VAR([ANT], [Path to the Apache Ant make tool]) | 
|  | 240   AC_ARG_VAR([JAR], [Path to the Java archive tool]) | 
|  | 241   AC_ARG_VAR([JAVA], [Path to the Java application launcher]) | 
|  | 242   AC_ARG_VAR([JAVAC], [Path to the Java compiler]) | 
|  | 243 | 
|  | 244   AC_SUBST([JAVA_CFLAGS]) | 
|  | 245   AC_SUBST([JAVA_CPPFLAGS]) | 
|  | 246   AC_SUBST([JAVA_LDFLAGS]) | 
|  | 247 | 
|  | 248   AM_CONDITIONAL([JAVA_BUILD], [test "x${have_java}" = "xyes"]) | 
|  | 249 ]) |