* Merged with tip.
[cacao.git] / m4 / java-runtime-library.m4
1 dnl m4/java-runtime-library.m4
2 dnl
3 dnl Copyright (C) 2007, 2008
4 dnl CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
5 dnl
6 dnl This file is part of CACAO.
7 dnl
8 dnl This program is free software; you can redistribute it and/or
9 dnl modify it under the terms of the GNU General Public License as
10 dnl published by the Free Software Foundation; either version 2, or (at
11 dnl your option) any later version.
12 dnl
13 dnl This program is distributed in the hope that it will be useful, but
14 dnl WITHOUT ANY WARRANTY; without even the implied warranty of
15 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16 dnl General Public License for more details.
17 dnl
18 dnl You should have received a copy of the GNU General Public License
19 dnl along with this program; if not, write to the Free Software
20 dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21 dnl 02110-1301, USA.
22
23
24 dnl which Java runtime library should we use
25
26 AC_DEFUN([AC_CHECK_WITH_JAVA_RUNTIME_LIBRARY],[
27 AC_MSG_CHECKING(which Java runtime library to use)
28 AC_ARG_WITH([java-runtime-library],
29             [AS_HELP_STRING(--with-java-runtime-library=<type>,specifies which type of classpath to use as Java runtime library (cldc1.1,gnuclasspath,openjdk) [[default=gnuclasspath]])],
30             [case "${withval}" in
31                 cldc1.1)
32                     WITH_JAVA_RUNTIME_LIBRARY=cldc1.1
33                     AC_DEFINE([WITH_JAVA_RUNTIME_LIBRARY_CLDC1_1], 1, [use Sun's CLDC1.1 classes])
34                     AC_SUBST(WITH_JAVA_RUNTIME_LIBRARY_CLDC1_1)
35                     ;;
36                 gnuclasspath)
37                     WITH_JAVA_RUNTIME_LIBRARY=gnuclasspath
38                     AC_DEFINE([WITH_JAVA_RUNTIME_LIBRARY_GNU_CLASSPATH], 1, [use GNU Classpath])
39                     AC_SUBST(WITH_JAVA_RUNTIME_LIBRARY_GNU_CLASSPATH)
40                     ;;
41                 openjdk)
42                     WITH_JAVA_RUNTIME_LIBRARY=openjdk
43                     AC_DEFINE([WITH_JAVA_RUNTIME_LIBRARY_OPENJDK], 1, [use OpenJDK's Java SE classes])
44                     AC_SUBST(WITH_JAVA_RUNTIME_LIBRARY_OPENJDK)
45                     ;;
46                 *)
47                     AC_MSG_ERROR(unknown classpath ${withval})
48                     ;;
49              esac],
50             [WITH_JAVA_RUNTIME_LIBRARY=gnuclasspath
51              AC_DEFINE([WITH_JAVA_RUNTIME_LIBRARY_GNU_CLASSPATH], 1, [use GNU Classpath])
52              AC_SUBST(WITH_JAVA_RUNTIME_LIBRARY_GNU_CLASSPATH)])
53 AC_MSG_RESULT(${WITH_JAVA_RUNTIME_LIBRARY})
54 AM_CONDITIONAL([WITH_JAVA_RUNTIME_LIBRARY_CLDC1_1], test x"${WITH_JAVA_RUNTIME_LIBRARY}" = "xcldc1.1")
55 AM_CONDITIONAL([WITH_JAVA_RUNTIME_LIBRARY_GNU_CLASSPATH], test x"${WITH_JAVA_RUNTIME_LIBRARY}" = "xgnuclasspath")
56 AM_CONDITIONAL([WITH_JAVA_RUNTIME_LIBRARY_OPENJDK], test x"${WITH_JAVA_RUNTIME_LIBRARY}" = "xopenjdk")
57 ])
58
59
60 dnl where is Java runtime library installed
61
62 AC_DEFUN([AC_CHECK_WITH_JAVA_RUNTIME_LIBRARY_PREFIX],[
63 AC_MSG_CHECKING(where Java runtime library is installed)
64 AC_ARG_WITH([java-runtime-library-prefix],
65             [AS_HELP_STRING(--with-java-runtime-library-prefix=<dir>,installation directory of Java runtime library [[default=/usr/local/classpath]])],
66             [JAVA_RUNTIME_LIBRARY_PREFIX=${withval}],
67             [JAVA_RUNTIME_LIBRARY_PREFIX=/usr/local/classpath])
68 AC_MSG_RESULT(${JAVA_RUNTIME_LIBRARY_PREFIX})
69 AC_DEFINE_UNQUOTED([JAVA_RUNTIME_LIBRARY_PREFIX], "${JAVA_RUNTIME_LIBRARY_PREFIX}", [Java runtime library installation directory])
70 AC_SUBST(JAVA_RUNTIME_LIBRARY_PREFIX)
71 ])
72
73
74 dnl where are Java runtime library classes installed
75
76 AC_DEFUN([AC_CHECK_WITH_JAVA_RUNTIME_LIBRARY_CLASSES],[
77 AC_MSG_CHECKING(where Java runtime library classes are installed)
78 AC_ARG_WITH([java-runtime-library-classes],
79             [AS_HELP_STRING(--with-java-runtime-library-classes=<path>,path to Java runtime library classes (includes the name of the file and may be flat) [[default=(gnuclasspath:${JAVA_RUNTIME_LIBRARY_PREFIX}/share/classpath/glibj.zip,openjdk:${JAVA_RUNTIME_LIBRARY_PREFIX}/control/build/${OS_DIR}-${JAVA_ARCH}/classes,*:${JAVA_RUNTIME_LIBRARY_PREFIX})]])],
80             [JAVA_RUNTIME_LIBRARY_CLASSES=${withval}],
81             [case "${WITH_JAVA_RUNTIME_LIBRARY}" in
82                  gnuclasspath)
83                      JAVA_RUNTIME_LIBRARY_CLASSES=${JAVA_RUNTIME_LIBRARY_PREFIX}/share/classpath/glibj.zip
84                      ;;
85                  openjdk)
86                      JAVA_RUNTIME_LIBRARY_CLASSES=${JAVA_RUNTIME_LIBRARY_PREFIX}/control/build/${OS_DIR}-${JAVA_ARCH}/classes
87                      ;;
88                  *)
89                      JAVA_RUNTIME_LIBRARY_CLASSES=${JAVA_RUNTIME_LIBRARY_PREFIX}
90                      ;;
91              esac])
92 AC_MSG_RESULT(${JAVA_RUNTIME_LIBRARY_CLASSES})
93 AC_DEFINE_UNQUOTED([JAVA_RUNTIME_LIBRARY_CLASSES], "${JAVA_RUNTIME_LIBRARY_CLASSES}", [Java runtime library classes])
94 AC_SUBST(JAVA_RUNTIME_LIBRARY_CLASSES)
95
96 dnl where are Java core library classes located at compilation time
97
98 AC_DEFUN([AC_CHECK_WITH_BUILD_JAVA_RUNTIME_LIBRARY_CLASSES],[
99 AC_MSG_CHECKING(where Java core library classes are located at compile time)
100 AC_ARG_WITH([build-java-runtime-library-classes],
101             [AS_HELP_STRING(--with-build-java-runtime-library-classes=<path>,path to Java core library classes (includes the name of the file and may be flat) [[default=${JAVA_RUNTIME_LIBRARY_CLASSES}]])],
102             [BUILD_JAVA_RUNTIME_LIBRARY_CLASSES=${withval}],
103             [BUILD_JAVA_RUNTIME_LIBRARY_CLASSES=${JAVA_RUNTIME_LIBRARY_CLASSES})
104 AC_MSG_RESULT(${BUILD_JAVA_RUNTIME_LIBRARY_CLASSES})
105 AC_DEFINE_UNQUOTED([BUILD_JAVA_RUNTIME_LIBRARY_CLASSES], "${BUILD_JAVA_RUNTIME_LIBRARY_CLASSES}", [Java core library classes at compile time])
106 AC_SUBST(BUILD_JAVA_RUNTIME_LIBRARY_CLASSES)
107 ])
108
109 dnl define BOOTCLASSPATH for Makefiles
110 case "${WITH_JAVA_RUNTIME_LIBRARY}" in
111     cldc1.1 | gnuclasspath)
112         BOOTCLASSPATH="\$(top_builddir)/src/classes/classes:\$(BUILD_JAVA_RUNTIME_LIBRARY_CLASSES)"
113         ;;
114     *)
115         BOOTCLASSPATH="\$(BUILD_JAVA_RUNTIME_LIBRARY_CLASSES)"
116         ;;
117 esac
118 AC_SUBST(BOOTCLASSPATH)
119 ])
120
121 dnl where are Java runtime library native libraries installed
122
123 AC_DEFUN([AC_CHECK_WITH_JAVA_RUNTIME_LIBRARY_LIBDIR],[
124 AC_MSG_CHECKING(where Java runtime library native libraries are installed)
125 AC_ARG_WITH([java-runtime-library-libdir],
126             [AS_HELP_STRING(--with-java-runtime-library-libdir=<dir>,installation directory of Java runtime library native libraries [[default=(gnuclasspath:${JAVA_RUNTIME_LIBRARY_PREFIX}/lib,openjdk:${JAVA_RUNTIME_LIBRARY_PREFIX}/control/build/${OS_DIR}-${JAVA_ARCH}/lib/${JAVA_ARCH},*:${JAVA_RUNTIME_LIBRARY_PREFIX})]])],
127             [JAVA_RUNTIME_LIBRARY_LIBDIR=${withval}],
128             [case "${WITH_JAVA_RUNTIME_LIBRARY}" in
129                  gnuclasspath)
130                      JAVA_RUNTIME_LIBRARY_LIBDIR=${JAVA_RUNTIME_LIBRARY_PREFIX}/lib
131                      ;;
132                  openjdk)
133                      JAVA_RUNTIME_LIBRARY_LIBDIR=${JAVA_RUNTIME_LIBRARY_PREFIX}/control/build/${OS_DIR}-${JAVA_ARCH}/lib/${JAVA_ARCH}
134                      ;;
135                  *)
136                      JAVA_RUNTIME_LIBRARY_LIBDIR=${JAVA_RUNTIME_LIBRARY_PREFIX}
137                      ;;
138              esac])
139 AC_MSG_RESULT(${JAVA_RUNTIME_LIBRARY_LIBDIR})
140
141 dnl expand JAVA_RUNTIME_LIBRARY_LIBDIR to something that is usable in C code
142 AS_AC_EXPAND([JAVA_RUNTIME_LIBRARY_LIBDIR], ${JAVA_RUNTIME_LIBRARY_LIBDIR})
143 AC_DEFINE_UNQUOTED([JAVA_RUNTIME_LIBRARY_LIBDIR], "${JAVA_RUNTIME_LIBRARY_LIBDIR}", [Java runtime library native libraries installation directory])
144 AC_SUBST(JAVA_RUNTIME_LIBRARY_LIBDIR)
145 ])
146
147
148 dnl where jni_md.h is installed
149
150 AC_DEFUN([AC_CHECK_WITH_JNI_MD_H],[
151 AC_MSG_CHECKING(where jni_md.h is installed)
152 AC_ARG_WITH([jni_md_h],
153             [AS_HELP_STRING(--with-jni_md_h=<dir>,path to jni_md.h [[default=(openjdk:${JAVA_RUNTIME_LIBRARY_PREFIX}/jdk/src/solaris/javavm/export,*:${JAVA_RUNTIME_LIBRARY_PREFIX}/include)]])],
154             [WITH_JNI_MD_H=${withval}],
155             [case "${WITH_JAVA_RUNTIME_LIBRARY}" in
156                  openjdk)
157                      WITH_JNI_MD_H=${JAVA_RUNTIME_LIBRARY_PREFIX}/jdk/src/solaris/javavm/export
158                      ;;
159                  *)
160                      WITH_JNI_MD_H=${JAVA_RUNTIME_LIBRARY_PREFIX}/include
161                      ;;
162             esac])
163 AC_MSG_RESULT(${WITH_JNI_MD_H})
164
165 dnl We use CPPFLAGS so jni.h can find jni_md.h
166 CPPFLAGS="${CPPFLAGS} -I${WITH_JNI_MD_H}"
167
168 AC_CHECK_HEADER([${WITH_JNI_MD_H}/jni_md.h],
169                 [AC_DEFINE_UNQUOTED([INCLUDE_JNI_MD_H], "${WITH_JNI_MD_H}/jni_md.h", [Java runtime library jni_md.h header])],
170                 [AC_MSG_ERROR(cannot find jni_md.h)])
171 ])
172
173
174 dnl where jni.h is installed
175
176 AC_DEFUN([AC_CHECK_WITH_JNI_H],[
177 AC_MSG_CHECKING(where jni.h is installed)
178 AC_ARG_WITH([jni_h],
179             [AS_HELP_STRING(--with-jni_h=<dir>,path to jni.h [[default=(openjdk:${JAVA_RUNTIME_LIBRARY_PREFIX}/jdk/src/share/javavm/export,*:${JAVA_RUNTIME_LIBRARY_PREFIX}/include)]])],
180             [WITH_JNI_H=${withval}],
181             [case "${WITH_JAVA_RUNTIME_LIBRARY}" in
182                  openjdk)
183                      WITH_JNI_H=${JAVA_RUNTIME_LIBRARY_PREFIX}/jdk/src/share/javavm/export
184                      ;;
185                  *)
186                      WITH_JNI_H=${JAVA_RUNTIME_LIBRARY_PREFIX}/include
187                      ;;
188             esac])
189 AC_MSG_RESULT(${WITH_JNI_H})
190
191 dnl We use CPPFLAGS so jni.h can find jni_md.h
192 CPPFLAGS="${CPPFLAGS} -I${WITH_JNI_H}"
193
194 AC_CHECK_HEADER([${WITH_JNI_H}/jni.h],
195                 [AC_DEFINE_UNQUOTED([INCLUDE_JNI_H], "${WITH_JNI_H}/jni.h", [Java runtime library jni.h header])],
196                 [AC_MSG_ERROR(cannot find jni.h)],
197                 [#include INCLUDE_JNI_MD_H])
198 ])