File: ax_check_java.m4

package info (click to toggle)
libpano13 2.9.19%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 8,736 kB
  • ctags: 3,225
  • sloc: ansic: 34,695; sh: 11,214; makefile: 311; perl: 242
file content (152 lines) | stat: -rw-r--r-- 3,669 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152

dnl Usage:
dnl AX_CHECK_JAVA
dnl Test for java, and defines
dnl - JAVA_CFLAGS (compiler flags)
dnl - LIB_JAVA (linker flags, stripping and path)
dnl prerequisites:

AC_DEFUN([AX_CHECK_JAVA],
[
AC_ARG_WITH([java],
            AC_HELP_STRING([  --with-java=PFX], [prefix where 'java' is installed.]),
            [with_java_prefix=$withval], 
	    [with_java_prefix=${JAVA_INSTALL_PATH:-/usr/java/j2sdk1.4.1_01}])
have_java='no'
LIB_JAVA=''
JAVA_FLAGS=''
JAVA_HOME=''
if test "x$with_java" != 'xno'
then
  AC_MSG_CHECKING([for JAVA installation at ${with_java}])
  AC_MSG_RESULT()

dnl these two lines should let u find most java installations
  java_dirs="/usr /usr/local /usr/lib/j2sdk1.4-sun /usr/lib/jvm/java /System/Library/Frameworks/JavaVM.framework/Versions/Current /opt /mingw"
  java_inc_dirs="include include/libgcj Headers"
  
  if test "x$with_java" != 'x'
  then
    if test -d "$with_java"
    then
      JAVA_HOME="$with_java"
      for j in $java_inc_dirs
      do
        echo "configure: __oline__: checking $JAVA_HOME/$j" >&AC_FD_CC
        if test -r "$JAVA_HOME/$j/jni.h"; then
	  echo "taking that" >&AC_FD_CC
	  java_inc_dir="$j"
	  break 2
        fi
      done
    else
      AC_MSG_WARN([Sorry, $with_java does not exist, checking usual places])
                  with_java=''
    fi
  fi

dnl now find the java dirs

  if test "x$JAVA_HOME" = 'x'
  then
    for i in $java_dirs;
    do
      for j in $java_inc_dirs
      do
        echo "configure: __oline__: checking $i/$j" >&AC_FD_CC
        if test -r "$i/$j/jni.h"; then
	  echo "taking that" >&AC_FD_CC
          JAVA_HOME="$i"
	  java_inc_dir="$j"
	  break
        fi
      done
    done
    if test "x$JAVA_HOME" != 'x'
    then
      AC_MSG_NOTICE([java home set to $JAVA_HOME])
    else
      AC_MSG_NOTICE([cannot find the java directory, assuming it is specified in CFLAGS])
    fi
  fi



  failed=0;
  passed=0;
  JAVA_OLD_CPPFLAGS=$CPPFLAGS
  case "${host_os}" in
    linux*)
      java_extra_inc=linux
      ;;
    darwin*)
      java_extra_inc=darwin
      ;;
    *mingw32*)
      java_extra_inc=win32
      ;;
    *cygwin*)
      java_extra_inc=win32
      ;;
  esac
dnl Check if extra inc is required
  CPPFLAGS="$CPPFLAGS -I$JAVA_HOME/$java_inc_dir"
  AC_LANG_SAVE
  AC_LANG_C
  AC_COMPILE_IFELSE(
    AC_LANG_SOURCE(
      [[#include <jni.h>]]
    ),
    passed=`expr $passed + 1`,failed=`expr $failed + 1`
  )
  AC_LANG_RESTORE
  CPPFLAGS="$JAVA_OLD_CPPFLAGS"
  JAVA_FLAGS="-I$JAVA_HOME/$java_inc_dir -DHasJava"
  
  if test $failed -gt 0
  then
    echo "configure: __oline__: checking if extra_inc required" >&AC_FD_CC
    failed=0;
    CPPFLAGS="$CPPFLAGS -I$JAVA_HOME/$java_inc_dir -I$JAVA_HOME/$java_inc_dir/$java_extra_inc"
    AC_LANG_SAVE
    AC_LANG_C
    AC_COMPILE_IFELSE(
      AC_LANG_SOURCE(
	[[#include <jni.h>]]
      ),
      passed=`expr $passed + 1`,failed=`expr $failed + 1`
    )
    AC_LANG_RESTORE
    CPPFLAGS="$JAVA_OLD_CPPFLAGS"
    JAVA_FLAGS="-I$JAVA_HOME/$java_inc_dir -I$JAVA_HOME/$java_inc_dir/$java_extra_inc -DHasJava"
  fi
  AC_MSG_CHECKING(if JAVA package is complete)
  if test $passed -gt 0
  then
    if test $failed -gt 0
    then
      AC_MSG_RESULT(no -- some components failed test)
      have_java='no (failed tests)'
      JAVA_FLAGS=
    else
      if test "x$JAVA_HOME" = 'x'
      then
        JAVA_FLAGS=
      else
        LIB_JAVA="-L$JAVA_HOME/lib"
      fi
      AC_DEFINE(HasJava,1,Define if you have Java)
      AC_MSG_RESULT(yes)
      have_java='yes'
    fi
  else
    JAVA_FLAGS=
    AC_MSG_RESULT(no)
  fi
fi
AM_CONDITIONAL(HasJava, test "x$have_java" = 'xyes')
AC_SUBST(LIB_JAVA)
AC_SUBST(JAVA_FLAGS)
])