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],[1.99],[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
54 # Optimization flag. Allow user to override.
55 if test "x$TARGET_CFLAGS" = x; then
56 TARGET_CFLAGS="$TARGET_CFLAGS -Os"
59 # Default HOST_CPPFLAGS
60 HOST_CPPFLAGS="$HOST_CPPFLAGS -Wall -W"
61 HOST_CPPFLAGS="$HOST_CPPFLAGS -I\$(top_builddir)/include"
62 HOST_CPPFLAGS="$HOST_CPPFLAGS -DGRUB_UTIL=1"
63 HOST_CPPFLAGS="$HOST_CPPFLAGS -DGRUB_LIBDIR=\\\"\$(pkglibdir)\\\""
64 HOST_CPPFLAGS="$HOST_CPPFLAGS -DLOCALEDIR=\\\"\$(localedir)\\\""
66 TARGET_CPPFLAGS="$TARGET_CPPFLAGS -Wall -W"
67 TARGET_CPPFLAGS="$TARGET_CPPFLAGS -I\$(top_srcdir)/include"
68 TARGET_CPPFLAGS="$TARGET_CPPFLAGS -I\$(top_builddir)/include"
71 i[[3456]]86) target_cpu=i386 ;;
72 amd64) target_cpu=x86_64 ;;
73 sparc) target_cpu=sparc64 ;;
76 machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_CPU_MIPSEL=1";
80 machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_CPU_MIPS=1";
84 # Specify the platform (such as firmware).
85 AC_ARG_WITH([platform],
86 AS_HELP_STRING([--with-platform=PLATFORM],
87 [select the host platform [[guessed]]]))
89 # Guess the platform if not specified.
90 if test "x$with_platform" = x; then
91 case "$target_cpu"-"$target_vendor" in
92 i386-apple) platform=efi ;;
93 i386-*) platform=pc ;;
94 x86_64-apple) platform=efi ;;
95 x86_64-*) platform=pc ;;
96 powerpc-*) platform=ieee1275 ;;
97 powerpc64-*) platform=ieee1275 ;;
98 sparc64-*) platform=ieee1275 ;;
99 mipsel-*) platform=loongson ;;
100 mips-*) platform=arc ;;
101 ia64-*) platform=efi ;;
102 *) AC_MSG_ERROR([unsupported CPU: "$target_cpu"]) ;;
105 platform="$with_platform"
108 case "$target_cpu"-"$platform" in
111 x86_64-*) target_cpu=i386 ;;
112 powerpc64-ieee1275) target_cpu=powerpc ;;
115 # Check if the platform is supported, make final adjustments.
116 case "$target_cpu"-"$platform" in
122 i386-linuxbios) platform=coreboot ;;
129 mips-qemu-mips) platform=qemu_mips;;
132 mipsel-qemu-mips) platform=qemu_mips;;
133 mipsel-yeeloong) platform=loongson ;;
134 mipsel-fuloong) platform=loongson ;;
137 *) AC_MSG_ERROR([platform "$platform" is not supported for target CPU "$target_cpu"]) ;;
140 case "$target_cpu" in
141 i386 | powerpc) target_m32=1 ;;
142 x86_64 | sparc64) target_m64=1 ;;
146 mingw32*) host_os=cygwin ;;
149 # This normalizes the names, and creates a new variable ("host_kernel")
150 # while at it, since the mapping is not always 1:1 (e.g. different OSes
151 # using the same kernel type).
153 gnu*) host_kernel=hurd ;;
154 linux*) host_kernel=linux ;;
155 freebsd* | kfreebsd*-gnu) host_kernel=kfreebsd ;;
156 netbsd*) host_kernel=netbsd ;;
157 solaris*) host_kernel=illumos ;;
158 cygwin) host_kernel=windows ;;
162 coreboot) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_COREBOOT=1" ;;
163 multiboot) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_MULTIBOOT=1" ;;
164 efi) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_EFI=1" ;;
165 ieee1275) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_IEEE1275=1" ;;
166 qemu) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_QEMU=1" ;;
167 pc) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_PCBIOS=1" ;;
168 emu) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_EMU=1" ;;
169 loongson) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_MIPS_LOONGSON=1 -DGRUB_MACHINE_MIPS_BONITO=1" ;;
170 qemu_mips) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_MIPS_QEMU_MIPS=1 -DGRUB_MACHINE_MIPS_BONITO=1" ;;
171 arc) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_ARC=1" ;;
173 case "$target_cpu" in
174 mips |mipsel) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_MIPS=1" ;;
175 sparc64) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_SPARC64=1" ;;
177 if test x${target_cpu} = xmipsel ; then
178 machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE=`echo mips_$platform | sed y,abcdefghijklmnopqrstuvwxyz,ABCDEFGHIJKLMNOPQRSTUVWXYZ,`"
180 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"
183 HOST_CPPFLAGS="$HOST_CPPFLAGS $machine_CPPFLAGS"
184 TARGET_CPPFLAGS="$TARGET_CPPFLAGS $machine_CPPFLAGS"
188 AC_SUBST(host_kernel)
193 # Define default variables
196 # Because /boot is used for the boot block in NetBSD and OpenBSD,
198 *) bootdirname='boot' ;;
200 bootdirname=`echo "$bootdirname" | sed "$program_transform_name"`
201 AC_SUBST(bootdirname)
202 AC_DEFINE_UNQUOTED(GRUB_BOOT_DIR_NAME, "$bootdirname",
203 [Default boot directory name]")
205 grubdirname=`echo "$PACKAGE" | sed "$program_transform_name"`
206 AC_SUBST(grubdirname)
207 AC_DEFINE_UNQUOTED(GRUB_DIR_NAME, "$grubdirname",
208 [Default grub directory name])
211 # Checks for build programs.
214 # Although cmp is listed in the GNU Coding Standards as a command which
215 # can used directly, OpenBSD lacks cmp in the default installation.
216 AC_CHECK_PROGS([CMP], [cmp])
217 if test "x$CMP" = x; then
218 AC_MSG_ERROR([cmp is not found])
221 AC_CHECK_PROGS([YACC], [bison])
222 if test "x$YACC" = x; then
223 AC_MSG_ERROR([bison is not found])
228 for ext in pcf pcf.gz bdf bdf.gz ttf ttf.gz; do
229 for dir in . /usr/src /usr/share/fonts/X11/misc /usr/share/fonts/unifont; do
230 if test -f "$dir/unifont.$ext"; then
231 FONT_SOURCE="$dir/unifont.$ext"
237 if test "x$FONT_SOURCE" = x && ( test "x$platform" = xqemu || test "x$platform" = xloongson || test "x$platform" = xqemu_mips); then
238 AC_MSG_ERROR([qemu and loongson ports need unifont])
241 AC_SUBST([FONT_SOURCE])
252 if test "x$LEX" = "x:"; then
253 AC_MSG_ERROR([flex is not found])
255 version=`$LEX --version | $AWK '{ split($NF,x,"."); print x[[1]]*10000+x[[2]]*100+x[[3]]; }'`
256 if test -n "$version" -a "$version" -ge 20535; then
259 AC_MSG_ERROR([flex is too old. GRUB requires 2.5.35 or above])
263 # These are not a "must".
264 AC_PATH_PROGS(MAKEINFO, makeinfo true)
267 # Checks for host programs.
276 test "x$GCC" = xyes || AC_MSG_ERROR([GCC is required])
279 AM_GNU_GETTEXT([external])
282 # Identify characteristics of the host architecture.
284 AC_CHECK_SIZEOF(void *)
285 AC_CHECK_SIZEOF(long)
288 if test x$grub_cv_apple_cc = xyes ; then
289 HOST_CPPFLAGS="$HOST_CPPFLAGS -DAPPLE_CC=1"
290 HOST_CFLAGS="$HOST_CFLAGS -fnested-functions"
293 if test x$USE_NLS = xno; then
294 HOST_CFLAGS="$HOST_CFLAGS -fno-builtin-gettext"
297 if test "x$cross_compiling" = xyes; then
298 AC_MSG_WARN([cannot generate manual pages while cross compiling])
300 AC_PATH_PROG(HELP2MAN, help2man)
303 # Check for functions and headers.
304 AC_CHECK_FUNCS(posix_memalign memalign asprintf vasprintf getextmntent)
305 AC_CHECK_HEADERS(libzfs.h libnvpair.h sys/param.h sys/mount.h sys/mnttab.h sys/mkdev.h limits.h)
307 AC_CHECK_MEMBERS([struct statfs.f_fstypename],,,[$ac_includes_default
308 #include <sys/param.h>
309 #include <sys/mount.h>])
311 AC_CHECK_MEMBERS([struct statfs.f_mntfromname],,,[$ac_includes_default
312 #include <sys/param.h>
313 #include <sys/mount.h>])
315 # For opendisk() and getrawpartition() on NetBSD.
316 # Used in util/deviceiter.c and in util/hostdisk.c.
317 AC_CHECK_HEADER([util.h], [
318 AC_CHECK_LIB([util], [opendisk], [
320 AC_DEFINE(HAVE_OPENDISK, 1, [Define if opendisk() in -lutil can be used])
322 AC_CHECK_LIB([util], [getrawpartition], [
324 AC_DEFINE(HAVE_GETRAWPARTITION, 1, [Define if getrawpartition() in -lutil can be used])
330 # Check for host and build compilers.
333 AC_CHECK_PROGS(BUILD_CC, [gcc egcs cc],
334 [AC_MSG_ERROR([none of gcc, egcs and cc is found. set BUILD_CC manually.])])
340 # Check for target programs.
343 # Find tools for the target.
344 if test "x$target_alias" != x && test "x$host_alias" != "x$target_alias"; then
345 tmp_ac_tool_prefix="$ac_tool_prefix"
346 ac_tool_prefix=$target_alias-
348 AC_CHECK_TOOLS(TARGET_CC, [gcc egcs cc],
349 [AC_MSG_ERROR([none of gcc, egcs and cc is found. set TARGET_CC manually.])])
350 AC_CHECK_TOOL(OBJCOPY, objcopy)
351 AC_CHECK_TOOL(STRIP, strip)
352 AC_CHECK_TOOL(NM, nm)
354 ac_tool_prefix="$tmp_ac_tool_prefix"
356 if test "x$TARGET_CC" = x; then
359 AC_CHECK_TOOL(OBJCOPY, objcopy)
360 AC_CHECK_TOOL(STRIP, strip)
361 AC_CHECK_TOOL(NM, nm)
367 # Test the C compiler for the target environment.
370 tmp_LDFLAGS="$LDFLAGS"
371 tmp_CPPFLAGS="$CPPFLAGS"
374 CFLAGS="$TARGET_CFLAGS"
375 CPPFLAGS="$TARGET_CPPFLAGS"
376 LDFLAGS="$TARGET_LDFLAGS"
380 WARN_FLAGS="-Wall -W -Wshadow -Wold-style-declaration -Wold-style-definition -Wpointer-arith -Wundef -Wextra -Waddress -Warray-bounds -Wattributes -Wbuiltin-macro-redefined -Wcast-align -Wchar-subscripts -Wclobbered -Wcomment -Wcoverage-mismatch -Wdeprecated -Wdeprecated-declarations -Wdisabled-optimization -Wdiv-by-zero -Wempty-body -Wendif-labels -Wfloat-equal -Wformat-contains-nul -Wformat-extra-args -Wformat-security -Wformat-y2k -Wignored-qualifiers -Wimplicit -Wimplicit-function-declaration -Wimplicit-int -Winit-self -Wint-to-pointer-cast -Winvalid-pch -Wunsafe-loop-optimizations -Wlogical-op -Wmain -Wmissing-braces -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-noreturn -Wmudflap -Wmultichar -Wnonnull -Woverflow -Wpacked-bitfield-compat -Wparentheses -Wpointer-arith -Wpointer-to-int-cast -Wreturn-type -Wsequence-point -Wshadow -Wsign-compare -Wstrict-aliasing -Wswitch -Wsync-nand -Wtrigraphs -Wtype-limits -Wundef -Wuninitialized -Wunknown-pragmas -Wunused -Wunused-function -Wunused-label -Wunused-parameter -Wunused-value -Wunused-variable -Wvariadic-macros -Wvolatile-register-var -Wwrite-strings -Wmissing-parameter-type -Wnested-externs -Wstrict-prototypes -Wpointer-sign"
381 HOST_CFLAGS="$HOST_CFLAGS $WARN_FLAGS"
382 TARGET_CFLAGS="$TARGET_CFLAGS $WARN_FLAGS -g -Wredundant-decls -Wmissing-prototypes -Wmissing-declarations"
383 TARGET_CCASFLAGS="$TARGET_CCASFLAGS -g"
385 # Force no alignment to save space on i386.
386 if test "x$target_cpu" = xi386; then
387 AC_CACHE_CHECK([whether -falign-loops works], [grub_cv_cc_falign_loop], [
388 CFLAGS="$CFLAGS -falign-loops=1"
389 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
390 [grub_cv_cc_falign_loop=yes],
391 [grub_cv_cc_falign_loop=no])
394 if test "x$grub_cv_cc_falign_loop" = xyes; then
395 TARGET_CFLAGS="$TARGET_CFLAGS -falign-jumps=1 -falign-loops=1 -falign-functions=1"
397 TARGET_CFLAGS="$TARGET_CFLAGS -malign-jumps=1 -malign-loops=1 -malign-functions=1"
400 # Some toolchains enable these features by default, but they need
401 # registers that aren't set up properly in GRUB.
402 TARGET_CFLAGS="$TARGET_CFLAGS -mno-mmx -mno-sse -mno-sse2 -mno-3dnow"
405 # By default, GCC 4.4 generates .eh_frame sections containing unwind
406 # information in some cases where it previously did not. GRUB doesn't need
407 # these and they just use up vital space. Restore the old compiler
409 AC_CACHE_CHECK([whether -fno-dwarf2-cfi-asm works], [grub_cv_cc_fno_dwarf2_cfi_asm], [
410 SAVE_CFLAGS="$CFLAGS"
411 CFLAGS="$CFLAGS -fno-dwarf2-cfi-asm"
412 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
413 [grub_cv_cc_fno_dwarf2_cfi_asm=yes],
414 [grub_cv_cc_fno_dwarf2_cfi_asm=no])
415 CFLAGS="$SAVE_CFLAGS"
418 if test "x$grub_cv_cc_fno_dwarf2_cfi_asm" = xyes; then
419 TARGET_CFLAGS="$TARGET_CFLAGS -fno-dwarf2-cfi-asm"
422 # By default, GCC 4.6 generates .eh_frame sections containing unwind
423 # information in some cases where it previously did not. GRUB doesn't need
424 # these and they just use up vital space. Restore the old compiler
426 AC_CACHE_CHECK([whether -fno-asynchronous-unwind-tables works], [grub_cv_cc_fno_asynchronous_unwind_tables], [
427 SAVE_CFLAGS="$CFLAGS"
428 CFLAGS="$CFLAGS -fno-dwarf2-cfi-asm"
429 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
430 [grub_cv_cc_fno_asynchronous_unwind_tables=yes],
431 [grub_cv_cc_fno_asynchronous_unwind_tables=no])
432 CFLAGS="$SAVE_CFLAGS"
435 if test "x$grub_cv_cc_fno_asynchronous_unwind_tables" = xyes; then
436 TARGET_CFLAGS="$TARGET_CFLAGS -fno-asynchronous-unwind-tables"
440 if test x$grub_cv_apple_target_cc = xyes ; then
441 TARGET_CPPFLAGS="$TARGET_CPPFLAGS -DAPPLE_CC=1"
442 TARGET_CFLAGS="$TARGET_CFLAGS -fnested-functions"
444 CFLAGS="$CFLAGS -DAPPLE_CC=1 -fnested-functions"
446 AC_CHECK_PROG([OBJCONV], [objconv], [objconv], [])
447 if test "x$OBJCONV" = x ; then
448 AC_CHECK_PROG([OBJCONV], [objconv], [./objconv], [], [.])
450 if test "x$OBJCONV" = x ; then
451 AC_MSG_ERROR([objconv not found which is required when building with apple compiler])
454 TARGET_IMG_CFLAGS="-static"
455 TARGET_IMG_LDFLAGS='-nostdlib -static -Wl,-preload -Wl,-segalign,20'
456 TARGET_IMG_LDFLAGS_AC='-nostdlib -static -Wl,-preload -Wl,-segalign,20'
457 TARGET_IMG_BASE_LDOPT="-Wl,-image_base"
460 # Use linker script if present, otherwise use builtin -N script.
461 if test -f "${srcdir}/${grub_coredir}/conf/${target_cpu}-${platform}-${host_os}-img-ld.sc"; then
462 TARGET_IMG_LDSCRIPT='$(top_srcdir)'"/${grub_coredir}/conf/${target_cpu}-${platform}-${host_os}-img-ld.sc"
463 TARGET_IMG_LDFLAGS="-Wl,-T${TARGET_IMG_LDSCRIPT}"
464 TARGET_IMG_LDFLAGS_AC="-Wl,-T${srcdir}/${grub_coredir}/conf/${target_cpu}-${platform}-${host_os}-img-ld.sc"
465 TARGET_IMG_BASE_LDOPT="-Wl,-Ttext"
468 TARGET_IMG_LDFLAGS='-Wl,-N'
469 TARGET_IMG_LDFLAGS_AC='-Wl,-N'
470 TARGET_IMG_BASE_LDOPT="-Wl,-Ttext"
475 # For platforms where ELF is not the default link format.
476 AC_MSG_CHECKING([for command to convert module to ELF format])
478 cygwin) TARGET_OBJ2ELF='$(top_builddir)/grub-pe2elf';
479 # FIXME: put proper test here
480 NEED_REGISTER_FRAME_INFO=1
482 *) NEED_REGISTER_FRAME_INFO=0 ;;
484 AC_MSG_RESULT([$TARGET_OBJ2ELF])
487 AC_ARG_ENABLE([efiemu],
488 [AS_HELP_STRING([--enable-efiemu],
489 [build and install the efiemu runtimes (default=guessed)])])
490 if test x"$enable_efiemu" = xno ; then
491 efiemu_excuse="explicitly disabled"
493 if test x"$target_cpu" != xi386 ; then
494 efiemu_excuse="only available on i386"
496 if test x"$platform" = xefi ; then
497 efiemu_excuse="not available on efi"
499 if test x"$efiemu_excuse" = x ; then
500 AC_CACHE_CHECK([whether options required for efiemu work], grub_cv_cc_efiemu, [
501 CFLAGS="$CFLAGS -m64 -mcmodel=large -mno-red-zone -nostdlib"
502 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
503 [grub_cv_cc_efiemu=yes],
504 [grub_cv_cc_efiemu=no])
506 if test x$grub_cv_cc_efiemu = xno; then
507 efiemu_excuse="cannot compile with -m64 -mcmodel=large -mno-red-zone -nostdlib"
510 if test x"$enable_efiemu" = xyes && test x"$efiemu_excuse" != x ; then
511 AC_MSG_ERROR([efiemu runtime was explicitly requested but can't be compiled])
513 if test x"$efiemu_excuse" = x ; then
518 AC_SUBST([enable_efiemu])
520 if test "x$target_m32" = x1; then
522 TARGET_CFLAGS="$TARGET_CFLAGS -m32"
523 TARGET_CCASFLAGS="$TARGET_CCASFLAGS -m32"
524 TARGET_CPPFLAGS="$TARGET_CPPFLAGS -m32"
525 TARGET_LDFLAGS="$TARGET_LDFLAGS -m32"
526 TARGET_MODULE_FORMAT="elf32"
529 if test "x$target_m64" = x1; then
531 TARGET_CFLAGS="$TARGET_CFLAGS -m64"
532 TARGET_CCASFLAGS="$TARGET_CCASFLAGS -m64"
533 TARGET_CPPFLAGS="$TARGET_CPPFLAGS -m64"
534 TARGET_LDFLAGS="$TARGET_LDFLAGS -m64"
535 TARGET_MODULE_FORMAT="elf64"
538 if test "$target_cpu"-"$platform" = x86_64-efi; then
539 # Use large model to support 4G memory
540 AC_CACHE_CHECK([whether option -mcmodel=large works], grub_cv_cc_mcmodel, [
542 CFLAGS="$CFLAGS -m64 -mcmodel=large"
543 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
544 [grub_cv_cc_mcmodel=yes],
545 [grub_cv_cc_mcmodel=no])
547 if test "x$grub_cv_cc_mcmodel" = xno; then
548 AC_MSG_ERROR([-mcmodel=large not supported. Upgrade your gcc.])
550 TARGET_CFLAGS="$TARGET_CFLAGS -mcmodel=large"
553 # EFI writes to stack below %rsp, we must not use the red zone
554 AC_CACHE_CHECK([whether option -mno-red-zone works], grub_cv_cc_no_red_zone, [
555 CFLAGS="$CFLAGS -m64 -mno-red-zone"
556 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
557 [grub_cv_cc_no_red_zone=yes],
558 [grub_cv_cc_no_red_zone=no])
560 if test "x$grub_cv_cc_no_red_zone" = xno; then
561 AC_MSG_ERROR([-mno-red-zone not supported, upgrade your gcc])
564 TARGET_CFLAGS="$TARGET_CFLAGS -mno-red-zone"
571 # Need __enable_execute_stack() for nested function trampolines?
572 grub_CHECK_ENABLE_EXECUTE_STACK
574 # Position independent executable.
576 [# Need that, because some distributions ship compilers that include
577 # `-fPIE' in the default specs.
578 if [ x"$pie_possible" = xyes ]; then
579 TARGET_CFLAGS="$TARGET_CFLAGS -fno-PIE"
582 # Smashing stack protector.
583 grub_CHECK_STACK_PROTECTOR
584 # Need that, because some distributions ship compilers that include
585 # `-fstack-protector' in the default specs.
586 if test "x$ssp_possible" = xyes; then
587 TARGET_CFLAGS="$TARGET_CFLAGS -fno-stack-protector"
589 grub_CHECK_STACK_ARG_PROBE
590 # Cygwin's GCC uses alloca() to probe the stackframe on static
591 # stack allocations above some threshold.
592 if test x"$sap_possible" = xyes; then
593 TARGET_CFLAGS="$TARGET_CFLAGS -mno-stack-arg-probe"
596 AC_ARG_ENABLE([werror],
597 [AS_HELP_STRING([--disable-werror],
598 [do not use -Werror when building GRUB])])
599 if test x"$enable_werror" != xno ; then
600 TARGET_CFLAGS="$TARGET_CFLAGS -Werror"
601 HOST_CFLAGS="$HOST_CFLAGS -Werror"
604 TARGET_CPP="$TARGET_CC -E"
605 TARGET_CCAS=$TARGET_CC
607 GRUB_TARGET_CPU="${target_cpu}"
608 GRUB_PLATFORM="${platform}"
610 AC_SUBST(GRUB_TARGET_CPU)
611 AC_SUBST(GRUB_PLATFORM)
615 AC_SUBST(TARGET_CCAS)
616 AC_SUBST(TARGET_OBJ2ELF)
617 AC_SUBST(TARGET_APPLE_CC)
618 AC_SUBST(TARGET_MODULE_FORMAT)
620 AC_SUBST(TARGET_CFLAGS)
621 AC_SUBST(TARGET_LDFLAGS)
622 AC_SUBST(TARGET_CPPFLAGS)
623 AC_SUBST(TARGET_CCASFLAGS)
625 AC_SUBST(TARGET_IMG_LDSCRIPT)
626 AC_SUBST(TARGET_IMG_LDFLAGS)
627 AC_SUBST(TARGET_IMG_CFLAGS)
628 AC_SUBST(TARGET_IMG_BASE_LDOPT)
630 AC_SUBST(HOST_CFLAGS)
631 AC_SUBST(HOST_LDFLAGS)
632 AC_SUBST(HOST_CPPFLAGS)
633 AC_SUBST(HOST_CCASFLAGS)
635 # Set them to their new values for the tests below.
637 if test "x$TARGET_APPLE_CC" = x1 ; then
638 CFLAGS="$TARGET_CFLAGS -nostdlib -Wno-error"
640 CFLAGS="$TARGET_CFLAGS -nostdlib -Wl,--defsym,___main=0x8100 -Wno-error"
642 CPPFLAGS="$TARGET_CPPFLAGS"
643 if test x$target_cpu = xi386 || test x$target_cpu = xx86_64 ; then
650 if test x$grub_cv_asm_uscore = xyes; then
651 CFLAGS="$CFLAGS -Wl,--defsym,_abort=_main"
653 CFLAGS="$CFLAGS -Wl,--defsym,abort=main"
656 # Check for libgcc symbols
657 AC_CHECK_FUNCS(__bswapsi2 __bswapdi2 __ashldi3 __ashrdi3 __lshrdi3 __trampoline_setup __ucmpdi2 _restgpr_14_x __ia64_trampoline __udivsi3 __umoddi3 __udivdi3 __divsi3 __modsi3 __umodsi3 __moddi3 __divdi3 __ctzdi2 __ctzsi2)
659 if test "x$TARGET_APPLE_CC" = x1 ; then
660 CFLAGS="$TARGET_CFLAGS -nostdlib"
662 CFLAGS="$TARGET_CFLAGS -nostdlib -Wl,--defsym,___main=0x8100"
666 # Defined in aclocal.m4.
668 if test "x$TARGET_APPLE_CC" != x1 ; then
669 grub_PROG_OBJCOPY_ABSOLUTE
671 grub_PROG_LD_BUILD_ID_NONE
672 if test "x$target_cpu" = xi386; then
673 if test "$platform" != emu && test "x$TARGET_APPLE_CC" != x1 ; then
674 if test ! -z "$TARGET_IMG_LDSCRIPT"; then
675 # Check symbols provided by linker script.
676 CFLAGS="$TARGET_CFLAGS -nostdlib ${TARGET_IMG_LDFLAGS_AC} ${TARGET_IMG_BASE_LDOPT},8000 -Wl,--defsym,___main=0x8100"
678 grub_CHECK_BSS_START_SYMBOL
679 grub_CHECK_END_SYMBOL
681 CFLAGS="$TARGET_CFLAGS"
682 grub_I386_ASM_PREFIX_REQUIREMENT
686 if test "$platform" != emu; then
687 AC_CACHE_CHECK([whether -nostdinc -isystem works], [grub_cv_cc_isystem], [
688 SAVED_CPPFLAGS="$CPPFLAGS"
689 CPPFLAGS="$TARGET_CPPFLAGS -nostdinc -isystem `$TARGET_CC -print-file-name=include`"
690 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdarg.h>
691 int va_arg_func (int fixed, va_list args);]], [[]])],
692 [grub_cv_cc_isystem=yes],
693 [grub_cv_cc_isystem=no])
694 CPPFLAGS="$SAVED_CPPFLAGS"
697 if test x"$grub_cv_cc_isystem" = xyes ; then
698 TARGET_CPPFLAGS="$TARGET_CPPFLAGS -nostdinc -isystem `$TARGET_CC -print-file-name=include`"
702 AC_CACHE_CHECK([whether -Wno-trampolines work], [grub_cv_cc_wnotrampolines], [
703 SAVED_CFLAGS="$CFLAGS"
704 # Test for -Wtrampolines rather than -Wno-trampolines to reduce confusion
705 # in the event of later failures (since -Wno-* is always accepted, but
706 # produces a diagnostic if something else is wrong).
707 CFLAGS="$TARGET_CFLAGS -Wtrampolines"
708 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdarg.h>
709 int va_arg_func (int fixed, va_list args);]], [[]])],
710 [grub_cv_cc_wnotrampolines=yes],
711 [grub_cv_cc_wnotrampolines=no])
712 CFLAGS="$SAVED_CFLAGS"
715 if test x"$grub_cv_cc_wnotrampolines" = xyes ; then
716 TARGET_CFLAGS="$TARGET_CFLAGS -Wno-trampolines"
722 CPPFLAGS="$tmp_CPPFLAGS"
723 LDFLAGS="$tmp_LDFLAGS"
730 # Memory manager debugging.
731 AC_ARG_ENABLE([mm-debug],
732 AS_HELP_STRING([--enable-mm-debug],
733 [include memory manager debugging]),
734 [AC_DEFINE([MM_DEBUG], [1],
735 [Define to 1 if you enable memory manager debugging.])])
737 AC_ARG_ENABLE([cache-stats],
738 AS_HELP_STRING([--enable-cache-stats],
739 [enable disk cache statistics collection]))
741 if test x$enable_cache_stats = xyes; then
746 AC_SUBST([DISK_CACHE_STATS])
748 AC_ARG_ENABLE([grub-emu-usb],
749 [AS_HELP_STRING([--enable-grub-emu-usb],
750 [build and install the `grub-emu' debugging utility with USB support (default=guessed)])])
752 AC_ARG_ENABLE([grub-emu-sdl],
753 [AS_HELP_STRING([--enable-grub-emu-sdl],
754 [build and install the `grub-emu' debugging utility with SDL support (default=guessed)])])
756 AC_ARG_ENABLE([grub-emu-pci],
757 [AS_HELP_STRING([--enable-grub-emu-pci],
758 [build and install the `grub-emu' debugging utility with PCI support (potentially dangerous) (default=no)])])
760 if test "$platform" = emu; then
762 [# Check for curses libraries.]
763 AC_CHECK_LIB([ncurses], [wgetch], [LIBCURSES="-lncurses"],
764 [AC_CHECK_LIB([curses], [wgetch], [LIBCURSES="-lcurses"],
765 [missing_ncurses=[true]])])
766 AC_SUBST([LIBCURSES])
767 [if [ x"$missing_ncurses" = x ]; then ]
768 [# Check for headers.]
769 AC_CHECK_HEADERS([ncurses/curses.h], [],
770 [AC_CHECK_HEADERS([ncurses.h], [],
771 [AC_CHECK_HEADERS([curses.h], [],
772 [missing_ncurses=[true]])])])
774 if test x"$missing_ncurses" = xtrue ; then
775 AC_MSG_ERROR([grub-emu can't be compiled without ncurses])
778 if test x"$enable_grub_emu_usb" != xyes ; then
779 grub_emu_usb_excuse="not enabled"
782 if test x"$enable_grub_emu_pci" = xyes ; then
783 grub_emu_usb_excuse="conflicts with PCI support"
786 [if [ x"$grub_emu_usb_excuse" = x ]; then
787 # Check for libusb libraries.]
788 AC_CHECK_LIB([usb], [usb_claim_interface], [LIBUSB="-lusb"],
789 [grub_emu_usb_excuse=["need libusb library"]])
792 [if [ x"$grub_emu_usb_excuse" = x ]; then
793 # Check for headers.]
794 AC_CHECK_HEADERS([usb.h], [],
795 [grub_emu_usb_excuse=["need libusb headers"]])
797 if test x"$enable_grub_emu_usb" = xyes && test x"$grub_emu_usb_excuse" != x ; then
798 AC_MSG_ERROR([USB support for grub-emu was explicitly requested but can't be compiled])
800 if test x"$grub_emu_usb_excuse" = x ; then
801 enable_grub_emu_usb=yes
803 enable_grub_emu_usb=no
806 if test x"$enable_grub_emu_sdl" = xno ; then
807 grub_emu_sdl_excuse="explicitely disabled"
809 [if [ x"$grub_emu_sdl_excuse" = x ]; then
810 # Check for libSDL libraries.]
811 AC_CHECK_LIB([SDL], [SDL_Init], [LIBSDL="-lSDL"],
812 [grub_emu_sdl_excuse=["libSDL libraries are required to build \`grub-emu' with SDL support"]])
816 [if [ x"$grub_emu_sdl_excuse" = x ]; then
817 # Check for headers.]
818 AC_CHECK_HEADERS([SDL/SDL.h], [],
819 [grub_emu_sdl_excuse=["libSDL header file is required to build \`grub-emu' with SDL support"]])
822 if test x"enable_grub_emu_sdl" = xyes && test x"$grub_emu_sdl_excuse" != x ; then
823 AC_MSG_ERROR([SDL support for grub-emu was explicitely requested but can't be compiled])
825 if test x"$grub_emu_sdl_excuse" = x ; then
826 enable_grub_emu_sdl=yes
828 enable_grub_emu_sdl=no
831 if test x"$enable_grub_emu_pci" != xyes ; then
832 grub_emu_pci_excuse="not enabled"
835 if test x"$enable_grub_emu_usb" = xyes ; then
836 grub_emu_pci_excuse="conflicts with USB support"
839 [if [ x"$grub_emu_pci_excuse" = x ]; then
840 # Check for libpci libraries.]
841 AC_CHECK_LIB([pciaccess], [pci_system_init], [LIBPCIACCESS="-lpciaccess"],
842 [grub_emu_pci_excuse=["need libpciaccess library"]])
843 AC_SUBST([LIBPCIACCESS])
845 [if [ x"$grub_emu_pci_excuse" = x ]; then
846 # Check for headers.]
847 AC_CHECK_HEADERS([pci/pci.h], [],
848 [grub_emu_pci_excuse=["need libpciaccess headers"]])
851 if test x"$grub_emu_pci_excuse" = x ; then
852 enable_grub_emu_pci=yes
855 enable_grub_emu_pci=no
858 AC_SUBST([enable_grub_emu_sdl])
859 AC_SUBST([enable_grub_emu_usb])
860 AC_SUBST([enable_grub_emu_pci])
863 AC_ARG_ENABLE([grub-mkfont],
864 [AS_HELP_STRING([--enable-grub-mkfont],
865 [build and install the `grub-mkfont' utility (default=guessed)])])
866 if test x"$enable_grub_mkfont" = xno ; then
867 grub_mkfont_excuse="explicitly disabled"
870 if test x"$grub_mkfont_excuse" = x ; then
871 # Check for freetype libraries.
872 AC_CHECK_PROGS([FREETYPE], [freetype-config])
873 if test "x$FREETYPE" = x ; then
874 grub_mkfont_excuse=["need freetype2 library"]
878 if test x"$grub_mkfont_excuse" = x ; then
879 # Check for freetype libraries.
880 freetype_cflags=`freetype-config --cflags`
881 freetype_libs=`freetype-config --libs`
882 SAVED_CPPFLAGS="$CPPFLAGS"
883 CPPFLAGS="$CPPFLAGS $freetype_cflags"
884 AC_CHECK_HEADERS([ft2build.h], [],
885 [grub_mkfont_excuse=["need freetype2 headers"]])
886 CPPFLAGS="$SAVED_CPPFLAGS"
889 if test x"$enable_grub_mkfont" = xyes && test x"$grub_mkfont_excuse" != x ; then
890 AC_MSG_ERROR([grub-mkfont was explicitly requested but can't be compiled])
892 if test x"$grub_mkfont_excuse" = x ; then
893 enable_grub_mkfont=yes
895 enable_grub_mkfont=no
897 if test x"$enable_grub_mkfont" = xno && test "x$platform" = xloongson; then
898 AC_MSG_ERROR([loongson port needs grub-mkfont])
900 AC_SUBST([enable_grub_mkfont])
901 AC_SUBST([freetype_cflags])
902 AC_SUBST([freetype_libs])
908 if test x$enable_grub_mkfont = xno; then
909 starfield_excuse="No grub-mkfont"
912 if test x"$starfield_excuse" != x; then
913 for ext in pcf pcf.gz bdf bdf.gz ttf ttf.gz; do
914 for dir in . /usr/src /usr/share/fonts/X11/misc /usr/share/fonts/truetype/ttf-dejavu; do
915 if test -f "$dir/DejaVuSans.$ext"; then
916 DJVU_FONT_SOURCE="$dir/DejaVuSans.$ext"
922 if test "x$DJVU_FONT_SOURCE" = x; then
923 starfield_excuse="No DejaVu found"
927 AC_SUBST([DJVU_FONT_SOURCE])
929 AC_ARG_ENABLE([grub-mount],
930 [AS_HELP_STRING([--enable-grub-mount],
931 [build and install the `grub-mount' utility (default=guessed)])])
932 if test x"$enable_grub_mount" = xno ; then
933 grub_mount_excuse="explicitly disabled"
936 if test x"$grub_mount_excuse" = x ; then
937 AC_CHECK_LIB([fuse], [fuse_main_real], [],
938 [grub_mount_excuse="need FUSE library"])
941 if test x"$grub_mount_excuse" = x ; then
942 # Check for fuse headers.
943 SAVED_CPPFLAGS="$CPPFLAGS"
944 CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26"
945 AC_CHECK_HEADERS([fuse/fuse.h], [],
946 [grub_mount_excuse=["need FUSE headers"]])
947 CPPFLAGS="$SAVED_CPPFLAGS"
950 if test x"$enable_grub_mount" = xyes && test x"$grub_mount_excuse" != x ; then
951 AC_MSG_ERROR([grub-mount was explicitly requested but can't be compiled])
953 if test x"$grub_mount_excuse" = x ; then
954 enable_grub_mount=yes
958 AC_SUBST([enable_grub_mount])
960 AC_ARG_ENABLE([device-mapper],
961 [AS_HELP_STRING([--enable-device-mapper],
962 [enable Linux device-mapper support (default=guessed)])])
963 if test x"$enable_device_mapper" = xno ; then
964 device_mapper_excuse="explicitly disabled"
967 if test x"$device_mapper_excuse" = x ; then
968 # Check for device-mapper header.
969 AC_CHECK_HEADER([libdevmapper.h], [],
970 [device_mapper_excuse="need libdevmapper header"])
973 if test x"$device_mapper_excuse" = x ; then
974 # Check for device-mapper library.
975 AC_CHECK_LIB([devmapper], [dm_task_create], [],
976 [device_mapper_excuse="need devmapper library"])
979 if test x"$device_mapper_excuse" = x ; then
980 # Check for device-mapper library.
981 AC_CHECK_LIB([devmapper], [dm_log_with_errno_init],
983 [device_mapper_excuse="need devmapper library"])
986 if test x"$device_mapper_excuse" = x ; then
987 LIBDEVMAPPER="-ldevmapper";
988 AC_DEFINE([HAVE_DEVICE_MAPPER], [1],
989 [Define to 1 if you have the devmapper library.])
992 AC_SUBST([LIBDEVMAPPER])
995 if test x$host_kernel = xkfreebsd; then
996 AC_CHECK_LIB([geom], [geom_gettree], [],
997 [AC_MSG_ERROR([Your platform requires libgeom])])
1003 AC_CHECK_LIB([lzma], [lzma_code],
1005 AC_DEFINE([HAVE_LIBLZMA], [1],
1006 [Define to 1 if you have the LZMA library.])],)
1009 AC_CHECK_LIB([zfs], [libzfs_init],
1011 AC_DEFINE([HAVE_LIBZFS], [1],
1012 [Define to 1 if you have the ZFS library.])],)
1015 AC_CHECK_LIB([nvpair], [nvlist_print],
1016 [LIBNVPAIR="-lnvpair"
1017 AC_DEFINE([HAVE_LIBNVPAIR], [1],
1018 [Define to 1 if you have the NVPAIR library.])],)
1019 AC_SUBST([LIBNVPAIR])
1023 pkglibrootdir='$(libdir)'/`echo $PACKAGE | sed "$program_transform_name"`
1024 AC_SUBST(pkglibrootdir)
1026 AC_SUBST([FONT_SOURCE])
1027 AS_IF([test x$target_cpu = xi386 -a x$platform = xqemu],
1028 [AC_SUBST([GRUB_BOOT_MACHINE_LINK_ADDR], 0xffe00)])
1029 AS_IF([test x$TARGET_APPLE_CC = x1],
1030 [AC_SUBST([USE_APPLE_CC_FIXES], yes)])
1032 AC_SUBST(HAVE_ASM_USCORE)
1035 AC_SUBST(BSS_START_SYMBOL)
1036 AC_SUBST(END_SYMBOL)
1039 AC_SUBST(NEED_ENABLE_EXECUTE_STACK)
1040 AC_SUBST(NEED_REGISTER_FRAME_INFO)
1043 # Automake conditionals
1046 AM_CONDITIONAL([COND_emu], [test x$platform = xemu])
1047 AM_CONDITIONAL([COND_i386_pc], [test x$target_cpu = xi386 -a x$platform = xpc])
1048 AM_CONDITIONAL([COND_i386_efi], [test x$target_cpu = xi386 -a x$platform = xefi])
1049 AM_CONDITIONAL([COND_ia64_efi], [test x$target_cpu = xia64 -a x$platform = xefi])
1050 AM_CONDITIONAL([COND_i386_qemu], [test x$target_cpu = xi386 -a x$platform = xqemu])
1051 AM_CONDITIONAL([COND_i386_ieee1275], [test x$target_cpu = xi386 -a x$platform = xieee1275])
1052 AM_CONDITIONAL([COND_i386_coreboot], [test x$target_cpu = xi386 -a x$platform = xcoreboot])
1053 AM_CONDITIONAL([COND_i386_multiboot], [test x$target_cpu = xi386 -a x$platform = xmultiboot])
1054 AM_CONDITIONAL([COND_x86_64_efi], [test x$target_cpu = xx86_64 -a x$platform = xefi])
1055 AM_CONDITIONAL([COND_mips_loongson], [test x$target_cpu = xmipsel -a x$platform = xloongson])
1056 AM_CONDITIONAL([COND_mips_qemu_mips], [test "(" x$target_cpu = xmips -o x$target_cpu = xmipsel ")" -a x$platform = xqemu_mips])
1057 AM_CONDITIONAL([COND_mips_arc], [test x$target_cpu = xmips -a x$platform = xarc])
1058 AM_CONDITIONAL([COND_sparc64_ieee1275], [test x$target_cpu = xsparc64 -a x$platform = xieee1275])
1059 AM_CONDITIONAL([COND_powerpc_ieee1275], [test x$target_cpu = xpowerpc -a x$platform = xieee1275])
1060 AM_CONDITIONAL([COND_mips], [test x$target_cpu = xmips -o x$target_cpu = xmipsel])
1062 AM_CONDITIONAL([COND_HOST_HURD], [test x$host_kernel = xhurd])
1063 AM_CONDITIONAL([COND_HOST_LINUX], [test x$host_kernel = xlinux])
1064 AM_CONDITIONAL([COND_HOST_NETBSD], [test x$host_kernel = xnetbsd])
1065 AM_CONDITIONAL([COND_HOST_WINDOWS], [test x$host_kernel = xwindows])
1066 AM_CONDITIONAL([COND_HOST_KFREEBSD], [test x$host_kernel = xkfreebsd])
1067 AM_CONDITIONAL([COND_HOST_ILLUMOS], [test x$host_kernel = xillumos])
1069 AM_CONDITIONAL([COND_MAN_PAGES], [test x$cross_compiling = xno -a x$HELP2MAN != x])
1070 AM_CONDITIONAL([COND_GRUB_EMU_USB], [test x$enable_grub_emu_usb = xyes])
1071 AM_CONDITIONAL([COND_GRUB_EMU_SDL], [test x$enable_grub_emu_sdl = xyes])
1072 AM_CONDITIONAL([COND_GRUB_EMU_PCI], [test x$enable_grub_emu_pci = xyes])
1073 AM_CONDITIONAL([COND_GRUB_MKFONT], [test x$enable_grub_mkfont = xyes])
1074 AM_CONDITIONAL([COND_GRUB_MOUNT], [test x$enable_grub_mount = xyes])
1075 AM_CONDITIONAL([COND_HAVE_FONT_SOURCE], [test x$FONT_SOURCE != x])
1076 AM_CONDITIONAL([COND_GRUB_PE2ELF], [test x$TARGET_OBJ2ELF != x])
1077 AM_CONDITIONAL([COND_APPLE_CC], [test x$TARGET_APPLE_CC = x1])
1078 AM_CONDITIONAL([COND_ENABLE_EFIEMU], [test x$enable_efiemu = xyes])
1079 AM_CONDITIONAL([COND_ENABLE_CACHE_STATS], [test x$DISK_CACHE_STATS = x1])
1081 AM_CONDITIONAL([COND_HAVE_ASM_USCORE], [test x$HAVE_ASM_USCORE = x1])
1082 AM_CONDITIONAL([COND_CYGWIN], [test x$host_os = xcygwin])
1083 AM_CONDITIONAL([COND_STARFIELD], [test "x$starfield_excuse" = x])
1086 cpudir="${target_cpu}"
1087 if test x${cpudir} = xmipsel; then
1091 if test x"$link_dir" = xyes ; then
1092 AC_CONFIG_LINKS([include/grub/cpu:include/grub/$cpudir])
1093 if test "$platform" != emu ; then
1094 AC_CONFIG_LINKS([include/grub/machine:include/grub/$cpudir/$platform])
1097 mkdir -p include/grub 2>/dev/null
1098 rm -rf include/grub/cpu
1099 cp -rp $srcdir/include/grub/$cpudir include/grub/cpu 2>/dev/null
1100 if test "$platform" != emu ; then
1101 rm -rf include/grub/machine
1102 cp -rp $srcdir/include/grub/$cpudir/$platform include/grub/machine 2>/dev/null
1106 AC_CONFIG_FILES([Makefile])
1107 AC_CONFIG_FILES([grub-core/Makefile])
1108 AC_CONFIG_FILES([grub-core/gnulib/Makefile])
1109 AC_CONFIG_FILES([po/Makefile.in])
1110 AC_CONFIG_FILES([docs/Makefile])
1111 AC_CONFIG_FILES([util/bash-completion.d/Makefile])
1112 AC_CONFIG_FILES([stamp-h], [echo timestamp > stamp-h])
1113 AC_CONFIG_FILES([config.h])
1117 echo "*******************************************************"
1118 echo GRUB2 will be compiled with following components:
1119 echo Platform: "$target_cpu"-"$platform"
1120 if [ x"$platform" = xemu ]; then
1121 if [ x"$grub_emu_usb_excuse" = x ]; then
1122 echo USB support for grub-emu: Yes
1124 echo USB support for grub-emu: No "($grub_emu_usb_excuse)"
1126 if [ x"$grub_emu_sdl_excuse" = x ]; then
1127 echo SDL support for grub-emu: Yes
1129 echo SDL support for grub-emu: No "($grub_emu_sdl_excuse)"
1131 if [ x"$grub_emu_pci_excuse" = x ]; then
1132 echo PCI support for grub-emu: Yes
1134 echo PCI support for grub-emu: No "($grub_emu_pci_excuse)"
1137 if test x"$device_mapper_excuse" = x ; then
1138 echo With devmapper support: Yes
1140 echo With devmapper support: No "($device_mapper_excuse)"
1142 if [ x"$enable_mm_debug" = xyes ]; then
1143 echo With memory debugging: Yes
1145 echo With memory debugging: No
1147 if [ x"$enable_cache_stats" = xyes ]; then
1148 echo With disk cache statistics: Yes
1150 echo With disk cache statistics: No
1152 if [ x"$efiemu_excuse" = x ]; then
1153 echo efiemu runtime: Yes
1155 echo efiemu runtime: No "($efiemu_excuse)"
1157 if [ x"$grub_mkfont_excuse" = x ]; then
1158 echo grub-mkfont: Yes
1160 echo grub-mkfont: No "($grub_mkfont_excuse)"
1162 if [ x"$grub_mount_excuse" = x ]; then
1163 echo grub-mount: Yes
1165 echo grub-mount: No "($grub_mount_excuse)"
1167 if [ x"$starfield_excuse" = x ]; then
1168 echo starfield theme: Yes
1170 echo starfield theme: No "($starfield_excuse)"
1172 echo "*******************************************************"