dnl m4/disassembler.m4 dnl dnl Copyright (C) 2008 dnl CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO dnl dnl This file is part of CACAO. 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 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 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 check for disassembler support AC_DEFUN([AC_CHECK_ENABLE_DISASSEMBLER],[ AC_MSG_CHECKING(whether disassembler should be enabled) AC_ARG_ENABLE([disassembler], [AS_HELP_STRING(--enable-disassembler,enable disassembler [[default=no]])], [case "${enableval}" in yes) ENABLE_DISASSEMBLER=yes;; *) ENABLE_DISASSEMBLER=no;; esac], [ENABLE_DISASSEMBLER=no]) AC_MSG_RESULT(${ENABLE_DISASSEMBLER}) AM_CONDITIONAL([ENABLE_DISASSEMBLER], test x"${ENABLE_DISASSEMBLER}" = "xyes") if test x"${ENABLE_DISASSEMBLER}" = "xyes"; then AC_DEFINE([ENABLE_DISASSEMBLER], 1, [enable disassembler]) dnl check for binutils headers and libraries on some architectures for the dnl disassembler case "${ARCH_DIR}" in arm | i386 | powerpc | x86_64 | sparc64 | powerpc64 | s390 | m68k) AC_CHECK_HEADER([ansidecl.h],, [AC_MSG_ERROR(cannot find ansidecl.h)]) AC_CHECK_HEADER([symcat.h],, [AC_MSG_ERROR(cannot find symcat.h)]) AC_CHECK_HEADER([bfd.h],, [AC_MSG_ERROR(cannot find bfd.h)]) AC_CHECK_HEADER([dis-asm.h],, [AC_MSG_ERROR(cannot find dis-asm.h)]) case "${OS_DIR}" in cygwin | darwin | netbsd | solaris) AC_CHECK_LIB(intl, dcgettext,, [AC_MSG_ERROR(cannot find libintl (from binutils))]) ;; esac case "${OS_DIR}" in solaris) AC_CHECK_LIB(rt, sem_init,, [AC_MSG_ERROR(cannot find librt)]) ;; esac AC_CHECK_LIB(iberty, xstrerror,, [AC_MSG_ERROR(cannot find libiberty (from binutils))]) AC_CHECK_LIB(bfd, bfd_get_arch,, [AC_MSG_ERROR(cannot find libbfd (from binutils))]) AC_CHECK_LIB(opcodes, disassembler,, [AC_MSG_ERROR(cannot find libopcodes (from binutils))]) AC_DEFINE([WITH_BINUTILS_DISASSEMBLER], 1, [use binutils disassembler]) AM_CONDITIONAL([WITH_BINUTILS_DISASSEMBLER], [true]) ;; * ) AM_CONDITIONAL([WITH_BINUTILS_DISASSEMBLER], [false]) ;; esac else AM_CONDITIONAL([WITH_BINUTILS_DISASSEMBLER], [false]) fi ])