dnl set interpreter flags
AC_SUBST(INTRP_CFLAGS)
-dnl define some stuff required for --fullversion
-AC_DEFINE_UNQUOTED(VERSION_CONFIGURE_ARGS, "$ac_configure_args", [configure arguments])
-AC_DEFINE_UNQUOTED(VERSION_CC, "$CC", [CC used])
-AC_DEFINE_UNQUOTED(VERSION_CFLAGS, "$OPT_CFLAGS $ARCH_CFLAGS", [CFLAGS used])
-
-
dnl define and substitute some architecture specific variables
AC_DEFINE_UNQUOTED([ARCH_DIR], "${ARCH_DIR}", [architecture directory])
AC_DEFINE_UNQUOTED([JAVA_ARCH], "${JAVA_ARCH}", [Java architecture name])
AC_CHECK_WITH_CACAOH
AC_CHECK_WITH_CLASSPATH
+
+dnl Now we check for jre-layout so we can skip some checks that are
+dnl not required.
+AC_CHECK_WITH_JRE_LAYOUT
+
AC_CHECK_WITH_CLASSPATH_PREFIX
AC_CHECK_WITH_CLASSPATH_CLASSES
-AC_CHECK_WITH_CLASSPATH_LIBDIR
-AC_CHECK_WITH_CLASSPATH_INCLUDEDIR
-AC_CHECK_WITH_JRE_LAYOUT
+
+if test x"${WITH_JRE_LAYOUT}" = "xno"; then
+ AC_CHECK_WITH_CLASSPATH_LIBDIR
+fi
+
+dnl The check for jni_md.h must be before jni.h.
+AC_CHECK_WITH_JNI_MD_H
+AC_CHECK_WITH_JNI_H
dnl check for some programs we need
AZ_PYTHON_LSPEC
+dnl define some stuff required for --fullversion
+AC_DEFINE_UNQUOTED(VERSION_CONFIGURE_ARGS, "$ac_configure_args", [configure arguments])
+AC_DEFINE_UNQUOTED(VERSION_CC, "$CC", [CC used])
+AC_DEFINE_UNQUOTED(VERSION_CFLAGS, "$OPT_CFLAGS $ARCH_CFLAGS $CPPFLAGS_INCLUDE", [CFLAGS used])
+
+
dnl finally pass CFLAGS to Makefiles via AM_CFLAGS
-CFLAGS=$OPT_CFLAGS
+CFLAGS="$OPT_CFLAGS"
AM_CFLAGS=$ARCH_CFLAGS
+AM_CPPFLAGS="$CPPFLAGS_INCLUDE"
AC_SUBST(AM_CFLAGS)
+AC_SUBST(AM_CPPFLAGS)
AC_CONFIG_FILES([Makefile]
dnl m4/classpath.m4
dnl
-dnl Copyright (C) 2007 R. Grafl, A. Krall, C. Kruegel,
-dnl C. Oates, R. Obermaisser, M. Platter, M. Probst, S. Ring,
-dnl E. Steiner, C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich,
-dnl J. Wenninger, Institut f. Computersprachen - TU Wien
-dnl
+dnl Copyright (C) 2007, 2008
+dnl CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
+dnl
dnl This file is part of CACAO.
-dnl
+dnl
dnl This program is free software; you can redistribute it and/or
dnl modify it under the terms of the GNU General Public License as
dnl published by the Free Software Foundation; either version 2, or (at
dnl your option) any later version.
-dnl
+dnl
dnl This program is distributed in the hope that it will be useful, but
dnl WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
dnl General Public License for more details.
-dnl
+dnl
dnl You should have received a copy of the GNU General Public License
dnl along with this program; if not, write to the Free Software
dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
dnl 02110-1301, USA.
-dnl
-dnl $Id: classpath.m4 8398 2007-08-22 16:56:45Z twisti $
dnl which Java core library should we use
])
-dnl where are Java core library headers installed
-
-AC_DEFUN([AC_CHECK_WITH_CLASSPATH_INCLUDEDIR],[
-AC_MSG_CHECKING(where Java core library headers are installed)
-AC_ARG_WITH([classpath-includedir],
- [AS_HELP_STRING(--with-classpath-includedir=<dir>,installation directory of Java core library headers [[default=/usr/local/classpath/include]])],
- [CLASSPATH_INCLUDEDIR=${withval}],
- [CLASSPATH_INCLUDEDIR=${CLASSPATH_PREFIX}/include])
-AC_MSG_RESULT(${CLASSPATH_INCLUDEDIR})
-
-if test x"${WITH_CLASSPATH}" = "xsun"; then
- AC_CHECK_HEADER([${CLASSPATH_INCLUDEDIR}/${OS_DIR}/jni_md.h],
- [AC_DEFINE_UNQUOTED([CLASSPATH_JNI_MD_H], "${CLASSPATH_INCLUDEDIR}/${OS_DIR}/jni_md.h", [Java core library jni_md.h header])],
- [AC_MSG_ERROR(cannot find jni_md.h)])
-else
- AC_CHECK_HEADER([${CLASSPATH_INCLUDEDIR}/jni_md.h],
- [AC_DEFINE_UNQUOTED([CLASSPATH_JNI_MD_H], "${CLASSPATH_INCLUDEDIR}/jni_md.h", [Java core library jni_md.h header])],
- [AC_MSG_ERROR(cannot find jni_md.h)])
-fi
-
-AC_CHECK_HEADER([${CLASSPATH_INCLUDEDIR}/jni.h],
- [AC_DEFINE_UNQUOTED([CLASSPATH_JNI_H], "${CLASSPATH_INCLUDEDIR}/jni.h", [Java core library jni.h header])],
+dnl where jni_md.h is installed
+
+AC_DEFUN([AC_CHECK_WITH_JNI_MD_H],[
+AC_MSG_CHECKING(where jni_md.h is installed)
+AC_ARG_WITH([jni_md_h],
+ [AS_HELP_STRING(--with-jni_md_h=<dir>,path to jni_md.h [[default=CLASSPATH_PREFIX/include]])],
+ [WITH_JNI_MD_H=${withval}],
+ [WITH_JNI_MD_H=${CLASSPATH_PREFIX}/include])
+AC_MSG_RESULT(${WITH_JNI_MD_H})
+
+dnl We use CPPFLAGS so jni.h can find jni_md.h
+CPPFLAGS_INCLUDE="${CPPFLAGS_INCLUDE} -I${WITH_JNI_MD_H}"
+CPPFLAGS="${CPPFLAGS_INCLUDE}"
+
+AC_CHECK_HEADER([${WITH_JNI_MD_H}/jni_md.h],
+ [AC_DEFINE_UNQUOTED([INCLUDE_JNI_MD_H], "${WITH_JNI_MD_H}/jni_md.h", [Java core library jni_md.h header])],
+ [AC_MSG_ERROR(cannot find jni_md.h)])
+])
+
+
+dnl where jni.h is installed
+
+AC_DEFUN([AC_CHECK_WITH_JNI_H],[
+AC_MSG_CHECKING(where jni.h is installed)
+AC_ARG_WITH([jni_h],
+ [AS_HELP_STRING(--with-jni_h=<dir>,path to jni.h [[default=CLASSPATH_PREFIX/include]])],
+ [WITH_JNI_H=${withval}],
+ [WITH_JNI_H=${CLASSPATH_PREFIX}/include])
+AC_MSG_RESULT(${WITH_JNI_H})
+
+dnl We use CPPFLAGS so jni.h can find jni_md.h
+CPPFLAGS_INCLUDE="${CPPFLAGS_INCLUDE} -I${WITH_JNI_H}"
+CPPFLAGS="${CPPFLAGS_INCLUDE}"
+
+AC_CHECK_HEADER([${WITH_JNI_H}/jni.h],
+ [AC_DEFINE_UNQUOTED([INCLUDE_JNI_H], "${WITH_JNI_H}/jni.h", [Java core library jni.h header])],
[AC_MSG_ERROR(cannot find jni.h)],
- [#define __GCJ_JNI_MD_H__
- #include CLASSPATH_JNI_MD_H])
+ [#include INCLUDE_JNI_MD_H])
])
/* src/native/jni.h - JNI types and data structures
- Copyright (C) 1996-2005, 2006, 2007 R. Grafl, A. Krall, C. Kruegel,
- C. Oates, R. Obermaisser, M. Platter, M. Probst, S. Ring,
- E. Steiner, C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich,
- J. Wenninger, Institut f. Computersprachen - TU Wien
+ Copyright (C) 1996-2005, 2006, 2007, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
*/
-/* GNU Classpath jni.h *********************************************************
+/* jni.h ***********************************************************************
ATTENTION: We include this file before we actually define our own
- jni.h. We do this because, otherwise we can get into unresolvable
+ jni.h. We do this because otherwise we can get into unresolvable
circular header dependencies.
This is OK as GNU Classpath defines:
+ #define __CLASSPATH_JNI_MD_H__
#define _CLASSPATH_JNI_H
- CLASSPATH_JNI_H is in config.h defined.
+ and OpenJDK defines:
+
+ #define _JAVASOFT_JNI_MD_H_
+ #define _JAVASOFT_JNI_H_
+
+ CLASSPATH_JNI_MD_H and CLASSPATH_JNI_H are defined in config.h.
*******************************************************************************/
#include "config.h"
-/* XXX quick hack to not include GCJ's jni_md.h */
-#define __GCJ_JNI_MD_H__
+/* We include both headers with the absolute path so we can be sure
+ that the preprocessor does not take another header. Furthermore we
+ include jni_md.h before jni.h as the latter includes the former. */
-#include CLASSPATH_JNI_MD_H
-#include CLASSPATH_JNI_H
+#include INCLUDE_JNI_MD_H
+#include INCLUDE_JNI_H
#ifndef _JNI_H
#define _JNI_H