]> git.proxmox.com Git - grub2.git/blame - configure.ac
* util/grub-mkfont.c [!GRUB_BUILD]: Define my_argp_state.
[grub2.git] / configure.ac
CommitLineData
76ed06b9
BC
1# -*- autoconf -*-
2
6a161fa9 3# Process this file with autoconf to produce a configure script.
4
2f1a3acf 5# Copyright (C) 2002,2003,2004,2005,2006,2007,2008,2009,2010 Free Software Foundation, Inc.
6a161fa9 6#
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.
10#
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
14# PARTICULAR PURPOSE.
15
b977bf01 16dnl This configure script is complicated, because GRUB needs to deal
17dnl with three potentially different types:
18dnl
19dnl build -- the environment for building GRUB
20dnl host -- the environment for running utilities
21dnl target -- the environment for running GRUB
22dnl
23dnl In addition, GRUB needs to deal with a platform specification
24dnl which specifies the system running GRUB, such as firmware.
25dnl This is necessary because the target type in autoconf does not
26dnl describe such a system very well.
27dnl
28dnl The current strategy is to use variables with no prefix (such as
29dnl CC, CFLAGS, etc.) for the host type as well as the build type,
30dnl because GRUB does not need to use those variables for the build
31dnl type, so there is no conflict. Variables with the prefix "TARGET_"
32dnl (such as TARGET_CC, TARGET_CFLAGS, etc.) are used for the target
33dnl type.
34
5f91f701 35AC_INIT([GRUB],[2.00],[bug-grub@gnu.org])
6a161fa9 36
15c69261
YB
37AC_CONFIG_AUX_DIR([build-aux])
38
76ed06b9
BC
39# We don't want -g -O2 by default in CFLAGS
40: ${CFLAGS=""}
6a161fa9 41
b977bf01 42# Checks for host and target systems.
6a161fa9 43AC_CANONICAL_HOST
b977bf01 44AC_CANONICAL_TARGET
6a161fa9 45
8c411768
BC
46AM_INIT_AUTOMAKE()
47AC_PREREQ(2.60)
6304d292 48AC_CONFIG_SRCDIR([include/grub/dl.h])
742f9232 49AC_CONFIG_HEADER([config-util.h])
e52db1f7 50
1d543c3e 51# Program name transformations
52AC_ARG_PROGRAM
fd49ceb3
CW
53grub_TRANSFORM([grub-bios-setup])
54grub_TRANSFORM([grub-editenv])
55grub_TRANSFORM([grub-install])
56grub_TRANSFORM([grub-mkconfig])
57grub_TRANSFORM([grub-mkfont])
58grub_TRANSFORM([grub-mkimage])
67ab8353 59grub_TRANSFORM([grub-glue-efi])
fd49ceb3
CW
60grub_TRANSFORM([grub-mklayout])
61grub_TRANSFORM([grub-mkpasswd-pbkdf2])
62grub_TRANSFORM([grub-mkrelpath])
63grub_TRANSFORM([grub-mkrescue])
64grub_TRANSFORM([grub-probe])
65grub_TRANSFORM([grub-reboot])
66grub_TRANSFORM([grub-script-check])
67grub_TRANSFORM([grub-set-default])
fd49ceb3 68grub_TRANSFORM([grub-sparc64-setup])
a79b8a15 69grub_TRANSFORM([grub-render-label])
1d543c3e 70
90d1e879
RM
71# Optimization flag. Allow user to override.
72if test "x$TARGET_CFLAGS" = x; then
73 TARGET_CFLAGS="$TARGET_CFLAGS -Os"
74fi
75
7c9d0c39
VS
76BUILD_CPPFLAGS="$BUILD_CPPFLAGS -DLOCALEDIR=\\\"\$(localedir)\\\""
77
76ed06b9
BC
78# Default HOST_CPPFLAGS
79HOST_CPPFLAGS="$HOST_CPPFLAGS -Wall -W"
76ed06b9 80HOST_CPPFLAGS="$HOST_CPPFLAGS -I\$(top_builddir)/include"
76ed06b9
BC
81HOST_CPPFLAGS="$HOST_CPPFLAGS -DGRUB_UTIL=1"
82HOST_CPPFLAGS="$HOST_CPPFLAGS -DGRUB_LIBDIR=\\\"\$(pkglibdir)\\\""
83HOST_CPPFLAGS="$HOST_CPPFLAGS -DLOCALEDIR=\\\"\$(localedir)\\\""
84
85TARGET_CPPFLAGS="$TARGET_CPPFLAGS -Wall -W"
86TARGET_CPPFLAGS="$TARGET_CPPFLAGS -I\$(top_srcdir)/include"
87TARGET_CPPFLAGS="$TARGET_CPPFLAGS -I\$(top_builddir)/include"
88
b977bf01 89case "$target_cpu" in
02164e1b 90 i[[3456]]86) target_cpu=i386 ;;
c7ef54aa 91 amd64) target_cpu=x86_64 ;;
02164e1b 92 sparc) target_cpu=sparc64 ;;
ade85305 93 mipsel|mips64el)
4959e111 94 target_cpu=mipsel;
c721825b 95 machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_CPU_MIPSEL=1";
4a1eefb6 96 ;;
ade85305 97 mips|mips64)
76ed06b9 98 target_cpu=mips;
c721825b 99 machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_CPU_MIPS=1";
4a1eefb6 100 ;;
389b31cd
LL
101 arm*)
102 target_cpu=arm;
103 ;;
6a161fa9 104esac
105
05568c2e 106# Specify the platform (such as firmware).
107AC_ARG_WITH([platform],
108 AS_HELP_STRING([--with-platform=PLATFORM],
83b984de 109 [select the host platform [[guessed]]]))
05568c2e 110
111# Guess the platform if not specified.
112if test "x$with_platform" = x; then
b977bf01 113 case "$target_cpu"-"$target_vendor" in
05568c2e 114 i386-apple) platform=efi ;;
115 i386-*) platform=pc ;;
58393a2d 116 x86_64-apple) platform=efi ;;
737feb35 117 x86_64-*) platform=pc ;;
05568c2e 118 powerpc-*) platform=ieee1275 ;;
58393a2d 119 powerpc64-*) platform=ieee1275 ;;
05568c2e 120 sparc64-*) platform=ieee1275 ;;
4959e111
VS
121 mipsel-*) platform=loongson ;;
122 mips-*) platform=arc ;;
e68d3b24 123 ia64-*) platform=efi ;;
389b31cd 124 arm-*) platform=uboot ;;
58393a2d 125 *) AC_MSG_ERROR([unsupported CPU: "$target_cpu"]) ;;
05568c2e 126 esac
127else
128 platform="$with_platform"
129fi
130
ec1dfd63
VS
131case "$target_cpu"-"$platform" in
132 x86_64-efi) ;;
133 x86_64-emu) ;;
134 x86_64-*) target_cpu=i386 ;;
135 powerpc64-ieee1275) target_cpu=powerpc ;;
136esac
20011694 137
58393a2d 138# Check if the platform is supported, make final adjustments.
b977bf01 139case "$target_cpu"-"$platform" in
05568c2e 140 i386-efi) ;;
3f4ce737 141 x86_64-efi) ;;
05568c2e 142 i386-pc) ;;
7210dca9 143 i386-multiboot) ;;
546f966a 144 i386-coreboot) ;;
58393a2d 145 i386-linuxbios) platform=coreboot ;;
3d04eab8 146 i386-ieee1275) ;;
8231fb77 147 i386-qemu) ;;
05568c2e 148 powerpc-ieee1275) ;;
149 sparc64-ieee1275) ;;
2c40cc78 150 ia64-efi) ;;
f440c33f 151 mips-qemu_mips) ;;
3666d5f6 152 mips-qemu-mips) platform=qemu_mips;;
8906c3dd 153 mips-arc) ;;
7f63a64f 154 mipsel-arc) ;;
4959e111
VS
155 mipsel-qemu_mips) ;;
156 mipsel-qemu-mips) platform=qemu_mips;;
157 mipsel-yeeloong) platform=loongson ;;
158 mipsel-fuloong) platform=loongson ;;
159 mipsel-loongson) ;;
389b31cd
LL
160 arm-uboot) ;;
161 arm-efi) ;;
f84b481b 162 *-emu) ;;
58393a2d 163 *) AC_MSG_ERROR([platform "$platform" is not supported for target CPU "$target_cpu"]) ;;
6a161fa9 164esac
165
3f4ce737 166case "$target_cpu" in
167 i386 | powerpc) target_m32=1 ;;
168 x86_64 | sparc64) target_m64=1 ;;
169esac
170
fc97214f 171case "$target_os" in
c3302aa5 172 windows* | mingw32*) target_os=cygwin ;;
fc97214f
VS
173esac
174
9304eef1 175# This normalizes the names, and creates a new variable ("host_kernel")
176# while at it, since the mapping is not always 1:1 (e.g. different OSes
177# using the same kernel type).
178case "$host_os" in
179 gnu*) host_kernel=hurd ;;
180 linux*) host_kernel=linux ;;
67937d4d 181 freebsd* | kfreebsd*-gnu) host_kernel=kfreebsd ;;
2c7031b1 182 netbsd*) host_kernel=netbsd ;;
958ee221 183 solaris*) host_kernel=illumos ;;
b105df76 184 darwin*) host_kernel=xnu ;;
9304eef1 185 cygwin) host_kernel=windows ;;
186esac
187
f84b481b 188case "$platform" in
c721825b
BC
189 coreboot) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_COREBOOT=1" ;;
190 multiboot) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_MULTIBOOT=1" ;;
191 efi) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_EFI=1" ;;
192 ieee1275) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_IEEE1275=1" ;;
389b31cd 193 uboot) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_UBOOT=1" ;;
c721825b
BC
194 qemu) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_QEMU=1" ;;
195 pc) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_PCBIOS=1" ;;
196 emu) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_EMU=1" ;;
54da1feb 197 loongson) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_MIPS_LOONGSON=1 -DGRUB_MACHINE_MIPS_BONITO=1" ;;
3666d5f6
VS
198 qemu_mips) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_MIPS_QEMU_MIPS=1 -DGRUB_MACHINE_MIPS_BONITO=1" ;;
199 arc) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_ARC=1" ;;
f84b481b 200esac
6bea3f89 201case "$target_cpu" in
389b31cd 202 arm) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_ARM=1" ;;
4959e111 203 mips |mipsel) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_MIPS=1" ;;
c721825b 204 sparc64) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_SPARC64=1" ;;
6bea3f89 205esac
4959e111
VS
206if test x${target_cpu} = xmipsel ; then
207 machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE=`echo mips_$platform | sed y,abcdefghijklmnopqrstuvwxyz,ABCDEFGHIJKLMNOPQRSTUVWXYZ,`"
208else
3ec0fc1c 209 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"
4959e111 210fi
6bea3f89 211
7f63a64f
VS
212case "${target_cpu}-$platform" in
213 mips-arc)
214 TARGET_LINK_ADDR=0x88200000
215 TARGET_DECOMPRESSOR_LINK_ADDR=0x88100000
216 ;;
217 mipsel-arc)
218 TARGET_LINK_ADDR=0x80700000
219 TARGET_DECOMPRESSOR_LINK_ADDR=0x80600000
220 ;;
5fe67f39 221 mips*-qemu_mips | mips*-loongson)
7f63a64f
VS
222 TARGET_DECOMPRESSOR_LINK_ADDR=0x80100000
223 ;;
224esac
225
226AC_SUBST(TARGET_LINK_ADDR)
227AC_SUBST(TARGET_DECOMPRESSOR_LINK_ADDR)
228
c721825b 229TARGET_CPPFLAGS="$TARGET_CPPFLAGS $machine_CPPFLAGS"
f84b481b 230
56978920 231AC_SUBST(host_cpu)
232AC_SUBST(host_os)
9304eef1 233AC_SUBST(host_kernel)
6e5a42fe 234
071114bb
VS
235AC_SUBST(target_cpu)
236AC_SUBST(platform)
237
d87aedff 238# Define default variables
7134247c
VS
239
240have_with_bootdir=n
241AC_ARG_WITH([bootdir],
242 AS_HELP_STRING([--with-bootdir=DIR],
243 [set the name of /boot directory [[guessed]]]),
244 [have_with_bootdir=y],
245 [have_with_bootdir=n])
246if test x$have_with_bootdir = xy; then
247 bootdirname="$with_bootdir"
248else
249 case "$host_os" in
250 netbsd* | openbsd*)
d87aedff 251 # Because /boot is used for the boot block in NetBSD and OpenBSD,
7134247c
VS
252 bootdirname='' ;;
253 *) bootdirname='boot' ;;
254 esac
255fi
256
d87aedff 257AC_SUBST(bootdirname)
a4c1d277
YB
258AC_DEFINE_UNQUOTED(GRUB_BOOT_DIR_NAME, "$bootdirname",
259 [Default boot directory name]")
d87aedff 260
7134247c
VS
261AC_ARG_WITH([grubdir],
262 AS_HELP_STRING([--with-grubdir=DIR],
263 [set the name of grub directory [[guessed]]]),
264 [grubdirname="$with_grubdir"],
265 [grubdirname="$PACKAGE"])
266
d87aedff 267AC_SUBST(grubdirname)
a4c1d277
YB
268AC_DEFINE_UNQUOTED(GRUB_DIR_NAME, "$grubdirname",
269 [Default grub directory name])
d87aedff 270
b977bf01 271#
272# Checks for build programs.
273#
144f1f98 274
6c826348 275# Although cmp is listed in the GNU Coding Standards as a command which
276# can used directly, OpenBSD lacks cmp in the default installation.
277AC_CHECK_PROGS([CMP], [cmp])
278if test "x$CMP" = x; then
279 AC_MSG_ERROR([cmp is not found])
280fi
281
144f1f98 282AC_CHECK_PROGS([YACC], [bison])
1569ec51 283if test "x$YACC" = x; then
6c826348 284 AC_MSG_ERROR([bison is not found])
1569ec51 285fi
286
76ed06b9 287AC_PROG_RANLIB
b977bf01 288AC_PROG_INSTALL
289AC_PROG_AWK
09220190 290AC_PROG_LEX
76ed06b9 291AC_PROG_YACC
b977bf01 292AC_PROG_MAKE_SET
ff420223 293AC_PROG_MKDIR_P
e1fd1939 294AC_PROG_LN_S
b977bf01 295
c7c75cf4 296if test "x$LEX" = "x:"; then
09220190
BC
297 AC_MSG_ERROR([flex is not found])
298else
2663fb5f 299 version=`$LEX --version | $AWK '{ split($NF,x,"."); print x[[1]]*10000+x[[2]]*100+x[[3]]; }'`
b777c18e 300 if test -n "$version" -a "$version" -ge 20535; then
09220190
BC
301 :
302 else
303 AC_MSG_ERROR([flex is too old. GRUB requires 2.5.35 or above])
304 fi
305fi
306
68807e5f 307# These are not a "must".
51fa856c 308AC_PATH_PROGS(MAKEINFO, makeinfo true)
6a161fa9 309
b977bf01 310#
311# Checks for host programs.
312#
313
314AC_PROG_CC
15c69261 315gl_EARLY
1eed0e6e 316AC_PROG_CXX
76ed06b9
BC
317AM_PROG_CC_C_O
318AM_PROG_AS
319
6a161fa9 320# Must be GCC.
321test "x$GCC" = xyes || AC_MSG_ERROR([GCC is required])
322
1eed0e6e
VS
323AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
324
4889bdec 325AC_GNU_SOURCE
2f1a3acf 326AM_GNU_GETTEXT([external])
b977bf01 327AC_SYS_LARGEFILE
328
329# Identify characteristics of the host architecture.
7b780018
VS
330unset ac_cv_c_bigendian
331
b977bf01 332AC_C_BIGENDIAN
333AC_CHECK_SIZEOF(void *)
334AC_CHECK_SIZEOF(long)
335
2b167a72 336grub_apple_cc
c9da87d0 337if test x$grub_cv_apple_cc = xyes ; then
6fd0b143
VS
338 HOST_CPPFLAGS="$HOST_CPPFLAGS -fnested-functions"
339 HOST_LDFLAGS="$HOST_LDFLAGS -Wl,-allow_stack_execute"
2b167a72 340fi
b977bf01 341
aad32b14
VS
342if test x$USE_NLS = xno; then
343 HOST_CFLAGS="$HOST_CFLAGS -fno-builtin-gettext"
344fi
345
86695375 346if test "x$cross_compiling" = xyes; then
347 AC_MSG_WARN([cannot generate manual pages while cross compiling])
348else
349 AC_PATH_PROG(HELP2MAN, help2man)
350fi
351
3169f4c7 352# Check for functions and headers.
0f7e980b 353AC_CHECK_FUNCS(posix_memalign memalign getextmntent)
e4c498a1 354AC_CHECK_HEADERS(sys/param.h sys/mount.h sys/mnttab.h sys/mkdev.h limits.h)
7c4e16ff 355
fb90b546
RM
356AC_CHECK_MEMBERS([struct statfs.f_fstypename],,,[$ac_includes_default
357#include <sys/param.h>
358#include <sys/mount.h>])
359
360AC_CHECK_MEMBERS([struct statfs.f_mntfromname],,,[$ac_includes_default
361#include <sys/param.h>
362#include <sys/mount.h>])
363
2c7031b1
GS
364# For opendisk() and getrawpartition() on NetBSD.
365# Used in util/deviceiter.c and in util/hostdisk.c.
366AC_CHECK_HEADER([util.h], [
367 AC_CHECK_LIB([util], [opendisk], [
368 LIBUTIL="-lutil"
369 AC_DEFINE(HAVE_OPENDISK, 1, [Define if opendisk() in -lutil can be used])
370 ])
371 AC_CHECK_LIB([util], [getrawpartition], [
372 LIBUTIL="-lutil"
373 AC_DEFINE(HAVE_GETRAWPARTITION, 1, [Define if getrawpartition() in -lutil can be used])
374 ])
375])
376AC_SUBST([LIBUTIL])
377
19ce697d 378AC_CACHE_CHECK([whether -Wtrampolines work], [grub_cv_host_cc_wtrampolines], [
00c05e22 379 SAVED_CFLAGS="$CFLAGS"
00c05e22
VS
380 CFLAGS="$HOST_CFLAGS -Wtrampolines"
381 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdarg.h>
382int va_arg_func (int fixed, va_list args);]], [[]])],
19ce697d
VS
383 [grub_cv_host_cc_wtrampolines=yes],
384 [grub_cv_host_cc_wtrampolines=no])
00c05e22
VS
385 CFLAGS="$SAVED_CFLAGS"
386])
387
19ce697d
VS
388if test x"$grub_host_cv_cc_wtrampolines" = xyes ; then
389 HOST_CFLAGS="$HOST_CFLAGS -Wtrampolines"
00c05e22
VS
390fi
391
76ed06b9
BC
392#
393# Check for host and build compilers.
394#
395HOST_CC=$CC
816719c8
VS
396AC_CHECK_PROGS(BUILD_CC, [gcc egcs cc])
397test -z "$BUILD_CC" && AC_MSG_ERROR([none of gcc, egcs and cc is found. set BUILD_CC manually.])
76ed06b9 398
15c69261
YB
399# For gnulib.
400gl_INIT
401
b977bf01 402#
403# Check for target programs.
404#
405
5b5d4aa5 406# Find tools for the target.
407if test "x$target_alias" != x && test "x$host_alias" != "x$target_alias"; then
b977bf01 408 tmp_ac_tool_prefix="$ac_tool_prefix"
409 ac_tool_prefix=$target_alias-
410
411 AC_CHECK_TOOLS(TARGET_CC, [gcc egcs cc],
412 [AC_MSG_ERROR([none of gcc, egcs and cc is found. set TARGET_CC manually.])])
fc97214f
VS
413 AC_CHECK_TOOL(TARGET_OBJCOPY, objcopy)
414 AC_CHECK_TOOL(TARGET_STRIP, strip)
415 AC_CHECK_TOOL(TARGET_NM, nm)
b977bf01 416
417 ac_tool_prefix="$tmp_ac_tool_prefix"
418else
419 if test "x$TARGET_CC" = x; then
420 TARGET_CC=$CC
421 fi
fc97214f
VS
422 AC_CHECK_TOOL(TARGET_OBJCOPY, objcopy)
423 AC_CHECK_TOOL(TARGET_STRIP, strip)
424 AC_CHECK_TOOL(TARGET_NM, nm)
b977bf01 425fi
fc97214f 426
76ed06b9
BC
427AC_SUBST(HOST_CC)
428AC_SUBST(BUILD_CC)
7c9d0c39
VS
429AC_SUBST(BUILD_CFLAGS)
430AC_SUBST(BUILD_CPPFLAGS)
b977bf01 431AC_SUBST(TARGET_CC)
fc97214f
VS
432AC_SUBST(TARGET_NM)
433AC_SUBST(TARGET_STRIP)
434AC_SUBST(TARGET_OBJCOPY)
b977bf01 435
b977bf01 436# Test the C compiler for the target environment.
437tmp_CC="$CC"
438tmp_CFLAGS="$CFLAGS"
439tmp_LDFLAGS="$LDFLAGS"
440tmp_CPPFLAGS="$CPPFLAGS"
aa6d7826 441tmp_LIBS="$LIBS"
b977bf01 442CC="$TARGET_CC"
443CFLAGS="$TARGET_CFLAGS"
444CPPFLAGS="$TARGET_CPPFLAGS"
445LDFLAGS="$TARGET_LDFLAGS"
aa6d7826 446LIBS=""
b977bf01 447
fc97214f
VS
448grub_PROG_NM_MINUS_P
449grub_PROG_NM_DEFINED_ONLY
450AC_SUBST(TARGET_NMFLAGS_MINUS_P)
451AC_SUBST(TARGET_NMFLAGS_DEFINED_ONLY)
452
90d1e879 453# debug flags.
ca1fb563 454WARN_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 -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"
ebcecdf1 455HOST_CFLAGS="$HOST_CFLAGS $WARN_FLAGS"
4e27343f 456TARGET_CFLAGS="$TARGET_CFLAGS $WARN_FLAGS -g -Wredundant-decls -Wmissing-prototypes -Wmissing-declarations"
76ed06b9 457TARGET_CCASFLAGS="$TARGET_CCASFLAGS -g"
6a161fa9 458
90d1e879
RM
459# Force no alignment to save space on i386.
460if test "x$target_cpu" = xi386; then
461 AC_CACHE_CHECK([whether -falign-loops works], [grub_cv_cc_falign_loop], [
462 CFLAGS="$CFLAGS -falign-loops=1"
eb73121d 463 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
90d1e879
RM
464 [grub_cv_cc_falign_loop=yes],
465 [grub_cv_cc_falign_loop=no])
6a161fa9 466 ])
6a161fa9 467
90d1e879
RM
468 if test "x$grub_cv_cc_falign_loop" = xyes; then
469 TARGET_CFLAGS="$TARGET_CFLAGS -falign-jumps=1 -falign-loops=1 -falign-functions=1"
6a161fa9 470 else
90d1e879 471 TARGET_CFLAGS="$TARGET_CFLAGS -malign-jumps=1 -malign-loops=1 -malign-functions=1"
6a161fa9 472 fi
89e0240c 473fi
6a161fa9 474
ee0220bc 475if ( test "x$target_cpu" = xi386 || test "x$target_cpu" = xx86_64 ) && test "x$platform" != xemu; then
90d1e879
RM
476 # Some toolchains enable these features by default, but they need
477 # registers that aren't set up properly in GRUB.
478 TARGET_CFLAGS="$TARGET_CFLAGS -mno-mmx -mno-sse -mno-sse2 -mno-3dnow"
479fi
77c55a87 480
90d1e879
RM
481# By default, GCC 4.4 generates .eh_frame sections containing unwind
482# information in some cases where it previously did not. GRUB doesn't need
483# these and they just use up vital space. Restore the old compiler
484# behaviour.
485AC_CACHE_CHECK([whether -fno-dwarf2-cfi-asm works], [grub_cv_cc_fno_dwarf2_cfi_asm], [
486 SAVE_CFLAGS="$CFLAGS"
487 CFLAGS="$CFLAGS -fno-dwarf2-cfi-asm"
488 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
489 [grub_cv_cc_fno_dwarf2_cfi_asm=yes],
490 [grub_cv_cc_fno_dwarf2_cfi_asm=no])
491 CFLAGS="$SAVE_CFLAGS"
492])
77c55a87 493
90d1e879
RM
494if test "x$grub_cv_cc_fno_dwarf2_cfi_asm" = xyes; then
495 TARGET_CFLAGS="$TARGET_CFLAGS -fno-dwarf2-cfi-asm"
b977bf01 496fi
6a161fa9 497
e9d3421c
VS
498# By default, GCC 4.6 generates .eh_frame sections containing unwind
499# information in some cases where it previously did not. GRUB doesn't need
500# these and they just use up vital space. Restore the old compiler
501# behaviour.
502AC_CACHE_CHECK([whether -fno-asynchronous-unwind-tables works], [grub_cv_cc_fno_asynchronous_unwind_tables], [
503 SAVE_CFLAGS="$CFLAGS"
504 CFLAGS="$CFLAGS -fno-dwarf2-cfi-asm"
505 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
506 [grub_cv_cc_fno_asynchronous_unwind_tables=yes],
507 [grub_cv_cc_fno_asynchronous_unwind_tables=no])
508 CFLAGS="$SAVE_CFLAGS"
509])
510
511if test "x$grub_cv_cc_fno_asynchronous_unwind_tables" = xyes; then
512 TARGET_CFLAGS="$TARGET_CFLAGS -fno-asynchronous-unwind-tables"
513fi
514
2b167a72 515grub_apple_target_cc
c9da87d0 516if test x$grub_cv_apple_target_cc = xyes ; then
403e25a5 517 TARGET_CPPFLAGS="$TARGET_CPPFLAGS -fnested-functions"
76ed06b9 518
6fd0b143 519 CFLAGS="$CFLAGS -fnested-functions"
2b167a72 520 TARGET_APPLE_CC=1
fc97214f
VS
521 AC_CHECK_PROG([TARGET_OBJCONV], [objconv], [objconv], [])
522 if test "x$TARGET_OBJCONV" = x ; then
523 AC_CHECK_PROG([TARGET_OBJCONV], [objconv], [./objconv], [], [.])
cf00df31 524 fi
fc97214f 525 if test "x$TARGET_OBJCONV" = x ; then
cf00df31 526 AC_MSG_ERROR([objconv not found which is required when building with apple compiler])
527 fi
2b167a72 528 TARGET_IMG_LDSCRIPT=
529 TARGET_IMG_CFLAGS="-static"
76ed06b9
BC
530 TARGET_IMG_LDFLAGS='-nostdlib -static -Wl,-preload -Wl,-segalign,20'
531 TARGET_IMG_LDFLAGS_AC='-nostdlib -static -Wl,-preload -Wl,-segalign,20'
532 TARGET_IMG_BASE_LDOPT="-Wl,-image_base"
46cf439c 533 TARGET_LDFLAGS_OLDMAGIC=""
2b167a72 534else
535 TARGET_APPLE_CC=0
f04a9a21 536 TARGET_LDFLAGS_OLDMAGIC="-Wl,-N"
2b167a72 537# Use linker script if present, otherwise use builtin -N script.
fc97214f
VS
538if test -f "${srcdir}/${grub_coredir}/conf/${target_cpu}-${platform}-${target_os}-img-ld.sc"; then
539 TARGET_IMG_LDSCRIPT='$(top_srcdir)'"/${grub_coredir}/conf/${target_cpu}-${platform}-${target_os}-img-ld.sc"
76ed06b9 540 TARGET_IMG_LDFLAGS="-Wl,-T${TARGET_IMG_LDSCRIPT}"
fc97214f 541 TARGET_IMG_LDFLAGS_AC="-Wl,-T${srcdir}/${grub_coredir}/conf/${target_cpu}-${platform}-${target_os}-img-ld.sc"
76ed06b9 542 TARGET_IMG_BASE_LDOPT="-Wl,-Ttext"
2b167a72 543else
544 TARGET_IMG_LDSCRIPT=
76ed06b9
BC
545 TARGET_IMG_LDFLAGS='-Wl,-N'
546 TARGET_IMG_LDFLAGS_AC='-Wl,-N'
547 TARGET_IMG_BASE_LDOPT="-Wl,-Ttext"
2b167a72 548fi
549TARGET_IMG_CFLAGS=
550fi
551
46cf439c
VS
552AC_SUBST(TARGET_LDFLAGS_OLDMAGIC)
553
2b167a72 554# For platforms where ELF is not the default link format.
555AC_MSG_CHECKING([for command to convert module to ELF format])
fc97214f 556case "${target_os}" in
7b780018 557 cygwin) TARGET_OBJ2ELF='./build-grub-pe2elf';
4b0cd8f8 558# FIXME: put proper test here
742f9232 559 NEED_REGISTER_FRAME_INFO=1
4b0cd8f8 560 ;;
742f9232 561 *) NEED_REGISTER_FRAME_INFO=0 ;;
2b167a72 562esac
2b167a72 563AC_MSG_RESULT([$TARGET_OBJ2ELF])
564
30c7d3ce
VS
565
566AC_ARG_ENABLE([efiemu],
567 [AS_HELP_STRING([--enable-efiemu],
568 [build and install the efiemu runtimes (default=guessed)])])
569if test x"$enable_efiemu" = xno ; then
570 efiemu_excuse="explicitly disabled"
571fi
572if test x"$target_cpu" != xi386 ; then
573 efiemu_excuse="only available on i386"
574fi
575if test x"$platform" = xefi ; then
576 efiemu_excuse="not available on efi"
577fi
578if test x"$efiemu_excuse" = x ; then
579 AC_CACHE_CHECK([whether options required for efiemu work], grub_cv_cc_efiemu, [
dfc8aeb0 580 SAVED_CFLAGS="$CFLAGS"
30c7d3ce
VS
581 CFLAGS="$CFLAGS -m64 -mcmodel=large -mno-red-zone -nostdlib"
582 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
583 [grub_cv_cc_efiemu=yes],
584 [grub_cv_cc_efiemu=no])
dfc8aeb0 585 CFLAGS="$SAVED_CFLAGS"
30c7d3ce
VS
586 ])
587 if test x$grub_cv_cc_efiemu = xno; then
588 efiemu_excuse="cannot compile with -m64 -mcmodel=large -mno-red-zone -nostdlib"
589 fi
590fi
591if test x"$enable_efiemu" = xyes && test x"$efiemu_excuse" != x ; then
592 AC_MSG_ERROR([efiemu runtime was explicitly requested but can't be compiled])
593fi
594if test x"$efiemu_excuse" = x ; then
595enable_efiemu=yes
596else
597enable_efiemu=no
598fi
599AC_SUBST([enable_efiemu])
600
b977bf01 601if test "x$target_m32" = x1; then
602 # Force 32-bit mode.
603 TARGET_CFLAGS="$TARGET_CFLAGS -m32"
76ed06b9 604 TARGET_CCASFLAGS="$TARGET_CCASFLAGS -m32"
19e81ba7 605 TARGET_CPPFLAGS="$TARGET_CPPFLAGS -m32"
b977bf01 606 TARGET_LDFLAGS="$TARGET_LDFLAGS -m32"
2b167a72 607 TARGET_MODULE_FORMAT="elf32"
6a161fa9 608fi
b977bf01 609
20011694 610if test "x$target_m64" = x1; then
611 # Force 64-bit mode.
7e9ca17a 612 TARGET_CFLAGS="$TARGET_CFLAGS -m64"
76ed06b9 613 TARGET_CCASFLAGS="$TARGET_CCASFLAGS -m64"
19e81ba7 614 TARGET_CPPFLAGS="$TARGET_CPPFLAGS -m64"
7e9ca17a 615 TARGET_LDFLAGS="$TARGET_LDFLAGS -m64"
2b167a72 616 TARGET_MODULE_FORMAT="elf64"
7e9ca17a 617fi
618
46546fc5 619if test "$target_cpu" = x86_64; then
7e9ca17a 620 # Use large model to support 4G memory
6e09b8b7 621 AC_CACHE_CHECK([whether option -mcmodel=large works], grub_cv_cc_mcmodel, [
c8600122 622 SAVED_CFLAGS=$CFLAGS
623 CFLAGS="$CFLAGS -m64 -mcmodel=large"
6e09b8b7 624 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
625 [grub_cv_cc_mcmodel=yes],
626 [grub_cv_cc_mcmodel=no])
627 ])
c8600122 628 if test "x$grub_cv_cc_mcmodel" = xno; then
4ba8d354 629 AC_MSG_ERROR([-mcmodel=large not supported. Upgrade your gcc.])
c8600122 630 else
631 TARGET_CFLAGS="$TARGET_CFLAGS -mcmodel=large"
6e09b8b7 632 fi
46546fc5 633fi
7e9ca17a 634
46546fc5 635if test "$target_cpu"-"$platform" = x86_64-efi; then
7e9ca17a 636 # EFI writes to stack below %rsp, we must not use the red zone
637 AC_CACHE_CHECK([whether option -mno-red-zone works], grub_cv_cc_no_red_zone, [
c8600122 638 CFLAGS="$CFLAGS -m64 -mno-red-zone"
7e9ca17a 639 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
640 [grub_cv_cc_no_red_zone=yes],
641 [grub_cv_cc_no_red_zone=no])
642 ])
643 if test "x$grub_cv_cc_no_red_zone" = xno; then
644 AC_MSG_ERROR([-mno-red-zone not supported, upgrade your gcc])
645 fi
646
c8600122 647 TARGET_CFLAGS="$TARGET_CFLAGS -mno-red-zone"
20011694 648fi
649
baa2a121 650#
651# Compiler features.
652#
653
93a81088 654# Position independent executable.
655grub_CHECK_PIE
656[# Need that, because some distributions ship compilers that include
657# `-fPIE' in the default specs.
658if [ x"$pie_possible" = xyes ]; then
659 TARGET_CFLAGS="$TARGET_CFLAGS -fno-PIE"
660fi]
661
7bd8b0c7
VS
662# Position independent executable.
663grub_CHECK_PIC
664[# Need that, because some distributions ship compilers that include
665# `-fPIC' in the default specs.
666if [ x"$pic_possible" = xyes ]; then
667 TARGET_CFLAGS="$TARGET_CFLAGS -fno-PIC"
668fi]
669
baa2a121 670# Smashing stack protector.
671grub_CHECK_STACK_PROTECTOR
c3db8364 672# Need that, because some distributions ship compilers that include
baa2a121 673# `-fstack-protector' in the default specs.
c3db8364 674if test "x$ssp_possible" = xyes; then
675 TARGET_CFLAGS="$TARGET_CFLAGS -fno-stack-protector"
676fi
2a8a80e4 677grub_CHECK_STACK_ARG_PROBE
678# Cygwin's GCC uses alloca() to probe the stackframe on static
679# stack allocations above some threshold.
680if test x"$sap_possible" = xyes; then
681 TARGET_CFLAGS="$TARGET_CFLAGS -mno-stack-arg-probe"
682fi
baa2a121 683
bb9f92b9
LL
684# -mno-unaligned-access
685if test "$target_cpu" = arm; then
686 grub_CHECK_NO_UNALIGNED_ACCESS
687 if test x"$nua_possible" = xyes; then
688 TARGET_CFLAGS="$TARGET_CFLAGS -mno-unaligned-access"
689 fi
690fi
691
63f745e8 692AC_ARG_ENABLE([werror],
693 [AS_HELP_STRING([--disable-werror],
694 [do not use -Werror when building GRUB])])
695if test x"$enable_werror" != xno ; then
696 TARGET_CFLAGS="$TARGET_CFLAGS -Werror"
ebcecdf1 697 HOST_CFLAGS="$HOST_CFLAGS -Werror"
63f745e8 698fi
699
76ed06b9
BC
700TARGET_CPP="$TARGET_CC -E"
701TARGET_CCAS=$TARGET_CC
702
92cd0f6e
VS
703GRUB_TARGET_CPU="${target_cpu}"
704GRUB_PLATFORM="${platform}"
705
706AC_SUBST(GRUB_TARGET_CPU)
707AC_SUBST(GRUB_PLATFORM)
708
fc97214f 709AC_SUBST(TARGET_OBJCONV)
76ed06b9
BC
710AC_SUBST(TARGET_CPP)
711AC_SUBST(TARGET_CCAS)
712AC_SUBST(TARGET_OBJ2ELF)
2b167a72 713AC_SUBST(TARGET_APPLE_CC)
76ed06b9
BC
714AC_SUBST(TARGET_MODULE_FORMAT)
715
716AC_SUBST(TARGET_CFLAGS)
b977bf01 717AC_SUBST(TARGET_LDFLAGS)
76ed06b9
BC
718AC_SUBST(TARGET_CPPFLAGS)
719AC_SUBST(TARGET_CCASFLAGS)
720
721AC_SUBST(TARGET_IMG_LDSCRIPT)
722AC_SUBST(TARGET_IMG_LDFLAGS)
723AC_SUBST(TARGET_IMG_CFLAGS)
724AC_SUBST(TARGET_IMG_BASE_LDOPT)
725
726AC_SUBST(HOST_CFLAGS)
727AC_SUBST(HOST_LDFLAGS)
728AC_SUBST(HOST_CPPFLAGS)
729AC_SUBST(HOST_CCASFLAGS)
6a161fa9 730
aa6d7826 731# Set them to their new values for the tests below.
732CC="$TARGET_CC"
26de2bcd 733if test "x$TARGET_APPLE_CC" = x1 ; then
69be5b74 734CFLAGS="$TARGET_CFLAGS -nostdlib -Wno-error"
26de2bcd 735else
01fcf061 736CFLAGS="$TARGET_CFLAGS -nostdlib -Wl,--defsym,___main=0x8100 -Wno-error"
26de2bcd 737fi
aa6d7826 738CPPFLAGS="$TARGET_CPPFLAGS"
03f80960
VS
739if test x$target_cpu = xi386 || test x$target_cpu = xx86_64 ; then
740LIBS=
741else
69be5b74 742LIBS=-lgcc
03f80960 743fi
69be5b74 744
01fcf061
VS
745grub_ASM_USCORE
746if test x$grub_cv_asm_uscore = xyes; then
747CFLAGS="$CFLAGS -Wl,--defsym,_abort=_main"
748else
749CFLAGS="$CFLAGS -Wl,--defsym,abort=main"
750fi
751
69be5b74 752# Check for libgcc symbols
19ce697d 753AC_CHECK_FUNCS(__bswapsi2 __bswapdi2 __ashldi3 __ashrdi3 __lshrdi3 __ucmpdi2 _restgpr_14_x __udivsi3 __umoddi3 __udivdi3 __divsi3 __modsi3 __umodsi3 __moddi3 __divdi3 __ctzdi2 __ctzsi2)
69be5b74
VS
754
755if test "x$TARGET_APPLE_CC" = x1 ; then
756CFLAGS="$TARGET_CFLAGS -nostdlib"
757else
758CFLAGS="$TARGET_CFLAGS -nostdlib -Wl,--defsym,___main=0x8100"
759fi
42e0cba3 760LIBS=""
aa6d7826 761
6a161fa9 762# Defined in aclocal.m4.
f6130a12 763grub_PROG_TARGET_CC
2b167a72 764if test "x$TARGET_APPLE_CC" != x1 ; then
b977bf01 765grub_PROG_OBJCOPY_ABSOLUTE
2b167a72 766fi
cb71ba20 767grub_PROG_LD_BUILD_ID_NONE
b977bf01 768if test "x$target_cpu" = xi386; then
2aec1692
CF
769 if test "$platform" != emu && test "x$TARGET_APPLE_CC" != x1 ; then
770 if test ! -z "$TARGET_IMG_LDSCRIPT"; then
771 # Check symbols provided by linker script.
76ed06b9 772 CFLAGS="$TARGET_CFLAGS -nostdlib ${TARGET_IMG_LDFLAGS_AC} ${TARGET_IMG_BASE_LDOPT},8000 -Wl,--defsym,___main=0x8100"
2aec1692 773 fi
2a8a80e4 774 grub_CHECK_BSS_START_SYMBOL
775 grub_CHECK_END_SYMBOL
776 fi
777 CFLAGS="$TARGET_CFLAGS"
4b13b216 778 grub_I386_ASM_PREFIX_REQUIREMENT
779 grub_I386_ASM_ADDR32
6a161fa9 780fi
781
016a671b 782if test "$platform" != emu; then
8f9a632b
VS
783AC_CACHE_CHECK([whether -nostdinc -isystem works], [grub_cv_cc_isystem], [
784 SAVED_CPPFLAGS="$CPPFLAGS"
785 CPPFLAGS="$TARGET_CPPFLAGS -nostdinc -isystem `$TARGET_CC -print-file-name=include`"
786 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdarg.h>
ce938140 787#include <stddef.h>
8f9a632b
VS
788int va_arg_func (int fixed, va_list args);]], [[]])],
789 [grub_cv_cc_isystem=yes],
790 [grub_cv_cc_isystem=no])
791 CPPFLAGS="$SAVED_CPPFLAGS"
792])
793
794if test x"$grub_cv_cc_isystem" = xyes ; then
795 TARGET_CPPFLAGS="$TARGET_CPPFLAGS -nostdinc -isystem `$TARGET_CC -print-file-name=include`"
796fi
dae79b6b 797fi
5ce5507f 798
19ce697d 799AC_CACHE_CHECK([whether -Wtrampolines work], [grub_cv_cc_wtrampolines], [
779dc15b 800 SAVED_CFLAGS="$CFLAGS"
72b7c7aa 801 CFLAGS="$TARGET_CFLAGS -Wtrampolines"
779dc15b
VS
802 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdarg.h>
803int va_arg_func (int fixed, va_list args);]], [[]])],
19ce697d
VS
804 [grub_cv_cc_wtrampolines=yes],
805 [grub_cv_cc_wtrampolines=no])
779dc15b
VS
806 CFLAGS="$SAVED_CFLAGS"
807])
808
19ce697d
VS
809if test x"$grub_cv_cc_wtrampolines" = xyes ; then
810 TARGET_CFLAGS="$TARGET_CFLAGS -Wtrampolines"
779dc15b
VS
811fi
812
c9a86192 813# Restore the flags.
9962ed99 814CC="$tmp_CC"
815CFLAGS="$tmp_CFLAGS"
816CPPFLAGS="$tmp_CPPFLAGS"
c9a86192 817LDFLAGS="$tmp_LDFLAGS"
aa6d7826 818LIBS="$tmp_LIBS"
6a161fa9 819
4fe9862e 820#
2965c7cc 821# Check for options.
4fe9862e 822#
823
824# Memory manager debugging.
b39f9d20 825AC_ARG_ENABLE([mm-debug],
2965c7cc 826 AS_HELP_STRING([--enable-mm-debug],
90ce5d56 827 [include memory manager debugging]),
2965c7cc 828 [AC_DEFINE([MM_DEBUG], [1],
829 [Define to 1 if you enable memory manager debugging.])])
830
c5dc1690
SJ
831AC_ARG_ENABLE([cache-stats],
832 AS_HELP_STRING([--enable-cache-stats],
055e2b8b 833 [enable disk cache statistics collection]))
c5dc1690
SJ
834
835if test x$enable_cache_stats = xyes; then
836 DISK_CACHE_STATS=1
837else
838 DISK_CACHE_STATS=0
839fi
840AC_SUBST([DISK_CACHE_STATS])
841
e744219b
VS
842AC_ARG_ENABLE([boot-time],
843 AS_HELP_STRING([--enable-boot-time],
844 [enable boot time statistics collection]))
845
846if test x$enable_boot_time = xyes; then
847 BOOT_TIME_STATS=1
848else
849 BOOT_TIME_STATS=0
850fi
851AC_SUBST([BOOT_TIME_STATS])
852
d64399b5 853AC_ARG_ENABLE([grub-emu-usb],
854 [AS_HELP_STRING([--enable-grub-emu-usb],
5ce5507f 855 [build and install the `grub-emu' debugging utility with USB support (default=guessed)])])
5ce5507f 856
927d0134
VS
857AC_ARG_ENABLE([grub-emu-sdl],
858 [AS_HELP_STRING([--enable-grub-emu-sdl],
859 [build and install the `grub-emu' debugging utility with SDL support (default=guessed)])])
860
3affd0ec 861AC_ARG_ENABLE([grub-emu-pci],
862 [AS_HELP_STRING([--enable-grub-emu-pci],
863 [build and install the `grub-emu' debugging utility with PCI support (potentially dangerous) (default=no)])])
864
f84b481b 865if test "$platform" = emu; then
f84b481b 866
62a747cb
VS
867if test x"$enable_grub_emu_usb" != xyes ; then
868 grub_emu_usb_excuse="not enabled"
5ce5507f 869fi
325c8258 870
0e848909
VS
871if test x"$enable_grub_emu_pci" = xyes ; then
872 grub_emu_usb_excuse="conflicts with PCI support"
873fi
874
5ce5507f 875[if [ x"$grub_emu_usb_excuse" = x ]; then
d64399b5 876 # Check for libusb libraries.]
5ce5507f 877AC_CHECK_LIB([usb], [usb_claim_interface], [LIBUSB="-lusb"],
e98cd0c2 878 [grub_emu_usb_excuse=["need libusb library"]])
d64399b5 879 AC_SUBST([LIBUSB])
5ce5507f 880[fi]
881[if [ x"$grub_emu_usb_excuse" = x ]; then
882 # Check for headers.]
d64399b5 883 AC_CHECK_HEADERS([usb.h], [],
e98cd0c2 884 [grub_emu_usb_excuse=["need libusb headers"]])
4fe9862e 885[fi]
c6f3b249 886if test x"$enable_grub_emu_usb" = xyes && test x"$grub_emu_usb_excuse" != x ; then
ce7a733d 887 AC_MSG_ERROR([USB support for grub-emu was explicitly requested but can't be compiled])
5ce5507f 888fi
889if test x"$grub_emu_usb_excuse" = x ; then
890enable_grub_emu_usb=yes
891else
892enable_grub_emu_usb=no
893fi
894
927d0134
VS
895if test x"$enable_grub_emu_sdl" = xno ; then
896 grub_emu_sdl_excuse="explicitely disabled"
897fi
898[if [ x"$grub_emu_sdl_excuse" = x ]; then
899 # Check for libSDL libraries.]
900AC_CHECK_LIB([SDL], [SDL_Init], [LIBSDL="-lSDL"],
901 [grub_emu_sdl_excuse=["libSDL libraries are required to build \`grub-emu' with SDL support"]])
902 AC_SUBST([LIBSDL])
903[fi]
9f293ab0 904
927d0134
VS
905[if [ x"$grub_emu_sdl_excuse" = x ]; then
906 # Check for headers.]
907 AC_CHECK_HEADERS([SDL/SDL.h], [],
908 [grub_emu_sdl_excuse=["libSDL header file is required to build \`grub-emu' with SDL support"]])
909[fi]
9f293ab0 910
927d0134
VS
911if test x"enable_grub_emu_sdl" = xyes && test x"$grub_emu_sdl_excuse" != x ; then
912 AC_MSG_ERROR([SDL support for grub-emu was explicitely requested but can't be compiled])
913fi
914if test x"$grub_emu_sdl_excuse" = x ; then
915enable_grub_emu_sdl=yes
916else
917enable_grub_emu_sdl=no
918fi
919
3affd0ec 920if test x"$enable_grub_emu_pci" != xyes ; then
325c8258 921 grub_emu_pci_excuse="not enabled"
922fi
923
924if test x"$enable_grub_emu_usb" = xyes ; then
925 grub_emu_pci_excuse="conflicts with USB support"
926fi
927
928[if [ x"$grub_emu_pci_excuse" = x ]; then
929 # Check for libpci libraries.]
459fed4b 930 AC_CHECK_LIB([pciaccess], [pci_system_init], [LIBPCIACCESS="-lpciaccess"],
931 [grub_emu_pci_excuse=["need libpciaccess library"]])
932 AC_SUBST([LIBPCIACCESS])
325c8258 933[fi]
934[if [ x"$grub_emu_pci_excuse" = x ]; then
935 # Check for headers.]
936 AC_CHECK_HEADERS([pci/pci.h], [],
459fed4b 937 [grub_emu_pci_excuse=["need libpciaccess headers"]])
325c8258 938[fi]
939
940if test x"$grub_emu_pci_excuse" = x ; then
941enable_grub_emu_pci=yes
942else
9f293ab0 943
325c8258 944enable_grub_emu_pci=no
3affd0ec 945fi
946
927d0134 947AC_SUBST([enable_grub_emu_sdl])
d64399b5 948AC_SUBST([enable_grub_emu_usb])
3affd0ec 949AC_SUBST([enable_grub_emu_pci])
f84b481b 950fi
4fe9862e 951
e52db1f7 952AC_ARG_ENABLE([grub-mkfont],
953 [AS_HELP_STRING([--enable-grub-mkfont],
5ce5507f 954 [build and install the `grub-mkfont' utility (default=guessed)])])
955if test x"$enable_grub_mkfont" = xno ; then
ce7a733d 956 grub_mkfont_excuse="explicitly disabled"
5ce5507f 957fi
958
959if test x"$grub_mkfont_excuse" = x ; then
e52db1f7 960 # Check for freetype libraries.
a5b55c4b 961 AC_CHECK_TOOLS([FREETYPE], [freetype-config])
e52db1f7 962 if test "x$FREETYPE" = x ; then
e98cd0c2 963 grub_mkfont_excuse=["need freetype2 library"]
e52db1f7 964 fi
e52db1f7 965fi
660960d6 966
7b780018
VS
967unset ac_cv_header_ft2build_h
968
660960d6
VS
969if test x"$grub_mkfont_excuse" = x ; then
970 # Check for freetype libraries.
a5b55c4b
DM
971 freetype_cflags=`$FREETYPE --cflags`
972 freetype_libs=`$FREETYPE --libs`
d1e8a02f
VS
973 SAVED_CPPFLAGS="$CPPFLAGS"
974 CPPFLAGS="$CPPFLAGS $freetype_cflags"
660960d6
VS
975 AC_CHECK_HEADERS([ft2build.h], [],
976 [grub_mkfont_excuse=["need freetype2 headers"]])
d1e8a02f 977 CPPFLAGS="$SAVED_CPPFLAGS"
660960d6
VS
978fi
979
5ce5507f 980if test x"$enable_grub_mkfont" = xyes && test x"$grub_mkfont_excuse" != x ; then
ce7a733d 981 AC_MSG_ERROR([grub-mkfont was explicitly requested but can't be compiled])
5ce5507f 982fi
983if test x"$grub_mkfont_excuse" = x ; then
984enable_grub_mkfont=yes
985else
986enable_grub_mkfont=no
987fi
e52db1f7 988AC_SUBST([enable_grub_mkfont])
989AC_SUBST([freetype_cflags])
990AC_SUBST([freetype_libs])
991
7c9d0c39
VS
992SAVED_CC="$CC"
993SAVED_CFLAGS="$CFLAGS"
994SAVED_CPPFLAGS="$CPPFLAGS"
995CC="$BUILD_CC"
996CFLAGS="$BUILD_CFLAGS"
7b780018
VS
997CPPFLAGS="$BUILD_CPPFLAGS"
998
999unset ac_cv_c_bigendian
1000unset ac_cv_header_ft2build_h
1001
1002AC_COMPUTE_INT([BUILD_SIZEOF_VOID_P], [sizeof (void *)])
1003AC_COMPUTE_INT([BUILD_SIZEOF_LONG], [sizeof (long)])
1004AC_C_BIGENDIAN([BUILD_WORDS_BIGENDIAN=1], [BUILD_WORDS_BIGENDIAN=0], [BUILD_WORDS_BIGENDIAN=err], [BUILD_WORDS_BIGENDIAN=err])
1005
1006if test x$BUILD_WORDS_BIGENDIAN = xerr ; then
1007 AC_MSG_ERROR([couldnt determine build endianness])
1008fi
1009
1010AC_SUBST([BUILD_SIZEOF_LONG])
1011AC_SUBST([BUILD_SIZEOF_VOID_P])
1012AC_SUBST([BUILD_WORDS_BIGENDIAN])
c5884973 1013
7c9d0c39
VS
1014if test x"$grub_build_mkfont_excuse" = x ; then
1015 # Check for freetype libraries.
7b780018 1016 AC_CHECK_PROGS([BUILD_FREETYPE], [freetype-config])
7c9d0c39
VS
1017 if test "x$BUILD_FREETYPE" = x ; then
1018 grub_build_mkfont_excuse=["need freetype2 library"]
1019 fi
1020fi
c5884973 1021
7c9d0c39
VS
1022if test x"$grub_build_mkfont_excuse" = x ; then
1023 # Check for freetype libraries.
1024 build_freetype_cflags=`$BUILD_FREETYPE --cflags`
1025 build_freetype_libs=`$BUILD_FREETYPE --libs`
1026 SAVED_CPPFLAGS_2="$CPPFLAGS"
1027 CPPFLAGS="$CPPFLAGS $build_freetype_cflags"
1028 AC_CHECK_HEADERS([ft2build.h], [],
1029 [grub_build_mkfont_excuse=["need freetype2 headers"]])
1030 CPPFLAGS="$SAVED_CPPFLAGS_2"
1031fi
1032
1033if test x"$enable_build_grub_mkfont" = xyes && test x"$grub_build_mkfont_excuse" != x ; then
1034 AC_MSG_ERROR([build-grub-mkfont was explicitly requested but can't be compiled])
1035fi
1036if test x"$grub_build_mkfont_excuse" = x ; then
1037 enable_build_grub_mkfont=yes
1038else
1039 enable_build_grub_mkfont=no
c5884973 1040fi
b2e9d276
VS
1041if 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 ); then
1042 AC_MSG_ERROR([qemu, powerpc-ieee1275 and loongson ports needs build-time grub-mkfont])
7c9d0c39
VS
1043fi
1044
1045AC_SUBST([build_freetype_cflags])
1046AC_SUBST([build_freetype_libs])
1047
1048CC="$SAVED_CC"
1049CFLAGS="$SAVED_CFLAGS"
1050CPPFLAGS="$SAVED_CPPFLAGS"
1051
1052
1053DJVU_FONT_SOURCE=
1054
1055starfield_excuse=
c5884973 1056
7b966834
VS
1057if test x"$enable_build_grub_mkfont" = xno ; then
1058 starfield_excuse="No build-time grub-mkfont"
1059fi
1060
501b9e4b 1061if test x"$starfield_excuse" = x; then
c5884973 1062 for ext in pcf pcf.gz bdf bdf.gz ttf ttf.gz; do
32745f51 1063 for dir in . /usr/src /usr/share/fonts/X11/misc /usr/share/fonts/truetype/ttf-dejavu /usr/share/fonts/dejavu; do
c5884973
DO
1064 if test -f "$dir/DejaVuSans.$ext"; then
1065 DJVU_FONT_SOURCE="$dir/DejaVuSans.$ext"
1066 break 2
1067 fi
1068 done
1069 done
1070
1071 if test "x$DJVU_FONT_SOURCE" = x; then
1072 starfield_excuse="No DejaVu found"
1073 fi
1074fi
1075
1076AC_SUBST([DJVU_FONT_SOURCE])
1077
7c9d0c39
VS
1078FONT_SOURCE=
1079
1080for ext in pcf pcf.gz bdf bdf.gz ttf ttf.gz; do
1081 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
1082 if test -f "$dir/unifont.$ext"; then
1083 FONT_SOURCE="$dir/unifont.$ext"
1084 break 2
1085 fi
1086 done
1087done
1088
7b966834
VS
1089if test x"$enable_build_grub_mkfont" = xno ; then
1090 FONT_SOURCE=
1091fi
1092
b2e9d276
VS
1093if 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 ); then
1094 AC_MSG_ERROR([qemu, powerpc-ieee1275 and loongson ports need unifont])
7c9d0c39
VS
1095fi
1096
1097AC_SUBST([FONT_SOURCE])
1098
7b780018 1099if test x"$FONT_SOURCE" = x && test x"$DJVU_FONT_SOURCE" = x && test x"$grub_build_mkfont_excuse" = x; then
7c9d0c39
VS
1100 grub_build_mkfont_excuse="no fonts"
1101fi
1102
1103
897e6207
CW
1104AC_ARG_ENABLE([grub-mount],
1105 [AS_HELP_STRING([--enable-grub-mount],
1106 [build and install the `grub-mount' utility (default=guessed)])])
1107if test x"$enable_grub_mount" = xno ; then
1108 grub_mount_excuse="explicitly disabled"
92bb0786
VS
1109fi
1110
897e6207 1111if test x"$grub_mount_excuse" = x ; then
92bb0786 1112 AC_CHECK_LIB([fuse], [fuse_main_real], [],
897e6207 1113 [grub_mount_excuse="need FUSE library"])
92bb0786
VS
1114fi
1115
897e6207 1116if test x"$grub_mount_excuse" = x ; then
92bb0786
VS
1117 # Check for fuse headers.
1118 SAVED_CPPFLAGS="$CPPFLAGS"
338c7fab 1119 CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26"
92bb0786 1120 AC_CHECK_HEADERS([fuse/fuse.h], [],
897e6207 1121 [grub_mount_excuse=["need FUSE headers"]])
92bb0786
VS
1122 CPPFLAGS="$SAVED_CPPFLAGS"
1123fi
1124
897e6207 1125if test x"$enable_grub_mount" = xyes && test x"$grub_mount_excuse" != x ; then
89644ef1 1126 AC_MSG_ERROR([grub-mount was explicitly requested but can't be compiled])
92bb0786 1127fi
897e6207
CW
1128if test x"$grub_mount_excuse" = x ; then
1129enable_grub_mount=yes
92bb0786 1130else
897e6207 1131enable_grub_mount=no
92bb0786 1132fi
897e6207 1133AC_SUBST([enable_grub_mount])
92bb0786 1134
7181e228
CW
1135AC_ARG_ENABLE([device-mapper],
1136 [AS_HELP_STRING([--enable-device-mapper],
1137 [enable Linux device-mapper support (default=guessed)])])
1138if test x"$enable_device_mapper" = xno ; then
1139 device_mapper_excuse="explicitly disabled"
1140fi
1141
53798c4b
GS
1142if test x"$device_mapper_excuse" = x ; then
1143 # Check for device-mapper header.
1144 AC_CHECK_HEADER([libdevmapper.h], [],
1145 [device_mapper_excuse="need libdevmapper header"])
1146fi
1147
7181e228
CW
1148if test x"$device_mapper_excuse" = x ; then
1149 # Check for device-mapper library.
61d720e5 1150 AC_CHECK_LIB([devmapper], [dm_task_create], [],
7181e228 1151 [device_mapper_excuse="need devmapper library"])
7181e228 1152fi
61d720e5
VS
1153
1154if test x"$device_mapper_excuse" = x ; then
1155 # Check for device-mapper library.
1156 AC_CHECK_LIB([devmapper], [dm_log_with_errno_init],
1157 [],
1158 [device_mapper_excuse="need devmapper library"])
1159fi
1160
1161if test x"$device_mapper_excuse" = x ; then
1162 LIBDEVMAPPER="-ldevmapper";
1163 AC_DEFINE([HAVE_DEVICE_MAPPER], [1],
1164 [Define to 1 if you have the devmapper library.])
1165fi
1166
62f7d208 1167AC_SUBST([LIBDEVMAPPER])
76ed06b9 1168
f4727da9
VS
1169LIBGEOM=
1170if test x$host_kernel = xkfreebsd; then
1171 AC_CHECK_LIB([geom], [geom_gettree], [],
1172 [AC_MSG_ERROR([Your platform requires libgeom])])
1173 LIBGEOM="-lgeom"
1174fi
1175
1176AC_SUBST([LIBGEOM])
1177
2c44e493
VS
1178AC_CHECK_LIB([lzma], [lzma_code],
1179 [LIBLZMA="-llzma"
1180 AC_DEFINE([HAVE_LIBLZMA], [1],
1181 [Define to 1 if you have the LZMA library.])],)
1182AC_SUBST([LIBLZMA])
1183
e4c498a1
MG
1184AC_ARG_ENABLE([libzfs],
1185 [AS_HELP_STRING([--enable-libzfs],
1186 [enable libzfs integration (default=guessed)])])
1187if test x"$enable_libzfs" = xno ; then
1188 libzfs_excuse="explicitly disabled"
1189fi
16c7cb32 1190
e4c498a1
MG
1191if test x"$libzfs_excuse" = x ; then
1192 # Only check for system headers if libzfs support has not been disabled.
1193 AC_CHECK_HEADERS(libzfs.h libnvpair.h)
1194fi
1195
1196if test x"$libzfs_excuse" = x ; then
1197 AC_CHECK_LIB([zfs], [libzfs_init],
1198 [],
1199 [libzfs_excuse="need zfs library"])
1200fi
1201
1202if test x"$libzfs_excuse" = x ; then
1203 AC_CHECK_LIB([nvpair], [nvlist_print],
1204 [],
1205 [libzfs_excuse="need nvpair library"])
1206fi
1207
1208if test x"$enable_libzfs" = xyes && test x"$libzfs_excuse" != x ; then
1209 AC_MSG_ERROR([libzfs support was explicitly requested but requirements are not satisfied])
1210fi
1211
1212if test x"$libzfs_excuse" = x ; then
1213 # We need both libzfs and libnvpair for a successful build.
1214 LIBZFS="-lzfs"
1215 AC_DEFINE([HAVE_LIBZFS], [1],
1216 [Define to 1 if you have the ZFS library.])
1217 LIBNVPAIR="-lnvpair"
1218 AC_DEFINE([HAVE_LIBNVPAIR], [1],
1219 [Define to 1 if you have the NVPAIR library.])
1220fi
1221
1222AC_SUBST([LIBZFS])
16c7cb32
BC
1223AC_SUBST([LIBNVPAIR])
1224
9f915872
VS
1225LIBS=""
1226
76ed06b9 1227AC_SUBST([FONT_SOURCE])
76ed06b9
BC
1228AS_IF([test x$target_cpu = xi386 -a x$platform = xqemu],
1229 [AC_SUBST([GRUB_BOOT_MACHINE_LINK_ADDR], 0xffe00)])
76ed06b9
BC
1230AS_IF([test x$TARGET_APPLE_CC = x1],
1231 [AC_SUBST([USE_APPLE_CC_FIXES], yes)])
7181e228 1232
742f9232
VS
1233AC_SUBST(HAVE_ASM_USCORE)
1234AC_SUBST(ADDR32)
1235AC_SUBST(DATA32)
1236AC_SUBST(BSS_START_SYMBOL)
1237AC_SUBST(END_SYMBOL)
1238AC_SUBST(PACKAGE)
1239AC_SUBST(VERSION)
742f9232
VS
1240AC_SUBST(NEED_REGISTER_FRAME_INFO)
1241
76ed06b9
BC
1242#
1243# Automake conditionals
1244#
8c411768 1245
76ed06b9
BC
1246AM_CONDITIONAL([COND_emu], [test x$platform = xemu])
1247AM_CONDITIONAL([COND_i386_pc], [test x$target_cpu = xi386 -a x$platform = xpc])
1248AM_CONDITIONAL([COND_i386_efi], [test x$target_cpu = xi386 -a x$platform = xefi])
6585de4c 1249AM_CONDITIONAL([COND_ia64_efi], [test x$target_cpu = xia64 -a x$platform = xefi])
76ed06b9
BC
1250AM_CONDITIONAL([COND_i386_qemu], [test x$target_cpu = xi386 -a x$platform = xqemu])
1251AM_CONDITIONAL([COND_i386_ieee1275], [test x$target_cpu = xi386 -a x$platform = xieee1275])
1252AM_CONDITIONAL([COND_i386_coreboot], [test x$target_cpu = xi386 -a x$platform = xcoreboot])
1253AM_CONDITIONAL([COND_i386_multiboot], [test x$target_cpu = xi386 -a x$platform = xmultiboot])
1254AM_CONDITIONAL([COND_x86_64_efi], [test x$target_cpu = xx86_64 -a x$platform = xefi])
4959e111
VS
1255AM_CONDITIONAL([COND_mips_loongson], [test x$target_cpu = xmipsel -a x$platform = xloongson])
1256AM_CONDITIONAL([COND_mips_qemu_mips], [test "(" x$target_cpu = xmips -o x$target_cpu = xmipsel ")" -a x$platform = xqemu_mips])
7f63a64f 1257AM_CONDITIONAL([COND_mips_arc], [test "(" x$target_cpu = xmips -o x$target_cpu = xmipsel ")" -a x$platform = xarc])
76ed06b9
BC
1258AM_CONDITIONAL([COND_sparc64_ieee1275], [test x$target_cpu = xsparc64 -a x$platform = xieee1275])
1259AM_CONDITIONAL([COND_powerpc_ieee1275], [test x$target_cpu = xpowerpc -a x$platform = xieee1275])
4959e111 1260AM_CONDITIONAL([COND_mips], [test x$target_cpu = xmips -o x$target_cpu = xmipsel])
37ba07eb
VS
1261AM_CONDITIONAL([COND_mipsel], [test x$target_cpu = xmipsel])
1262AM_CONDITIONAL([COND_mipseb], [test x$target_cpu = xmips])
389b31cd
LL
1263AM_CONDITIONAL([COND_arm], [test x$target_cpu = xarm ])
1264AM_CONDITIONAL([COND_arm_uboot], [test x$target_cpu = xarm -a x$platform = xuboot])
1265AM_CONDITIONAL([COND_arm_efi], [test x$target_cpu = xarm -a x$platform = xefi])
f7711f5e
BC
1266
1267AM_CONDITIONAL([COND_HOST_HURD], [test x$host_kernel = xhurd])
1268AM_CONDITIONAL([COND_HOST_LINUX], [test x$host_kernel = xlinux])
1269AM_CONDITIONAL([COND_HOST_NETBSD], [test x$host_kernel = xnetbsd])
1270AM_CONDITIONAL([COND_HOST_WINDOWS], [test x$host_kernel = xwindows])
1271AM_CONDITIONAL([COND_HOST_KFREEBSD], [test x$host_kernel = xkfreebsd])
b105df76 1272AM_CONDITIONAL([COND_HOST_XNU], [test x$host_kernel = xxnu])
958ee221 1273AM_CONDITIONAL([COND_HOST_ILLUMOS], [test x$host_kernel = xillumos])
2d465fb0 1274
76ed06b9
BC
1275AM_CONDITIONAL([COND_MAN_PAGES], [test x$cross_compiling = xno -a x$HELP2MAN != x])
1276AM_CONDITIONAL([COND_GRUB_EMU_USB], [test x$enable_grub_emu_usb = xyes])
1277AM_CONDITIONAL([COND_GRUB_EMU_SDL], [test x$enable_grub_emu_sdl = xyes])
1278AM_CONDITIONAL([COND_GRUB_EMU_PCI], [test x$enable_grub_emu_pci = xyes])
1279AM_CONDITIONAL([COND_GRUB_MKFONT], [test x$enable_grub_mkfont = xyes])
7c9d0c39 1280AM_CONDITIONAL([COND_BUILD_GRUB_MKFONT], [test x$enable_build_grub_mkfont = xyes])
897e6207 1281AM_CONDITIONAL([COND_GRUB_MOUNT], [test x$enable_grub_mount = xyes])
76ed06b9 1282AM_CONDITIONAL([COND_HAVE_FONT_SOURCE], [test x$FONT_SOURCE != x])
76ed06b9 1283AM_CONDITIONAL([COND_GRUB_PE2ELF], [test x$TARGET_OBJ2ELF != x])
771111e5 1284AM_CONDITIONAL([COND_APPLE_CC], [test x$TARGET_APPLE_CC = x1])
76ed06b9 1285AM_CONDITIONAL([COND_ENABLE_EFIEMU], [test x$enable_efiemu = xyes])
c5dc1690 1286AM_CONDITIONAL([COND_ENABLE_CACHE_STATS], [test x$DISK_CACHE_STATS = x1])
e744219b 1287AM_CONDITIONAL([COND_ENABLE_BOOT_TIME_STATS], [test x$BOOT_TIME_STATS = x1])
fc45fb58 1288
1eed0e6e
VS
1289AM_CONDITIONAL([COND_HAVE_CXX], [test x$HAVE_CXX = xyes])
1290
742f9232 1291AM_CONDITIONAL([COND_HAVE_ASM_USCORE], [test x$HAVE_ASM_USCORE = x1])
fc97214f 1292AM_CONDITIONAL([COND_CYGWIN], [test x$target_os = xcygwin])
c5884973 1293AM_CONDITIONAL([COND_STARFIELD], [test "x$starfield_excuse" = x])
742f9232 1294
6a161fa9 1295# Output files.
4959e111
VS
1296cpudir="${target_cpu}"
1297if test x${cpudir} = xmipsel; then
1298 cpudir=mips;
1299fi
1f4147aa 1300grub_CHECK_LINK_DIR
1301if test x"$link_dir" = xyes ; then
4959e111 1302 AC_CONFIG_LINKS([include/grub/cpu:include/grub/$cpudir])
f84b481b 1303 if test "$platform" != emu ; then
4959e111 1304 AC_CONFIG_LINKS([include/grub/machine:include/grub/$cpudir/$platform])
f84b481b 1305 fi
1f4147aa 1306else
1307 mkdir -p include/grub 2>/dev/null
1308 rm -rf include/grub/cpu
4959e111 1309 cp -rp $srcdir/include/grub/$cpudir include/grub/cpu 2>/dev/null
f84b481b
RM
1310 if test "$platform" != emu ; then
1311 rm -rf include/grub/machine
4959e111 1312 cp -rp $srcdir/include/grub/$cpudir/$platform include/grub/machine 2>/dev/null
f84b481b 1313 fi
1f4147aa 1314fi
6304d292 1315
8c411768 1316AC_CONFIG_FILES([Makefile])
6304d292 1317AC_CONFIG_FILES([grub-core/Makefile])
15c69261 1318AC_CONFIG_FILES([grub-core/gnulib/Makefile])
269004c1 1319AC_CONFIG_FILES([po/Makefile.in])
8c411768 1320AC_CONFIG_FILES([docs/Makefile])
b23ffd70 1321AC_CONFIG_FILES([util/bash-completion.d/Makefile])
6a161fa9 1322AC_CONFIG_FILES([stamp-h], [echo timestamp > stamp-h])
742f9232 1323AC_CONFIG_FILES([config.h])
8c411768 1324
6a161fa9 1325AC_OUTPUT
5ce5507f 1326[
1327echo "*******************************************************"
1328echo GRUB2 will be compiled with following components:
1329echo Platform: "$target_cpu"-"$platform"
f84b481b 1330if [ x"$platform" = xemu ]; then
5ce5507f 1331if [ x"$grub_emu_usb_excuse" = x ]; then
1332echo USB support for grub-emu: Yes
1333else
1334echo USB support for grub-emu: No "($grub_emu_usb_excuse)"
1335fi
927d0134
VS
1336if [ x"$grub_emu_sdl_excuse" = x ]; then
1337echo SDL support for grub-emu: Yes
1338else
1339echo SDL support for grub-emu: No "($grub_emu_sdl_excuse)"
1340fi
325c8258 1341if [ x"$grub_emu_pci_excuse" = x ]; then
1342echo PCI support for grub-emu: Yes
1343else
1344echo PCI support for grub-emu: No "($grub_emu_pci_excuse)"
1345fi
f84b481b 1346fi
61d720e5
VS
1347if test x"$device_mapper_excuse" = x ; then
1348echo With devmapper support: Yes
1349else
1350echo With devmapper support: No "($device_mapper_excuse)"
1351fi
5ce5507f 1352if [ x"$enable_mm_debug" = xyes ]; then
1353echo With memory debugging: Yes
1354else
1355echo With memory debugging: No
1356fi
c5dc1690
SJ
1357if [ x"$enable_cache_stats" = xyes ]; then
1358echo With disk cache statistics: Yes
1359else
1360echo With disk cache statistics: No
1361fi
e744219b
VS
1362
1363if [ x"$enable_boot_time" = xyes ]; then
1364echo With boot time statistics: Yes
1365else
1366echo With boot time statistics: No
1367fi
1368
5ce5507f 1369if [ x"$efiemu_excuse" = x ]; then
1370echo efiemu runtime: Yes
1371else
1372echo efiemu runtime: No "($efiemu_excuse)"
1373fi
5ce5507f 1374if [ x"$grub_mkfont_excuse" = x ]; then
1375echo grub-mkfont: Yes
1376else
1377echo grub-mkfont: No "($grub_mkfont_excuse)"
1378fi
897e6207 1379if [ x"$grub_mount_excuse" = x ]; then
89644ef1 1380echo grub-mount: Yes
92bb0786 1381else
897e6207 1382echo grub-mount: No "($grub_mount_excuse)"
92bb0786 1383fi
c5884973
DO
1384if [ x"$starfield_excuse" = x ]; then
1385echo starfield theme: Yes
1386else
1387echo starfield theme: No "($starfield_excuse)"
1388fi
e4c498a1
MG
1389if [ x"$libzfs_excuse" = x ]; then
1390echo With libzfs support: Yes
1391else
1392echo With libzfs support: No "($libzfs_excuse)"
1393fi
7b780018 1394if [ x"$grub_build_mkfont_excuse" = x ]; then
7c9d0c39
VS
1395 echo Build-time grub-mkfont: Yes
1396 if test "x$FONT_SOURCE" = x ; then
1397 echo "Without unifont"
1398 else
1399 echo "With unifont from $FONT_SOURCE"
1400 fi
4b80e43c 1401else
7b780018 1402 echo Build-time grub-mkfont: No "($grub_build_mkfont_excuse)"
7c9d0c39 1403 echo "Without unifont (no build-time grub-mkfont)"
4b80e43c 1404fi
64fce2d8
VS
1405if test "x$LIBLZMA" = x ; then
1406echo "Without liblzma (no support for XZ-compressed mips images)"
1407else
1408echo "With liblzma from $LIBLZMA (support for XZ-compressed mips images)"
1409fi
5ce5507f 1410echo "*******************************************************"
1411]