49
56
TARGET_CFLAGS="$TARGET_CFLAGS -Os"
59
# Default HOST_CPPFLAGS
60
HOST_CPPFLAGS="$HOST_CPPFLAGS -Wall -W"
61
HOST_CPPFLAGS="$HOST_CPPFLAGS -I\$(top_builddir)/include"
62
HOST_CPPFLAGS="$HOST_CPPFLAGS -DGRUB_UTIL=1"
63
HOST_CPPFLAGS="$HOST_CPPFLAGS -DGRUB_LIBDIR=\\\"\$(pkglibdir)\\\""
64
HOST_CPPFLAGS="$HOST_CPPFLAGS -DLOCALEDIR=\\\"\$(localedir)\\\""
66
TARGET_CPPFLAGS="$TARGET_CPPFLAGS -Wall -W"
67
TARGET_CPPFLAGS="$TARGET_CPPFLAGS -I\$(top_srcdir)/include"
68
TARGET_CPPFLAGS="$TARGET_CPPFLAGS -I\$(top_builddir)/include"
52
70
case "$target_cpu" in
53
71
i[[3456]]86) target_cpu=i386 ;;
54
72
amd64) target_cpu=x86_64 ;;
55
73
sparc) target_cpu=sparc64 ;;
58
TARGET_CFLAGS="$TARGET_CFLAGS -DGRUB_CPU_MIPSEL=1";
59
CFLAGS="$CFLAGS -DGRUB_CPU_MIPSEL=1";
76
machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_CPU_MIPSEL=1";
63
TARGET_CFLAGS="$TARGET_CFLAGS -DGRUB_CPU_MIPS=1";
64
CFLAGS="$CFLAGS -DGRUB_CPU_MIPS=1";
80
machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_CPU_MIPS=1";
138
154
case "$platform" in
139
coreboot) machine_CFLAGS="-DGRUB_MACHINE_COREBOOT=1" ;;
140
multiboot) machine_CFLAGS="-DGRUB_MACHINE_MULTIBOOT=1" ;;
141
efi) machine_CFLAGS="-DGRUB_MACHINE_EFI=1" ;;
142
ieee1275) machine_CFLAGS="-DGRUB_MACHINE_IEEE1275=1" ;;
143
qemu) machine_CFLAGS="-DGRUB_MACHINE_QEMU=1" ;;
144
pc) machine_CFLAGS="-DGRUB_MACHINE_PCBIOS=1" ;;
145
emu) machine_CFLAGS="-DGRUB_MACHINE_EMU=1" ;;
146
yeeloong) machine_CFLAGS="-DGRUB_MACHINE_MIPS_YEELOONG=1 -DGRUB_MACHINE_MIPS_BONITO=1" ;;
147
qemu-mips) machine_CFLAGS="-DGRUB_MACHINE_MIPS_QEMU_MIPS=1 -DGRUB_MACHINE_MIPS_BONITO=1" ;;
155
coreboot) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_COREBOOT=1" ;;
156
multiboot) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_MULTIBOOT=1" ;;
157
efi) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_EFI=1" ;;
158
ieee1275) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_IEEE1275=1" ;;
159
qemu) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_QEMU=1" ;;
160
pc) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_PCBIOS=1" ;;
161
emu) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_EMU=1" ;;
162
yeeloong) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_MIPS_YEELOONG=1 -DGRUB_MACHINE_MIPS_BONITO=1" ;;
163
qemu-mips) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_MIPS_QEMU_MIPS=1 -DGRUB_MACHINE_MIPS_BONITO=1" ;;
149
165
case "$target_cpu" in
150
mips) machine_CFLAGS="$machine_CFLAGS -DGRUB_MACHINE_MIPS=1" ;;
151
sparc64) machine_CFLAGS="$machine_CFLAGS -DGRUB_MACHINE_SPARC64=1" ;;
166
mips) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_MIPS=1" ;;
167
sparc64) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_SPARC64=1" ;;
153
machine_CFLAGS="$machine_CFLAGS -DMACHINE=`echo ${target_cpu}_$platform | sed y,abcdefghijklmnopqrstuvwxyz,ABCDEFGHIJKLMNOPQRSTUVWXYZ,`"
169
machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE=`echo ${target_cpu}_$platform | sed y,abcdefghijklmnopqrstuvwxyz,ABCDEFGHIJKLMNOPQRSTUVWXYZ,`"
155
CFLAGS="$CFLAGS $machine_CFLAGS"
156
TARGET_ASFLAGS="$TARGET_ASFLAGS $machine_CFLAGS"
157
TARGET_CFLAGS="$TARGET_CFLAGS $machine_CFLAGS"
171
HOST_CPPFLAGS="$HOST_CPPFLAGS $machine_CPPFLAGS"
172
TARGET_CPPFLAGS="$TARGET_CPPFLAGS $machine_CPPFLAGS"
159
174
AC_SUBST(host_cpu)
160
175
AC_SUBST(host_os)
344
401
TARGET_CFLAGS="$TARGET_CFLAGS -fno-dwarf2-cfi-asm"
404
if test "${target_cpu}-${platform}" = mips-yeeloong; then
405
AC_CACHE_CHECK([whether -march=loongson2f works], [grub_cv_cc_march_loongson2f], [
406
SAVE_CFLAGS="$CFLAGS"
407
CFLAGS="$CFLAGS -march=loongson2f"
408
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
409
[grub_cv_cc_march_loongson2f=yes],
410
[grub_cv_cc_march_loongson2f=no])
411
CFLAGS="$SAVE_CFLAGS"
414
if test "x$grub_cv_cc_march_loongson2f" = xyes; then
415
TARGET_CFLAGS="$TARGET_CFLAGS -march=loongson2f"
417
TARGET_CFLAGS="$TARGET_CFLAGS -march=mips3"
347
421
grub_apple_target_cc
348
422
if test x$grub_cv_apple_target_cc = xyes ; then
349
TARGET_CFLAGS="$TARGET_CFLAGS -DAPPLE_CC=1 -fnested-functions"
423
TARGET_CPPFLAGS="$TARGET_CPPFLAGS -DAPPLE_CC=1"
424
TARGET_CFLAGS="$TARGET_CFLAGS -fnested-functions"
350
426
CFLAGS="$CFLAGS -DAPPLE_CC=1 -fnested-functions"
351
TARGET_ASFLAGS="$TARGET_ASFLAGS -DAPPLE_CC=1"
352
427
TARGET_APPLE_CC=1
353
428
AC_CHECK_PROG([OBJCONV], [objconv], [objconv], [])
354
429
if test "x$OBJCONV" = x ; then
360
435
TARGET_IMG_LDSCRIPT=
361
436
TARGET_IMG_CFLAGS="-static"
362
TARGET_IMG_LDFLAGS='-nostdlib -static -Wl,-preload -Wl,-segalign,20 -Wl,-image_base,'
363
TARGET_IMG_LDFLAGS_AC='-nostdlib -static -Wl,-preload -Wl,-segalign,20 -Wl,-image_base,'
437
TARGET_IMG_LDFLAGS='-nostdlib -static -Wl,-preload -Wl,-segalign,20'
438
TARGET_IMG_LDFLAGS_AC='-nostdlib -static -Wl,-preload -Wl,-segalign,20'
439
TARGET_IMG_BASE_LDOPT="-Wl,-image_base"
365
441
TARGET_APPLE_CC=0
366
442
# Use linker script if present, otherwise use builtin -N script.
367
if test -f "${srcdir}/conf/${target_cpu}-${platform}-${host_os}-img-ld.sc"; then
368
TARGET_IMG_LDSCRIPT='$(top_srcdir)'"/conf/${target_cpu}-${platform}-${host_os}-img-ld.sc"
369
TARGET_IMG_LDFLAGS="-Wl,-T${TARGET_IMG_LDSCRIPT} -Wl,-Ttext,"
370
TARGET_IMG_LDFLAGS_AC="-Wl,-T${srcdir}/conf/${target_cpu}-${platform}-${host_os}-img-ld.sc -Wl,-Ttext,"
443
if test -f "${srcdir}/${grub_coredir}/conf/${target_cpu}-${platform}-${host_os}-img-ld.sc"; then
444
TARGET_IMG_LDSCRIPT='$(top_srcdir)'"/${grub_coredir}/conf/${target_cpu}-${platform}-${host_os}-img-ld.sc"
445
TARGET_IMG_LDFLAGS="-Wl,-T${TARGET_IMG_LDSCRIPT}"
446
TARGET_IMG_LDFLAGS_AC="-Wl,-T${srcdir}/${grub_coredir}/conf/${target_cpu}-${platform}-${host_os}-img-ld.sc"
447
TARGET_IMG_BASE_LDOPT="-Wl,-Ttext"
372
449
TARGET_IMG_LDSCRIPT=
373
TARGET_IMG_LDFLAGS='-Wl,-N -Wl,-Ttext,'
374
TARGET_IMG_LDFLAGS_AC='-Wl,-N -Wl,-Ttext,'
450
TARGET_IMG_LDFLAGS='-Wl,-N'
451
TARGET_IMG_LDFLAGS_AC='-Wl,-N'
452
TARGET_IMG_BASE_LDOPT="-Wl,-Ttext"
376
454
TARGET_IMG_CFLAGS=
379
AC_SUBST(TARGET_IMG_LDSCRIPT)
380
AC_SUBST(TARGET_IMG_LDFLAGS)
381
AC_SUBST(TARGET_IMG_CFLAGS)
383
457
# For platforms where ELF is not the default link format.
384
458
AC_MSG_CHECKING([for command to convert module to ELF format])
385
459
case "${host_os}" in
386
cygwin) TARGET_OBJ2ELF='grub-pe2elf';
460
cygwin) TARGET_OBJ2ELF='$(grub_utildir)/grub-pe2elf';
387
461
# FIXME: put proper test here
388
AC_DEFINE([NEED_REGISTER_FRAME_INFO], 1,
389
[Define to 1 if GCC generates calls to __register_frame_info()])
462
NEED_REGISTER_FRAME_INFO=1
464
*) NEED_REGISTER_FRAME_INFO=0 ;;
393
AC_SUBST(TARGET_OBJ2ELF)
394
466
AC_MSG_RESULT([$TARGET_OBJ2ELF])
397
468
if test "x$target_m32" = x1; then
398
469
# Force 32-bit mode.
399
470
TARGET_CFLAGS="$TARGET_CFLAGS -m32"
400
TARGET_ASFLAGS="$TARGET_CFLAGS -m32"
471
TARGET_CCASFLAGS="$TARGET_CCASFLAGS -m32"
401
472
TARGET_LDFLAGS="$TARGET_LDFLAGS -m32"
402
473
TARGET_MODULE_FORMAT="elf32"
529
620
CFLAGS="$TARGET_CFLAGS"
530
621
grub_I386_ASM_PREFIX_REQUIREMENT
531
622
grub_I386_ASM_ADDR32
532
grub_I386_ASM_ABSOLUTE_WITHOUT_ASTERISK
534
AC_DEFINE([NESTED_FUNC_ATTR], [], [Catch gcc bug])
537
AH_BOTTOM([#if defined(__i386__) && !defined(GRUB_UTIL)
538
#define NESTED_FUNC_ATTR __attribute__ ((__regparm__ (1)))
540
#define NESTED_FUNC_ATTR
543
625
AC_ARG_ENABLE([efiemu],
544
626
[AS_HELP_STRING([--enable-efiemu],
545
627
[build and install the efiemu runtimes (default=guessed)])])
546
628
if test x"$enable_efiemu" = xno ; then
547
629
efiemu_excuse="explicitly disabled"
631
if test x"$target_cpu" != xi386 ; then
632
efiemu_excuse="only available on i386"
634
if test x"$platform" = xefi ; then
635
efiemu_excuse="not available on efi"
549
637
if test x"$efiemu_excuse" = x ; then
550
638
AC_CACHE_CHECK([whether options required for efiemu work], grub_cv_cc_efiemu, [
551
639
CFLAGS="$CFLAGS -m64 -mcmodel=large -mno-red-zone -nostdlib"
794
869
if test x"$device_mapper_excuse" = x ; then
795
870
# Check for device-mapper library.
796
AC_CHECK_LIB([devmapper], [dm_task_create],
797
[LDFLAGS="$LDFLAGS -ldevmapper"
798
AC_DEFINE([HAVE_DEVICE_MAPPER], [1],
799
[Define to 1 if you have the devmapper library.])],
800
[device_mapper_excuse="need devmapper library"])
871
AC_CHECK_LIB([devmapper], [dm_task_create], [],
872
[device_mapper_excuse="need devmapper library"])
875
if test x"$device_mapper_excuse" = x ; then
876
# Check for device-mapper library.
877
AC_CHECK_LIB([devmapper], [dm_log_with_errno_init],
879
[device_mapper_excuse="need devmapper library"])
882
if test x"$device_mapper_excuse" = x ; then
883
LIBDEVMAPPER="-ldevmapper";
884
AC_DEFINE([HAVE_DEVICE_MAPPER], [1],
885
[Define to 1 if you have the devmapper library.])
888
AC_SUBST([LIBDEVMAPPER])
890
AC_CHECK_LIB([lzma], [lzma_code],
892
AC_DEFINE([HAVE_LIBLZMA], [1],
893
[Define to 1 if you have the LZMA library.])],)
803
896
AC_CHECK_LIB([zfs], [libzfs_init],
804
[LDFLAGS="$LDFLAGS -lzfs"
805
898
AC_DEFINE([HAVE_LIBZFS], [1],
806
899
[Define to 1 if you have the ZFS library.])],)
807
902
AC_CHECK_LIB([nvpair], [nvlist_print],
808
[LDFLAGS="$LDFLAGS -lnvpair"
903
[LIBNVPAIR="-lnvpair"
809
904
AC_DEFINE([HAVE_LIBNVPAIR], [1],
810
905
[Define to 1 if you have the NVPAIR library.])],)
906
AC_SUBST([LIBNVPAIR])
910
pkglibrootdir='$(libdir)'/`echo $PACKAGE | sed "$program_transform_name"`
911
AC_SUBST(pkglibrootdir)
913
AC_SUBST([FONT_SOURCE])
914
AS_IF([test x$target_cpu = xi386 -a x$platform = xqemu],
915
[AC_SUBST([GRUB_BOOT_MACHINE_LINK_ADDR], 0xffe00)])
916
AS_IF([test x$TARGET_APPLE_CC = x1],
917
[AC_SUBST([USE_APPLE_CC_FIXES], yes)])
919
AC_SUBST(HAVE_ASM_USCORE)
922
AC_SUBST(BSS_START_SYMBOL)
926
AC_SUBST(NEED_ENABLE_EXECUTE_STACK)
927
AC_SUBST(NEED_REGISTER_FRAME_INFO)
930
# Automake conditionals
933
AM_CONDITIONAL([COND_emu], [test x$platform = xemu])
934
AM_CONDITIONAL([COND_i386_pc], [test x$target_cpu = xi386 -a x$platform = xpc])
935
AM_CONDITIONAL([COND_i386_efi], [test x$target_cpu = xi386 -a x$platform = xefi])
936
AM_CONDITIONAL([COND_i386_qemu], [test x$target_cpu = xi386 -a x$platform = xqemu])
937
AM_CONDITIONAL([COND_i386_ieee1275], [test x$target_cpu = xi386 -a x$platform = xieee1275])
938
AM_CONDITIONAL([COND_i386_coreboot], [test x$target_cpu = xi386 -a x$platform = xcoreboot])
939
AM_CONDITIONAL([COND_i386_multiboot], [test x$target_cpu = xi386 -a x$platform = xmultiboot])
940
AM_CONDITIONAL([COND_x86_64_efi], [test x$target_cpu = xx86_64 -a x$platform = xefi])
941
AM_CONDITIONAL([COND_mips_yeeloong], [test x$target_cpu = xmips -a x$platform = xyeeloong])
942
AM_CONDITIONAL([COND_mips_qemu_mips], [test x$target_cpu = xmips -a x$platform = xqemu_mips])
943
AM_CONDITIONAL([COND_sparc64_ieee1275], [test x$target_cpu = xsparc64 -a x$platform = xieee1275])
944
AM_CONDITIONAL([COND_powerpc_ieee1275], [test x$target_cpu = xpowerpc -a x$platform = xieee1275])
945
AM_CONDITIONAL([COND_mips], [test x$target_cpu = xmips])
947
AM_CONDITIONAL([COND_HOST_HURD], [test x$host_kernel = xhurd])
948
AM_CONDITIONAL([COND_HOST_LINUX], [test x$host_kernel = xlinux])
949
AM_CONDITIONAL([COND_HOST_NETBSD], [test x$host_kernel = xnetbsd])
950
AM_CONDITIONAL([COND_HOST_WINDOWS], [test x$host_kernel = xwindows])
951
AM_CONDITIONAL([COND_HOST_KFREEBSD], [test x$host_kernel = xkfreebsd])
953
AM_CONDITIONAL([COND_MAN_PAGES], [test x$cross_compiling = xno -a x$HELP2MAN != x])
954
AM_CONDITIONAL([COND_GRUB_EMU_USB], [test x$enable_grub_emu_usb = xyes])
955
AM_CONDITIONAL([COND_GRUB_EMU_SDL], [test x$enable_grub_emu_sdl = xyes])
956
AM_CONDITIONAL([COND_GRUB_EMU_PCI], [test x$enable_grub_emu_pci = xyes])
957
AM_CONDITIONAL([COND_GRUB_MKFONT], [test x$enable_grub_mkfont = xyes])
958
AM_CONDITIONAL([COND_HAVE_FONT_SOURCE], [test x$FONT_SOURCE != x])
959
AM_CONDITIONAL([COND_GRUB_PE2ELF], [test x$TARGET_OBJ2ELF != x])
960
AM_CONDITIONAL([COND_APPLE_CC], [test x$TARGET_APPLE_CC = x1])
961
AM_CONDITIONAL([COND_ENABLE_EFIEMU], [test x$enable_efiemu = xyes])
963
AM_CONDITIONAL([COND_HAVE_ASM_USCORE], [test x$HAVE_ASM_USCORE = x1])
815
966
grub_CHECK_LINK_DIR