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.
44 save_program_prefix="${program_prefix}"
46 program_prefix="${save_program_prefix}"
48 AM_INIT_AUTOMAKE([1.10.1])
50 AC_CONFIG_SRCDIR([include/grub/dl.h])
51 AC_CONFIG_HEADER([config-util.h])
53 # Program name transformations
55 grub_TRANSFORM([grub-bios-setup])
56 grub_TRANSFORM([grub-editenv])
57 grub_TRANSFORM([grub-install])
58 grub_TRANSFORM([grub-mkconfig])
59 grub_TRANSFORM([grub-mkfont])
60 grub_TRANSFORM([grub-mkimage])
61 grub_TRANSFORM([grub-glue-efi])
62 grub_TRANSFORM([grub-mklayout])
63 grub_TRANSFORM([grub-mkpasswd-pbkdf2])
64 grub_TRANSFORM([grub-mkrelpath])
65 grub_TRANSFORM([grub-mkrescue])
66 grub_TRANSFORM([grub-probe])
67 grub_TRANSFORM([grub-reboot])
68 grub_TRANSFORM([grub-script-check])
69 grub_TRANSFORM([grub-set-default])
70 grub_TRANSFORM([grub-sparc64-setup])
71 grub_TRANSFORM([grub-render-label])
73 # Optimization flag. Allow user to override.
74 if test "x$TARGET_CFLAGS" = x; then
75 TARGET_CFLAGS="$TARGET_CFLAGS -Os"
78 # Default HOST_CPPFLAGS
79 HOST_CPPFLAGS="$HOST_CPPFLAGS -Wall -W"
80 HOST_CPPFLAGS="$HOST_CPPFLAGS -I\$(top_builddir)/include"
81 HOST_CPPFLAGS="$HOST_CPPFLAGS -DGRUB_UTIL=1"
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";
107 # Specify the platform (such as firmware).
108 AC_ARG_WITH([platform],
109 AS_HELP_STRING([--with-platform=PLATFORM],
110 [select the host platform [[guessed]]]))
112 # Guess the platform if not specified.
113 if test "x$with_platform" = x; then
114 case "$target_cpu"-"$target_vendor" in
115 i386-apple) platform=efi ;;
116 i386-*) platform=pc ;;
117 x86_64-apple) platform=efi ;;
118 x86_64-*) platform=pc ;;
119 powerpc-*) platform=ieee1275 ;;
120 powerpc64-*) platform=ieee1275 ;;
121 sparc64-*) platform=ieee1275 ;;
122 mipsel-*) platform=loongson ;;
123 mips-*) platform=arc ;;
124 ia64-*) platform=efi ;;
125 arm-*) platform=uboot ;;
126 arm64-*) platform=efi ;;
127 *) AC_MSG_ERROR([unsupported CPU: "$target_cpu"]) ;;
130 platform="$with_platform"
133 case "$target_cpu"-"$platform" in
137 x86_64-*) target_cpu=i386 ;;
138 powerpc64-ieee1275) target_cpu=powerpc ;;
141 # Check if the platform is supported, make final adjustments.
142 case "$target_cpu"-"$platform" in
150 i386-linuxbios) platform=coreboot ;;
157 mips-qemu-mips) platform=qemu_mips;;
161 mipsel-qemu-mips) platform=qemu_mips;;
162 mipsel-yeeloong) platform=loongson ;;
163 mipsel-fuloong) platform=loongson ;;
169 *) AC_MSG_ERROR([platform "$platform" is not supported for target CPU "$target_cpu"]) ;;
172 if test x$platform != xemu ; then
173 case "$target_cpu" in
174 i386 | powerpc) target_m32=1 ;;
175 x86_64 | sparc64) target_m64=1 ;;
180 windows* | mingw32*) target_os=cygwin ;;
183 # This normalizes the names, and creates a new variable ("host_kernel")
184 # while at it, since the mapping is not always 1:1 (e.g. different OSes
185 # using the same kernel type).
187 gnu*) host_kernel=hurd ;;
188 linux*) host_kernel=linux ;;
189 freebsd* | kfreebsd*-gnu) host_kernel=kfreebsd ;;
190 netbsd*) host_kernel=netbsd ;;
191 solaris*) host_kernel=illumos ;;
192 darwin*) host_kernel=xnu ;;
193 cygwin | windows* | mingw32*) host_kernel=windows ;;
197 cygwin | windows* | mingw32*) have_exec=n ;;
198 aros*) have_exec=n ;;
203 coreboot) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_COREBOOT=1" ;;
204 multiboot) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_MULTIBOOT=1" ;;
205 efi) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_EFI=1" ;;
206 xen) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_XEN=1" ;;
207 ieee1275) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_IEEE1275=1" ;;
208 uboot) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_UBOOT=1" ;;
209 qemu) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_QEMU=1" ;;
210 pc) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_PCBIOS=1" ;;
211 emu) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_EMU=1" ;;
212 loongson) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_MIPS_LOONGSON=1 -DGRUB_MACHINE_MIPS_BONITO=1" ;;
213 qemu_mips) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_MIPS_QEMU_MIPS=1 -DGRUB_MACHINE_MIPS_BONITO=1" ;;
214 arc) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_ARC=1" ;;
216 case "$target_cpu" in
217 arm) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_ARM=1" ;;
218 arm64) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_ARM64=1" ;;
219 mips |mipsel) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_MIPS=1" ;;
220 sparc64) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_SPARC64=1" ;;
222 if test x${target_cpu} = xmipsel ; then
223 machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE=`echo mips_$platform | sed y,abcdefghijklmnopqrstuvwxyz,ABCDEFGHIJKLMNOPQRSTUVWXYZ,`"
225 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"
228 case "${target_cpu}-$platform" in
230 TARGET_LINK_ADDR=0x88200000
231 TARGET_DECOMPRESSOR_LINK_ADDR=0x88100000
234 TARGET_LINK_ADDR=0x80700000
235 TARGET_DECOMPRESSOR_LINK_ADDR=0x80600000
237 mips*-qemu_mips | mips*-loongson)
238 TARGET_DECOMPRESSOR_LINK_ADDR=0x80100000
242 AC_SUBST(TARGET_LINK_ADDR)
243 AC_SUBST(TARGET_DECOMPRESSOR_LINK_ADDR)
245 TARGET_CPPFLAGS="$TARGET_CPPFLAGS $machine_CPPFLAGS"
249 AC_SUBST(host_kernel)
254 # Define default variables
257 AC_ARG_WITH([bootdir],
258 AS_HELP_STRING([--with-bootdir=DIR],
259 [set the name of /boot directory [[guessed]]]),
260 [have_with_bootdir=y],
261 [have_with_bootdir=n])
262 if test x$have_with_bootdir = xy; then
263 bootdirname="$with_bootdir"
267 # Because /boot is used for the boot block in NetBSD and OpenBSD,
269 *) bootdirname='boot' ;;
273 AC_SUBST(bootdirname)
274 AC_DEFINE_UNQUOTED(GRUB_BOOT_DIR_NAME, "$bootdirname",
275 [Default boot directory name]")
277 AC_ARG_WITH([grubdir],
278 AS_HELP_STRING([--with-grubdir=DIR],
279 [set the name of grub directory [[guessed]]]),
280 [grubdirname="$with_grubdir"],
281 [grubdirname="$PACKAGE"])
283 AC_SUBST(grubdirname)
284 AC_DEFINE_UNQUOTED(GRUB_DIR_NAME, "$grubdirname",
285 [Default grub directory name])
288 # Checks for build programs.
291 # Although cmp is listed in the GNU Coding Standards as a command which
292 # can used directly, OpenBSD lacks cmp in the default installation.
293 AC_CHECK_PROGS([CMP], [cmp])
294 if test "x$CMP" = x; then
295 AC_MSG_ERROR([cmp is not found])
298 AC_CHECK_PROGS([YACC], [bison])
299 if test "x$YACC" = x; then
300 AC_MSG_ERROR([bison is not found])
312 if test "x$LEX" = "x:"; then
313 AC_MSG_ERROR([flex is not found])
315 version=`$LEX --version | $AWK '{ split($NF,x,"."); print x[[1]]*10000+x[[2]]*100+x[[3]]; }'`
316 if test -n "$version" -a "$version" -ge 20535; then
319 AC_MSG_ERROR([flex is too old. GRUB requires 2.5.35 or above])
323 # These are not a "must".
324 AC_PATH_PROGS(MAKEINFO, makeinfo true)
327 # Checks for host programs.
337 test "x$GCC" = xyes || AC_MSG_ERROR([GCC is required])
339 AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
342 AM_GNU_GETTEXT([external])
345 # Identify characteristics of the host architecture.
346 unset ac_cv_c_bigendian
349 AC_CHECK_SIZEOF(void *)
350 AC_CHECK_SIZEOF(long)
353 cygwin | windows* | mingw32*)
354 HOST_CPPFLAGS="$HOST_CPPFLAGS -DUNICODE=1 -D_WIN32_WINNT=0x0500"
355 CPPFLAGS="$CPPFLAGS -DUNICODE=1 -D_WIN32_WINNT=0x0500"
356 AC_CHECK_SIZEOF(TCHAR,,[#include <windows.h>])
360 if test x$USE_NLS = xno; then
361 HOST_CFLAGS="$HOST_CFLAGS -fno-builtin-gettext"
364 if test "x$cross_compiling" = xyes; then
365 AC_MSG_WARN([cannot generate manual pages while cross compiling])
367 AC_PATH_PROG(HELP2MAN, help2man)
370 # Check for functions and headers.
371 AC_CHECK_FUNCS(posix_memalign memalign getextmntent)
372 AC_CHECK_HEADERS(sys/param.h sys/mount.h sys/mnttab.h sys/mkdev.h limits.h)
374 AC_CHECK_MEMBERS([struct statfs.f_fstypename],,,[$ac_includes_default
375 #include <sys/param.h>
376 #include <sys/mount.h>])
378 AC_CHECK_MEMBERS([struct statfs.f_mntfromname],,,[$ac_includes_default
379 #include <sys/param.h>
380 #include <sys/mount.h>])
382 # For opendisk() and getrawpartition() on NetBSD.
383 # Used in util/deviceiter.c and in util/hostdisk.c.
384 AC_CHECK_HEADER([util.h], [
385 AC_CHECK_LIB([util], [opendisk], [
387 AC_DEFINE(HAVE_OPENDISK, 1, [Define if opendisk() in -lutil can be used])
389 AC_CHECK_LIB([util], [getrawpartition], [
391 AC_DEFINE(HAVE_GETRAWPARTITION, 1, [Define if getrawpartition() in -lutil can be used])
396 AC_CACHE_CHECK([whether -Wtrampolines work], [grub_cv_host_cc_wtrampolines], [
397 SAVED_CFLAGS="$CFLAGS"
398 CFLAGS="$HOST_CFLAGS -Wtrampolines -Werror"
399 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdarg.h>
400 int va_arg_func (int fixed, va_list args);]], [[]])],
401 [grub_cv_host_cc_wtrampolines=yes],
402 [grub_cv_host_cc_wtrampolines=no])
403 CFLAGS="$SAVED_CFLAGS"
406 if test x"$grub_host_cv_cc_wtrampolines" = xyes ; then
407 HOST_CFLAGS="$HOST_CFLAGS -Wtrampolines"
411 # Check for host and build compilers.
414 AC_CHECK_PROGS(BUILD_CC, [gcc egcs cc])
415 test -z "$BUILD_CC" && AC_MSG_ERROR([none of gcc, egcs and cc is found. set BUILD_CC manually.])
416 BUILD_CPP="$BUILD_CC -E"
419 haiku*) BUILD_LIBM= ;;
425 WARN_FLAGS="-Wall -W -Wshadow -Wpointer-arith -Wundef -Wchar-subscripts -Wcomment -Wdeprecated-declarations -Wdisabled-optimization -Wdiv-by-zero -Wfloat-equal -Wformat-extra-args -Wformat-security -Wformat-y2k -Wimplicit -Wimplicit-function-declaration -Wimplicit-int -Wmain -Wmissing-braces -Wmissing-format-attribute -Wmultichar -Wparentheses -Wpointer-arith -Wreturn-type -Wsequence-point -Wshadow -Wsign-compare -Wswitch -Wtrigraphs -Wundef -Wunknown-pragmas -Wunused -Wunused-function -Wunused-label -Wunused-parameter -Wunused-value -Wunused-variable -Wwrite-strings -Wnested-externs -Wstrict-prototypes"
426 EXTRA_WARN_FLAGS="-Wold-style-definition -Wextra -Wattributes -Wendif-labels -Winit-self -Wint-to-pointer-cast -Winvalid-pch -Wmissing-field-initializers -Wnonnull -Woverflow -Wvla -Wpointer-to-int-cast -Wstrict-aliasing -Wvariadic-macros -Wvolatile-register-var -Wpointer-sign"
428 HOST_CFLAGS="$HOST_CFLAGS $WARN_FLAGS -Wcast-align"
430 AC_CACHE_CHECK([which extra warnings work], [grub_cv_cc_w_extra_flags], [
431 SAVED_CFLAGS="$CFLAGS"
432 grub_cv_cc_w_extra_flags=
433 for x in $EXTRA_WARN_FLAGS; do
434 CFLAGS="$HOST_CFLAGS $x -Werror"
435 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])], [flag=1], [flag=0])
436 if test x$flag = x1 ; then
437 grub_cv_cc_w_extra_flags="$grub_cv_cc_w_extra_flags $x"
440 CFLAGS="$SAVED_CFLAGS"
443 HOST_CFLAGS="$HOST_CFLAGS $grub_cv_cc_w_extra_flags"
446 # Check for target programs.
449 # Find tools for the target.
450 if test "x$target_alias" != x && test "x$host_alias" != "x$target_alias"; then
451 tmp_ac_tool_prefix="$ac_tool_prefix"
452 ac_tool_prefix=$target_alias-
454 AC_CHECK_TOOLS(TARGET_CC, [gcc egcs cc],
455 [AC_MSG_ERROR([none of gcc, egcs and cc is found. set TARGET_CC manually.])])
456 AC_CHECK_TOOL(TARGET_OBJCOPY, objcopy)
457 AC_CHECK_TOOL(TARGET_STRIP, strip)
458 AC_CHECK_TOOL(TARGET_NM, nm)
459 AC_CHECK_TOOL(TARGET_RANLIB, ranlib)
461 ac_tool_prefix="$tmp_ac_tool_prefix"
463 if test "x$TARGET_CC" = x; then
466 AC_CHECK_TOOL(TARGET_OBJCOPY, objcopy)
467 AC_CHECK_TOOL(TARGET_STRIP, strip)
468 AC_CHECK_TOOL(TARGET_NM, nm)
469 AC_CHECK_TOOL(TARGET_RANLIB, ranlib)
474 AC_SUBST(BUILD_CFLAGS)
475 AC_SUBST(BUILD_CPPFLAGS)
478 AC_SUBST(TARGET_RANLIB)
479 AC_SUBST(TARGET_STRIP)
480 AC_SUBST(TARGET_OBJCOPY)
482 # Test the C compiler for the target environment.
485 tmp_LDFLAGS="$LDFLAGS"
486 tmp_CPPFLAGS="$CPPFLAGS"
489 CFLAGS="$TARGET_CFLAGS"
490 CPPFLAGS="$TARGET_CPPFLAGS"
491 LDFLAGS="$TARGET_LDFLAGS"
495 TARGET_CFLAGS="$TARGET_CFLAGS $WARN_FLAGS -g -Wredundant-decls -Wmissing-prototypes -Wmissing-declarations"
496 TARGET_CCASFLAGS="$TARGET_CCASFLAGS -g"
498 if test "x$target_cpu" != xi386 && test "x$target_cpu" != xx86_64; then
499 TARGET_CFLAGS="$TARGET_CFLAGS -Wcast-align"
502 AC_CACHE_CHECK([which extra warnings work], [grub_cv_target_cc_w_extra_flags], [
503 LDFLAGS="$TARGET_LDFLAGS -nostdlib -static"
505 grub_cv_target_cc_w_extra_flags=
506 for x in $EXTRA_WARN_FLAGS; do
507 CFLAGS="$TARGET_CFLAGS $x -Werror"
508 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])], [flag=1], [flag=0])
509 if test x$flag = x1 ; then
510 grub_cv_target_cc_w_extra_flags="$grub_cv_target_cc_w_extra_flags $x"
515 TARGET_CFLAGS="$TARGET_CFLAGS $grub_cv_target_cc_w_extra_flags"
517 AC_CACHE_CHECK([if compiling with clang], [grub_cv_cc_target_clang]
519 CFLAGS="$TARGET_CFLAGS"
521 [AC_LANG_PROGRAM([], [[
526 [grub_cv_cc_target_clang=no], [grub_cv_cc_target_clang=yes])])
528 # on x86 clang doesn't support .code16
529 # on arm clang doesn't support .arch directive
530 # on mips clang doesn't support privilegied instructions, doubleword store/load
531 # and crashes with hand-written assembly
532 if test "x$grub_cv_cc_target_clang" = xyes && ( test "x$target_cpu" = xi386 \
533 || test "x$target_cpu" = xx86_64 || test "x$target_cpu" = xarm \
534 || test "x$target_cpu" = xmips || test "x$target_cpu" = xmipsel ); then
535 TARGET_CCASFLAGS="$TARGET_CCASFLAGS -no-integrated-as"
538 if test "x$grub_cv_cc_target_clang" = xyes && test "x$target_cpu" = xpowerpc; then
539 AC_CACHE_CHECK([if clang can handle ame instruction], [grub_cv_cc_target_clang_ame]
541 CFLAGS="$TARGET_CFLAGS"
543 [AC_LANG_PROGRAM([], [[
544 unsigned int a = 0, b = 0;
545 asm volatile ("{ame|addme} %0,%1" : "=r" (a) : "r" (b));
549 [grub_cv_cc_target_clang_ame=yes], [grub_cv_cc_target_clang_ame=no])])
550 # clang <= 3.3 doesn't handle most of ppc assembly, not even inline assembly
552 if test x$grub_cv_cc_target_clang_ame = xno ; then
553 TARGET_CCASFLAGS="$TARGET_CCASFLAGS -no-integrated-as"
554 TARGET_CFLAGS="$TARGET_CFLAGS -no-integrated-as"
558 if test "x$target_cpu" = xi386 && test "x$platform" != xemu; then
559 TARGET_CFLAGS="$TARGET_CFLAGS -march=i386"
562 if test "x$target_m32" = x1; then
564 TARGET_CFLAGS="$TARGET_CFLAGS -m32"
565 TARGET_CCASFLAGS="$TARGET_CCASFLAGS -m32"
566 TARGET_CPPFLAGS="$TARGET_CPPFLAGS -m32"
567 TARGET_LDFLAGS="$TARGET_LDFLAGS -m32"
568 TARGET_MODULE_FORMAT="elf32"
571 if test "x$target_m64" = x1; then
573 TARGET_CFLAGS="$TARGET_CFLAGS -m64"
574 TARGET_CCASFLAGS="$TARGET_CCASFLAGS -m64"
575 TARGET_CPPFLAGS="$TARGET_CPPFLAGS -m64"
576 TARGET_LDFLAGS="$TARGET_LDFLAGS -m64"
577 TARGET_MODULE_FORMAT="elf64"
580 if test "x$grub_cv_cc_target_clang" = xno && test "x$target_cpu" = xi386 && test "x$platform" != xemu && test "x$platform" != xefi; then
581 TARGET_CFLAGS="$TARGET_CFLAGS -mrtd -mregparm=3"
584 # on mips redirect cache flushing function to non-existant one.
585 if test "x$target_cpu" = xmips || test "x$target_cpu" = xmipsel ; then
586 AC_CACHE_CHECK([whether -mflush-func=grub_red_herring works], [grub_cv_cc_mflush_func], [
587 CFLAGS="$TARGET_CFLAGS -mflush-func=grub_red_herring -Werror"
588 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
589 [grub_cv_cc_mflush_func=yes],
590 [grub_cv_cc_mflush_func=no])
593 if test "x$grub_cv_cc_mflush_func" = xyes; then
594 TARGET_CFLAGS="$TARGET_CFLAGS -mflush-func=grub_red_herring"
599 # Force no alignment to save space on i386.
600 if test "x$target_cpu" = xi386; then
601 AC_CACHE_CHECK([whether -falign-loops works], [grub_cv_cc_falign_loop], [
602 CFLAGS="$TARGET_CFLAGS -falign-loops=1 -Werror"
603 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
604 [grub_cv_cc_falign_loop=yes],
605 [grub_cv_cc_falign_loop=no])
608 AC_CACHE_CHECK([whether -malign-loops works], [grub_cv_cc_malign_loop], [
609 CFLAGS="$TARGET_CFLAGS -malign-loops=1 -Werror"
610 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
611 [grub_cv_cc_malign_loop=yes],
612 [grub_cv_cc_malign_loop=no])
615 if test "x$grub_cv_cc_falign_loop" = xyes; then
616 TARGET_CFLAGS="$TARGET_CFLAGS -falign-jumps=1 -falign-loops=1 -falign-functions=1"
617 elif test "x$grub_cv_cc_malign_loop" = xyes; then
618 TARGET_CFLAGS="$TARGET_CFLAGS -malign-jumps=1 -malign-loops=1 -malign-functions=1"
622 AC_CACHE_CHECK([whether -freg-struct-return works], [grub_cv_cc_freg_struct_return], [
623 CFLAGS="$TARGET_CFLAGS -freg-struct-return -Werror"
624 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
625 [grub_cv_cc_freg_struct_return=yes],
626 [grub_cv_cc_freg_struct_return=no])
629 if test "x$grub_cv_cc_freg_struct_return" = xyes; then
630 TARGET_CFLAGS="$TARGET_CFLAGS -freg-struct-return"
633 if ( test "x$target_cpu" = xi386 || test "x$target_cpu" = xx86_64 ) && test "x$platform" != xemu; then
634 # Some toolchains enable these features by default, but they need
635 # registers that aren't set up properly in GRUB.
636 TARGET_CFLAGS="$TARGET_CFLAGS -mno-mmx -mno-sse -mno-sse2 -mno-3dnow"
639 # By default, GCC 4.4 generates .eh_frame sections containing unwind
640 # information in some cases where it previously did not. GRUB doesn't need
641 # these and they just use up vital space. Restore the old compiler
643 AC_CACHE_CHECK([whether -fno-dwarf2-cfi-asm works], [grub_cv_cc_fno_dwarf2_cfi_asm], [
644 CFLAGS="$TARGET_CFLAGS -fno-dwarf2-cfi-asm"
645 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
646 [grub_cv_cc_fno_dwarf2_cfi_asm=yes],
647 [grub_cv_cc_fno_dwarf2_cfi_asm=no])
650 if test "x$grub_cv_cc_fno_dwarf2_cfi_asm" = xyes; then
651 TARGET_CFLAGS="$TARGET_CFLAGS -fno-dwarf2-cfi-asm"
654 if test x"$target_os" = xcygwin; then
655 AC_CACHE_CHECK([whether option -fno-reorder-functions works], grub_cv_cc_no_reorder_functions, [
656 CFLAGS="$TARGET_CFLAGS -fno-reorder-functions"
657 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
658 [grub_cv_cc_no_reorder_functions=yes],
659 [grub_cv_cc_no_reorder_functions=no])
663 if test x"$target_os" = xcygwin && test "x$grub_cv_cc_no_reorder_functions" = xyes; then
664 TARGET_CFLAGS="$TARGET_CFLAGS -fno-reorder-functions"
667 # By default, GCC 4.6 generates .eh_frame sections containing unwind
668 # information in some cases where it previously did not. GRUB doesn't need
669 # these and they just use up vital space. Restore the old compiler
671 AC_CACHE_CHECK([whether -fno-asynchronous-unwind-tables works], [grub_cv_cc_fno_asynchronous_unwind_tables], [
672 CFLAGS="$TARGET_CFLAGS -fno-dwarf2-cfi-asm"
673 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
674 [grub_cv_cc_fno_asynchronous_unwind_tables=yes],
675 [grub_cv_cc_fno_asynchronous_unwind_tables=no])
678 if test "x$grub_cv_cc_fno_asynchronous_unwind_tables" = xyes; then
679 TARGET_CFLAGS="$TARGET_CFLAGS -fno-asynchronous-unwind-tables"
682 # For platforms where ELF is not the default link format.
683 case "${target_os}" in
685 # FIXME: put proper test here
686 NEED_REGISTER_FRAME_INFO=1
688 *) NEED_REGISTER_FRAME_INFO=0 ;;
692 AC_ARG_ENABLE([efiemu],
693 [AS_HELP_STRING([--enable-efiemu],
694 [build and install the efiemu runtimes (default=guessed)])])
695 if test x"$enable_efiemu" = xno ; then
696 efiemu_excuse="explicitly disabled"
698 if test x"$target_os" = xcygwin ; then
699 efiemu_excuse="not available on cygwin"
701 if test x"$target_cpu" != xi386 ; then
702 efiemu_excuse="only available on i386"
704 if test x"$platform" = xefi ; then
705 efiemu_excuse="not available on efi"
707 if test x"$efiemu_excuse" = x ; then
708 AC_CACHE_CHECK([whether options required for efiemu work], grub_cv_cc_efiemu, [
709 CFLAGS="-m64 -nostdlib -O2 -mcmodel=large -mno-red-zone"
710 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
711 [grub_cv_cc_efiemu=yes],
712 [grub_cv_cc_efiemu=no])
714 if test x$grub_cv_cc_efiemu = xno; then
715 efiemu_excuse="cannot compile with -m64 -mcmodel=large -mno-red-zone -nostdlib"
718 if test x"$efiemu_excuse" = x ; then
719 AC_CACHE_CHECK([for efiemu64 linking format], [grub_cv_target_cc_efiemu64_link_format], [
720 grub_cv_target_cc_efiemu64_link_format=unknown
721 for format in -melf_x86_64 -melf_x86_64_fbsd -melf_x86_64_obsd -melf_x86_64_haiku -arch,x86_64; do
722 CFLAGS="-m64 -nostdlib -O2 -mcmodel=large -mno-red-zone"
723 LDFLAGS="-m64 -Wl,$format -nostdlib -static"
724 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
725 asm (".globl start; start:");
726 asm (".globl _start; _start:");
727 asm (".globl __start; __start:");
729 void __main (void) {}
730 ]], [[]])], [flag=1], [flag=0])
731 if test x"$flag" = x1; then
732 grub_cv_target_cc_efiemu64_link_format="$format"
736 if test x"$grub_cv_target_cc_efiemu64_link_format" = xunknown; then
737 efiemu_excuse="no suitable link format for efiemu64 found"
739 EFIEMU64_LINK_FORMAT="-Wl,$grub_cv_target_cc_efiemu64_link_format"
742 if test x"$enable_efiemu" = xyes && test x"$efiemu_excuse" != x ; then
743 AC_MSG_ERROR([efiemu runtime was explicitly requested but can't be compiled])
745 if test x"$efiemu_excuse" = x ; then
750 AC_SUBST([enable_efiemu])
751 AC_SUBST([EFIEMU64_LINK_FORMAT])
753 CFLAGS="$TARGET_CFLAGS"
755 if test x"$target_cpu" = xi386 || test x"$target_cpu" = xx86_64; then
756 AC_CACHE_CHECK([for target linking format], [grub_cv_target_cc_link_format], [
757 grub_cv_target_cc_link_format=unknown
758 for format in -melf_${target_cpu} -melf_${target_cpu}_fbsd -melf_${target_cpu}_obsd -melf_${target_cpu}_haiku -m${target_cpu}pe -arch,${target_cpu}; do
759 if test x${target_cpu} != xi386 && test x$format = x${target_cpu}pe; then
762 CFLAGS="$TARGET_CFLAGS"
763 LDFLAGS="$TARGET_LDFLAGS -Wl,$format -nostdlib -static"
764 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
765 asm (".globl start; start:");
766 asm (".globl _start; _start:");
767 asm (".globl __start; __start:");
769 void __main (void) {}
770 ]], [[]])], [flag=1], [flag=0])
771 if test x"$flag" = x1; then
772 grub_cv_target_cc_link_format="$format"
776 if test x"$grub_cv_target_cc_link_format" = xunknown; then
777 AC_MSG_ERROR([no suitable link format found])
779 TARGET_LDFLAGS="$TARGET_LDFLAGS -Wl,$grub_cv_target_cc_link_format"
780 if test x"$grub_cv_target_cc_link_format" = x-mi386pe; then
781 TARGET_OBJ2ELF='./build-grub-pe2elf';
785 if test x$grub_cv_target_cc_link_format = x-arch,i386 || test x$grub_cv_target_cc_link_format = x-arch,x86_64; then
786 TARGET_APPLE_LINKER=1
787 AC_CHECK_PROG([TARGET_OBJCONV], [objconv], [objconv], [])
788 if test "x$TARGET_OBJCONV" = x ; then
789 AC_CHECK_PROG([TARGET_OBJCONV], [objconv], [./objconv], [], [.])
791 if test "x$TARGET_OBJCONV" = x ; then
792 AC_MSG_ERROR([objconv not found which is required when building with apple compiler])
795 TARGET_IMG_CFLAGS="-static"
796 TARGET_IMG_LDFLAGS='-nostdlib -static -Wl,-preload -Wl,-segalign,20'
797 TARGET_IMG_LDFLAGS_AC='-nostdlib -static -Wl,-preload -Wl,-segalign,20'
798 TARGET_IMG_BASE_LDOPT="-Wl,-image_base"
799 TARGET_LDFLAGS_OLDMAGIC=""
800 elif test x$grub_cv_target_cc_link_format = x-mi386pe && test x$platform = xpc; then
801 TARGET_APPLE_LINKER=0
802 TARGET_LDFLAGS_OLDMAGIC="-Wl,-N"
803 TARGET_IMG_LDSCRIPT='$(top_srcdir)'"/${grub_coredir}/conf/i386-pc-cygwin-img-ld.sc"
804 TARGET_IMG_LDFLAGS="-Wl,-T${TARGET_IMG_LDSCRIPT}"
805 TARGET_IMG_LDFLAGS_AC="-Wl,-T${srcdir}/${grub_coredir}/conf/i386-pc-cygwin-img-ld.sc"
806 TARGET_IMG_BASE_LDOPT="-Wl,-Ttext"
809 TARGET_APPLE_LINKER=0
810 TARGET_LDFLAGS_OLDMAGIC="-Wl,-N"
812 TARGET_IMG_LDFLAGS='-Wl,-N'
813 TARGET_IMG_LDFLAGS_AC='-Wl,-N'
814 TARGET_IMG_BASE_LDOPT="-Wl,-Ttext"
818 AC_SUBST(TARGET_LDFLAGS_OLDMAGIC)
821 LDFLAGS="$TARGET_LDFLAGS"
823 if test "$target_cpu" = x86_64; then
824 # Use large model to support 4G memory
825 AC_CACHE_CHECK([whether option -mcmodel=large works], grub_cv_cc_mcmodel, [
826 CFLAGS="$TARGET_CFLAGS -m64 -mcmodel=large"
827 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
828 [grub_cv_cc_mcmodel=yes],
829 [grub_cv_cc_mcmodel=no])
831 if test "x$grub_cv_cc_mcmodel" = xyes; then
832 TARGET_CFLAGS="$TARGET_CFLAGS -mcmodel=large"
836 if test "$target_cpu"-"$platform" = x86_64-efi; then
837 # EFI writes to stack below %rsp, we must not use the red zone
838 AC_CACHE_CHECK([whether option -mno-red-zone works], grub_cv_cc_no_red_zone, [
839 CFLAGS="$TARGET_CFLAGS -m64 -mno-red-zone"
840 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
841 [grub_cv_cc_no_red_zone=yes],
842 [grub_cv_cc_no_red_zone=no])
844 if test "x$grub_cv_cc_no_red_zone" = xno; then
845 AC_MSG_ERROR([-mno-red-zone not supported, upgrade your gcc])
848 TARGET_CFLAGS="$TARGET_CFLAGS -mno-red-zone"
851 if test "x$target_cpu" = xarm; then
852 AC_CACHE_CHECK([whether option -mlong-calls works], grub_cv_cc_mlong_calls, [
853 CFLAGS="$TARGET_CFLAGS -mlong-calls -Werror"
854 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
855 [grub_cv_cc_mlong_calls=yes],
856 [grub_cv_cc_mlong_calls=no])
858 if test "x$grub_cv_cc_mlong_calls" = xyes; then
859 TARGET_CFLAGS="$TARGET_CFLAGS -mlong-calls"
867 CFLAGS="$TARGET_CFLAGS"
869 # Position independent executable.
871 [# Need that, because some distributions ship compilers that include
872 # `-fPIE' in the default specs.
873 if [ x"$pie_possible" = xyes ]; then
874 TARGET_CFLAGS="$TARGET_CFLAGS -fno-PIE"
877 CFLAGS="$TARGET_CFLAGS"
879 # Position independent executable.
881 [# On most platforms we don't want PIC as it only makes relocations harder
882 # and code less efficient. On mips we want to have one got table per module
883 # and reload $gp in every function.
884 # GCC implements it using symbol __gnu_local_gp in non-PIC as well.
885 # However with clang we need PIC for this reloading to happen.
886 # Since default varies across dictributions use either -fPIC or -fno-PIC
888 if ( test x$target_cpu = xmips || test x$target_cpu = xmipsel ) && test "x$grub_cv_cc_target_clang" = xyes ; then
889 TARGET_CFLAGS="$TARGET_CFLAGS -fPIC"
890 elif [ x"$pic_possible" = xyes ]; then
891 TARGET_CFLAGS="$TARGET_CFLAGS -fno-PIC"
894 CFLAGS="$TARGET_CFLAGS"
896 # Smashing stack protector.
897 grub_CHECK_STACK_PROTECTOR
898 # Need that, because some distributions ship compilers that include
899 # `-fstack-protector' in the default specs.
900 if test "x$ssp_possible" = xyes; then
901 TARGET_CFLAGS="$TARGET_CFLAGS -fno-stack-protector"
904 CFLAGS="$TARGET_CFLAGS"
906 grub_CHECK_STACK_ARG_PROBE
907 # Cygwin's GCC uses alloca() to probe the stackframe on static
908 # stack allocations above some threshold.
909 if test x"$sap_possible" = xyes; then
910 TARGET_CFLAGS="$TARGET_CFLAGS -mno-stack-arg-probe"
913 CFLAGS="$TARGET_CFLAGS"
915 # -mno-unaligned-access -mstrict-align
916 if test "$target_cpu" = arm; then
917 AC_CACHE_CHECK([for compile options to get strict alignment], [grub_cv_target_cc_strict_align], [
918 grub_cv_target_cc_strict_align=
919 for arg in -mno-unaligned-access "-Xclang -mstrict-align" -mstrict-align; do
920 CFLAGS="$TARGET_CFLAGS $arg -Werror"
921 LDFLAGS="$TARGET_LDFLAGS"
922 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], [flag=1], [flag=0])
923 if test x"$flag" = x1; then
924 grub_cv_target_cc_strict_align="$arg"
929 TARGET_CFLAGS="$TARGET_CFLAGS $grub_cv_target_cc_strict_align"
930 if test x"$grub_cv_target_cc_strict_align" = x"-Xclang -mstrict-align"; then
931 TARGET_LDFLAGS="$TARGET_LDFLAGS -Qunused-arguments"
933 AC_CACHE_CHECK([if compiler generates unaligned accesses], [grub_cv_cc_target_emits_unaligned],
934 [CFLAGS="$TARGET_CFLAGS"
935 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[
936 #ifdef __ARM_FEATURE_UNALIGNED
940 [grub_cv_cc_target_emits_unaligned=no], [grub_cv_cc_target_emits_unaligned=yes])])
941 if test x$grub_cv_cc_target_emits_unaligned = xyes; then
942 AC_MSG_ERROR([compiler generates unaligned accesses])
946 # Set them to their new values for the tests below.
948 if test "x$TARGET_APPLE_LINKER" = x1 ; then
949 CFLAGS="$TARGET_CFLAGS -nostdlib -static -Wno-error"
951 CFLAGS="$TARGET_CFLAGS -nostdlib -Wl,--defsym,___main=0x8100 -Wno-error"
953 CPPFLAGS="$TARGET_CPPFLAGS"
954 if test x$target_cpu = xi386 || test x$target_cpu = xx86_64 || test "x$grub_cv_cc_target_clang" = xyes ; then
960 LIBS="$TARGET_LIBGCC"
963 if test "x$TARGET_APPLE_LINKER" = x0 ; then
964 if test x$grub_cv_asm_uscore = xyes; then
965 CFLAGS="$TARGET_CFLAGS -nostdlib -Wl,--defsym,_abort=_main"
967 CFLAGS="$TARGET_CFLAGS -nostdlib -Wl,--defsym,abort=main"
971 # Check for libgcc symbols
972 AC_CHECK_FUNCS(__bswapsi2 __bswapdi2 __ashldi3 __ashrdi3 __lshrdi3 __ucmpdi2 _restgpr_14_x)
974 if test "x$TARGET_APPLE_LINKER" = x1 ; then
975 CFLAGS="$TARGET_CFLAGS -nostdlib -static"
977 CFLAGS="$TARGET_CFLAGS -nostdlib -Wl,--defsym,___main=0x8100"
981 # Defined in aclocal.m4.
983 if test "x$TARGET_APPLE_LINKER" != x1 ; then
984 grub_PROG_OBJCOPY_ABSOLUTE
986 grub_PROG_LD_BUILD_ID_NONE
987 if test "x$target_cpu" = xi386; then
988 if test "$platform" != emu && test "x$TARGET_APPLE_LINKER" != x1 ; then
989 if test ! -z "$TARGET_IMG_LDSCRIPT"; then
990 # Check symbols provided by linker script.
991 CFLAGS="$TARGET_CFLAGS -nostdlib ${TARGET_IMG_LDFLAGS_AC} ${TARGET_IMG_BASE_LDOPT},0x8000 -Wl,--defsym,___main=0x8100"
993 grub_CHECK_BSS_START_SYMBOL
994 grub_CHECK_END_SYMBOL
996 CFLAGS="$TARGET_CFLAGS"
997 grub_I386_ASM_PREFIX_REQUIREMENT
1002 grub_PROG_NM_MINUS_P
1003 grub_PROG_NM_DEFINED_ONLY
1004 AC_SUBST(TARGET_NMFLAGS_MINUS_P)
1005 AC_SUBST(TARGET_NMFLAGS_DEFINED_ONLY)
1007 if test "$platform" != emu; then
1008 AC_CACHE_CHECK([whether -nostdinc -isystem works], [grub_cv_cc_isystem], [
1009 SAVED_CPPFLAGS="$CPPFLAGS"
1010 CPPFLAGS="$TARGET_CPPFLAGS -nostdinc -isystem `$TARGET_CC -print-file-name=include`"
1011 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdarg.h>
1013 int va_arg_func (int fixed, va_list args);]], [[]])],
1014 [grub_cv_cc_isystem=yes],
1015 [grub_cv_cc_isystem=no])
1016 CPPFLAGS="$SAVED_CPPFLAGS"
1019 if test x"$grub_cv_cc_isystem" = xyes ; then
1020 TARGET_CPPFLAGS="$TARGET_CPPFLAGS -nostdinc -isystem `$TARGET_CC -print-file-name=include`"
1024 AC_CACHE_CHECK([whether -Wtrampolines work], [grub_cv_cc_wtrampolines], [
1025 CFLAGS="$TARGET_CFLAGS -Wtrampolines -Werror"
1026 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdarg.h>
1027 int va_arg_func (int fixed, va_list args);]], [[]])],
1028 [grub_cv_cc_wtrampolines=yes],
1029 [grub_cv_cc_wtrampolines=no])
1032 if test x"$grub_cv_cc_wtrampolines" = xyes ; then
1033 TARGET_CFLAGS="$TARGET_CFLAGS -Wtrampolines"
1036 # Restore the flags.
1038 CFLAGS="$tmp_CFLAGS"
1039 CPPFLAGS="$tmp_CPPFLAGS"
1040 LDFLAGS="$tmp_LDFLAGS"
1044 # Check for options.
1047 # Memory manager debugging.
1048 AC_ARG_ENABLE([mm-debug],
1049 AS_HELP_STRING([--enable-mm-debug],
1050 [include memory manager debugging]),
1051 [AC_DEFINE([MM_DEBUG], [1],
1052 [Define to 1 if you enable memory manager debugging.])])
1054 AC_ARG_ENABLE([cache-stats],
1055 AS_HELP_STRING([--enable-cache-stats],
1056 [enable disk cache statistics collection]))
1058 if test x$enable_cache_stats = xyes; then
1063 AC_SUBST([DISK_CACHE_STATS])
1065 AC_ARG_ENABLE([boot-time],
1066 AS_HELP_STRING([--enable-boot-time],
1067 [enable boot time statistics collection]))
1069 if test x$enable_boot_time = xyes; then
1074 AC_SUBST([BOOT_TIME_STATS])
1076 AC_ARG_ENABLE([grub-emu-usb],
1077 [AS_HELP_STRING([--enable-grub-emu-usb],
1078 [build and install the `grub-emu' debugging utility with USB support (default=guessed)])])
1080 AC_ARG_ENABLE([grub-emu-sdl],
1081 [AS_HELP_STRING([--enable-grub-emu-sdl],
1082 [build and install the `grub-emu' debugging utility with SDL support (default=guessed)])])
1084 AC_ARG_ENABLE([grub-emu-pci],
1085 [AS_HELP_STRING([--enable-grub-emu-pci],
1086 [build and install the `grub-emu' debugging utility with PCI support (potentially dangerous) (default=no)])])
1088 if test "$platform" = emu; then
1090 if test x"$enable_grub_emu_usb" != xyes ; then
1091 grub_emu_usb_excuse="not enabled"
1094 if test x"$enable_grub_emu_pci" = xyes ; then
1095 grub_emu_usb_excuse="conflicts with PCI support"
1098 [if [ x"$grub_emu_usb_excuse" = x ]; then
1099 # Check for libusb libraries.]
1100 AC_CHECK_LIB([usb], [usb_claim_interface], [LIBUSB="-lusb"],
1101 [grub_emu_usb_excuse=["need libusb library"]])
1104 [if [ x"$grub_emu_usb_excuse" = x ]; then
1105 # Check for headers.]
1106 AC_CHECK_HEADERS([usb.h], [],
1107 [grub_emu_usb_excuse=["need libusb headers"]])
1109 if test x"$enable_grub_emu_usb" = xyes && test x"$grub_emu_usb_excuse" != x ; then
1110 AC_MSG_ERROR([USB support for grub-emu was explicitly requested but can't be compiled])
1112 if test x"$grub_emu_usb_excuse" = x ; then
1113 enable_grub_emu_usb=yes
1115 enable_grub_emu_usb=no
1118 if test x"$enable_grub_emu_sdl" = xno ; then
1119 grub_emu_sdl_excuse="explicitely disabled"
1121 [if [ x"$grub_emu_sdl_excuse" = x ]; then
1122 # Check for libSDL libraries.]
1123 AC_CHECK_LIB([SDL], [SDL_Init], [LIBSDL="-lSDL"],
1124 [grub_emu_sdl_excuse=["libSDL libraries are required to build \`grub-emu' with SDL support"]])
1128 [if [ x"$grub_emu_sdl_excuse" = x ]; then
1129 # Check for headers.]
1130 AC_CHECK_HEADERS([SDL/SDL.h], [],
1131 [grub_emu_sdl_excuse=["libSDL header file is required to build \`grub-emu' with SDL support"]])
1134 if test x"enable_grub_emu_sdl" = xyes && test x"$grub_emu_sdl_excuse" != x ; then
1135 AC_MSG_ERROR([SDL support for grub-emu was explicitely requested but can't be compiled])
1137 if test x"$grub_emu_sdl_excuse" = x ; then
1138 enable_grub_emu_sdl=yes
1140 enable_grub_emu_sdl=no
1143 if test x"$enable_grub_emu_pci" != xyes ; then
1144 grub_emu_pci_excuse="not enabled"
1147 if test x"$enable_grub_emu_usb" = xyes ; then
1148 grub_emu_pci_excuse="conflicts with USB support"
1151 [if [ x"$grub_emu_pci_excuse" = x ]; then
1152 # Check for libpci libraries.]
1153 AC_CHECK_LIB([pciaccess], [pci_system_init], [LIBPCIACCESS="-lpciaccess"],
1154 [grub_emu_pci_excuse=["need libpciaccess library"]])
1155 AC_SUBST([LIBPCIACCESS])
1157 [if [ x"$grub_emu_pci_excuse" = x ]; then
1158 # Check for headers.]
1159 AC_CHECK_HEADERS([pci/pci.h], [],
1160 [grub_emu_pci_excuse=["need libpciaccess headers"]])
1163 if test x"$grub_emu_pci_excuse" = x ; then
1164 enable_grub_emu_pci=yes
1167 enable_grub_emu_pci=no
1170 AC_SUBST([enable_grub_emu_sdl])
1171 AC_SUBST([enable_grub_emu_usb])
1172 AC_SUBST([enable_grub_emu_pci])
1176 # Ignore --enable-emu-* if platform is not emu
1177 enable_grub_emu_sdl=no
1178 enable_grub_emu_usb=no
1179 enable_grub_emu_pci=no
1182 AC_ARG_ENABLE([grub-mkfont],
1183 [AS_HELP_STRING([--enable-grub-mkfont],
1184 [build and install the `grub-mkfont' utility (default=guessed)])])
1185 if test x"$enable_grub_mkfont" = xno ; then
1186 grub_mkfont_excuse="explicitly disabled"
1189 if test x"$grub_mkfont_excuse" = x ; then
1190 # Check for freetype libraries.
1191 AC_CHECK_TOOLS([FREETYPE], [freetype-config])
1192 if test "x$FREETYPE" = x ; then
1193 grub_mkfont_excuse=["need freetype2 library"]
1197 unset ac_cv_header_ft2build_h
1199 if test x"$grub_mkfont_excuse" = x ; then
1200 # Check for freetype libraries.
1201 freetype_cflags=`$FREETYPE --cflags`
1202 freetype_libs=`$FREETYPE --libs`
1203 SAVED_CPPFLAGS="$CPPFLAGS"
1204 CPPFLAGS="$CPPFLAGS $freetype_cflags"
1205 AC_CHECK_HEADERS([ft2build.h], [],
1206 [grub_mkfont_excuse=["need freetype2 headers"]])
1207 CPPFLAGS="$SAVED_CPPFLAGS"
1210 if test x"$enable_grub_mkfont" = xyes && test x"$grub_mkfont_excuse" != x ; then
1211 AC_MSG_ERROR([grub-mkfont was explicitly requested but can't be compiled])
1213 if test x"$grub_mkfont_excuse" = x ; then
1214 enable_grub_mkfont=yes
1216 enable_grub_mkfont=no
1218 AC_SUBST([enable_grub_mkfont])
1219 AC_SUBST([freetype_cflags])
1220 AC_SUBST([freetype_libs])
1224 SAVED_CFLAGS="$CFLAGS"
1225 SAVED_CPPFLAGS="$CPPFLAGS"
1228 CFLAGS="$BUILD_CFLAGS"
1229 CPPFLAGS="$BUILD_CPPFLAGS"
1231 unset ac_cv_c_bigendian
1232 unset ac_cv_header_ft2build_h
1234 AC_COMPUTE_INT([BUILD_SIZEOF_VOID_P], [sizeof (void *)])
1235 AC_COMPUTE_INT([BUILD_SIZEOF_LONG], [sizeof (long)])
1236 AC_C_BIGENDIAN([BUILD_WORDS_BIGENDIAN=1], [BUILD_WORDS_BIGENDIAN=0], [BUILD_WORDS_BIGENDIAN=err], [BUILD_WORDS_BIGENDIAN=err])
1238 if test x$BUILD_WORDS_BIGENDIAN = xerr ; then
1239 AC_MSG_ERROR([couldnt determine build endianness])
1242 AC_SUBST([BUILD_SIZEOF_LONG])
1243 AC_SUBST([BUILD_SIZEOF_VOID_P])
1244 AC_SUBST([BUILD_WORDS_BIGENDIAN])
1246 if test x"$grub_build_mkfont_excuse" = x ; then
1247 # Check for freetype libraries.
1248 AC_CHECK_PROGS([BUILD_FREETYPE], [freetype-config])
1249 if test "x$BUILD_FREETYPE" = x ; then
1250 grub_build_mkfont_excuse=["need freetype2 library"]
1254 if test x"$grub_build_mkfont_excuse" = x ; then
1255 # Check for freetype libraries.
1256 build_freetype_cflags=`$BUILD_FREETYPE --cflags`
1257 build_freetype_libs=`$BUILD_FREETYPE --libs`
1258 SAVED_CPPFLAGS_2="$CPPFLAGS"
1259 CPPFLAGS="$CPPFLAGS $build_freetype_cflags"
1260 AC_CHECK_HEADERS([ft2build.h], [],
1261 [grub_build_mkfont_excuse=["need freetype2 headers"]])
1262 CPPFLAGS="$SAVED_CPPFLAGS_2"
1265 if test x"$enable_build_grub_mkfont" = xyes && test x"$grub_build_mkfont_excuse" != x ; then
1266 AC_MSG_ERROR([build-grub-mkfont was explicitly requested but can't be compiled])
1268 if test x"$grub_build_mkfont_excuse" = x ; then
1269 enable_build_grub_mkfont=yes
1271 enable_build_grub_mkfont=no
1273 if test x"$enable_build_grub_mkfont" = xno && ( test "x$platform" = xqemu || test "x$platform" = xloongson || test "x$platform" = xqemu_mips || test "x$target_cpu"-"$platform" = xpowerpc-ieee1275 || test "x$platform" = xcoreboot ); then
1274 AC_MSG_ERROR([qemu, powerpc-ieee1275, coreboot and loongson ports needs build-time grub-mkfont])
1277 AC_SUBST([build_freetype_cflags])
1278 AC_SUBST([build_freetype_libs])
1282 CFLAGS="$SAVED_CFLAGS"
1283 CPPFLAGS="$SAVED_CPPFLAGS"
1290 AC_ARG_ENABLE([grub-themes],
1291 [AS_HELP_STRING([--enable-grub-themes],
1292 [build and install GRUB themes (default=guessed)])])
1293 if test x"$enable_grub_themes" = xno ; then
1294 starfield_excuse="explicitly disabled"
1297 if test x"$starfield_excuse" = x && test x"$enable_build_grub_mkfont" = xno ; then
1298 starfield_excuse="No build-time grub-mkfont"
1301 if test x"$starfield_excuse" = x; then
1302 for ext in pcf pcf.gz bdf bdf.gz ttf ttf.gz; do
1303 for dir in . /usr/src /usr/share/fonts/X11/misc /usr/share/fonts/truetype/ttf-dejavu /usr/share/fonts/dejavu; do
1304 if test -f "$dir/DejaVuSans.$ext"; then
1305 DJVU_FONT_SOURCE="$dir/DejaVuSans.$ext"
1311 if test "x$DJVU_FONT_SOURCE" = x; then
1312 starfield_excuse="No DejaVu found"
1316 if test x"$enable_grub_themes" = xyes && test x"$starfield_excuse" != x; then
1317 AC_MSG_ERROR([themes were explicitly requested but requirements are not satisfied])
1320 AC_SUBST([DJVU_FONT_SOURCE])
1324 for ext in pcf pcf.gz bdf bdf.gz ttf ttf.gz; do
1325 for dir in . /usr/src /usr/share/fonts/X11/misc /usr/share/fonts/unifont /usr/share/fonts/uni /usr/share/fonts/truetype/unifont /usr/share/fonts/misc; do
1326 if test -f "$dir/unifont.$ext"; then
1327 md5="$(md5sum "$dir/unifont.$ext"|awk '{ print $1; }')"
1328 # PCF and BDF from version 6.3 isn't hanled properly by libfreetype.
1329 if test "$md5" = 0a54834d2788c83886a3e1785a6a1e61 || test "$md5" = 28f2565c7a41d8d407e2551159385edb || test "$md5" = dae5e588461b3b92b87b6ffee734f936 || test "$md5" = 4a3d687aa5bb329ed05f4263a1016791 ; then
1332 FONT_SOURCE="$dir/unifont.$ext"
1338 if test x"$enable_build_grub_mkfont" = xno ; then
1342 if test "x$FONT_SOURCE" = x && ( test "x$platform" = xqemu || test "x$platform" = xloongson || test "x$platform" = xqemu_mips || test "x$target_cpu"-"$platform" = xpowerpc-ieee1275 || test "x$platform" = xcoreboot ); then
1343 AC_MSG_ERROR([qemu, powerpc-ieee1275, coreboot and loongson ports need unifont])
1346 AC_SUBST([FONT_SOURCE])
1348 if test x"$FONT_SOURCE" = x && test x"$DJVU_FONT_SOURCE" = x && test x"$grub_build_mkfont_excuse" = x; then
1349 grub_build_mkfont_excuse="no fonts"
1353 AC_ARG_ENABLE([grub-mount],
1354 [AS_HELP_STRING([--enable-grub-mount],
1355 [build and install the `grub-mount' utility (default=guessed)])])
1356 if test x"$enable_grub_mount" = xno ; then
1357 grub_mount_excuse="explicitly disabled"
1360 if test x"$grub_mount_excuse" = x ; then
1361 AC_CHECK_LIB([fuse], [fuse_main_real], [],
1362 [grub_mount_excuse="need FUSE library"])
1365 if test x"$grub_mount_excuse" = x ; then
1366 # Check for fuse headers.
1367 SAVED_CPPFLAGS="$CPPFLAGS"
1368 CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26"
1369 AC_CHECK_HEADERS([fuse/fuse.h], [],
1370 [grub_mount_excuse=["need FUSE headers"]])
1371 CPPFLAGS="$SAVED_CPPFLAGS"
1374 if test x"$enable_grub_mount" = xyes && test x"$grub_mount_excuse" != x ; then
1375 AC_MSG_ERROR([grub-mount was explicitly requested but can't be compiled])
1377 if test x"$grub_mount_excuse" = x ; then
1378 enable_grub_mount=yes
1380 enable_grub_mount=no
1382 AC_SUBST([enable_grub_mount])
1384 AC_ARG_ENABLE([device-mapper],
1385 [AS_HELP_STRING([--enable-device-mapper],
1386 [enable Linux device-mapper support (default=guessed)])])
1387 if test x"$enable_device_mapper" = xno ; then
1388 device_mapper_excuse="explicitly disabled"
1391 if test x"$device_mapper_excuse" = x ; then
1392 # Check for device-mapper header.
1393 AC_CHECK_HEADER([libdevmapper.h], [],
1394 [device_mapper_excuse="need libdevmapper header"])
1397 if test x"$device_mapper_excuse" = x ; then
1398 # Check for device-mapper library.
1399 AC_CHECK_LIB([devmapper], [dm_task_create], [],
1400 [device_mapper_excuse="need devmapper library"])
1403 if test x"$device_mapper_excuse" = x ; then
1404 # Check for device-mapper library.
1405 AC_CHECK_LIB([devmapper], [dm_log_with_errno_init],
1407 [device_mapper_excuse="need devmapper library"])
1410 if test x"$device_mapper_excuse" = x ; then
1411 LIBDEVMAPPER="-ldevmapper";
1412 AC_DEFINE([HAVE_DEVICE_MAPPER], [1],
1413 [Define to 1 if you have the devmapper library.])
1416 AC_SUBST([LIBDEVMAPPER])
1419 if test x$host_kernel = xkfreebsd; then
1420 AC_CHECK_LIB([geom], [geom_gettree], [],
1421 [AC_MSG_ERROR([Your platform requires libgeom])])
1427 AC_ARG_ENABLE([liblzma],
1428 [AS_HELP_STRING([--enable-liblzma],
1429 [enable liblzma integration (default=guessed)])])
1430 if test x"$enable_liblzma" = xno ; then
1431 liblzma_excuse="explicitly disabled"
1434 if test x"$liblzma_excuse" = x ; then
1435 AC_CHECK_LIB([lzma], [lzma_code],
1436 [],[liblzma_excuse="need lzma library"])
1438 if test x"$liblzma_excuse" = x ; then
1439 AC_CHECK_HEADER([lzma.h], [], [liblzma_excuse="need lzma header"])
1442 if test x"$enable_liblzma" = xyes && test x"$liblzma_excuse" != x ; then
1443 AC_MSG_ERROR([liblzma support was explicitly requested but requirements are not satisfied])
1447 if test x"$liblzma_excuse" = x ; then
1449 AC_DEFINE([USE_LIBLZMA], [1],
1450 [Define to 1 if you have the LZMA library.])
1455 AC_ARG_ENABLE([libzfs],
1456 [AS_HELP_STRING([--enable-libzfs],
1457 [enable libzfs integration (default=guessed)])])
1458 if test x"$enable_libzfs" = xno ; then
1459 libzfs_excuse="explicitly disabled"
1462 if test x"$libzfs_excuse" = x ; then
1463 # Only check for system headers if libzfs support has not been disabled.
1464 AC_CHECK_HEADERS(libzfs.h libnvpair.h)
1467 if test x"$libzfs_excuse" = x ; then
1468 AC_CHECK_LIB([zfs], [libzfs_init],
1470 [libzfs_excuse="need zfs library"])
1473 if test x"$libzfs_excuse" = x ; then
1474 AC_CHECK_LIB([nvpair], [nvlist_lookup_string],
1476 [libzfs_excuse="need nvpair library"])
1479 if test x"$enable_libzfs" = xyes && test x"$libzfs_excuse" != x ; then
1480 AC_MSG_ERROR([libzfs support was explicitly requested but requirements are not satisfied])
1483 if test x"$libzfs_excuse" = x ; then
1484 # We need both libzfs and libnvpair for a successful build.
1486 AC_DEFINE([HAVE_LIBZFS], [1],
1487 [Define to 1 if you have the ZFS library.])
1488 LIBNVPAIR="-lnvpair"
1489 AC_DEFINE([HAVE_LIBNVPAIR], [1],
1490 [Define to 1 if you have the NVPAIR library.])
1494 AC_SUBST([LIBNVPAIR])
1498 AC_SUBST([FONT_SOURCE])
1499 AS_IF([test x$target_cpu = xi386 -a x$platform = xqemu],
1500 [AC_SUBST([GRUB_BOOT_MACHINE_LINK_ADDR], 0xffe00)])
1502 AC_SUBST(HAVE_ASM_USCORE)
1505 AC_SUBST(BSS_START_SYMBOL)
1506 AC_SUBST(END_SYMBOL)
1509 AC_SUBST(NEED_REGISTER_FRAME_INFO)
1511 AC_ARG_ENABLE([werror],
1512 [AS_HELP_STRING([--disable-werror],
1513 [do not use -Werror when building GRUB])])
1514 if test x"$enable_werror" != xno ; then
1515 TARGET_CFLAGS="$TARGET_CFLAGS -Werror"
1516 HOST_CFLAGS="$HOST_CFLAGS -Werror"
1519 if test "x$grub_cv_cc_target_clang" = xno; then
1520 TARGET_LDFLAGS_STATIC_LIBGCC="-static-libgcc"
1522 TARGET_LDFLAGS_STATIC_LIBGCC=
1525 TARGET_CPP="$TARGET_CC -E"
1526 TARGET_CCAS=$TARGET_CC
1528 GRUB_TARGET_CPU="${target_cpu}"
1529 GRUB_PLATFORM="${platform}"
1531 AC_SUBST(GRUB_TARGET_CPU)
1532 AC_SUBST(GRUB_PLATFORM)
1534 AC_SUBST(TARGET_OBJCONV)
1535 AC_SUBST(TARGET_LIBGCC)
1536 AC_SUBST(TARGET_LDFLAGS_STATIC_LIBGCC)
1537 AC_SUBST(TARGET_CPP)
1538 AC_SUBST(TARGET_CCAS)
1539 AC_SUBST(TARGET_OBJ2ELF)
1540 AC_SUBST(TARGET_MODULE_FORMAT)
1542 AC_SUBST(TARGET_CFLAGS)
1543 AC_SUBST(TARGET_LDFLAGS)
1544 AC_SUBST(TARGET_CPPFLAGS)
1545 AC_SUBST(TARGET_CCASFLAGS)
1547 AC_SUBST(TARGET_IMG_LDSCRIPT)
1548 AC_SUBST(TARGET_IMG_LDFLAGS)
1549 AC_SUBST(TARGET_IMG_CFLAGS)
1550 AC_SUBST(TARGET_IMG_BASE_LDOPT)
1551 AC_SUBST(TARGET_APPLE_LINKER)
1553 AC_SUBST(HOST_CFLAGS)
1554 AC_SUBST(HOST_LDFLAGS)
1555 AC_SUBST(HOST_CPPFLAGS)
1556 AC_SUBST(HOST_CCASFLAGS)
1558 AC_SUBST(BUILD_LIBM)
1561 # Automake conditionals
1564 AM_CONDITIONAL([COND_emu], [test x$platform = xemu])
1565 AM_CONDITIONAL([COND_clang], [test x$grub_cv_cc_target_clang = xyes])
1566 AM_CONDITIONAL([COND_i386_pc], [test x$target_cpu = xi386 -a x$platform = xpc])
1567 AM_CONDITIONAL([COND_i386_efi], [test x$target_cpu = xi386 -a x$platform = xefi])
1568 AM_CONDITIONAL([COND_ia64_efi], [test x$target_cpu = xia64 -a x$platform = xefi])
1569 AM_CONDITIONAL([COND_i386_qemu], [test x$target_cpu = xi386 -a x$platform = xqemu])
1570 AM_CONDITIONAL([COND_i386_ieee1275], [test x$target_cpu = xi386 -a x$platform = xieee1275])
1571 AM_CONDITIONAL([COND_i386_coreboot], [test x$target_cpu = xi386 -a x$platform = xcoreboot])
1572 AM_CONDITIONAL([COND_i386_multiboot], [test x$target_cpu = xi386 -a x$platform = xmultiboot])
1573 AM_CONDITIONAL([COND_x86_64_efi], [test x$target_cpu = xx86_64 -a x$platform = xefi])
1574 AM_CONDITIONAL([COND_i386_xen], [test x$target_cpu = xi386 -a x$platform = xxen])
1575 AM_CONDITIONAL([COND_x86_64_xen], [test x$target_cpu = xx86_64 -a x$platform = xxen])
1576 AM_CONDITIONAL([COND_mips_loongson], [test x$target_cpu = xmipsel -a x$platform = xloongson])
1577 AM_CONDITIONAL([COND_mips_qemu_mips], [test "(" x$target_cpu = xmips -o x$target_cpu = xmipsel ")" -a x$platform = xqemu_mips])
1578 AM_CONDITIONAL([COND_mips_arc], [test "(" x$target_cpu = xmips -o x$target_cpu = xmipsel ")" -a x$platform = xarc])
1579 AM_CONDITIONAL([COND_sparc64_ieee1275], [test x$target_cpu = xsparc64 -a x$platform = xieee1275])
1580 AM_CONDITIONAL([COND_powerpc_ieee1275], [test x$target_cpu = xpowerpc -a x$platform = xieee1275])
1581 AM_CONDITIONAL([COND_mips], [test x$target_cpu = xmips -o x$target_cpu = xmipsel])
1582 AM_CONDITIONAL([COND_mipsel], [test x$target_cpu = xmipsel])
1583 AM_CONDITIONAL([COND_mipseb], [test x$target_cpu = xmips])
1584 AM_CONDITIONAL([COND_arm], [test x$target_cpu = xarm ])
1585 AM_CONDITIONAL([COND_arm_uboot], [test x$target_cpu = xarm -a x$platform = xuboot])
1586 AM_CONDITIONAL([COND_arm_efi], [test x$target_cpu = xarm -a x$platform = xefi])
1587 AM_CONDITIONAL([COND_arm64], [test x$target_cpu = xarm64 ])
1588 AM_CONDITIONAL([COND_arm64_efi], [test x$target_cpu = xarm64 -a x$platform = xefi])
1590 AM_CONDITIONAL([COND_HOST_HURD], [test x$host_kernel = xhurd])
1591 AM_CONDITIONAL([COND_HOST_LINUX], [test x$host_kernel = xlinux])
1592 AM_CONDITIONAL([COND_HOST_NETBSD], [test x$host_kernel = xnetbsd])
1593 AM_CONDITIONAL([COND_HOST_WINDOWS], [test x$host_kernel = xwindows])
1594 AM_CONDITIONAL([COND_HOST_KFREEBSD], [test x$host_kernel = xkfreebsd])
1595 AM_CONDITIONAL([COND_HOST_XNU], [test x$host_kernel = xxnu])
1596 AM_CONDITIONAL([COND_HOST_ILLUMOS], [test x$host_kernel = xillumos])
1598 AM_CONDITIONAL([COND_MAN_PAGES], [test x$cross_compiling = xno -a x$HELP2MAN != x])
1599 AM_CONDITIONAL([COND_GRUB_EMU_USB], [test x$enable_grub_emu_usb = xyes])
1600 AM_CONDITIONAL([COND_GRUB_EMU_SDL], [test x$enable_grub_emu_sdl = xyes])
1601 AM_CONDITIONAL([COND_GRUB_EMU_PCI], [test x$enable_grub_emu_pci = xyes])
1602 AM_CONDITIONAL([COND_GRUB_MKFONT], [test x$enable_grub_mkfont = xyes])
1603 AM_CONDITIONAL([COND_GRUB_MOUNT], [test x$enable_grub_mount = xyes])
1604 AM_CONDITIONAL([COND_HAVE_FONT_SOURCE], [test x$FONT_SOURCE != x])
1605 if test x$FONT_SOURCE != x ; then
1610 AC_SUBST(HAVE_FONT_SOURCE)
1611 AM_CONDITIONAL([COND_APPLE_LINKER], [test x$TARGET_APPLE_LINKER = x1])
1612 AM_CONDITIONAL([COND_ENABLE_EFIEMU], [test x$enable_efiemu = xyes])
1613 AM_CONDITIONAL([COND_ENABLE_CACHE_STATS], [test x$DISK_CACHE_STATS = x1])
1614 AM_CONDITIONAL([COND_ENABLE_BOOT_TIME_STATS], [test x$BOOT_TIME_STATS = x1])
1616 AM_CONDITIONAL([COND_HAVE_CXX], [test x$HAVE_CXX = xyes])
1618 AM_CONDITIONAL([COND_HAVE_ASM_USCORE], [test x$HAVE_ASM_USCORE = x1])
1619 AM_CONDITIONAL([COND_CYGWIN], [test x$target_os = xcygwin])
1620 AM_CONDITIONAL([COND_STARFIELD], [test "x$starfield_excuse" = x])
1621 AM_CONDITIONAL([COND_HAVE_EXEC], [test "x$have_exec" = xy])
1623 test "x$prefix" = xNONE && prefix="$ac_default_prefix"
1624 test "x$exec_prefix" = xNONE && exec_prefix="${prefix}"
1625 datarootdir="$(eval echo "$datarootdir")"
1626 grub_libdir="$(eval echo "$libdir")"
1627 grub_localedir="$(eval echo "$localedir")"
1628 grub_datadir="$(eval echo "$datadir")"
1629 grub_sysconfdir="$(eval echo "$sysconfdir")"
1630 AC_DEFINE_UNQUOTED(LOCALEDIR, "$grub_localedir", [Locale dir])
1631 AC_DEFINE_UNQUOTED(GRUB_LIBDIR, "$grub_libdir", [Library dir])
1632 AC_DEFINE_UNQUOTED(GRUB_DATADIR, "$grub_datadir", [Data dir])
1633 AC_DEFINE_UNQUOTED(GRUB_SYSCONFDIR, "$grub_sysconfdir", [Configuration dir])
1637 cpudir="${target_cpu}"
1638 if test x${cpudir} = xmipsel; then
1642 if test x"$link_dir" = xyes ; then
1643 AC_CONFIG_LINKS([include/grub/cpu:include/grub/$cpudir])
1644 if test "$platform" != emu ; then
1645 AC_CONFIG_LINKS([include/grub/machine:include/grub/$cpudir/$platform])
1648 mkdir -p include/grub 2>/dev/null
1649 rm -rf include/grub/cpu
1650 cp -rp $srcdir/include/grub/$cpudir include/grub/cpu 2>/dev/null
1651 if test "$platform" != emu ; then
1652 rm -rf include/grub/machine
1653 cp -rp $srcdir/include/grub/$cpudir/$platform include/grub/machine 2>/dev/null
1657 AC_CONFIG_FILES([Makefile])
1658 AC_CONFIG_FILES([grub-core/Makefile])
1659 AC_CONFIG_FILES([grub-core/gnulib/Makefile])
1660 AC_CONFIG_FILES([po/Makefile.in])
1661 AC_CONFIG_FILES([docs/Makefile])
1662 AC_CONFIG_FILES([util/bash-completion.d/Makefile])
1663 AC_CONFIG_FILES([stamp-h], [echo timestamp > stamp-h])
1664 AC_CONFIG_FILES([config.h])
1668 echo "*******************************************************"
1669 echo GRUB2 will be compiled with following components:
1670 echo Platform: "$target_cpu"-"$platform"
1671 if [ x"$platform" = xemu ]; then
1672 if [ x"$grub_emu_usb_excuse" = x ]; then
1673 echo USB support for grub-emu: Yes
1675 echo USB support for grub-emu: No "($grub_emu_usb_excuse)"
1677 if [ x"$grub_emu_sdl_excuse" = x ]; then
1678 echo SDL support for grub-emu: Yes
1680 echo SDL support for grub-emu: No "($grub_emu_sdl_excuse)"
1682 if [ x"$grub_emu_pci_excuse" = x ]; then
1683 echo PCI support for grub-emu: Yes
1685 echo PCI support for grub-emu: No "($grub_emu_pci_excuse)"
1688 if test x"$device_mapper_excuse" = x ; then
1689 echo With devmapper support: Yes
1691 echo With devmapper support: No "($device_mapper_excuse)"
1693 if [ x"$enable_mm_debug" = xyes ]; then
1694 echo With memory debugging: Yes
1696 echo With memory debugging: No
1698 if [ x"$enable_cache_stats" = xyes ]; then
1699 echo With disk cache statistics: Yes
1701 echo With disk cache statistics: No
1704 if [ x"$enable_boot_time" = xyes ]; then
1705 echo With boot time statistics: Yes
1707 echo With boot time statistics: No
1710 if [ x"$efiemu_excuse" = x ]; then
1711 echo efiemu runtime: Yes
1713 echo efiemu runtime: No "($efiemu_excuse)"
1715 if [ x"$grub_mkfont_excuse" = x ]; then
1716 echo grub-mkfont: Yes
1718 echo grub-mkfont: No "($grub_mkfont_excuse)"
1720 if [ x"$grub_mount_excuse" = x ]; then
1721 echo grub-mount: Yes
1723 echo grub-mount: No "($grub_mount_excuse)"
1725 if [ x"$starfield_excuse" = x ]; then
1726 echo starfield theme: Yes
1728 echo starfield theme: No "($starfield_excuse)"
1730 if [ x"$libzfs_excuse" = x ]; then
1731 echo With libzfs support: Yes
1733 echo With libzfs support: No "($libzfs_excuse)"
1735 if [ x"$grub_build_mkfont_excuse" = x ]; then
1736 echo Build-time grub-mkfont: Yes
1737 if test "x$FONT_SOURCE" = x ; then
1738 echo "Without unifont"
1740 echo "With unifont from $FONT_SOURCE"
1743 echo Build-time grub-mkfont: No "($grub_build_mkfont_excuse)"
1744 echo "Without unifont (no build-time grub-mkfont)"
1746 if test x"$liblzma_excuse" != x ; then
1747 echo "Without liblzma (no support for XZ-compressed mips images) ($liblzma_excuse)"
1749 echo "With liblzma from $LIBLZMA (support for XZ-compressed mips images)"
1751 echo "*******************************************************"