| dnl aclocal.m4 generated automatically by aclocal 1.4a |
| |
| dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. |
| dnl This file is free software; the Free Software Foundation |
| dnl gives unlimited permission to copy and/or distribute it, |
| dnl with or without modifications, as long as this notice is preserved. |
| |
| dnl This program is distributed in the hope that it will be useful, |
| dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without |
| dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A |
| dnl PARTICULAR PURPOSE. |
| |
| dnl grub_ASM_USCORE checks if C symbols get an underscore after |
| dnl compiling to assembler. |
| dnl Written by Pavel Roskin. Based on grub_ASM_EXT_C written by |
| dnl Erich Boleyn and modified by OKUJI Yoshinori |
| AC_DEFUN(grub_ASM_USCORE, |
| [AC_REQUIRE([AC_PROG_CC]) |
| AC_MSG_CHECKING([if C symbols get an underscore after compilation]) |
| AC_CACHE_VAL(grub_cv_asm_uscore, |
| [cat > conftest.c <<\EOF |
| int |
| func (int *list) |
| { |
| *list = 0; |
| return *list; |
| } |
| EOF |
| |
| if AC_TRY_COMMAND([${CC-cc} ${CFLAGS} -S conftest.c]) && test -s conftest.s; then |
| true |
| else |
| AC_MSG_ERROR([${CC-cc} failed to produce assembly code]) |
| fi |
| |
| if grep _func conftest.s >/dev/null 2>&1; then |
| grub_cv_asm_uscore=yes |
| else |
| grub_cv_asm_uscore=no |
| fi |
| |
| rm -f conftest*]) |
| |
| if test "x$grub_cv_asm_uscore" = xyes; then |
| AC_DEFINE_UNQUOTED([HAVE_ASM_USCORE], $grub_cv_asm_uscore, |
| [Define if C symbols get an underscore after compilation]) |
| fi |
| |
| AC_MSG_RESULT([$grub_cv_asm_uscore]) |
| ]) |
| |
| |
| dnl Some versions of `objcopy -O binary' vary their output depending |
| dnl on the link address. |
| AC_DEFUN(grub_PROG_OBJCOPY_ABSOLUTE, |
| [AC_MSG_CHECKING([whether ${OBJCOPY} works for absolute addresses]) |
| AC_CACHE_VAL(grub_cv_prog_objcopy_absolute, |
| [cat > conftest.c <<\EOF |
| void |
| cmain (void) |
| { |
| *((int *) 0x1000) = 2; |
| } |
| EOF |
| |
| if AC_TRY_EVAL(ac_compile) && test -s conftest.o; then : |
| else |
| AC_MSG_ERROR([${CC-cc} cannot compile C source code]) |
| fi |
| grub_cv_prog_objcopy_absolute=yes |
| for link_addr in 2000 8000 7C00; do |
| if AC_TRY_COMMAND([${CC-cc} ${CFLAGS} -nostdlib -Wl,-N -Wl,-Ttext -Wl,$link_addr conftest.o -o conftest.exec]); then : |
| else |
| AC_MSG_ERROR([${CC-cc} cannot link at address $link_addr]) |
| fi |
| if AC_TRY_COMMAND([${OBJCOPY-objcopy} -O binary conftest.exec conftest]); then : |
| else |
| AC_MSG_ERROR([${OBJCOPY-objcopy} cannot create binary files]) |
| fi |
| if test ! -f conftest.old || AC_TRY_COMMAND([cmp -s conftest.old conftest]); then |
| mv -f conftest conftest.old |
| else |
| grub_cv_prog_objcopy_absolute=no |
| break |
| fi |
| done |
| rm -f conftest*]) |
| AC_MSG_RESULT([$grub_cv_prog_objcopy_absolute])]) |
| |
| dnl Mass confusion! |
| dnl Older versions of GAS interpret `.code16' to mean ``generate 32-bit |
| dnl instructions, but implicitly insert addr32 and data32 bytes so |
| dnl that the code works in real mode''. |
| dnl |
| dnl Newer versions of GAS interpret `.code16' to mean ``generate 16-bit |
| dnl instructions,'' which seems right. This requires the programmer |
| dnl to explicitly insert addr32 and data32 instructions when they want |
| dnl them. |
| dnl |
| dnl We only support the newer versions, because the old versions cause |
| dnl major pain, by requiring manual assembly to get 16-bit instructions into |
| dnl stage1/stage1.S. |
| AC_DEFUN(grub_ASM_ADDR32, |
| [AC_REQUIRE([AC_PROG_CC]) |
| AC_REQUIRE([grub_ASM_PREFIX_REQUIREMENT]) |
| AC_MSG_CHECKING([for .code16 addr32 assembler support]) |
| AC_CACHE_VAL(grub_cv_asm_addr32, |
| [cat > conftest.s.in <<\EOF |
| .code16 |
| l1: @ADDR32@ movb %al, l1 |
| EOF |
| |
| if test "x$grub_cv_asm_prefix_requirement" = xyes; then |
| sed -e s/@ADDR32@/addr32/ < conftest.s.in > conftest.s |
| else |
| sed -e s/@ADDR32@/addr32\;/ < conftest.s.in > conftest.s |
| fi |
| |
| if AC_TRY_COMMAND([${CC-cc} ${CFLAGS} -c conftest.s]) && test -s conftest.o; then |
| grub_cv_asm_addr32=yes |
| else |
| grub_cv_asm_addr32=no |
| fi |
| |
| rm -f conftest*]) |
| |
| AC_MSG_RESULT([$grub_cv_asm_addr32])]) |
| |
| dnl |
| dnl Later versions of GAS requires that addr32 and data32 prefixes |
| dnl appear in the same lines as the instructions they modify, while |
| dnl earlier versions requires that they appear in separate lines. |
| AC_DEFUN(grub_ASM_PREFIX_REQUIREMENT, |
| [AC_REQUIRE([AC_PROG_CC]) |
| AC_MSG_CHECKING(dnl |
| [whether addr32 must be in the same line as the instruction]) |
| AC_CACHE_VAL(grub_cv_asm_prefix_requirement, |
| [cat > conftest.s <<\EOF |
| .code16 |
| l1: addr32 movb %al, l1 |
| EOF |
| |
| if AC_TRY_COMMAND([${CC-cc} ${CFLAGS} -c conftest.s]) && test -s conftest.o; then |
| grub_cv_asm_prefix_requirement=yes |
| else |
| grub_cv_asm_prefix_requirement=no |
| fi |
| |
| rm -f conftest*]) |
| |
| if test "x$grub_cv_asm_prefix_requirement" = xyes; then |
| grub_tmp_addr32="addr32" |
| grub_tmp_data32="data32" |
| else |
| grub_tmp_addr32="addr32;" |
| grub_tmp_data32="data32;" |
| fi |
| |
| AC_DEFINE_UNQUOTED([ADDR32], $grub_tmp_addr32, |
| [Define it to \"addr32\" or \"addr32;\" to make GAS happy]) |
| AC_DEFINE_UNQUOTED([DATA32], $grub_tmp_data32, |
| [Define it to \"data32\" or \"data32;\" to make GAS happy]) |
| |
| AC_MSG_RESULT([$grub_cv_asm_prefix_requirement])]) |
| |
| dnl |
| dnl grub_CHECK_START_SYMBOL checks if start is automatically defined by |
| dnl the compiler. |
| dnl Written by OKUJI Yoshinori |
| AC_DEFUN(grub_CHECK_START_SYMBOL, |
| [AC_REQUIRE([AC_PROG_CC]) |
| AC_MSG_CHECKING([if start is defined by the compiler]) |
| AC_CACHE_VAL(grub_cv_check_start_symbol, |
| [AC_TRY_LINK([], [asm ("incl start")], |
| grub_cv_check_start_symbol=yes, |
| grub_cv_check_start_symbol=no)]) |
| |
| if test "x$grub_cv_check_start_symbol" = xyes; then |
| AC_DEFINE([HAVE_START_SYMBOL]) |
| fi |
| |
| AC_MSG_RESULT([$grub_cv_check_start_symbol]) |
| ]) |
| |
| dnl |
| dnl grub_CHECK_USCORE_START_SYMBOL checks if _start is automatically |
| dnl defined by the compiler. |
| dnl Written by OKUJI Yoshinori |
| AC_DEFUN(grub_CHECK_USCORE_START_SYMBOL, |
| [AC_REQUIRE([AC_PROG_CC]) |
| AC_MSG_CHECKING([if _start is defined by the compiler]) |
| AC_CACHE_VAL(grub_cv_check_uscore_start_symbol, |
| [AC_TRY_LINK([], [asm ("incl _start")], |
| grub_cv_check_uscore_start_symbol=yes, |
| grub_cv_check_uscore_start_symbol=no)]) |
| |
| if test "x$grub_cv_check_uscore_start_symbol" = xyes; then |
| AC_DEFINE([HAVE_USCORE_START_SYMBOL]) |
| fi |
| |
| AC_MSG_RESULT([$grub_cv_check_uscore_start_symbol]) |
| ]) |
| |
| dnl |
| dnl grub_CHECK_END_SYMBOL checks if end is automatically defined by the |
| dnl compiler. |
| dnl Written by OKUJI Yoshinori |
| AC_DEFUN(grub_CHECK_END_SYMBOL, |
| [AC_REQUIRE([AC_PROG_CC]) |
| AC_MSG_CHECKING([if end is defined by the compiler]) |
| AC_CACHE_VAL(grub_cv_check_end_symbol, |
| [AC_TRY_LINK([], [asm ("incl end")], |
| grub_cv_check_end_symbol=yes, |
| grub_cv_check_end_symbol=no)]) |
| |
| if test "x$grub_cv_check_end_symbol" = xyes; then |
| AC_DEFINE([HAVE_END_SYMBOL]) |
| fi |
| |
| AC_MSG_RESULT([$grub_cv_check_end_symbol]) |
| ]) |
| |
| dnl |
| dnl grub_CHECK_USCORE_END_SYMBOL checks if _end is automatically defined |
| dnl by the compiler. |
| dnl Written by OKUJI Yoshinori |
| AC_DEFUN(grub_CHECK_USCORE_END_SYMBOL, |
| [AC_REQUIRE([AC_PROG_CC]) |
| AC_MSG_CHECKING([if _end is defined by the compiler]) |
| AC_CACHE_VAL(grub_cv_check_uscore_end_symbol, |
| [AC_TRY_LINK([], [asm ("incl _end")], |
| grub_cv_check_uscore_end_symbol=yes, |
| grub_cv_check_uscore_end_symbol=no)]) |
| |
| if test "x$grub_cv_check_uscore_end_symbol" = xyes; then |
| AC_DEFINE([HAVE_USCORE_END_SYMBOL]) |
| fi |
| |
| AC_MSG_RESULT([$grub_cv_check_uscore_end_symbol]) |
| ]) |
| |
| # Do all the work for Automake. This macro actually does too much -- |
| # some checks are only needed if your package does certain things. |
| # But this isn't really a big deal. |
| |
| # serial 1 |
| |
| dnl Usage: |
| dnl AM_INIT_AUTOMAKE(package,version, [no-define]) |
| |
| AC_DEFUN(AM_INIT_AUTOMAKE, |
| [AC_REQUIRE([AC_PROG_INSTALL]) |
| dnl We require 2.13 because we rely on SHELL being computed by configure. |
| AC_PREREQ([2.13]) |
| PACKAGE=[$1] |
| AC_SUBST(PACKAGE) |
| VERSION=[$2] |
| AC_SUBST(VERSION) |
| dnl test to see if srcdir already configured |
| if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then |
| AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) |
| fi |
| ifelse([$3],, |
| AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) |
| AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) |
| AC_REQUIRE([AM_SANITY_CHECK]) |
| AC_REQUIRE([AC_ARG_PROGRAM]) |
| dnl FIXME This is truly gross. |
| missing_dir=`cd $ac_aux_dir && pwd` |
| AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) |
| AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) |
| AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) |
| AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) |
| AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) |
| dnl Set install_sh for make dist |
| install_sh="$missing_dir/install-sh" |
| test -f "$install_sh" || install_sh="$missing_dir/install.sh" |
| AC_SUBST(install_sh) |
| dnl We check for tar when the user configures the end package. |
| dnl This is sad, since we only need this for "dist". However, |
| dnl there's no other good way to do it. We prefer GNU tar if |
| dnl we can find it. If we can't find a tar, it doesn't really matter. |
| AC_CHECK_PROGS(AMTAR, gnutar gtar tar) |
| dnl We need awk for the "check" target. The system "awk" is bad on |
| dnl some platforms. |
| AC_REQUIRE([AC_PROG_AWK]) |
| AMTARFLAGS= |
| if test -n "$AMTAR"; then |
| if $SHELL -c "$AMTAR --version" > /dev/null 2>&1; then |
| dnl We have GNU tar. |
| AMTARFLAGS=o |
| fi |
| fi |
| AC_SUBST(AMTARFLAGS) |
| AC_REQUIRE([AC_PROG_MAKE_SET])]) |
| |
| # |
| # Check to make sure that the build environment is sane. |
| # |
| |
| AC_DEFUN(AM_SANITY_CHECK, |
| [AC_MSG_CHECKING([whether build environment is sane]) |
| # Just in case |
| sleep 1 |
| echo timestamp > conftestfile |
| # Do `set' in a subshell so we don't clobber the current shell's |
| # arguments. Must try -L first in case configure is actually a |
| # symlink; some systems play weird games with the mod time of symlinks |
| # (eg FreeBSD returns the mod time of the symlink's containing |
| # directory). |
| if ( |
| set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` |
| if test "[$]*" = "X"; then |
| # -L didn't work. |
| set X `ls -t $srcdir/configure conftestfile` |
| fi |
| if test "[$]*" != "X $srcdir/configure conftestfile" \ |
| && test "[$]*" != "X conftestfile $srcdir/configure"; then |
| |
| # If neither matched, then we have a broken ls. This can happen |
| # if, for instance, CONFIG_SHELL is bash and it inherits a |
| # broken ls alias from the environment. This has actually |
| # happened. Such a system could not be considered "sane". |
| AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken |
| alias in your environment]) |
| fi |
| |
| test "[$]2" = conftestfile |
| ) |
| then |
| # Ok. |
| : |
| else |
| AC_MSG_ERROR([newly created file is older than distributed files! |
| Check your system clock]) |
| fi |
| rm -f conftest* |
| AC_MSG_RESULT(yes)]) |
| |
| dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) |
| dnl The program must properly implement --version. |
| AC_DEFUN(AM_MISSING_PROG, |
| [AC_MSG_CHECKING(for working $2) |
| # Run test in a subshell; some versions of sh will print an error if |
| # an executable is not found, even if stderr is redirected. |
| # Redirect stdin to placate older versions of autoconf. Sigh. |
| if ($2 --version) < /dev/null > /dev/null 2>&1; then |
| $1=$2 |
| AC_MSG_RESULT(found) |
| else |
| $1="$3/missing $2" |
| AC_MSG_RESULT(missing) |
| fi |
| AC_SUBST($1)]) |
| |
| # Like AC_CONFIG_HEADER, but automatically create stamp file. |
| |
| AC_DEFUN(AM_CONFIG_HEADER, |
| [AC_PREREQ([2.12]) |
| AC_CONFIG_HEADER([$1]) |
| dnl When config.status generates a header, we must update the stamp-h file. |
| dnl This file resides in the same directory as the config header |
| dnl that is generated. We must strip everything past the first ":", |
| dnl and everything past the last "/". |
| AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl |
| ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>, |
| <<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>, |
| <<am_indx=1 |
| for am_file in <<$1>>; do |
| case " <<$>>CONFIG_HEADERS " in |
| *" <<$>>am_file "*<<)>> |
| echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx |
| ;; |
| esac |
| am_indx=`expr "<<$>>am_indx" + 1` |
| done<<>>dnl>>) |
| changequote([,]))]) |
| |
| # Add --enable-maintainer-mode option to configure. |
| # From Jim Meyering |
| |
| # serial 1 |
| |
| AC_DEFUN(AM_MAINTAINER_MODE, |
| [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) |
| dnl maintainer-mode is disabled by default |
| AC_ARG_ENABLE(maintainer-mode, |
| [ --enable-maintainer-mode enable make rules and dependencies not useful |
| (and sometimes confusing) to the casual installer], |
| USE_MAINTAINER_MODE=$enableval, |
| USE_MAINTAINER_MODE=no) |
| AC_MSG_RESULT($USE_MAINTAINER_MODE) |
| AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) |
| MAINT=$MAINTAINER_MODE_TRUE |
| AC_SUBST(MAINT)dnl |
| ] |
| ) |
| |
| # Define a conditional. |
| |
| AC_DEFUN(AM_CONDITIONAL, |
| [AC_SUBST($1_TRUE) |
| AC_SUBST($1_FALSE) |
| if $2; then |
| $1_TRUE= |
| $1_FALSE='#' |
| else |
| $1_TRUE='#' |
| $1_FALSE= |
| fi]) |
| |