mirror of
https://git.savannah.gnu.org/git/grub.git
synced 2026-10-21 06:49:35 +00:00
222 lines
6.6 KiB
Plaintext
222 lines
6.6 KiB
Plaintext
dnl aclocal.m4 generated automatically by aclocal 1.3
|
|
|
|
dnl Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
|
|
dnl This Makefile.in 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_EXT_C checks what name gcc will use for C symbol.
|
|
dnl Originally written by Erich Boleyn, the author of GRUB, and modified
|
|
dnl by OKUJI Yoshinori to autoconfiscate the test.
|
|
AC_DEFUN(grub_ASM_EXT_C,
|
|
[AC_REQUIRE([AC_PROG_CC])
|
|
AC_MSG_CHECKING([symbol names produced by ${CC-cc}])
|
|
AC_CACHE_VAL(grub_cv_asm_ext_c,
|
|
[cat > conftest.c <<\EOF
|
|
int
|
|
func (int *list)
|
|
{
|
|
*list = 0;
|
|
return *list;
|
|
}
|
|
EOF
|
|
|
|
if AC_TRY_COMMAND([${CC-cc} -S conftest.c]) && test -s conftest.s; then :
|
|
else
|
|
AC_MSG_ERROR([${CC-cc} failed to produce assembly code])
|
|
fi
|
|
|
|
set dummy `grep \.globl conftest.s | grep func | sed -e s/\\.globl// | sed -e s/func/\ sym\ /`
|
|
shift
|
|
if test -z "[$]1"; then
|
|
AC_MSG_ERROR([C symbol not found])
|
|
fi
|
|
grub_cv_asm_ext_c="[$]1"
|
|
while shift; do
|
|
dummy=[$]1
|
|
if test ! -z ${dummy}; then
|
|
grub_cv_asm_ext_c="$grub_cv_asm_ext_c ## $dummy"
|
|
fi
|
|
done
|
|
rm -f conftest*])
|
|
|
|
AC_MSG_RESULT([$grub_cv_asm_ext_c])
|
|
AC_DEFINE_UNQUOTED([EXT_C(sym)], $grub_cv_asm_ext_c)
|
|
])
|
|
|
|
|
|
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
|
|
blah (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([${LD-ld} -N -Ttext $link_addr conftest.o -o conftest.exec]); then :
|
|
else
|
|
AC_MSG_ERROR([${LD-ld} 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_MSG_CHECKING([for .code16 addr32 assembler support])
|
|
AC_CACHE_VAL(grub_cv_asm_addr32,
|
|
[cat > conftest.s <<\EOF
|
|
.code16
|
|
l1: addr32
|
|
movb %al, l1
|
|
EOF
|
|
|
|
if AC_TRY_COMMAND([${CC-cc} -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])])
|
|
|
|
# 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([AM_PROG_INSTALL])
|
|
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")
|
|
AC_DEFINE_UNQUOTED(VERSION, "$VERSION"))
|
|
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)
|
|
AC_REQUIRE([AC_PROG_MAKE_SET])])
|
|
|
|
|
|
# serial 1
|
|
|
|
AC_DEFUN(AM_PROG_INSTALL,
|
|
[AC_REQUIRE([AC_PROG_INSTALL])
|
|
test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
|
|
AC_SUBST(INSTALL_SCRIPT)dnl
|
|
])
|
|
|
|
#
|
|
# 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)])
|
|
|