]> git.proxmox.com Git - grub2.git/blob - configure.ac
2009-07-16 Pavel Roskin <proski@gnu.org>
[grub2.git] / configure.ac
1 # Process this file with autoconf to produce a configure script.
2
3 # Copyright (C) 2002,2003,2004,2005,2006,2007,2008,2009 Free Software Foundation, Inc.
4 #
5 # This configure.ac is free software; the author
6 # gives unlimited permission to copy and/or distribute it,
7 # with or without modifications, as long as this notice is preserved.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
11 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
12 # PARTICULAR PURPOSE.
13
14 dnl This configure script is complicated, because GRUB needs to deal
15 dnl with three potentially different types:
16 dnl
17 dnl build -- the environment for building GRUB
18 dnl host -- the environment for running utilities
19 dnl target -- the environment for running GRUB
20 dnl
21 dnl In addition, GRUB needs to deal with a platform specification
22 dnl which specifies the system running GRUB, such as firmware.
23 dnl This is necessary because the target type in autoconf does not
24 dnl describe such a system very well.
25 dnl
26 dnl The current strategy is to use variables with no prefix (such as
27 dnl CC, CFLAGS, etc.) for the host type as well as the build type,
28 dnl because GRUB does not need to use those variables for the build
29 dnl type, so there is no conflict. Variables with the prefix "TARGET_"
30 dnl (such as TARGET_CC, TARGET_CFLAGS, etc.) are used for the target
31 dnl type.
32
33
34 AC_INIT([GRUB],[1.96],[bug-grub@gnu.org])
35 AC_PREREQ(2.59)
36 AC_CONFIG_SRCDIR([include/grub/dl.h])
37 AC_CONFIG_HEADER([config.h])
38
39 # Checks for host and target systems.
40 AC_CANONICAL_HOST
41 AC_CANONICAL_TARGET
42
43 # Program name transformations
44 AC_ARG_PROGRAM
45
46 case "$target_cpu" in
47 i[[3456]]86) target_cpu=i386 ;;
48 sparc) target_cpu=sparc64 ;;
49 esac
50
51 # Specify the platform (such as firmware).
52 AC_ARG_WITH([platform],
53 AS_HELP_STRING([--with-platform=PLATFORM],
54 [select the host platform [[guessed]]]))
55
56 # Guess the platform if not specified.
57 if test "x$with_platform" = x; then
58 case "$target_cpu"-"$target_vendor" in
59 i386-apple) platform=efi ;;
60 i386-*) platform=pc ;;
61 x86_64-apple) platform=efi ;;
62 x86_64-*) platform=pc ;;
63 powerpc-*) platform=ieee1275 ;;
64 powerpc64-*) platform=ieee1275 ;;
65 sparc64-*) platform=ieee1275 ;;
66 *) AC_MSG_ERROR([unsupported CPU: "$target_cpu"]) ;;
67 esac
68 else
69 platform="$with_platform"
70 fi
71
72 # Adjust CPU unless target was explicitly specified.
73 if test -z "$target_alias"; then
74 case "$target_cpu"-"$platform" in
75 x86_64-efi) ;;
76 x86_64-*) target_cpu=i386 ;;
77 powerpc64-ieee1275) target_cpu=powerpc ;;
78 esac
79 fi
80
81 # Check if the platform is supported, make final adjustments.
82 case "$target_cpu"-"$platform" in
83 i386-efi) ;;
84 x86_64-efi) ;;
85 i386-pc) ;;
86 i386-coreboot) ;;
87 i386-linuxbios) platform=coreboot ;;
88 i386-ieee1275) ;;
89 i386-qemu) ;;
90 powerpc-ieee1275) ;;
91 sparc64-ieee1275) ;;
92 *) AC_MSG_ERROR([platform "$platform" is not supported for target CPU "$target_cpu"]) ;;
93 esac
94
95 case "$target_cpu" in
96 i386 | powerpc) target_m32=1 ;;
97 x86_64 | sparc64) target_m64=1 ;;
98 esac
99
100 case "$host_os" in
101 mingw32) host_os=cygwin ;;
102 esac
103
104 # This normalizes the names, and creates a new variable ("host_kernel")
105 # while at it, since the mapping is not always 1:1 (e.g. different OSes
106 # using the same kernel type).
107 case "$host_os" in
108 gnu*) host_kernel=hurd ;;
109 linux*) host_kernel=linux ;;
110 freebsd* | kfreebsd*-gnu) host_kernel=freebsd ;;
111 cygwin) host_kernel=windows ;;
112 esac
113
114 AC_SUBST(host_cpu)
115 AC_SUBST(host_os)
116 AC_SUBST(host_kernel)
117
118 AC_SUBST(target_cpu)
119 AC_SUBST(platform)
120
121 #
122 # Checks for build programs.
123 #
124
125 # Although cmp is listed in the GNU Coding Standards as a command which
126 # can used directly, OpenBSD lacks cmp in the default installation.
127 AC_CHECK_PROGS([CMP], [cmp])
128 if test "x$CMP" = x; then
129 AC_MSG_ERROR([cmp is not found])
130 fi
131
132 AC_CHECK_PROGS([YACC], [bison])
133 if test "x$YACC" = x; then
134 AC_MSG_ERROR([bison is not found])
135 fi
136
137 for file in /usr/src/unifont.bdf ; do
138 if test -e $file ; then
139 AC_SUBST([UNIFONT_BDF], [$file])
140 break
141 fi
142 done
143
144 AC_PROG_INSTALL
145 AC_PROG_AWK
146 AC_PROG_MAKE_SET
147
148 # These are not a "must".
149 AC_PATH_PROG(RUBY, ruby)
150 AC_PATH_PROG(HELP2MAN, help2man)
151
152 #
153 # Checks for host programs.
154 #
155
156 AC_PROG_CC
157 # Must be GCC.
158 test "x$GCC" = xyes || AC_MSG_ERROR([GCC is required])
159
160 AC_GNU_SOURCE
161 AC_SYS_LARGEFILE
162
163 # Identify characteristics of the host architecture.
164 AC_C_BIGENDIAN
165 AC_CHECK_SIZEOF(void *)
166 AC_CHECK_SIZEOF(long)
167
168 grub_apple_cc
169 if test x$grub_cv_apple_cc = xyes ; then
170 CFLAGS="$CFLAGS -DAPPLE_CC=1 -fnested-functions"
171 ASFLAGS="$ASFLAGS -DAPPLE_CC=1"
172 fi
173
174 # Check LZO when compiling for the i386-pc.
175 if test "$target_cpu"-"$platform" = i386-pc; then
176 AC_ARG_ENABLE([lzo],
177 [AS_HELP_STRING([--enable-lzo],
178 [use lzo to compress kernel (default is lzma)])])
179 [if [ x"$enable_lzo" = xyes ]; then
180 # There are three possibilities. LZO version 2 installed with the name
181 # liblzo2, with the name liblzo, and LZO version 1.]
182 AC_DEFINE([ENABLE_LZO], [1], [Use lzo compression])
183 AC_CHECK_LIB([lzo2], [__lzo_init_v2], [LIBLZO="-llzo2"],
184 [AC_CHECK_LIB([lzo], [__lzo_init_v2], [LIBLZO="-llzo"],
185 [AC_CHECK_LIB([lzo], [__lzo_init2], [LIBLZO="-llzo"],
186 [AC_MSG_ERROR([LZO library version 1.02 or later is required])])])])
187 AC_SUBST([LIBLZO])
188 [LIBS="$LIBS $LIBLZO"]
189 AC_CHECK_FUNC([lzo1x_999_compress], ,
190 [AC_MSG_ERROR([LZO1X-999 must be enabled])])
191
192 [# LZO version 2 uses lzo/lzo1x.h, while LZO version 1 uses lzo1x.h.]
193 AC_CHECK_HEADERS([lzo/lzo1x.h lzo1x.h])
194 [else]
195 AC_DEFINE([ENABLE_LZMA], [1], [Use lzma compression])
196 [fi]
197 AC_SUBST([enable_lzo])
198 fi
199
200 # Check for functions.
201 AC_CHECK_FUNCS(posix_memalign memalign asprintf)
202
203 #
204 # Check for target programs.
205 #
206
207 # Find tools for the target.
208 if test "x$target_alias" != x && test "x$host_alias" != "x$target_alias"; then
209 tmp_ac_tool_prefix="$ac_tool_prefix"
210 ac_tool_prefix=$target_alias-
211
212 AC_CHECK_TOOLS(TARGET_CC, [gcc egcs cc],
213 [AC_MSG_ERROR([none of gcc, egcs and cc is found. set TARGET_CC manually.])])
214 AC_CHECK_TOOL(OBJCOPY, objcopy)
215 AC_CHECK_TOOL(STRIP, strip)
216 AC_CHECK_TOOL(NM, nm)
217
218 ac_tool_prefix="$tmp_ac_tool_prefix"
219 else
220 if test "x$TARGET_CC" = x; then
221 TARGET_CC=$CC
222 fi
223 AC_CHECK_TOOL(OBJCOPY, objcopy)
224 AC_CHECK_TOOL(STRIP, strip)
225 AC_CHECK_TOOL(NM, nm)
226 fi
227 AC_SUBST(TARGET_CC)
228
229
230 # Test the C compiler for the target environment.
231 tmp_CC="$CC"
232 tmp_CFLAGS="$CFLAGS"
233 tmp_LDFLAGS="$LDFLAGS"
234 tmp_CPPFLAGS="$CPPFLAGS"
235 tmp_LIBS="$LIBS"
236 CC="$TARGET_CC"
237 CFLAGS="$TARGET_CFLAGS"
238 CPPFLAGS="$TARGET_CPPFLAGS"
239 LDFLAGS="$TARGET_LDFLAGS"
240 LIBS=""
241
242 if test "x$TARGET_CFLAGS" = x; then
243 # debug flags.
244 TARGET_CFLAGS="-Wall -W -Wshadow -Wpointer-arith -Wmissing-prototypes \
245 -Wundef -Wstrict-prototypes -g"
246
247 # optimization flags.
248 AC_CACHE_CHECK([whether optimization for size works], grub_cv_cc_Os, [
249 CFLAGS=-Os
250 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
251 [grub_cv_cc_Os=yes],
252 [grub_cv_cc_Os=no])
253 ])
254 if test "x$grub_cv_cc_Os" = xyes; then
255 TARGET_CFLAGS="$TARGET_CFLAGS -Os"
256 else
257 TARGET_CFLAGS="$TARGET_CFLAGS -O2 -fno-strength-reduce -fno-unroll-loops"
258 fi
259
260 # Force no alignment to save space on i386.
261 if test "x$target_cpu" = xi386; then
262 AC_CACHE_CHECK([whether -falign-loops works], [grub_cv_cc_falign_loop], [
263 CFLAGS="$CFLAGS -falign-loops=1"
264 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
265 [grub_cv_cc_falign_loop=yes],
266 [grub_cv_cc_falign_loop=no])
267 ])
268
269 if test "x$grub_cv_cc_falign_loop" = xyes; then
270 TARGET_CFLAGS="$TARGET_CFLAGS -falign-jumps=1 -falign-loops=1 -falign-functions=1"
271 else
272 TARGET_CFLAGS="$TARGET_CFLAGS -malign-jumps=1 -malign-loops=1 -malign-functions=1"
273 fi
274 fi
275 fi
276
277 grub_apple_target_cc
278 if test x$grub_cv_apple_target_cc = xyes ; then
279 TARGET_CFLAGS="$TARGET_CFLAGS -DAPPLE_CC=1 -fnested-functions"
280 CFLAGS="$CFLAGS -DAPPLE_CC=1 -fnested-functions"
281 TARGET_ASFLAGS="$TARGET_ASFLAGS -DAPPLE_CC=1"
282 TARGET_APPLE_CC=1
283 AC_CHECK_PROG([OBJCONV], [objconv], [objconv], [])
284 if test "x$OBJCONV" = x ; then
285 AC_CHECK_PROG([OBJCONV], [objconv], [./objconv], [], [.])
286 fi
287 if test "x$OBJCONV" = x ; then
288 AC_MSG_ERROR([objconv not found which is required when building with apple compiler])
289 fi
290 TARGET_IMG_LDSCRIPT=
291 TARGET_IMG_CFLAGS="-static"
292 TARGET_IMG_LDFLAGS='-nostdlib -static -Wl,-preload -Wl,-segalign,20 -Wl,-image_base,'
293 TARGET_IMG_LDFLAGS_AC='-nostdlib -static -Wl,-preload -Wl,-segalign,20 -Wl,-image_base,'
294 else
295 TARGET_APPLE_CC=0
296 # Use linker script if present, otherwise use builtin -N script.
297 if test -f "${srcdir}/conf/${target_cpu}-${platform}-${host_os}-img-ld.sc"; then
298 TARGET_IMG_LDSCRIPT='$(top_srcdir)'"/conf/${target_cpu}-${platform}-${host_os}-img-ld.sc"
299 TARGET_IMG_LDFLAGS="-Wl,-T${TARGET_IMG_LDSCRIPT} -Wl,-Ttext,"
300 TARGET_IMG_LDFLAGS_AC="-Wl,-T${srcdir}/conf/${target_cpu}-${platform}-${host_os}-img-ld.sc"
301 else
302 TARGET_IMG_LDSCRIPT=
303 TARGET_IMG_LDFLAGS='-Wl,-N -Wl,-Ttext,'
304 TARGET_IMG_LDFLAGS_AC='-Wl,-N -Wl,-Ttext,'
305 fi
306 TARGET_IMG_CFLAGS=
307 fi
308
309 AC_SUBST(TARGET_IMG_LDSCRIPT)
310 AC_SUBST(TARGET_IMG_LDFLAGS)
311 AC_SUBST(TARGET_IMG_CFLAGS)
312
313 # For platforms where ELF is not the default link format.
314 AC_MSG_CHECKING([for command to convert module to ELF format])
315 case "${host_os}" in
316 cygwin) TARGET_OBJ2ELF='grub-pe2elf' ;;
317 *) ;;
318 esac
319 AC_SUBST(TARGET_OBJ2ELF)
320 AC_MSG_RESULT([$TARGET_OBJ2ELF])
321
322
323 if test "x$target_m32" = x1; then
324 # Force 32-bit mode.
325 TARGET_CFLAGS="$TARGET_CFLAGS -m32"
326 TARGET_LDFLAGS="$TARGET_LDFLAGS -m32"
327 TARGET_MODULE_FORMAT="elf32"
328 fi
329
330 if test "x$target_m64" = x1; then
331 # Force 64-bit mode.
332 TARGET_CFLAGS="$TARGET_CFLAGS -m64"
333 TARGET_LDFLAGS="$TARGET_LDFLAGS -m64"
334 TARGET_MODULE_FORMAT="elf64"
335 fi
336
337 if test "$target_cpu"-"$platform" = x86_64-efi; then
338 # Use large model to support 4G memory
339 AC_CACHE_CHECK([whether option -mcmodel=large works], grub_cv_cc_mcmodel, [
340 SAVED_CFLAGS=$CFLAGS
341 CFLAGS="$CFLAGS -m64 -mcmodel=large"
342 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
343 [grub_cv_cc_mcmodel=yes],
344 [grub_cv_cc_mcmodel=no])
345 ])
346 if test "x$grub_cv_cc_mcmodel" = xno; then
347 CFLAGS="$SAVED_CFLAGS -m64 -DMCMODEL_SMALL=1"
348 TARGET_CFLAGS="$TARGET_CFLAGS -DMCMODEL_SMALL=1"
349 AC_MSG_WARN([-mcmodel=large not supported. You won't be able to use the memory over 4GiB. Upgrade your gcc])
350 else
351 TARGET_CFLAGS="$TARGET_CFLAGS -mcmodel=large"
352 fi
353
354 # EFI writes to stack below %rsp, we must not use the red zone
355 AC_CACHE_CHECK([whether option -mno-red-zone works], grub_cv_cc_no_red_zone, [
356 CFLAGS="$CFLAGS -m64 -mno-red-zone"
357 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
358 [grub_cv_cc_no_red_zone=yes],
359 [grub_cv_cc_no_red_zone=no])
360 ])
361 if test "x$grub_cv_cc_no_red_zone" = xno; then
362 AC_MSG_ERROR([-mno-red-zone not supported, upgrade your gcc])
363 fi
364
365 TARGET_CFLAGS="$TARGET_CFLAGS -mno-red-zone"
366 fi
367
368 #
369 # Compiler features.
370 #
371
372 # Need __enable_execute_stack() for nested function trampolines?
373 grub_CHECK_ENABLE_EXECUTE_STACK
374
375 # Smashing stack protector.
376 grub_CHECK_STACK_PROTECTOR
377 # Need that, because some distributions ship compilers that include
378 # `-fstack-protector' in the default specs.
379 if test "x$ssp_possible" = xyes; then
380 TARGET_CFLAGS="$TARGET_CFLAGS -fno-stack-protector"
381 fi
382 grub_CHECK_STACK_ARG_PROBE
383 # Cygwin's GCC uses alloca() to probe the stackframe on static
384 # stack allocations above some threshold.
385 if test x"$sap_possible" = xyes; then
386 TARGET_CFLAGS="$TARGET_CFLAGS -mno-stack-arg-probe"
387 fi
388
389 AC_SUBST(TARGET_CFLAGS)
390 AC_SUBST(TARGET_MODULE_FORMAT)
391 AC_SUBST(OBJCONV)
392 AC_SUBST(TARGET_APPLE_CC)
393 AC_SUBST(TARGET_ASFLAGS)
394 AC_SUBST(TARGET_CPPFLAGS)
395 AC_SUBST(TARGET_LDFLAGS)
396
397 # Set them to their new values for the tests below.
398 CC="$TARGET_CC"
399 if test "x$TARGET_APPLE_CC" = x1 ; then
400 CFLAGS="$TARGET_CFLAGS -nostdlib"
401 else
402 CFLAGS="$TARGET_CFLAGS -nostdlib -Wl,--defsym,___main=0x8100"
403 fi
404 CPPFLAGS="$TARGET_CPPFLAGS"
405 LDFLAGS="$TARGET_LDFLAGS"
406
407 # Defined in aclocal.m4.
408 grub_PROG_TARGET_CC
409 if test "x$TARGET_APPLE_CC" != x1 ; then
410 grub_PROG_OBJCOPY_ABSOLUTE
411 fi
412 grub_PROG_LD_BUILD_ID_NONE
413 grub_ASM_USCORE
414 if test "x$target_cpu" = xi386; then
415 if test ! -z "$TARGET_IMG_LDSCRIPT"; then
416 # Check symbols provided by linker script.
417 CFLAGS="$TARGET_CFLAGS -nostdlib $TARGET_IMG_LDFLAGS_AC -Wl,-Ttext,8000,--defsym,___main=0x8100"
418 fi
419 if test "x$TARGET_APPLE_CC" != x1 ; then
420 grub_CHECK_BSS_START_SYMBOL
421 grub_CHECK_END_SYMBOL
422 fi
423 CFLAGS="$TARGET_CFLAGS"
424 grub_I386_ASM_PREFIX_REQUIREMENT
425 grub_I386_ASM_ADDR32
426 grub_I386_ASM_ABSOLUTE_WITHOUT_ASTERISK
427 else
428 AC_DEFINE([NESTED_FUNC_ATTR], [], [Catch gcc bug])
429 fi
430
431 AH_BOTTOM([#if defined(__i386__) && !defined(GRUB_UTIL)
432 #define NESTED_FUNC_ATTR __attribute__ ((__regparm__ (1)))
433 #else
434 #define NESTED_FUNC_ATTR
435 #endif])
436
437 AC_ARG_ENABLE([efiemu],
438 [AS_HELP_STRING([--enable-efiemu],
439 [build and install the efiemu runtimes (default=guessed)])])
440 if test x"$enable_efiemu" = xno ; then
441 efiemu_excuse="explicitly disabled"
442 fi
443 if test x"$efiemu_excuse" = x ; then
444 AC_CACHE_CHECK([whether options required for efiemu work], grub_cv_cc_no_red_zone, [
445 CFLAGS="$CFLAGS -m64 -mcmodel=large -mno-red-zone -nostdlib -c"
446 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
447 [grub_cv_cc_efiemu=yes],
448 [grub_cv_cc_efiemu=no])
449 ])
450 if test x$grub_cv_cc_efiemu = x$no; then
451 efiemu_excuse="compiler doesn't support compiling with -m64 -mcmodel=large -mno-red-zone -nostdlib -c"
452 fi
453 fi
454 if test x"$enable_efiemu" = xyes && test x"$efiemu_excuse" != x ; then
455 AC_MSG_ERROR([efiemu runtime was explicitly requested but can't be compiled])
456 fi
457 if test x"$efiemu_excuse" = x ; then
458 enable_efiemu=yes
459 else
460 enable_efiemu=no
461 fi
462 AC_SUBST([enable_efiemu])
463
464
465 # Restore the flags.
466 CC="$tmp_CC"
467 CFLAGS="$tmp_CFLAGS"
468 CPPFLAGS="$tmp_CPPFLAGS"
469 LDFLAGS="$tmp_LDFLAGS"
470 LIBS="$tmp_LIBS"
471
472 #
473 # Check for options.
474 #
475
476 # Memory manager debugging.
477 AC_ARG_ENABLE([mm-debug],
478 AS_HELP_STRING([--enable-mm-debug],
479 [include memory manager debugging]),
480 [AC_DEFINE([MM_DEBUG], [1],
481 [Define to 1 if you enable memory manager debugging.])])
482
483 AC_ARG_ENABLE([grub-emu],
484 [AS_HELP_STRING([--enable-grub-emu],
485 [build and install the `grub-emu' debugging utility (default=guessed)])])
486 AC_ARG_ENABLE([grub-emu-usb],
487 [AS_HELP_STRING([--enable-grub-emu-usb],
488 [build and install the `grub-emu' debugging utility with USB support (default=guessed)])])
489 if test x"$enable_grub_emu" = xno ; then
490 grub_emu_excuse="explicitly disabled"
491 fi
492
493 [# Check for curses libraries.]
494 [if [ x"$grub_emu_excuse" = x ]; then ]
495 AC_CHECK_LIB([ncurses], [wgetch], [LIBCURSES="-lncurses"],
496 [AC_CHECK_LIB([curses], [wgetch], [LIBCURSES="-lcurses"],
497 [grub_emu_excuse=["(n)curses libraries are required to build \`grub-emu'"]])])
498 AC_SUBST([LIBCURSES])
499 [fi]
500 [if [ x"$grub_emu_excuse" = x ]; then ]
501 [# Check for headers.]
502 AC_CHECK_HEADERS([ncurses/curses.h], [],
503 [AC_CHECK_HEADERS([ncurses.h], [],
504 [AC_CHECK_HEADERS([curses.h], [],
505 [grub_emu_excuse=["(n)curses header files are required to build \`grub-emu'"]])])])
506 [fi]
507
508 if test x"$enable_grub_emu" = xyes && test x"$grub_emu_excuse" != x ; then
509 AC_MSG_ERROR([grub-emu was explicitly requested but can't be compiled])
510 fi
511 if test x"$grub_emu_excuse" = x ; then
512 enable_grub_emu=yes
513 else
514 enable_grub_emu=no
515 grub_emu_usb_excuse="grub-emu isn't built"
516 fi
517 if test x"$enable_grub_emu_usb" = xno ; then
518 grub_emu_usb_excuse="explicitly disabled"
519 fi
520 [if [ x"$grub_emu_usb_excuse" = x ]; then
521 # Check for libusb libraries.]
522 AC_CHECK_LIB([usb], [usb_claim_interface], [LIBUSB="-lusb"],
523 [grub_emu_usb_excuse=["libusb libraries are required to build \`grub-emu' with USB support"]])
524 AC_SUBST([LIBUSB])
525 [fi]
526 [if [ x"$grub_emu_usb_excuse" = x ]; then
527 # Check for headers.]
528 AC_CHECK_HEADERS([usb.h], [],
529 [grub_emu_usb_excuse=["libusb header file is required to build \`grub-emu' with USB support"]])
530 [fi]
531 if test x"enable_grub_emu_usb" = xyes && test x"$grub_emu_usb_excuse" != x ; then
532 AC_MSG_ERROR([USB support for grub-emu was explicitly requested but can't be compiled])
533 fi
534 if test x"$grub_emu_usb_excuse" = x ; then
535 enable_grub_emu_usb=yes
536 else
537 enable_grub_emu_usb=no
538 fi
539
540 AC_SUBST([enable_grub_emu])
541 AC_SUBST([enable_grub_emu_usb])
542
543 AC_ARG_ENABLE([grub-fstest],
544 [AS_HELP_STRING([--enable-grub-fstest],
545 [build and install the `grub-fstest' debugging utility (default=guessed)])])
546 if test x"$enable_grub_fstest" = xno ; then
547 grub_fstest_excuse="explicitly disabled"
548 fi
549 if test x"$grub_fstest_excuse" = x ; then
550 enable_grub_fstest=yes
551 else
552 enable_grub_fstest=no
553 fi
554 AC_SUBST([enable_grub_fstest])
555
556 AC_ARG_ENABLE([grub-pe2elf],
557 [AS_HELP_STRING([--enable-grub-pe2elf],
558 [build and install the `grub-pe2elf' conversion utility])])
559 AC_SUBST([enable_grub_pe2elf])
560
561 AC_ARG_ENABLE([grub-mkfont],
562 [AS_HELP_STRING([--enable-grub-mkfont],
563 [build and install the `grub-mkfont' utility (default=guessed)])])
564 if test x"$enable_grub_mkfont" = xno ; then
565 grub_mkfont_excuse="explicitly disabled"
566 fi
567
568 if test x"$grub_mkfont_excuse" = x ; then
569 # Check for freetype libraries.
570 AC_CHECK_PROGS([FREETYPE], [freetype-config])
571 if test "x$FREETYPE" = x ; then
572 grub_mkfont_excuse=["freetype2 libraries are required to build \`grub-mkfont'"]
573 fi
574 freetype_cflags=`freetype-config --cflags`
575 freetype_libs=`freetype-config --libs`
576 fi
577 if test x"$enable_grub_mkfont" = xyes && test x"$grub_mkfont_excuse" != x ; then
578 AC_MSG_ERROR([grub-mkfont was explicitly requested but can't be compiled])
579 fi
580 if test x"$grub_mkfont_excuse" = x ; then
581 enable_grub_mkfont=yes
582 else
583 enable_grub_mkfont=no
584 fi
585 AC_SUBST([enable_grub_mkfont])
586 AC_SUBST([freetype_cflags])
587 AC_SUBST([freetype_libs])
588
589 AC_SUBST(ASFLAGS)
590
591 # Output files.
592 grub_CHECK_LINK_DIR
593 if test x"$link_dir" = xyes ; then
594 AC_CONFIG_LINKS([include/grub/cpu:include/grub/$target_cpu
595 include/grub/machine:include/grub/$target_cpu/$platform])
596 else
597 mkdir -p include/grub 2>/dev/null
598 rm -rf include/grub/cpu
599 cp -rp $srcdir/include/grub/$target_cpu include/grub/cpu 2>/dev/null
600 rm -rf include/grub/machine
601 cp -rp $srcdir/include/grub/$target_cpu/$platform include/grub/machine 2>/dev/null
602 fi
603 AC_CONFIG_FILES([Makefile gensymlist.sh genkernsyms.sh])
604 AC_CONFIG_FILES([stamp-h], [echo timestamp > stamp-h])
605 AC_OUTPUT
606 [
607 echo "*******************************************************"
608 echo GRUB2 will be compiled with following components:
609 echo Platform: "$target_cpu"-"$platform"
610 if test "$target_cpu"-"$platform" = i386-pc; then
611 if [ x"$enable_lzo" = xyes ]; then
612 echo Compression: LZO
613 else
614 echo Compression: LZMA
615 fi
616 fi
617 if [ x"$grub_emu_excuse" = x ]; then
618 echo grub-emu: Yes
619 else
620 echo grub-emu: No "($grub_emu_excuse)"
621 fi
622 if [ x"$grub_emu_usb_excuse" = x ]; then
623 echo USB support for grub-emu: Yes
624 else
625 echo USB support for grub-emu: No "($grub_emu_usb_excuse)"
626 fi
627 if [ x"$enable_mm_debug" = xyes ]; then
628 echo With memory debugging: Yes
629 else
630 echo With memory debugging: No
631 fi
632 if [ x"$enable_grub_pe2elf" = xyes ]; then
633 echo grub-pe2elf will be built and installed
634 elif [ x$TARGET_OBJ2ELF = xgrub-pe2elf ]; then
635 echo grub-pe2elf will be built but not installed
636 else
637 echo grub-pe2elf will not be built
638 fi
639 if [ x"$efiemu_excuse" = x ]; then
640 echo efiemu runtime: Yes
641 else
642 echo efiemu runtime: No "($efiemu_excuse)"
643 fi
644 if [ x"$grub_fstest_excuse" = x ]; then
645 echo grub-fstest: Yes
646 else
647 echo grub-fstest: No "($grub_fstest_excuse)"
648 fi
649 if [ x"$grub_mkfont_excuse" = x ]; then
650 echo grub-mkfont: Yes
651 else
652 echo grub-mkfont: No "($grub_mkfont_excuse)"
653 fi
654 echo "*******************************************************"
655 ]