3 # Process this file with autoconf to produce a configure script.
5 # Copyright (C) 2002,2003,2004,2005,2006,2007,2008,2009,2010 Free Software Foundation, Inc.
7 # This configure.ac is free software; the author
8 # gives unlimited permission to copy and/or distribute it,
9 # with or without modifications, as long as this notice is preserved.
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
16 dnl This configure script is complicated, because GRUB needs to deal
17 dnl with three potentially different types:
19 dnl build -- the environment for building GRUB
20 dnl host -- the environment for running utilities
21 dnl target -- the environment for running GRUB
23 dnl In addition, GRUB needs to deal with a platform specification
24 dnl which specifies the system running GRUB, such as firmware.
25 dnl This is necessary because the target type in autoconf does not
26 dnl describe such a system very well.
28 dnl The current strategy is to use variables with no prefix (such as
29 dnl CC, CFLAGS, etc.) for the host type as well as the build type,
30 dnl because GRUB does not need to use those variables for the build
31 dnl type, so there is no conflict. Variables with the prefix "TARGET_"
32 dnl (such as TARGET_CC, TARGET_CFLAGS, etc.) are used for the target
35 AC_INIT([GRUB],[2.00],[bug-grub@gnu.org])
37 AC_CONFIG_AUX_DIR([build-aux])
39 # We don't want -g -O2 by default in CFLAGS
42 # Checks for host and target systems.
48 AC_CONFIG_SRCDIR([include/grub/dl.h])
49 AC_CONFIG_HEADER([config-util.h])
51 # Program name transformations
53 grub_TRANSFORM([grub-bios-setup])
54 grub_TRANSFORM([grub-editenv])
55 grub_TRANSFORM([grub-install])
56 grub_TRANSFORM([grub-mkconfig])
57 grub_TRANSFORM([grub-mkfont])
58 grub_TRANSFORM([grub-mkimage])
59 grub_TRANSFORM([grub-glue-efi])
60 grub_TRANSFORM([grub-mklayout])
61 grub_TRANSFORM([grub-mkpasswd-pbkdf2])
62 grub_TRANSFORM([grub-mkrelpath])
63 grub_TRANSFORM([grub-mkrescue])
64 grub_TRANSFORM([grub-probe])
65 grub_TRANSFORM([grub-reboot])
66 grub_TRANSFORM([grub-script-check])
67 grub_TRANSFORM([grub-set-default])
68 grub_TRANSFORM([grub-sparc64-setup])
69 grub_TRANSFORM([grub-render-label])
71 # Optimization flag. Allow user to override.
72 if test "x$TARGET_CFLAGS" = x; then
73 TARGET_CFLAGS="$TARGET_CFLAGS -Os"
76 # Default HOST_CPPFLAGS
77 HOST_CPPFLAGS="$HOST_CPPFLAGS -Wall -W"
78 HOST_CPPFLAGS="$HOST_CPPFLAGS -I\$(top_builddir)/include"
79 HOST_CPPFLAGS="$HOST_CPPFLAGS -DGRUB_UTIL=1"
80 HOST_CPPFLAGS="$HOST_CPPFLAGS -DGRUB_LIBDIR=\\\"\$(pkglibdir)\\\""
81 HOST_CPPFLAGS="$HOST_CPPFLAGS -DLOCALEDIR=\\\"\$(localedir)\\\""
83 TARGET_CPPFLAGS="$TARGET_CPPFLAGS -Wall -W"
84 TARGET_CPPFLAGS="$TARGET_CPPFLAGS -I\$(top_srcdir)/include"
85 TARGET_CPPFLAGS="$TARGET_CPPFLAGS -I\$(top_builddir)/include"
88 i[[3456]]86) target_cpu=i386 ;;
89 amd64) target_cpu=x86_64 ;;
90 sparc) target_cpu=sparc64 ;;
93 machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_CPU_MIPSEL=1";
97 machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_CPU_MIPS=1";
101 # Specify the platform (such as firmware).
102 AC_ARG_WITH([platform],
103 AS_HELP_STRING([--with-platform=PLATFORM],
104 [select the host platform [[guessed]]]))
106 # Guess the platform if not specified.
107 if test "x$with_platform" = x; then
108 case "$target_cpu"-"$target_vendor" in
109 i386-apple) platform=efi ;;
110 i386-*) platform=pc ;;
111 x86_64-apple) platform=efi ;;
112 x86_64-*) platform=pc ;;
113 powerpc-*) platform=ieee1275 ;;
114 powerpc64-*) platform=ieee1275 ;;
115 sparc64-*) platform=ieee1275 ;;
116 mipsel-*) platform=loongson ;;
117 mips-*) platform=arc ;;
118 ia64-*) platform=efi ;;
119 *) AC_MSG_ERROR([unsupported CPU: "$target_cpu"]) ;;
122 platform="$with_platform"
125 case "$target_cpu"-"$platform" in
128 x86_64-*) target_cpu=i386 ;;
129 powerpc64-ieee1275) target_cpu=powerpc ;;
132 # Check if the platform is supported, make final adjustments.
133 case "$target_cpu"-"$platform" in
139 i386-linuxbios) platform=coreboot ;;
146 mips-qemu-mips) platform=qemu_mips;;
150 mipsel-qemu-mips) platform=qemu_mips;;
151 mipsel-yeeloong) platform=loongson ;;
152 mipsel-fuloong) platform=loongson ;;
155 *) AC_MSG_ERROR([platform "$platform" is not supported for target CPU "$target_cpu"]) ;;
158 case "$target_cpu" in
159 i386 | powerpc) target_m32=1 ;;
160 x86_64 | sparc64) target_m64=1 ;;
164 mingw32*) host_os=cygwin ;;
167 # This normalizes the names, and creates a new variable ("host_kernel")
168 # while at it, since the mapping is not always 1:1 (e.g. different OSes
169 # using the same kernel type).
171 gnu*) host_kernel=hurd ;;
172 linux*) host_kernel=linux ;;
173 freebsd* | kfreebsd*-gnu) host_kernel=kfreebsd ;;
174 netbsd*) host_kernel=netbsd ;;
175 solaris*) host_kernel=illumos ;;
176 darwin*) host_kernel=xnu ;;
177 cygwin) host_kernel=windows ;;
181 coreboot) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_COREBOOT=1" ;;
182 multiboot) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_MULTIBOOT=1" ;;
183 efi) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_EFI=1" ;;
184 ieee1275) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_IEEE1275=1" ;;
185 qemu) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_QEMU=1" ;;
186 pc) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_PCBIOS=1" ;;
187 emu) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_EMU=1" ;;
188 loongson) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_MIPS_LOONGSON=1 -DGRUB_MACHINE_MIPS_BONITO=1" ;;
189 qemu_mips) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_MIPS_QEMU_MIPS=1 -DGRUB_MACHINE_MIPS_BONITO=1" ;;
190 arc) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_ARC=1" ;;
192 case "$target_cpu" in
193 mips |mipsel) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_MIPS=1" ;;
194 sparc64) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_SPARC64=1" ;;
196 if test x${target_cpu} = xmipsel ; then
197 machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE=`echo mips_$platform | sed y,abcdefghijklmnopqrstuvwxyz,ABCDEFGHIJKLMNOPQRSTUVWXYZ,`"
199 machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE=`echo ${target_cpu}_$platform | sed y,abcdefghijklmnopqrstuvwxyz,ABCDEFGHIJKLMNOPQRSTUVWXYZ,` -DGRUB_TARGET_CPU_`echo ${target_cpu} | sed y,abcdefghijklmnopqrstuvwxyz,ABCDEFGHIJKLMNOPQRSTUVWXYZ,`=1"
202 case "${target_cpu}-$platform" in
204 TARGET_LINK_ADDR=0x88200000
205 TARGET_DECOMPRESSOR_LINK_ADDR=0x88100000
208 TARGET_LINK_ADDR=0x80700000
209 TARGET_DECOMPRESSOR_LINK_ADDR=0x80600000
211 mips*-qemu_mips | mips*-loongson)
212 TARGET_DECOMPRESSOR_LINK_ADDR=0x80100000
216 AC_SUBST(TARGET_LINK_ADDR)
217 AC_SUBST(TARGET_DECOMPRESSOR_LINK_ADDR)
219 TARGET_CPPFLAGS="$TARGET_CPPFLAGS $machine_CPPFLAGS"
223 AC_SUBST(host_kernel)
228 # Define default variables
231 AC_ARG_WITH([bootdir],
232 AS_HELP_STRING([--with-bootdir=DIR],
233 [set the name of /boot directory [[guessed]]]),
234 [have_with_bootdir=y],
235 [have_with_bootdir=n])
236 if test x$have_with_bootdir = xy; then
237 bootdirname="$with_bootdir"
241 # Because /boot is used for the boot block in NetBSD and OpenBSD,
243 *) bootdirname='boot' ;;
247 AC_SUBST(bootdirname)
248 AC_DEFINE_UNQUOTED(GRUB_BOOT_DIR_NAME, "$bootdirname",
249 [Default boot directory name]")
251 AC_ARG_WITH([grubdir],
252 AS_HELP_STRING([--with-grubdir=DIR],
253 [set the name of grub directory [[guessed]]]),
254 [grubdirname="$with_grubdir"],
255 [grubdirname="$PACKAGE"])
257 AC_SUBST(grubdirname)
258 AC_DEFINE_UNQUOTED(GRUB_DIR_NAME, "$grubdirname",
259 [Default grub directory name])
262 # Checks for build programs.
265 # Although cmp is listed in the GNU Coding Standards as a command which
266 # can used directly, OpenBSD lacks cmp in the default installation.
267 AC_CHECK_PROGS([CMP], [cmp])
268 if test "x$CMP" = x; then
269 AC_MSG_ERROR([cmp is not found])
272 AC_CHECK_PROGS([YACC], [bison])
273 if test "x$YACC" = x; then
274 AC_MSG_ERROR([bison is not found])
279 for ext in pcf pcf.gz bdf bdf.gz ttf ttf.gz; do
280 for dir in . /usr/src /usr/share/fonts/X11/misc /usr/share/fonts/unifont /usr/share/fonts/uni; do
281 if test -f "$dir/unifont.$ext"; then
282 FONT_SOURCE="$dir/unifont.$ext"
288 if test "x$FONT_SOURCE" = x && ( test "x$platform" = xqemu || test "x$platform" = xloongson || test "x$platform" = xqemu_mips); then
289 AC_MSG_ERROR([qemu and loongson ports need unifont])
292 AC_SUBST([FONT_SOURCE])
303 if test "x$LEX" = "x:"; then
304 AC_MSG_ERROR([flex is not found])
306 version=`$LEX --version | $AWK '{ split($NF,x,"."); print x[[1]]*10000+x[[2]]*100+x[[3]]; }'`
307 if test -n "$version" -a "$version" -ge 20535; then
310 AC_MSG_ERROR([flex is too old. GRUB requires 2.5.35 or above])
314 # These are not a "must".
315 AC_PATH_PROGS(MAKEINFO, makeinfo true)
318 # Checks for host programs.
327 test "x$GCC" = xyes || AC_MSG_ERROR([GCC is required])
330 AM_GNU_GETTEXT([external])
333 # Identify characteristics of the host architecture.
335 AC_CHECK_SIZEOF(void *)
336 AC_CHECK_SIZEOF(long)
339 if test x$grub_cv_apple_cc = xyes ; then
340 HOST_CPPFLAGS="$HOST_CPPFLAGS -fnested-functions"
341 HOST_LDFLAGS="$HOST_LDFLAGS -Wl,-allow_stack_execute"
344 if test x$USE_NLS = xno; then
345 HOST_CFLAGS="$HOST_CFLAGS -fno-builtin-gettext"
348 if test "x$cross_compiling" = xyes; then
349 AC_MSG_WARN([cannot generate manual pages while cross compiling])
351 AC_PATH_PROG(HELP2MAN, help2man)
354 # Check for functions and headers.
355 AC_CHECK_FUNCS(posix_memalign memalign asprintf vasprintf getextmntent)
356 AC_CHECK_HEADERS(sys/param.h sys/mount.h sys/mnttab.h sys/mkdev.h limits.h)
358 AC_CHECK_MEMBERS([struct statfs.f_fstypename],,,[$ac_includes_default
359 #include <sys/param.h>
360 #include <sys/mount.h>])
362 AC_CHECK_MEMBERS([struct statfs.f_mntfromname],,,[$ac_includes_default
363 #include <sys/param.h>
364 #include <sys/mount.h>])
366 # For opendisk() and getrawpartition() on NetBSD.
367 # Used in util/deviceiter.c and in util/hostdisk.c.
368 AC_CHECK_HEADER([util.h], [
369 AC_CHECK_LIB([util], [opendisk], [
371 AC_DEFINE(HAVE_OPENDISK, 1, [Define if opendisk() in -lutil can be used])
373 AC_CHECK_LIB([util], [getrawpartition], [
375 AC_DEFINE(HAVE_GETRAWPARTITION, 1, [Define if getrawpartition() in -lutil can be used])
380 AC_CACHE_CHECK([whether -Wtrampolines work], [grub_cv_host_cc_wtrampolines], [
381 SAVED_CFLAGS="$CFLAGS"
382 CFLAGS="$HOST_CFLAGS -Wtrampolines"
383 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdarg.h>
384 int va_arg_func (int fixed, va_list args);]], [[]])],
385 [grub_cv_host_cc_wtrampolines=yes],
386 [grub_cv_host_cc_wtrampolines=no])
387 CFLAGS="$SAVED_CFLAGS"
390 if test x"$grub_host_cv_cc_wtrampolines" = xyes ; then
391 HOST_CFLAGS="$HOST_CFLAGS -Wtrampolines"
395 # Check for host and build compilers.
398 AC_CHECK_PROGS(BUILD_CC, [gcc egcs cc],
399 [AC_MSG_ERROR([none of gcc, egcs and cc is found. set BUILD_CC manually.])])
405 # Check for target programs.
408 # Find tools for the target.
409 if test "x$target_alias" != x && test "x$host_alias" != "x$target_alias"; then
410 tmp_ac_tool_prefix="$ac_tool_prefix"
411 ac_tool_prefix=$target_alias-
413 AC_CHECK_TOOLS(TARGET_CC, [gcc egcs cc],
414 [AC_MSG_ERROR([none of gcc, egcs and cc is found. set TARGET_CC manually.])])
415 AC_CHECK_TOOL(OBJCOPY, objcopy)
416 AC_CHECK_TOOL(STRIP, strip)
417 AC_CHECK_TOOL(NM, nm)
419 ac_tool_prefix="$tmp_ac_tool_prefix"
421 if test "x$TARGET_CC" = x; then
424 AC_CHECK_TOOL(OBJCOPY, objcopy)
425 AC_CHECK_TOOL(STRIP, strip)
426 AC_CHECK_TOOL(NM, nm)
432 # Test the C compiler for the target environment.
435 tmp_LDFLAGS="$LDFLAGS"
436 tmp_CPPFLAGS="$CPPFLAGS"
439 CFLAGS="$TARGET_CFLAGS"
440 CPPFLAGS="$TARGET_CPPFLAGS"
441 LDFLAGS="$TARGET_LDFLAGS"
445 WARN_FLAGS="-Wall -W -Wshadow -Wold-style-definition -Wpointer-arith -Wundef -Wextra -Waddress -Wattributes -Wcast-align -Wchar-subscripts -Wcomment -Wdeprecated-declarations -Wdisabled-optimization -Wdiv-by-zero -Wempty-body -Wendif-labels -Wfloat-equal -Wformat-extra-args -Wformat-security -Wformat-y2k -Wimplicit -Wimplicit-function-declaration -Wimplicit-int -Winit-self -Wint-to-pointer-cast -Winvalid-pch -Wmain -Wmissing-braces -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-noreturn -Wmultichar -Wnonnull -Woverflow -Wparentheses -Wpointer-arith -Wpointer-to-int-cast -Wreturn-type -Wsequence-point -Wshadow -Wsign-compare -Wstrict-aliasing -Wswitch -Wtrigraphs -Wundef -Wunknown-pragmas -Wunused -Wunused-function -Wunused-label -Wunused-parameter -Wunused-value -Wunused-variable -Wvariadic-macros -Wvolatile-register-var -Wwrite-strings -Wnested-externs -Wstrict-prototypes -Wpointer-sign"
446 HOST_CFLAGS="$HOST_CFLAGS $WARN_FLAGS"
447 TARGET_CFLAGS="$TARGET_CFLAGS $WARN_FLAGS -g -Wredundant-decls -Wmissing-prototypes -Wmissing-declarations"
448 TARGET_CCASFLAGS="$TARGET_CCASFLAGS -g"
450 # Force no alignment to save space on i386.
451 if test "x$target_cpu" = xi386; then
452 AC_CACHE_CHECK([whether -falign-loops works], [grub_cv_cc_falign_loop], [
453 CFLAGS="$CFLAGS -falign-loops=1"
454 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
455 [grub_cv_cc_falign_loop=yes],
456 [grub_cv_cc_falign_loop=no])
459 if test "x$grub_cv_cc_falign_loop" = xyes; then
460 TARGET_CFLAGS="$TARGET_CFLAGS -falign-jumps=1 -falign-loops=1 -falign-functions=1"
462 TARGET_CFLAGS="$TARGET_CFLAGS -malign-jumps=1 -malign-loops=1 -malign-functions=1"
465 # Some toolchains enable these features by default, but they need
466 # registers that aren't set up properly in GRUB.
467 TARGET_CFLAGS="$TARGET_CFLAGS -mno-mmx -mno-sse -mno-sse2 -mno-3dnow"
470 # By default, GCC 4.4 generates .eh_frame sections containing unwind
471 # information in some cases where it previously did not. GRUB doesn't need
472 # these and they just use up vital space. Restore the old compiler
474 AC_CACHE_CHECK([whether -fno-dwarf2-cfi-asm works], [grub_cv_cc_fno_dwarf2_cfi_asm], [
475 SAVE_CFLAGS="$CFLAGS"
476 CFLAGS="$CFLAGS -fno-dwarf2-cfi-asm"
477 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
478 [grub_cv_cc_fno_dwarf2_cfi_asm=yes],
479 [grub_cv_cc_fno_dwarf2_cfi_asm=no])
480 CFLAGS="$SAVE_CFLAGS"
483 if test "x$grub_cv_cc_fno_dwarf2_cfi_asm" = xyes; then
484 TARGET_CFLAGS="$TARGET_CFLAGS -fno-dwarf2-cfi-asm"
487 # By default, GCC 4.6 generates .eh_frame sections containing unwind
488 # information in some cases where it previously did not. GRUB doesn't need
489 # these and they just use up vital space. Restore the old compiler
491 AC_CACHE_CHECK([whether -fno-asynchronous-unwind-tables works], [grub_cv_cc_fno_asynchronous_unwind_tables], [
492 SAVE_CFLAGS="$CFLAGS"
493 CFLAGS="$CFLAGS -fno-dwarf2-cfi-asm"
494 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
495 [grub_cv_cc_fno_asynchronous_unwind_tables=yes],
496 [grub_cv_cc_fno_asynchronous_unwind_tables=no])
497 CFLAGS="$SAVE_CFLAGS"
500 if test "x$grub_cv_cc_fno_asynchronous_unwind_tables" = xyes; then
501 TARGET_CFLAGS="$TARGET_CFLAGS -fno-asynchronous-unwind-tables"
505 if test x$grub_cv_apple_target_cc = xyes ; then
506 TARGET_CPPFLAGS="$TARGET_CPPFLAGS -fnested-functions"
508 CFLAGS="$CFLAGS -fnested-functions"
510 AC_CHECK_PROG([OBJCONV], [objconv], [objconv], [])
511 if test "x$OBJCONV" = x ; then
512 AC_CHECK_PROG([OBJCONV], [objconv], [./objconv], [], [.])
514 if test "x$OBJCONV" = x ; then
515 AC_MSG_ERROR([objconv not found which is required when building with apple compiler])
518 TARGET_IMG_CFLAGS="-static"
519 TARGET_IMG_LDFLAGS='-nostdlib -static -Wl,-preload -Wl,-segalign,20'
520 TARGET_IMG_LDFLAGS_AC='-nostdlib -static -Wl,-preload -Wl,-segalign,20'
521 TARGET_IMG_BASE_LDOPT="-Wl,-image_base"
522 TARGET_LDFLAGS_OLDMAGIC=""
525 TARGET_LDFLAGS_OLDMAGIC="-Wl,-N"
526 # Use linker script if present, otherwise use builtin -N script.
527 if test -f "${srcdir}/${grub_coredir}/conf/${target_cpu}-${platform}-${host_os}-img-ld.sc"; then
528 TARGET_IMG_LDSCRIPT='$(top_srcdir)'"/${grub_coredir}/conf/${target_cpu}-${platform}-${host_os}-img-ld.sc"
529 TARGET_IMG_LDFLAGS="-Wl,-T${TARGET_IMG_LDSCRIPT}"
530 TARGET_IMG_LDFLAGS_AC="-Wl,-T${srcdir}/${grub_coredir}/conf/${target_cpu}-${platform}-${host_os}-img-ld.sc"
531 TARGET_IMG_BASE_LDOPT="-Wl,-Ttext"
534 TARGET_IMG_LDFLAGS='-Wl,-N'
535 TARGET_IMG_LDFLAGS_AC='-Wl,-N'
536 TARGET_IMG_BASE_LDOPT="-Wl,-Ttext"
541 AC_SUBST(TARGET_LDFLAGS_OLDMAGIC)
543 # For platforms where ELF is not the default link format.
544 AC_MSG_CHECKING([for command to convert module to ELF format])
546 cygwin) TARGET_OBJ2ELF='$(top_builddir)/grub-pe2elf';
547 # FIXME: put proper test here
548 NEED_REGISTER_FRAME_INFO=1
550 *) NEED_REGISTER_FRAME_INFO=0 ;;
552 AC_MSG_RESULT([$TARGET_OBJ2ELF])
555 AC_ARG_ENABLE([efiemu],
556 [AS_HELP_STRING([--enable-efiemu],
557 [build and install the efiemu runtimes (default=guessed)])])
558 if test x"$enable_efiemu" = xno ; then
559 efiemu_excuse="explicitly disabled"
561 if test x"$target_cpu" != xi386 ; then
562 efiemu_excuse="only available on i386"
564 if test x"$platform" = xefi ; then
565 efiemu_excuse="not available on efi"
567 if test x"$efiemu_excuse" = x ; then
568 AC_CACHE_CHECK([whether options required for efiemu work], grub_cv_cc_efiemu, [
569 SAVED_CFLAGS="$CFLAGS"
570 CFLAGS="$CFLAGS -m64 -mcmodel=large -mno-red-zone -nostdlib"
571 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
572 [grub_cv_cc_efiemu=yes],
573 [grub_cv_cc_efiemu=no])
574 CFLAGS="$SAVED_CFLAGS"
576 if test x$grub_cv_cc_efiemu = xno; then
577 efiemu_excuse="cannot compile with -m64 -mcmodel=large -mno-red-zone -nostdlib"
580 if test x"$enable_efiemu" = xyes && test x"$efiemu_excuse" != x ; then
581 AC_MSG_ERROR([efiemu runtime was explicitly requested but can't be compiled])
583 if test x"$efiemu_excuse" = x ; then
588 AC_SUBST([enable_efiemu])
590 if test "x$target_m32" = x1; then
592 TARGET_CFLAGS="$TARGET_CFLAGS -m32"
593 TARGET_CCASFLAGS="$TARGET_CCASFLAGS -m32"
594 TARGET_CPPFLAGS="$TARGET_CPPFLAGS -m32"
595 TARGET_LDFLAGS="$TARGET_LDFLAGS -m32"
596 TARGET_MODULE_FORMAT="elf32"
599 if test "x$target_m64" = x1; then
601 TARGET_CFLAGS="$TARGET_CFLAGS -m64"
602 TARGET_CCASFLAGS="$TARGET_CCASFLAGS -m64"
603 TARGET_CPPFLAGS="$TARGET_CPPFLAGS -m64"
604 TARGET_LDFLAGS="$TARGET_LDFLAGS -m64"
605 TARGET_MODULE_FORMAT="elf64"
608 if test "$target_cpu" = x86_64; then
609 # Use large model to support 4G memory
610 AC_CACHE_CHECK([whether option -mcmodel=large works], grub_cv_cc_mcmodel, [
612 CFLAGS="$CFLAGS -m64 -mcmodel=large"
613 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
614 [grub_cv_cc_mcmodel=yes],
615 [grub_cv_cc_mcmodel=no])
617 if test "x$grub_cv_cc_mcmodel" = xno; then
618 AC_MSG_ERROR([-mcmodel=large not supported. Upgrade your gcc.])
620 TARGET_CFLAGS="$TARGET_CFLAGS -mcmodel=large"
624 if test "$target_cpu"-"$platform" = x86_64-efi; then
625 # EFI writes to stack below %rsp, we must not use the red zone
626 AC_CACHE_CHECK([whether option -mno-red-zone works], grub_cv_cc_no_red_zone, [
627 CFLAGS="$CFLAGS -m64 -mno-red-zone"
628 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
629 [grub_cv_cc_no_red_zone=yes],
630 [grub_cv_cc_no_red_zone=no])
632 if test "x$grub_cv_cc_no_red_zone" = xno; then
633 AC_MSG_ERROR([-mno-red-zone not supported, upgrade your gcc])
636 TARGET_CFLAGS="$TARGET_CFLAGS -mno-red-zone"
643 # Position independent executable.
645 [# Need that, because some distributions ship compilers that include
646 # `-fPIE' in the default specs.
647 if [ x"$pie_possible" = xyes ]; then
648 TARGET_CFLAGS="$TARGET_CFLAGS -fno-PIE"
651 # Position independent executable.
653 [# Need that, because some distributions ship compilers that include
654 # `-fPIC' in the default specs.
655 if [ x"$pic_possible" = xyes ]; then
656 TARGET_CFLAGS="$TARGET_CFLAGS -fno-PIC"
659 # Smashing stack protector.
660 grub_CHECK_STACK_PROTECTOR
661 # Need that, because some distributions ship compilers that include
662 # `-fstack-protector' in the default specs.
663 if test "x$ssp_possible" = xyes; then
664 TARGET_CFLAGS="$TARGET_CFLAGS -fno-stack-protector"
666 grub_CHECK_STACK_ARG_PROBE
667 # Cygwin's GCC uses alloca() to probe the stackframe on static
668 # stack allocations above some threshold.
669 if test x"$sap_possible" = xyes; then
670 TARGET_CFLAGS="$TARGET_CFLAGS -mno-stack-arg-probe"
673 AC_ARG_ENABLE([werror],
674 [AS_HELP_STRING([--disable-werror],
675 [do not use -Werror when building GRUB])])
676 if test x"$enable_werror" != xno ; then
677 TARGET_CFLAGS="$TARGET_CFLAGS -Werror"
678 HOST_CFLAGS="$HOST_CFLAGS -Werror"
681 TARGET_CPP="$TARGET_CC -E"
682 TARGET_CCAS=$TARGET_CC
684 GRUB_TARGET_CPU="${target_cpu}"
685 GRUB_PLATFORM="${platform}"
687 AC_SUBST(GRUB_TARGET_CPU)
688 AC_SUBST(GRUB_PLATFORM)
692 AC_SUBST(TARGET_CCAS)
693 AC_SUBST(TARGET_OBJ2ELF)
694 AC_SUBST(TARGET_APPLE_CC)
695 AC_SUBST(TARGET_MODULE_FORMAT)
697 AC_SUBST(TARGET_CFLAGS)
698 AC_SUBST(TARGET_LDFLAGS)
699 AC_SUBST(TARGET_CPPFLAGS)
700 AC_SUBST(TARGET_CCASFLAGS)
702 AC_SUBST(TARGET_IMG_LDSCRIPT)
703 AC_SUBST(TARGET_IMG_LDFLAGS)
704 AC_SUBST(TARGET_IMG_CFLAGS)
705 AC_SUBST(TARGET_IMG_BASE_LDOPT)
707 AC_SUBST(HOST_CFLAGS)
708 AC_SUBST(HOST_LDFLAGS)
709 AC_SUBST(HOST_CPPFLAGS)
710 AC_SUBST(HOST_CCASFLAGS)
712 # Set them to their new values for the tests below.
714 if test "x$TARGET_APPLE_CC" = x1 ; then
715 CFLAGS="$TARGET_CFLAGS -nostdlib -Wno-error"
717 CFLAGS="$TARGET_CFLAGS -nostdlib -Wl,--defsym,___main=0x8100 -Wno-error"
719 CPPFLAGS="$TARGET_CPPFLAGS"
720 if test x$target_cpu = xi386 || test x$target_cpu = xx86_64 ; then
727 if test x$grub_cv_asm_uscore = xyes; then
728 CFLAGS="$CFLAGS -Wl,--defsym,_abort=_main"
730 CFLAGS="$CFLAGS -Wl,--defsym,abort=main"
733 # Check for libgcc symbols
734 AC_CHECK_FUNCS(__bswapsi2 __bswapdi2 __ashldi3 __ashrdi3 __lshrdi3 __ucmpdi2 _restgpr_14_x __udivsi3 __umoddi3 __udivdi3 __divsi3 __modsi3 __umodsi3 __moddi3 __divdi3 __ctzdi2 __ctzsi2)
736 if test "x$TARGET_APPLE_CC" = x1 ; then
737 CFLAGS="$TARGET_CFLAGS -nostdlib"
739 CFLAGS="$TARGET_CFLAGS -nostdlib -Wl,--defsym,___main=0x8100"
743 # Defined in aclocal.m4.
745 if test "x$TARGET_APPLE_CC" != x1 ; then
746 grub_PROG_OBJCOPY_ABSOLUTE
748 grub_PROG_LD_BUILD_ID_NONE
749 if test "x$target_cpu" = xi386; then
750 if test "$platform" != emu && test "x$TARGET_APPLE_CC" != x1 ; then
751 if test ! -z "$TARGET_IMG_LDSCRIPT"; then
752 # Check symbols provided by linker script.
753 CFLAGS="$TARGET_CFLAGS -nostdlib ${TARGET_IMG_LDFLAGS_AC} ${TARGET_IMG_BASE_LDOPT},8000 -Wl,--defsym,___main=0x8100"
755 grub_CHECK_BSS_START_SYMBOL
756 grub_CHECK_END_SYMBOL
758 CFLAGS="$TARGET_CFLAGS"
759 grub_I386_ASM_PREFIX_REQUIREMENT
763 if test "$platform" != emu; then
764 AC_CACHE_CHECK([whether -nostdinc -isystem works], [grub_cv_cc_isystem], [
765 SAVED_CPPFLAGS="$CPPFLAGS"
766 CPPFLAGS="$TARGET_CPPFLAGS -nostdinc -isystem `$TARGET_CC -print-file-name=include`"
767 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdarg.h>
769 int va_arg_func (int fixed, va_list args);]], [[]])],
770 [grub_cv_cc_isystem=yes],
771 [grub_cv_cc_isystem=no])
772 CPPFLAGS="$SAVED_CPPFLAGS"
775 if test x"$grub_cv_cc_isystem" = xyes ; then
776 TARGET_CPPFLAGS="$TARGET_CPPFLAGS -nostdinc -isystem `$TARGET_CC -print-file-name=include`"
780 AC_CACHE_CHECK([whether -Wtrampolines work], [grub_cv_cc_wtrampolines], [
781 SAVED_CFLAGS="$CFLAGS"
782 CFLAGS="$TARGET_CFLAGS -Wtrampolines"
783 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdarg.h>
784 int va_arg_func (int fixed, va_list args);]], [[]])],
785 [grub_cv_cc_wtrampolines=yes],
786 [grub_cv_cc_wtrampolines=no])
787 CFLAGS="$SAVED_CFLAGS"
790 if test x"$grub_cv_cc_wtrampolines" = xyes ; then
791 TARGET_CFLAGS="$TARGET_CFLAGS -Wtrampolines"
797 CPPFLAGS="$tmp_CPPFLAGS"
798 LDFLAGS="$tmp_LDFLAGS"
805 # Memory manager debugging.
806 AC_ARG_ENABLE([mm-debug],
807 AS_HELP_STRING([--enable-mm-debug],
808 [include memory manager debugging]),
809 [AC_DEFINE([MM_DEBUG], [1],
810 [Define to 1 if you enable memory manager debugging.])])
812 AC_ARG_ENABLE([cache-stats],
813 AS_HELP_STRING([--enable-cache-stats],
814 [enable disk cache statistics collection]))
816 if test x$enable_cache_stats = xyes; then
821 AC_SUBST([DISK_CACHE_STATS])
823 AC_ARG_ENABLE([boot-time],
824 AS_HELP_STRING([--enable-boot-time],
825 [enable boot time statistics collection]))
827 if test x$enable_boot_time = xyes; then
832 AC_SUBST([BOOT_TIME_STATS])
834 AC_ARG_ENABLE([grub-emu-usb],
835 [AS_HELP_STRING([--enable-grub-emu-usb],
836 [build and install the `grub-emu' debugging utility with USB support (default=guessed)])])
838 AC_ARG_ENABLE([grub-emu-sdl],
839 [AS_HELP_STRING([--enable-grub-emu-sdl],
840 [build and install the `grub-emu' debugging utility with SDL support (default=guessed)])])
842 AC_ARG_ENABLE([grub-emu-pci],
843 [AS_HELP_STRING([--enable-grub-emu-pci],
844 [build and install the `grub-emu' debugging utility with PCI support (potentially dangerous) (default=no)])])
846 if test "$platform" = emu; then
848 if test x"$enable_grub_emu_usb" != xyes ; then
849 grub_emu_usb_excuse="not enabled"
852 if test x"$enable_grub_emu_pci" = xyes ; then
853 grub_emu_usb_excuse="conflicts with PCI support"
856 [if [ x"$grub_emu_usb_excuse" = x ]; then
857 # Check for libusb libraries.]
858 AC_CHECK_LIB([usb], [usb_claim_interface], [LIBUSB="-lusb"],
859 [grub_emu_usb_excuse=["need libusb library"]])
862 [if [ x"$grub_emu_usb_excuse" = x ]; then
863 # Check for headers.]
864 AC_CHECK_HEADERS([usb.h], [],
865 [grub_emu_usb_excuse=["need libusb headers"]])
867 if test x"$enable_grub_emu_usb" = xyes && test x"$grub_emu_usb_excuse" != x ; then
868 AC_MSG_ERROR([USB support for grub-emu was explicitly requested but can't be compiled])
870 if test x"$grub_emu_usb_excuse" = x ; then
871 enable_grub_emu_usb=yes
873 enable_grub_emu_usb=no
876 if test x"$enable_grub_emu_sdl" = xno ; then
877 grub_emu_sdl_excuse="explicitely disabled"
879 [if [ x"$grub_emu_sdl_excuse" = x ]; then
880 # Check for libSDL libraries.]
881 AC_CHECK_LIB([SDL], [SDL_Init], [LIBSDL="-lSDL"],
882 [grub_emu_sdl_excuse=["libSDL libraries are required to build \`grub-emu' with SDL support"]])
886 [if [ x"$grub_emu_sdl_excuse" = x ]; then
887 # Check for headers.]
888 AC_CHECK_HEADERS([SDL/SDL.h], [],
889 [grub_emu_sdl_excuse=["libSDL header file is required to build \`grub-emu' with SDL support"]])
892 if test x"enable_grub_emu_sdl" = xyes && test x"$grub_emu_sdl_excuse" != x ; then
893 AC_MSG_ERROR([SDL support for grub-emu was explicitely requested but can't be compiled])
895 if test x"$grub_emu_sdl_excuse" = x ; then
896 enable_grub_emu_sdl=yes
898 enable_grub_emu_sdl=no
901 if test x"$enable_grub_emu_pci" != xyes ; then
902 grub_emu_pci_excuse="not enabled"
905 if test x"$enable_grub_emu_usb" = xyes ; then
906 grub_emu_pci_excuse="conflicts with USB support"
909 [if [ x"$grub_emu_pci_excuse" = x ]; then
910 # Check for libpci libraries.]
911 AC_CHECK_LIB([pciaccess], [pci_system_init], [LIBPCIACCESS="-lpciaccess"],
912 [grub_emu_pci_excuse=["need libpciaccess library"]])
913 AC_SUBST([LIBPCIACCESS])
915 [if [ x"$grub_emu_pci_excuse" = x ]; then
916 # Check for headers.]
917 AC_CHECK_HEADERS([pci/pci.h], [],
918 [grub_emu_pci_excuse=["need libpciaccess headers"]])
921 if test x"$grub_emu_pci_excuse" = x ; then
922 enable_grub_emu_pci=yes
925 enable_grub_emu_pci=no
928 AC_SUBST([enable_grub_emu_sdl])
929 AC_SUBST([enable_grub_emu_usb])
930 AC_SUBST([enable_grub_emu_pci])
933 AC_ARG_ENABLE([grub-mkfont],
934 [AS_HELP_STRING([--enable-grub-mkfont],
935 [build and install the `grub-mkfont' utility (default=guessed)])])
936 if test x"$enable_grub_mkfont" = xno ; then
937 grub_mkfont_excuse="explicitly disabled"
940 if test x"$grub_mkfont_excuse" = x ; then
941 # Check for freetype libraries.
942 AC_CHECK_PROGS([FREETYPE], [freetype-config])
943 if test "x$FREETYPE" = x ; then
944 grub_mkfont_excuse=["need freetype2 library"]
948 if test x"$grub_mkfont_excuse" = x ; then
949 # Check for freetype libraries.
950 freetype_cflags=`freetype-config --cflags`
951 freetype_libs=`freetype-config --libs`
952 SAVED_CPPFLAGS="$CPPFLAGS"
953 CPPFLAGS="$CPPFLAGS $freetype_cflags"
954 AC_CHECK_HEADERS([ft2build.h], [],
955 [grub_mkfont_excuse=["need freetype2 headers"]])
956 CPPFLAGS="$SAVED_CPPFLAGS"
959 if test x"$enable_grub_mkfont" = xyes && test x"$grub_mkfont_excuse" != x ; then
960 AC_MSG_ERROR([grub-mkfont was explicitly requested but can't be compiled])
962 if test x"$grub_mkfont_excuse" = x ; then
963 enable_grub_mkfont=yes
965 enable_grub_mkfont=no
967 if test x"$enable_grub_mkfont" = xno && test "x$platform" = xloongson; then
968 AC_MSG_ERROR([loongson port needs grub-mkfont])
970 AC_SUBST([enable_grub_mkfont])
971 AC_SUBST([freetype_cflags])
972 AC_SUBST([freetype_libs])
978 if test x$enable_grub_mkfont = xno; then
979 starfield_excuse="No grub-mkfont"
982 if test x"$starfield_excuse" = x; then
983 for ext in pcf pcf.gz bdf bdf.gz ttf ttf.gz; do
984 for dir in . /usr/src /usr/share/fonts/X11/misc /usr/share/fonts/truetype/ttf-dejavu /usr/share/fonts/dejavu; do
985 if test -f "$dir/DejaVuSans.$ext"; then
986 DJVU_FONT_SOURCE="$dir/DejaVuSans.$ext"
992 if test "x$DJVU_FONT_SOURCE" = x; then
993 starfield_excuse="No DejaVu found"
997 AC_SUBST([DJVU_FONT_SOURCE])
999 AC_ARG_ENABLE([grub-mount],
1000 [AS_HELP_STRING([--enable-grub-mount],
1001 [build and install the `grub-mount' utility (default=guessed)])])
1002 if test x"$enable_grub_mount" = xno ; then
1003 grub_mount_excuse="explicitly disabled"
1006 if test x"$grub_mount_excuse" = x ; then
1007 AC_CHECK_LIB([fuse], [fuse_main_real], [],
1008 [grub_mount_excuse="need FUSE library"])
1011 if test x"$grub_mount_excuse" = x ; then
1012 # Check for fuse headers.
1013 SAVED_CPPFLAGS="$CPPFLAGS"
1014 CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26"
1015 AC_CHECK_HEADERS([fuse/fuse.h], [],
1016 [grub_mount_excuse=["need FUSE headers"]])
1017 CPPFLAGS="$SAVED_CPPFLAGS"
1020 if test x"$enable_grub_mount" = xyes && test x"$grub_mount_excuse" != x ; then
1021 AC_MSG_ERROR([grub-mount was explicitly requested but can't be compiled])
1023 if test x"$grub_mount_excuse" = x ; then
1024 enable_grub_mount=yes
1026 enable_grub_mount=no
1028 AC_SUBST([enable_grub_mount])
1030 AC_ARG_ENABLE([device-mapper],
1031 [AS_HELP_STRING([--enable-device-mapper],
1032 [enable Linux device-mapper support (default=guessed)])])
1033 if test x"$enable_device_mapper" = xno ; then
1034 device_mapper_excuse="explicitly disabled"
1037 if test x"$device_mapper_excuse" = x ; then
1038 # Check for device-mapper header.
1039 AC_CHECK_HEADER([libdevmapper.h], [],
1040 [device_mapper_excuse="need libdevmapper header"])
1043 if test x"$device_mapper_excuse" = x ; then
1044 # Check for device-mapper library.
1045 AC_CHECK_LIB([devmapper], [dm_task_create], [],
1046 [device_mapper_excuse="need devmapper library"])
1049 if test x"$device_mapper_excuse" = x ; then
1050 # Check for device-mapper library.
1051 AC_CHECK_LIB([devmapper], [dm_log_with_errno_init],
1053 [device_mapper_excuse="need devmapper library"])
1056 if test x"$device_mapper_excuse" = x ; then
1057 LIBDEVMAPPER="-ldevmapper";
1058 AC_DEFINE([HAVE_DEVICE_MAPPER], [1],
1059 [Define to 1 if you have the devmapper library.])
1062 AC_SUBST([LIBDEVMAPPER])
1065 if test x$host_kernel = xkfreebsd; then
1066 AC_CHECK_LIB([geom], [geom_gettree], [],
1067 [AC_MSG_ERROR([Your platform requires libgeom])])
1073 AC_CHECK_LIB([lzma], [lzma_code],
1075 AC_DEFINE([HAVE_LIBLZMA], [1],
1076 [Define to 1 if you have the LZMA library.])],)
1079 AC_ARG_ENABLE([libzfs],
1080 [AS_HELP_STRING([--enable-libzfs],
1081 [enable libzfs integration (default=guessed)])])
1082 if test x"$enable_libzfs" = xno ; then
1083 libzfs_excuse="explicitly disabled"
1086 if test x"$libzfs_excuse" = x ; then
1087 # Only check for system headers if libzfs support has not been disabled.
1088 AC_CHECK_HEADERS(libzfs.h libnvpair.h)
1091 if test x"$libzfs_excuse" = x ; then
1092 AC_CHECK_LIB([zfs], [libzfs_init],
1094 [libzfs_excuse="need zfs library"])
1097 if test x"$libzfs_excuse" = x ; then
1098 AC_CHECK_LIB([nvpair], [nvlist_print],
1100 [libzfs_excuse="need nvpair library"])
1103 if test x"$enable_libzfs" = xyes && test x"$libzfs_excuse" != x ; then
1104 AC_MSG_ERROR([libzfs support was explicitly requested but requirements are not satisfied])
1107 if test x"$libzfs_excuse" = x ; then
1108 # We need both libzfs and libnvpair for a successful build.
1110 AC_DEFINE([HAVE_LIBZFS], [1],
1111 [Define to 1 if you have the ZFS library.])
1112 LIBNVPAIR="-lnvpair"
1113 AC_DEFINE([HAVE_LIBNVPAIR], [1],
1114 [Define to 1 if you have the NVPAIR library.])
1118 AC_SUBST([LIBNVPAIR])
1122 AC_SUBST([FONT_SOURCE])
1123 AS_IF([test x$target_cpu = xi386 -a x$platform = xqemu],
1124 [AC_SUBST([GRUB_BOOT_MACHINE_LINK_ADDR], 0xffe00)])
1125 AS_IF([test x$TARGET_APPLE_CC = x1],
1126 [AC_SUBST([USE_APPLE_CC_FIXES], yes)])
1128 AC_SUBST(HAVE_ASM_USCORE)
1131 AC_SUBST(BSS_START_SYMBOL)
1132 AC_SUBST(END_SYMBOL)
1135 AC_SUBST(NEED_ENABLE_EXECUTE_STACK)
1136 AC_SUBST(NEED_REGISTER_FRAME_INFO)
1139 # Automake conditionals
1142 AM_CONDITIONAL([COND_emu], [test x$platform = xemu])
1143 AM_CONDITIONAL([COND_i386_pc], [test x$target_cpu = xi386 -a x$platform = xpc])
1144 AM_CONDITIONAL([COND_i386_efi], [test x$target_cpu = xi386 -a x$platform = xefi])
1145 AM_CONDITIONAL([COND_ia64_efi], [test x$target_cpu = xia64 -a x$platform = xefi])
1146 AM_CONDITIONAL([COND_i386_qemu], [test x$target_cpu = xi386 -a x$platform = xqemu])
1147 AM_CONDITIONAL([COND_i386_ieee1275], [test x$target_cpu = xi386 -a x$platform = xieee1275])
1148 AM_CONDITIONAL([COND_i386_coreboot], [test x$target_cpu = xi386 -a x$platform = xcoreboot])
1149 AM_CONDITIONAL([COND_i386_multiboot], [test x$target_cpu = xi386 -a x$platform = xmultiboot])
1150 AM_CONDITIONAL([COND_x86_64_efi], [test x$target_cpu = xx86_64 -a x$platform = xefi])
1151 AM_CONDITIONAL([COND_mips_loongson], [test x$target_cpu = xmipsel -a x$platform = xloongson])
1152 AM_CONDITIONAL([COND_mips_qemu_mips], [test "(" x$target_cpu = xmips -o x$target_cpu = xmipsel ")" -a x$platform = xqemu_mips])
1153 AM_CONDITIONAL([COND_mips_arc], [test "(" x$target_cpu = xmips -o x$target_cpu = xmipsel ")" -a x$platform = xarc])
1154 AM_CONDITIONAL([COND_sparc64_ieee1275], [test x$target_cpu = xsparc64 -a x$platform = xieee1275])
1155 AM_CONDITIONAL([COND_powerpc_ieee1275], [test x$target_cpu = xpowerpc -a x$platform = xieee1275])
1156 AM_CONDITIONAL([COND_mips], [test x$target_cpu = xmips -o x$target_cpu = xmipsel])
1157 AM_CONDITIONAL([COND_mipsel], [test x$target_cpu = xmipsel])
1158 AM_CONDITIONAL([COND_mipseb], [test x$target_cpu = xmips])
1160 AM_CONDITIONAL([COND_HOST_HURD], [test x$host_kernel = xhurd])
1161 AM_CONDITIONAL([COND_HOST_LINUX], [test x$host_kernel = xlinux])
1162 AM_CONDITIONAL([COND_HOST_NETBSD], [test x$host_kernel = xnetbsd])
1163 AM_CONDITIONAL([COND_HOST_WINDOWS], [test x$host_kernel = xwindows])
1164 AM_CONDITIONAL([COND_HOST_KFREEBSD], [test x$host_kernel = xkfreebsd])
1165 AM_CONDITIONAL([COND_HOST_XNU], [test x$host_kernel = xxnu])
1166 AM_CONDITIONAL([COND_HOST_ILLUMOS], [test x$host_kernel = xillumos])
1168 AM_CONDITIONAL([COND_MAN_PAGES], [test x$cross_compiling = xno -a x$HELP2MAN != x])
1169 AM_CONDITIONAL([COND_GRUB_EMU_USB], [test x$enable_grub_emu_usb = xyes])
1170 AM_CONDITIONAL([COND_GRUB_EMU_SDL], [test x$enable_grub_emu_sdl = xyes])
1171 AM_CONDITIONAL([COND_GRUB_EMU_PCI], [test x$enable_grub_emu_pci = xyes])
1172 AM_CONDITIONAL([COND_GRUB_MKFONT], [test x$enable_grub_mkfont = xyes])
1173 AM_CONDITIONAL([COND_GRUB_MOUNT], [test x$enable_grub_mount = xyes])
1174 AM_CONDITIONAL([COND_HAVE_FONT_SOURCE], [test x$FONT_SOURCE != x])
1175 AM_CONDITIONAL([COND_GRUB_PE2ELF], [test x$TARGET_OBJ2ELF != x])
1176 AM_CONDITIONAL([COND_APPLE_CC], [test x$TARGET_APPLE_CC = x1])
1177 AM_CONDITIONAL([COND_ENABLE_EFIEMU], [test x$enable_efiemu = xyes])
1178 AM_CONDITIONAL([COND_ENABLE_CACHE_STATS], [test x$DISK_CACHE_STATS = x1])
1179 AM_CONDITIONAL([COND_ENABLE_BOOT_TIME_STATS], [test x$BOOT_TIME_STATS = x1])
1181 AM_CONDITIONAL([COND_HAVE_ASM_USCORE], [test x$HAVE_ASM_USCORE = x1])
1182 AM_CONDITIONAL([COND_CYGWIN], [test x$host_os = xcygwin])
1183 AM_CONDITIONAL([COND_STARFIELD], [test "x$starfield_excuse" = x])
1186 cpudir="${target_cpu}"
1187 if test x${cpudir} = xmipsel; then
1191 if test x"$link_dir" = xyes ; then
1192 AC_CONFIG_LINKS([include/grub/cpu:include/grub/$cpudir])
1193 if test "$platform" != emu ; then
1194 AC_CONFIG_LINKS([include/grub/machine:include/grub/$cpudir/$platform])
1197 mkdir -p include/grub 2>/dev/null
1198 rm -rf include/grub/cpu
1199 cp -rp $srcdir/include/grub/$cpudir include/grub/cpu 2>/dev/null
1200 if test "$platform" != emu ; then
1201 rm -rf include/grub/machine
1202 cp -rp $srcdir/include/grub/$cpudir/$platform include/grub/machine 2>/dev/null
1206 AC_CONFIG_FILES([Makefile])
1207 AC_CONFIG_FILES([grub-core/Makefile])
1208 AC_CONFIG_FILES([grub-core/gnulib/Makefile])
1209 AC_CONFIG_FILES([po/Makefile.in])
1210 AC_CONFIG_FILES([docs/Makefile])
1211 AC_CONFIG_FILES([util/bash-completion.d/Makefile])
1212 AC_CONFIG_FILES([stamp-h], [echo timestamp > stamp-h])
1213 AC_CONFIG_FILES([config.h])
1217 echo "*******************************************************"
1218 echo GRUB2 will be compiled with following components:
1219 echo Platform: "$target_cpu"-"$platform"
1220 if [ x"$platform" = xemu ]; then
1221 if [ x"$grub_emu_usb_excuse" = x ]; then
1222 echo USB support for grub-emu: Yes
1224 echo USB support for grub-emu: No "($grub_emu_usb_excuse)"
1226 if [ x"$grub_emu_sdl_excuse" = x ]; then
1227 echo SDL support for grub-emu: Yes
1229 echo SDL support for grub-emu: No "($grub_emu_sdl_excuse)"
1231 if [ x"$grub_emu_pci_excuse" = x ]; then
1232 echo PCI support for grub-emu: Yes
1234 echo PCI support for grub-emu: No "($grub_emu_pci_excuse)"
1237 if test x"$device_mapper_excuse" = x ; then
1238 echo With devmapper support: Yes
1240 echo With devmapper support: No "($device_mapper_excuse)"
1242 if [ x"$enable_mm_debug" = xyes ]; then
1243 echo With memory debugging: Yes
1245 echo With memory debugging: No
1247 if [ x"$enable_cache_stats" = xyes ]; then
1248 echo With disk cache statistics: Yes
1250 echo With disk cache statistics: No
1253 if [ x"$enable_boot_time" = xyes ]; then
1254 echo With boot time statistics: Yes
1256 echo With boot time statistics: No
1259 if [ x"$efiemu_excuse" = x ]; then
1260 echo efiemu runtime: Yes
1262 echo efiemu runtime: No "($efiemu_excuse)"
1264 if [ x"$grub_mkfont_excuse" = x ]; then
1265 echo grub-mkfont: Yes
1267 echo grub-mkfont: No "($grub_mkfont_excuse)"
1269 if [ x"$grub_mount_excuse" = x ]; then
1270 echo grub-mount: Yes
1272 echo grub-mount: No "($grub_mount_excuse)"
1274 if [ x"$starfield_excuse" = x ]; then
1275 echo starfield theme: Yes
1277 echo starfield theme: No "($starfield_excuse)"
1279 if [ x"$libzfs_excuse" = x ]; then
1280 echo With libzfs support: Yes
1282 echo With libzfs support: No "($libzfs_excuse)"
1284 echo "*******************************************************"