[grub/f15] Check in needed patches to revert bad btrfs support.

Peter Jones pjones at fedoraproject.org
Wed Jul 6 17:31:46 UTC 2011


commit d8c09cbdcb0a36f727ff95f73e5cb9de706631b7
Author: Peter Jones <pjones at redhat.com>
Date:   Wed Jun 29 14:34:41 2011 -0400

    Check in needed patches to revert bad btrfs support.

 grub-fedora-16.patch |50076 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 50076 insertions(+), 0 deletions(-)
---
diff --git a/grub-fedora-16.patch b/grub-fedora-16.patch
new file mode 100644
index 0000000..0994ba4
--- /dev/null
+++ b/grub-fedora-16.patch
@@ -0,0 +1,50076 @@
+From: Peter Jones <pjones at redhat.com>
+Date: Mon, 14 Mar, 2011 09:29:00 -0500
+Subject: [PATCH] Changes from grub-0.97 to fedora-16
+
+This patch is a bundle of the changes between grub-0.97 and fedora-16.
+It can be reginerated from the git repository at:
+
+http://git.kernel.org/?p=boot/grub-fedora/grub-fedora.git;a=summary
+
+Using the command:
+
+git diff grub-0.97 fedora-16
+
+ b/.gitignore                     |    8 
+ b/AUTHORS                        |    2 
+ b/ChangeLog                      |   48 
+ b/INSTALL                        |    3 
+ b/Makefile.am                    |    3 
+ b/Makefile.in                    |  175 
+ b/acinclude.m4                   |    4 
+ b/aclocal.m4                     |  555 --
+ b/config.h.in                    |    5 
+ b/configure.in                   |  120 
+ b/docs/.gitignore                |    3 
+ b/docs/Makefile.am               |    9 
+ b/docs/Makefile.in               |  260 -
+ b/docs/grub-crypt.8              |   39 
+ b/docs/grub-install.8            |    2 
+ b/docs/grub.8                    |    2 
+ b/docs/grub.info                 |  370 -
+ b/docs/grub.texi                 |   82 
+ b/docs/stamp-vti                 |    4 
+ b/docs/version.texi              |    4 
+ b/efi/.gitignore                 |    7 
+ b/efi/Makefile.am                |   76 
+ b/efi/byteswap.h                 |   37 
+ b/efi/dhcp.h                     |  133 
+ b/efi/efichainloader.c           |  265 +
+ b/efi/eficon.c                   |  306 +
+ b/efi/eficore.c                  |  231 +
+ b/efi/efidisk.c                  |  785 ++++
+ b/efi/efidp.c                    |  984 +++++
+ b/efi/efigraph.c                 | 1467 +++++++
+ b/efi/efimain.c                  |  129 
+ b/efi/efimisc.c                  |  665 +++
+ b/efi/efimm.c                    |  512 ++
+ b/efi/efiserial.c                |  265 +
+ b/efi/efitftp.c                  |  228 +
+ b/efi/efiuga.c                   |  946 ++++
+ b/efi/font_8x16.c                | 4638 +++++++++++++++++++++++
+ b/efi/graphics.c                 |  568 ++
+ b/efi/graphics.h                 |   79 
+ b/efi/grub/.gitignore            |    1 
+ b/efi/grub/efi/api.h             | 1471 +++++++
+ b/efi/grub/efi/console_control.h |   59 
+ b/efi/grub/efi/efi.h             |   79 
+ b/efi/grub/efi/eficall.h         |  162 
+ b/efi/grub/efi/misc.h            |   58 
+ b/efi/grub/efi/time.h            |   31 
+ b/efi/grub/i386/linux.h          |  226 +
+ b/efi/grub/i386/types.h          |   32 
+ b/efi/grub/misc.h                |   71 
+ b/efi/grub/symbol.h              |   34 
+ b/efi/grub/types.h               |  158 
+ b/efi/grub/x86_64/linux.h        |  228 +
+ b/efi/grub/x86_64/types.h        |   32 
+ b/efi/ia32/callwrap.c            |  131 
+ b/efi/ia32/loader/bin_to_h.c     |   29 
+ b/efi/ia32/loader/linux.c        |  648 +++
+ b/efi/ia32/loader/switch.S       |  118 
+ b/efi/ia32/loader/switch.h       |   19 
+ b/efi/ia32/reloc.c               |   79 
+ b/efi/ia32/setjmp.S              |   86 
+ b/efi/pxe.c                      |  444 ++
+ b/efi/pxe.h                      |  237 +
+ b/efi/ugadebug.h                 |  201 +
+ b/efi/x86_64/callwrap.c          |  395 ++
+ b/efi/x86_64/crt0-efi.S          |   63 
+ b/efi/x86_64/elf_efi.lds         |   58 
+ b/efi/x86_64/loader/Makefile     |   20 
+ b/efi/x86_64/loader/bin_to_h.c   |   29 
+ b/efi/x86_64/loader/linux.c      |  588 +++
+ b/efi/x86_64/loader/switch.S     |   92 
+ b/efi/x86_64/loader/switch.h     |   25 
+ b/efi/x86_64/reloc.c             |   79 
+ b/efi/x86_64/setjmp.S            |   56 
+ b/efi/xpm.c                      |  231 +
+ b/efi/xpm.h                      |   36 
+ b/grub.spec                      |  438 ++
+ b/grub/.gitignore                |    2 
+ b/grub/Makefile.am               |    4 
+ b/grub/Makefile.in               |  117 
+ b/grub/asmstub.c                 |  194 
+ b/grub/efitftp.c                 |   34 
+ b/grub/main.c                    |    2 
+ b/lib/.gitignore                 |    2 
+ b/lib/Makefile.in                |  111 
+ b/lib/device.c                   |  360 +
+ b/netboot/.gitignore             |    2 
+ b/netboot/Makefile.in            |  359 -
+ b/netboot/etherboot.h            |   34 
+ b/netboot/main.c                 |    6 
+ b/netboot/misc.c                 |   58 
+ b/netboot/osdep.h                |   24 
+ b/stage1/.gitignore              |    2 
+ b/stage1/Makefile.am             |   15 
+ b/stage1/Makefile.in             |  169 
+ b/stage1/stage1.S                |    4 
+ b/stage2/.gitignore              |    5 
+ b/stage2/Makefile.am             |  100 
+ b/stage2/Makefile.in             | 1729 +++++---
+ b/stage2/asm.S                   |  284 +
+ b/stage2/boot.c                  |  114 
+ b/stage2/btrfs.h                 | 1414 +++++++
+ b/stage2/builtins.c              | 1325 ++++--
+ b/stage2/char_io.c               |  609 ++-
+ b/stage2/cmdline.c               |   19 
+ b/stage2/common.c                |   16 
+ b/stage2/disk_io.c               |  201 -
+ b/stage2/efistubs.c              |    7 
+ b/stage2/efistubs.h              |    8 
+ b/stage2/fat.h                   |    2 
+ b/stage2/filesys.h               |   30 
+ b/stage2/fsys_btrfs.c            | 1815 +++++++++
+ b/stage2/fsys_ext2fs.c           |  394 +-
+ b/stage2/fsys_fat.c              |   41 
+ b/stage2/fsys_iso9660.c          |    6 
+ b/stage2/fsys_jfs.c              |   12 
+ b/stage2/fsys_minix.c            |   10 
+ b/stage2/fsys_reiserfs.c         |   44 
+ b/stage2/fsys_vstafs.c           |   28 
+ b/stage2/fsys_xfs.c              |   22 
+ b/stage2/gpt.h                   |   69 
+ b/stage2/graphics.c              |  573 ++
+ b/stage2/graphics.h              |   42 
+ b/stage2/gunzip.c                |   15 
+ b/stage2/iso9660.h               |    4 
+ b/stage2/mb_info.h               |    4 
+ b/stage2/pc_slice.h              |   51 
+ b/stage2/serial.c                |    4 
+ b/stage2/sha256crypt.c           |  723 +++
+ b/stage2/sha512crypt.c           |  795 ++++
+ b/stage2/shared.h                |  125 
+ b/stage2/smp-imps.h              |    1 
+ b/stage2/stage1_5.c              |    3 
+ b/stage2/stage2.c                |  203 -
+ b/stage2/start.S                 |   13 
+ b/stage2/term.h                  |   35 
+ b/stage2/tparm.c                 |   14 
+ b/test                           |    1 
+ b/util/.gitignore                |    7 
+ b/util/Makefile.am               |   11 
+ b/util/Makefile.in               |  131 
+ b/util/grub-crypt.in             |   80 
+ b/util/grub-install.in           |  334 +
+ configure                        | 7639 ---------------------------------------
+ 143 files changed, 30722 insertions(+), 10652 deletions(-)
+
+diff --git a/.gitignore b/.gitignore
+new file mode 100644
+index 0000000..4e19579
+--- /dev/null
++++ b/.gitignore
+@@ -0,0 +1,8 @@
++Makefile.in
++Makefile
++configure
++autom4te.cache
++config.h
++config.log
++config.status
++stamp-h1
+diff --git a/AUTHORS b/AUTHORS
+index ea8cb4a..236e423 100644
+--- a/AUTHORS
++++ b/AUTHORS
+@@ -41,6 +41,8 @@ Kristoffer Branemyr added VSTa filesystem support.
+ 
+ Serguei Tzukanov added JFS and XFS support.
+ 
++Edward Shishkin added Btrfs support.
++
+ Jason Thomas added Linux DAC960 support and support for hiding/unhiding
+ logical partitions, and did a significant bugfix for the terminal stuff.
+ 
+diff --git a/ChangeLog b/ChangeLog
+index 0f93033..9602fb9 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -772,6 +772,18 @@
+ 	DATA_LEN is less than or equal to MULTIBOOT_SEARCH.
+ 	Reported by Neelkanth Natu <neelnatu at yahoo.com>.
+ 
++2003-03-12  Leonid Lisovskiy  <lly at pisem.net>
++
++	* lib/device.c (get_drive_geometry): grub utility didn't work
++	due to uninitialized 'sector_size' struct geometry member.
++	* stage1/stage1.h (GRUB_NO_DRIVE): Constant moved from
++	stage2/shared.h and its value rolled back to 0xFF for backward
++	compatibility with original grub.
++	* stage1/stage1.S (boot_drive): Use GRUB_NO_DRIVE instead of
++	constant.
++	* stage2/bios.c (get_diskinfo): Workaround for BIOS'es that
++	has CD-ROM drive number = last harddisk + 1.
++
+ 2003-03-10  Yoshinori K. Okuji  <okuji at enbug.org>
+ 
+ 	From Andrew Walrond <andrew at walrond.org>:
+@@ -816,6 +828,42 @@
+ 	thus corrupts the stack.  This is why we specify the exactly 
+ 	necessary size of 0x42 bytes.
+ 
++2003-01-28  Leonid Lisovskiy  <lly at pisem.net>
++
++	ISO9660 support is added.
++
++	* stage2/fsys_iso9660.c: New file - a lot of code stolen from
++	GRUB/98 0.5.
++	* stage2/iso9660.h: Likewise.
++	* stage2/start_torito.S: New file - El Torito boot sector.
++	* stage2/Makefile.am (noinst_HEADERS): iso9660.h added.
++	(libgrub_a_SOURCES): fsys_iso9660.c added.
++	(pkgdata_DATA): iso9660_stage1_5 added.
++	(noinst_PROGRAMS): iso9660_stage1_5.exec added.
++	* configure.in (--disable-iso9660): New option.
++	* stage2/builtins.c (setup_func): Add item for ISO9660 into
++	STAGE1_5_MAP.
++	* stage2/disk_io.c (rawread): Ability to read devices with
++	sector size other than 512 added.
++	(fsys_table): Added entry for ISO9660.
++	(check_and_print_mount): Don't print error when probing
++	partition.
++	(real_open_partition): Cleanup globals after probing.
++	* stage2/filesys.h [FSYS_ISO9660]: Add entries for ISO9660
++	functions.
++	(NUM_FSYS): Added FSYS_ISO9660_NUM.
++	* stage2/shared.h (STAGE2_ID_ISO9660_STAGE1_5): New macro.
++	(GRUB_NO_DRIVE): New constant.
++	(struct geometry): New member 'sector_size'.
++	* stage2/bios.c (get_diskinfo): Request 1.xx version of
++	int13 extensions only since higher version request can
++	destroy El Torito emulation on some BIOS'es.
++	(get_cdinfo): New function - get El Torito emulation parameters.
++	* stage2/asm.S (biosdisk_int13_extensions): pass AX, instead
++	of AH for universality, save EBX,ECX,EDX registers content to
++	avoid data corruption in caller functions.
++	(get_diskinfo_int13_extensions): Removed.
++
+ 2003-01-25  Yoshinori K. Okuji  <okuji at enbug.org>
+ 
+ 	From Steven Dick <ssd.gnu at mmae.ucf.edu>:
+diff --git a/INSTALL b/INSTALL
+index 1ba68a6..a8bce4b 100644
+--- a/INSTALL
++++ b/INSTALL
+@@ -216,6 +216,9 @@ operates.
+ `--disable-xfs'
+      Omit the XFS support in Stage 2.
+ 
++`--disable-btrfs'
++     Omit the BtrFS support in Stage 2.
++
+ `--disable-ufs2'
+      Omit the UFS2 support in Stage 2.
+ 
+diff --git a/Makefile.am b/Makefile.am
+index 63a9a4f..a27da9c 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,4 +1,7 @@
+ # Do not change this order if you don't know what you are doing.
+ AUTOMAKE_OPTIONS = 1.7 gnu
+ SUBDIRS = netboot stage2 stage1 lib grub util docs
++if PLATFORM_EFI
++SUBDIRS += efi
++endif
+ EXTRA_DIST = BUGS MAINTENANCE
+diff --git a/Makefile.in b/Makefile.in
+index 6652366..6cff007 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -1,8 +1,8 @@
+-# Makefile.in generated by automake 1.9.4 from Makefile.am.
++# Makefile.in generated by automake 1.10 from Makefile.am.
+ # @configure_input@
+ 
+ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+-# 2003, 2004  Free Software Foundation, Inc.
++# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+@@ -13,15 +13,11 @@
+ # PARTICULAR PURPOSE.
+ 
+ @SET_MAKE@
+-srcdir = @srcdir@
+-top_srcdir = @top_srcdir@
+ VPATH = @srcdir@
+ pkgdatadir = $(datadir)/@PACKAGE@
+ pkglibdir = $(libdir)/@PACKAGE@
+ pkgincludedir = $(includedir)/@PACKAGE@
+-top_builddir = .
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+-INSTALL = @INSTALL@
+ install_sh_DATA = $(install_sh) -c -m 644
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+@@ -35,19 +31,19 @@ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+ build_triplet = @build@
+ host_triplet = @host@
++subdir = .
+ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
+ 	$(srcdir)/Makefile.in $(srcdir)/config.h.in \
+ 	$(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
+ 	THANKS TODO compile config.guess config.sub depcomp install-sh \
+ 	missing mkinstalldirs
+-subdir = .
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+-	$(top_srcdir)/configure.ac
++	$(top_srcdir)/configure.in
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+- configure.lineno configure.status.lineno
++ configure.lineno config.status.lineno
+ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+ CONFIG_HEADER = config.h
+ CONFIG_CLEAN_FILES =
+@@ -55,10 +51,13 @@ SOURCES =
+ DIST_SOURCES =
+ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ 	html-recursive info-recursive install-data-recursive \
+-	install-exec-recursive install-info-recursive \
+-	install-recursive installcheck-recursive installdirs-recursive \
+-	pdf-recursive ps-recursive uninstall-info-recursive \
+-	uninstall-recursive
++	install-dvi-recursive install-exec-recursive \
++	install-html-recursive install-info-recursive \
++	install-pdf-recursive install-ps-recursive install-recursive \
++	installcheck-recursive installdirs-recursive pdf-recursive \
++	ps-recursive uninstall-recursive
++RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
++  distclean-recursive maintainer-clean-recursive
+ ETAGS = etags
+ CTAGS = ctags
+ DIST_SUBDIRS = $(SUBDIRS)
+@@ -74,17 +73,14 @@ GZIP_ENV = --best
+ distuninstallcheck_listfiles = find . -type f -print
+ distcleancheck_listfiles = find . -type f -print
+ ACLOCAL = @ACLOCAL@
+-AMDEP_FALSE = @AMDEP_FALSE@
+-AMDEP_TRUE = @AMDEP_TRUE@
+ AMTAR = @AMTAR@
+ AUTOCONF = @AUTOCONF@
+ AUTOHEADER = @AUTOHEADER@
+ AUTOMAKE = @AUTOMAKE@
+ AWK = @AWK@
+-BUILD_EXAMPLE_KERNEL_FALSE = @BUILD_EXAMPLE_KERNEL_FALSE@
+-BUILD_EXAMPLE_KERNEL_TRUE = @BUILD_EXAMPLE_KERNEL_TRUE@
+ CC = @CC@
+ CCAS = @CCAS@
++CCASDEPMODE = @CCASDEPMODE@
+ CCASFLAGS = @CCASFLAGS@
+ CCDEPMODE = @CCDEPMODE@
+ CFLAGS = @CFLAGS@
+@@ -93,18 +89,16 @@ CPPFLAGS = @CPPFLAGS@
+ CYGPATH_W = @CYGPATH_W@
+ DEFS = @DEFS@
+ DEPDIR = @DEPDIR@
+-DISKLESS_SUPPORT_FALSE = @DISKLESS_SUPPORT_FALSE@
+-DISKLESS_SUPPORT_TRUE = @DISKLESS_SUPPORT_TRUE@
+ ECHO_C = @ECHO_C@
+ ECHO_N = @ECHO_N@
+ ECHO_T = @ECHO_T@
+ EGREP = @EGREP@
+ EXEEXT = @EXEEXT@
+ FSYS_CFLAGS = @FSYS_CFLAGS@
++GREP = @GREP@
+ GRUB_CFLAGS = @GRUB_CFLAGS@
+ GRUB_LIBS = @GRUB_LIBS@
+-HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@
+-HERCULES_SUPPORT_TRUE = @HERCULES_SUPPORT_TRUE@
++INSTALL = @INSTALL@
+ INSTALL_DATA = @INSTALL_DATA@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+@@ -112,14 +106,12 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
++LOADER_LDFLAGS = @LOADER_LDFLAGS@
+ LTLIBOBJS = @LTLIBOBJS@
+ MAINT = @MAINT@
+-MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+-MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+ MAKEINFO = @MAKEINFO@
++MKDIR_P = @MKDIR_P@
+ NETBOOT_DRIVERS = @NETBOOT_DRIVERS@
+-NETBOOT_SUPPORT_FALSE = @NETBOOT_SUPPORT_FALSE@
+-NETBOOT_SUPPORT_TRUE = @NETBOOT_SUPPORT_TRUE@
+ NET_CFLAGS = @NET_CFLAGS@
+ NET_EXTRAFLAGS = @NET_EXTRAFLAGS@
+ OBJCOPY = @OBJCOPY@
+@@ -133,22 +125,17 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
+ PATH_SEPARATOR = @PATH_SEPARATOR@
+ PERL = @PERL@
+ RANLIB = @RANLIB@
+-SERIAL_SPEED_SIMULATION_FALSE = @SERIAL_SPEED_SIMULATION_FALSE@
+-SERIAL_SPEED_SIMULATION_TRUE = @SERIAL_SPEED_SIMULATION_TRUE@
+-SERIAL_SUPPORT_FALSE = @SERIAL_SUPPORT_FALSE@
+-SERIAL_SUPPORT_TRUE = @SERIAL_SUPPORT_TRUE@
+ SET_MAKE = @SET_MAKE@
+ SHELL = @SHELL@
+ STAGE1_CFLAGS = @STAGE1_CFLAGS@
+ STAGE2_CFLAGS = @STAGE2_CFLAGS@
+ STRIP = @STRIP@
+ VERSION = @VERSION@
++abs_builddir = @abs_builddir@
++abs_srcdir = @abs_srcdir@
++abs_top_builddir = @abs_top_builddir@
++abs_top_srcdir = @abs_top_srcdir@
+ ac_ct_CC = @ac_ct_CC@
+-ac_ct_OBJCOPY = @ac_ct_OBJCOPY@
+-ac_ct_RANLIB = @ac_ct_RANLIB@
+-ac_ct_STRIP = @ac_ct_STRIP@
+-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+ am__include = @am__include@
+ am__leading_dot = @am__leading_dot@
+ am__quote = @am__quote@
+@@ -160,28 +147,39 @@ build_alias = @build_alias@
+ build_cpu = @build_cpu@
+ build_os = @build_os@
+ build_vendor = @build_vendor@
++builddir = @builddir@
+ datadir = @datadir@
++datarootdir = @datarootdir@
++docdir = @docdir@
++dvidir = @dvidir@
+ exec_prefix = @exec_prefix@
+ host = @host@
+ host_alias = @host_alias@
+ host_cpu = @host_cpu@
+ host_os = @host_os@
+ host_vendor = @host_vendor@
++htmldir = @htmldir@
+ includedir = @includedir@
+ infodir = @infodir@
+ install_sh = @install_sh@
+ libdir = @libdir@
+ libexecdir = @libexecdir@
++localedir = @localedir@
+ localstatedir = @localstatedir@
+ mandir = @mandir@
+ mkdir_p = @mkdir_p@
+ oldincludedir = @oldincludedir@
++pdfdir = @pdfdir@
+ prefix = @prefix@
+ program_transform_name = @program_transform_name@
++psdir = @psdir@
+ sbindir = @sbindir@
+ sharedstatedir = @sharedstatedir@
++srcdir = @srcdir@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
++top_builddir = @top_builddir@
++top_srcdir = @top_srcdir@
+ 
+ # Do not change this order if you don't know what you are doing.
+ AUTOMAKE_OPTIONS = 1.7 gnu
+@@ -228,7 +226,7 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ config.h: stamp-h1
+ 	@if test ! -f $@; then \
+ 	  rm -f stamp-h1; \
+-	  $(MAKE) stamp-h1; \
++	  $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
+ 	else :; fi
+ 
+ stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+@@ -241,7 +239,6 @@ $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ 
+ distclean-hdr:
+ 	-rm -f config.h stamp-h1
+-uninstall-info-am:
+ 
+ # This directory's subdirectories are mostly independent; you can cd
+ # into them and run `make' without going through this Makefile.
+@@ -250,7 +247,13 @@ uninstall-info-am:
+ #     (which will cause the Makefiles to be regenerated when you run `make');
+ # (2) otherwise, pass the desired values on the `make' command line.
+ $(RECURSIVE_TARGETS):
+-	@set fnord $$MAKEFLAGS; amf=$$2; \
++	@failcom='exit 1'; \
++	for f in x $$MAKEFLAGS; do \
++	  case $$f in \
++	    *=* | --[!k]*);; \
++	    *k*) failcom='fail=yes';; \
++	  esac; \
++	done; \
+ 	dot_seen=no; \
+ 	target=`echo $@ | sed s/-recursive//`; \
+ 	list='$(SUBDIRS)'; for subdir in $$list; do \
+@@ -262,15 +265,20 @@ $(RECURSIVE_TARGETS):
+ 	    local_target="$$target"; \
+ 	  fi; \
+ 	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+-	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
++	  || eval $$failcom; \
+ 	done; \
+ 	if test "$$dot_seen" = "no"; then \
+ 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ 	fi; test -z "$$fail"
+ 
+-mostlyclean-recursive clean-recursive distclean-recursive \
+-maintainer-clean-recursive:
+-	@set fnord $$MAKEFLAGS; amf=$$2; \
++$(RECURSIVE_CLEAN_TARGETS):
++	@failcom='exit 1'; \
++	for f in x $$MAKEFLAGS; do \
++	  case $$f in \
++	    *=* | --[!k]*);; \
++	    *k*) failcom='fail=yes';; \
++	  esac; \
++	done; \
+ 	dot_seen=no; \
+ 	case "$@" in \
+ 	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+@@ -291,7 +299,7 @@ maintainer-clean-recursive:
+ 	    local_target="$$target"; \
+ 	  fi; \
+ 	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+-	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
++	  || eval $$failcom; \
+ 	done && test -z "$$fail"
+ tags-recursive:
+ 	list='$(SUBDIRS)'; for subdir in $$list; do \
+@@ -365,24 +373,22 @@ distclean-tags:
+ 
+ distdir: $(DISTFILES)
+ 	$(am__remove_distdir)
+-	mkdir $(distdir)
+-	$(mkdir_p) $(distdir)/util
+-	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+-	list='$(DISTFILES)'; for file in $$list; do \
+-	  case $$file in \
+-	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+-	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+-	  esac; \
++	test -d $(distdir) || mkdir $(distdir)
++	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
++	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
++	list='$(DISTFILES)'; \
++	  dist_files=`for file in $$list; do echo $$file; done | \
++	  sed -e "s|^$$srcdirstrip/||;t" \
++	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
++	case $$dist_files in \
++	  */*) $(MKDIR_P) `echo "$$dist_files" | \
++			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
++			   sort -u` ;; \
++	esac; \
++	for file in $$dist_files; do \
+ 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+-	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+-	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+-	    dir="/$$dir"; \
+-	    $(mkdir_p) "$(distdir)$$dir"; \
+-	  else \
+-	    dir=''; \
+-	  fi; \
+ 	  if test -d $$d/$$file; then \
++	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ 	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ 	    fi; \
+@@ -396,7 +402,7 @@ distdir: $(DISTFILES)
+ 	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ 	  if test "$$subdir" = .; then :; else \
+ 	    test -d "$(distdir)/$$subdir" \
+-	    || $(mkdir_p) "$(distdir)/$$subdir" \
++	    || $(MKDIR_P) "$(distdir)/$$subdir" \
+ 	    || exit 1; \
+ 	    distdir=`$(am__cd) $(distdir) && pwd`; \
+ 	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+@@ -404,6 +410,8 @@ distdir: $(DISTFILES)
+ 	      $(MAKE) $(AM_MAKEFLAGS) \
+ 	        top_distdir="$$top_distdir" \
+ 	        distdir="$$distdir/$$subdir" \
++		am__remove_distdir=: \
++		am__skip_length_check=: \
+ 	        distdir) \
+ 	      || exit 1; \
+ 	  fi; \
+@@ -411,7 +419,7 @@ distdir: $(DISTFILES)
+ 	-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+ 	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+ 	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+-	  ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
++	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
+ 	|| chmod -R a+r $(distdir)
+ dist-gzip: distdir
+ 	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+@@ -486,7 +494,7 @@ distcheck: dist
+ 	$(am__remove_distdir)
+ 	@(echo "$(distdir) archives ready for distribution: "; \
+ 	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+-	  sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
++	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
+ distuninstallcheck:
+ 	@cd $(distuninstallcheck_dir) \
+ 	&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+@@ -555,12 +563,20 @@ info-am:
+ 
+ install-data-am:
+ 
++install-dvi: install-dvi-recursive
++
+ install-exec-am:
+ 
++install-html: install-html-recursive
++
+ install-info: install-info-recursive
+ 
+ install-man:
+ 
++install-pdf: install-pdf-recursive
++
++install-ps: install-ps-recursive
++
+ installcheck-am:
+ 
+ maintainer-clean: maintainer-clean-recursive
+@@ -581,24 +597,25 @@ ps: ps-recursive
+ 
+ ps-am:
+ 
+-uninstall-am: uninstall-info-am
+-
+-uninstall-info: uninstall-info-recursive
+-
+-.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
+-	check-am clean clean-generic clean-recursive ctags \
+-	ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-shar \
+-	dist-tarZ dist-zip distcheck distclean distclean-generic \
+-	distclean-hdr distclean-recursive distclean-tags \
+-	distcleancheck distdir distuninstallcheck dvi dvi-am html \
+-	html-am info info-am install install-am install-data \
+-	install-data-am install-exec install-exec-am install-info \
+-	install-info-am install-man install-strip installcheck \
+-	installcheck-am installdirs installdirs-am maintainer-clean \
+-	maintainer-clean-generic maintainer-clean-recursive \
+-	mostlyclean mostlyclean-generic mostlyclean-recursive pdf \
+-	pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
+-	uninstall-info-am
++uninstall-am:
++
++.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
++	install-strip
++
++.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
++	all all-am am--refresh check check-am clean clean-generic \
++	ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
++	dist-shar dist-tarZ dist-zip distcheck distclean \
++	distclean-generic distclean-hdr distclean-tags distcleancheck \
++	distdir distuninstallcheck dvi dvi-am html html-am info \
++	info-am install install-am install-data install-data-am \
++	install-dvi install-dvi-am install-exec install-exec-am \
++	install-html install-html-am install-info install-info-am \
++	install-man install-pdf install-pdf-am install-ps \
++	install-ps-am install-strip installcheck installcheck-am \
++	installdirs installdirs-am maintainer-clean \
++	maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
++	pdf-am ps ps-am tags tags-recursive uninstall uninstall-am
+ 
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+diff --git a/acinclude.m4 b/acinclude.m4
+index 368839c..1cf1d67 100644
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -44,6 +44,8 @@ AC_DEFUN([grub_PROG_OBJCOPY_ABSOLUTE],
+ [AC_MSG_CHECKING([whether ${OBJCOPY} works for absolute addresses])
+ AC_CACHE_VAL(grub_cv_prog_objcopy_absolute,
+ [cat > conftest.c <<\EOF
++void cmain(void);
++
+ void
+ cmain (void)
+ {
+@@ -57,7 +59,7 @@ else
+ fi
+ grub_cv_prog_objcopy_absolute=yes
+ for link_addr in 2000 8000 7C00; do
+-  if AC_TRY_COMMAND([${CC-cc} ${CFLAGS} -nostdlib -Wl,-N -Wl,-Ttext -Wl,$link_addr conftest.o -o conftest.exec]); then :
++  if AC_TRY_COMMAND([${CC-cc} ${CFLAGS} -nostdlib -Wl,-N -Wl,-Ttext -Wl,$link_addr -Wl,--build-id=none conftest.o -o conftest.exec]); then :
+   else
+     AC_MSG_ERROR([${CC-cc} cannot link at address $link_addr])
+   fi
+diff --git a/aclocal.m4 b/aclocal.m4
+index aa691f6..9965d5d 100644
+--- a/aclocal.m4
++++ b/aclocal.m4
+@@ -1,7 +1,7 @@
+-# generated automatically by aclocal 1.9.4 -*- Autoconf -*-
++# generated automatically by aclocal 1.10 -*- Autoconf -*-
+ 
+-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+-# Free Software Foundation, Inc.
++# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
++# 2005, 2006  Free Software Foundation, Inc.
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+@@ -11,55 +11,52 @@
+ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ # PARTICULAR PURPOSE.
+ 
+-#                                                        -*- Autoconf -*-
+-# Copyright (C) 2002, 2003  Free Software Foundation, Inc.
+-# Generated from amversion.in; do not edit by hand.
+-
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2, or (at your option)
+-# any later version.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
++m4_if(m4_PACKAGE_VERSION, [2.61],,
++[m4_fatal([this file was generated for autoconf 2.61.
++You have another version of autoconf.  If you want to use that,
++you should regenerate the build system entirely.], [63])])
+ 
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
++# Copyright (C) 2002, 2003, 2005, 2006  Free Software Foundation, Inc.
++#
++# This file is free software; the Free Software Foundation
++# gives unlimited permission to copy and/or distribute it,
++# with or without modifications, as long as this notice is preserved.
+ 
+ # AM_AUTOMAKE_VERSION(VERSION)
+ # ----------------------------
+ # Automake X.Y traces this macro to ensure aclocal.m4 has been
+ # generated from the m4 files accompanying Automake X.Y.
+-AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
++# (This private macro should not be called outside this file.)
++AC_DEFUN([AM_AUTOMAKE_VERSION],
++[am__api_version='1.10'
++dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
++dnl require some minimum version.  Point them to the right macro.
++m4_if([$1], [1.10], [],
++      [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
++])
++
++# _AM_AUTOCONF_VERSION(VERSION)
++# -----------------------------
++# aclocal traces this macro to find the Autoconf version.
++# This is a private macro too.  Using m4_define simplifies
++# the logic in aclocal, which can simply ignore this definition.
++m4_define([_AM_AUTOCONF_VERSION], [])
+ 
+ # AM_SET_CURRENT_AUTOMAKE_VERSION
+ # -------------------------------
+-# Call AM_AUTOMAKE_VERSION so it can be traced.
++# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
+ # This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
+ AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+-	 [AM_AUTOMAKE_VERSION([1.9.4])])
++[AM_AUTOMAKE_VERSION([1.10])dnl
++_AM_AUTOCONF_VERSION(m4_PACKAGE_VERSION)])
+ 
+-# AM_AUX_DIR_EXPAND
++# AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
+ 
+-# Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+-
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2, or (at your option)
+-# any later version.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
+-
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+-# 02111-1307, USA.
++# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
++#
++# This file is free software; the Free Software Foundation
++# gives unlimited permission to copy and/or distribute it,
++# with or without modifications, as long as this notice is preserved.
+ 
+ # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+ # $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
+@@ -106,26 +103,16 @@ AC_PREREQ([2.50])dnl
+ am_aux_dir=`cd $ac_aux_dir && pwd`
+ ])
+ 
+-# AM_CONDITIONAL                                              -*- Autoconf -*-
+-
+-# Copyright (C) 1997, 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
+-
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2, or (at your option)
+-# any later version.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
++# AM_CONDITIONAL                                            -*- Autoconf -*-
+ 
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+-# 02111-1307, USA.
++# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006
++# Free Software Foundation, Inc.
++#
++# This file is free software; the Free Software Foundation
++# gives unlimited permission to copy and/or distribute it,
++# with or without modifications, as long as this notice is preserved.
+ 
+-# serial 6
++# serial 8
+ 
+ # AM_CONDITIONAL(NAME, SHELL-CONDITION)
+ # -------------------------------------
+@@ -134,8 +121,10 @@ AC_DEFUN([AM_CONDITIONAL],
+ [AC_PREREQ(2.52)dnl
+  ifelse([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
+ 	[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+-AC_SUBST([$1_TRUE])
+-AC_SUBST([$1_FALSE])
++AC_SUBST([$1_TRUE])dnl
++AC_SUBST([$1_FALSE])dnl
++_AM_SUBST_NOTMAKE([$1_TRUE])dnl
++_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+ if $2; then
+   $1_TRUE=
+   $1_FALSE='#'
+@@ -149,26 +138,14 @@ AC_CONFIG_COMMANDS_PRE(
+ Usually this means the macro was only invoked conditionally.]])
+ fi])])
+ 
+-# serial 7						-*- Autoconf -*-
+-
+-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
++# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+ # Free Software Foundation, Inc.
++#
++# This file is free software; the Free Software Foundation
++# gives unlimited permission to copy and/or distribute it,
++# with or without modifications, as long as this notice is preserved.
+ 
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2, or (at your option)
+-# any later version.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
+-
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+-# 02111-1307, USA.
+-
++# serial 9
+ 
+ # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+ # written in clear, in which case automake, when reading aclocal.m4,
+@@ -177,7 +154,6 @@ fi])])
+ # CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+ 
+ 
+-
+ # _AM_DEPENDENCIES(NAME)
+ # ----------------------
+ # See how the compiler implements dependency checking.
+@@ -197,6 +173,7 @@ AC_REQUIRE([AM_DEP_TRACK])dnl
+ ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
+        [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
+        [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
++       [$1], UPC,  [depcc="$UPC"  am_compiler_list=],
+        [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
+                    [depcc="$$1"   am_compiler_list=])
+ 
+@@ -262,6 +239,7 @@ AC_CACHE_CHECK([dependency style of $depcc],
+        depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+        $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+          >/dev/null 2>conftest.err &&
++       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+        grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+        grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+        ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+@@ -314,30 +292,20 @@ if test "x$enable_dependency_tracking" != xno; then
+   AMDEPBACKSLASH='\'
+ fi
+ AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+-AC_SUBST([AMDEPBACKSLASH])
++AC_SUBST([AMDEPBACKSLASH])dnl
++_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+ ])
+ 
+-# Generate code to set up dependency tracking.   -*- Autoconf -*-
+-
+-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
+-#   Free Software Foundation, Inc.
++# Generate code to set up dependency tracking.              -*- Autoconf -*-
+ 
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2, or (at your option)
+-# any later version.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
+-
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+-# 02111-1307, USA.
++# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
++# Free Software Foundation, Inc.
++#
++# This file is free software; the Free Software Foundation
++# gives unlimited permission to copy and/or distribute it,
++# with or without modifications, as long as this notice is preserved.
+ 
+-#serial 2
++#serial 3
+ 
+ # _AM_OUTPUT_DEPENDENCY_COMMANDS
+ # ------------------------------
+@@ -350,8 +318,9 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+   # some people rename them; so instead we look at the file content.
+   # Grep'ing the first line is not enough: some people post-process
+   # each Makefile.in and add a new line on top of each file to say so.
+-  # So let's grep whole file.
+-  if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
++  # Grep'ing the whole file is not good either: AIX grep has a line
++  # limit of 2048, but all sed's we know have understand at least 4000.
++  if sed 10q "$mf" | grep '^#.*generated by automake' > /dev/null 2>&1; then
+     dirpart=`AS_DIRNAME("$mf")`
+   else
+     continue
+@@ -396,30 +365,19 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+      [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
+ ])
+ 
+-# Do all the work for Automake.                            -*- Autoconf -*-
++# Do all the work for Automake.                             -*- Autoconf -*-
+ 
+-# This macro actually does too much some checks are only needed if
+-# your package does certain things.  But this isn't really a big deal.
+-
+-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+-# Free Software Foundation, Inc.
+-
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2, or (at your option)
+-# any later version.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
++# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
++# 2005, 2006 Free Software Foundation, Inc.
++#
++# This file is free software; the Free Software Foundation
++# gives unlimited permission to copy and/or distribute it,
++# with or without modifications, as long as this notice is preserved.
+ 
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+-# 02111-1307, USA.
++# serial 12
+ 
+-# serial 11
++# This macro actually does too much.  Some checks are only needed if
++# your package does certain things.  But this isn't really a big deal.
+ 
+ # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+ # AM_INIT_AUTOMAKE([OPTIONS])
+@@ -433,16 +391,20 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+ # arguments mandatory, and then we can depend on a new Autoconf
+ # release and drop the old call support.
+ AC_DEFUN([AM_INIT_AUTOMAKE],
+-[AC_PREREQ([2.58])dnl
++[AC_PREREQ([2.60])dnl
+ dnl Autoconf wants to disallow AM_ names.  We explicitly allow
+ dnl the ones we care about.
+ m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+ AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+ AC_REQUIRE([AC_PROG_INSTALL])dnl
+-# test to see if srcdir already configured
+-if test "`cd $srcdir && pwd`" != "`pwd`" &&
+-   test -f $srcdir/config.status; then
+-  AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
++if test "`cd $srcdir && pwd`" != "`pwd`"; then
++  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
++  # is not polluted with repeated "-I."
++  AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
++  # test to see if srcdir already configured
++  if test -f $srcdir/config.status; then
++    AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
++  fi
+ fi
+ 
+ # test whether we have cygpath
+@@ -462,6 +424,9 @@ m4_ifval([$2],
+  AC_SUBST([PACKAGE], [$1])dnl
+  AC_SUBST([VERSION], [$2])],
+ [_AM_SET_OPTIONS([$1])dnl
++dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
++m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
++  [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+  AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+  AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+ 
+@@ -497,6 +462,10 @@ AC_PROVIDE_IFELSE([AC_PROG_CXX],
+                   [_AM_DEPENDENCIES(CXX)],
+                   [define([AC_PROG_CXX],
+                           defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
++AC_PROVIDE_IFELSE([AC_PROG_OBJC],
++                  [_AM_DEPENDENCIES(OBJC)],
++                  [define([AC_PROG_OBJC],
++                          defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
+ ])
+ ])
+ 
+@@ -521,51 +490,27 @@ for _am_header in $config_headers :; do
+ done
+ echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
+ 
++# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
++#
++# This file is free software; the Free Software Foundation
++# gives unlimited permission to copy and/or distribute it,
++# with or without modifications, as long as this notice is preserved.
++
+ # AM_PROG_INSTALL_SH
+ # ------------------
+ # Define $install_sh.
+-
+-# Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+-
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2, or (at your option)
+-# any later version.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
+-
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+-# 02111-1307, USA.
+-
+ AC_DEFUN([AM_PROG_INSTALL_SH],
+ [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+-install_sh=${install_sh-"$am_aux_dir/install-sh"}
++install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"}
+ AC_SUBST(install_sh)])
+ 
+-#                                                          -*- Autoconf -*-
+-# Copyright (C) 2003  Free Software Foundation, Inc.
+-
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2, or (at your option)
+-# any later version.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
+-
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+-# 02111-1307, USA.
++# Copyright (C) 2003, 2005  Free Software Foundation, Inc.
++#
++# This file is free software; the Free Software Foundation
++# gives unlimited permission to copy and/or distribute it,
++# with or without modifications, as long as this notice is preserved.
+ 
+-# serial 1
++# serial 2
+ 
+ # Check whether the underlying file-system supports filenames
+ # with a leading dot.  For instance MS-DOS doesn't.
+@@ -580,28 +525,17 @@ fi
+ rmdir .tst 2>/dev/null
+ AC_SUBST([am__leading_dot])])
+ 
+-# Add --enable-maintainer-mode option to configure.
++# Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
+ # From Jim Meyering
+ 
+-# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004
++# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005
+ # Free Software Foundation, Inc.
++#
++# This file is free software; the Free Software Foundation
++# gives unlimited permission to copy and/or distribute it,
++# with or without modifications, as long as this notice is preserved.
+ 
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2, or (at your option)
+-# any later version.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
+-
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+-# 02111-1307, USA.
+-
+-# serial 3
++# serial 4
+ 
+ AC_DEFUN([AM_MAINTAINER_MODE],
+ [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+@@ -620,26 +554,15 @@ AC_DEFUN([AM_MAINTAINER_MODE],
+ 
+ AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
+ 
+-# Check to see how 'make' treats includes.	-*- Autoconf -*-
+-
+-# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+-
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2, or (at your option)
+-# any later version.
++# Check to see how 'make' treats includes.	            -*- Autoconf -*-
+ 
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
+-
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+-# 02111-1307, USA.
++# Copyright (C) 2001, 2002, 2003, 2005  Free Software Foundation, Inc.
++#
++# This file is free software; the Free Software Foundation
++# gives unlimited permission to copy and/or distribute it,
++# with or without modifications, as long as this notice is preserved.
+ 
+-# serial 2
++# serial 3
+ 
+ # AM_MAKE_INCLUDE()
+ # -----------------
+@@ -683,27 +606,16 @@ AC_MSG_RESULT([$_am_result])
+ rm -f confinc confmf
+ ])
+ 
+-#  -*- Autoconf -*-
++# Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
+ 
++# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005
++# Free Software Foundation, Inc.
++#
++# This file is free software; the Free Software Foundation
++# gives unlimited permission to copy and/or distribute it,
++# with or without modifications, as long as this notice is preserved.
+ 
+-# Copyright (C) 1997, 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
+-
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2, or (at your option)
+-# any later version.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
+-
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+-# 02111-1307, USA.
+-
+-# serial 3
++# serial 5
+ 
+ # AM_MISSING_PROG(NAME, PROGRAM)
+ # ------------------------------
+@@ -719,6 +631,7 @@ AC_SUBST($1)])
+ # If it does, set am_missing_run to use it, otherwise, to nothing.
+ AC_DEFUN([AM_MISSING_HAS_RUN],
+ [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
++AC_REQUIRE_AUX_FILE([missing])dnl
+ test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+ # Use eval to expand $SHELL
+ if eval "$MISSING --run true"; then
+@@ -729,100 +642,41 @@ else
+ fi
+ ])
+ 
++# Copyright (C) 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
++#
++# This file is free software; the Free Software Foundation
++# gives unlimited permission to copy and/or distribute it,
++# with or without modifications, as long as this notice is preserved.
++
+ # AM_PROG_MKDIR_P
+ # ---------------
+-# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
+-
+-# Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+-
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2, or (at your option)
+-# any later version.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
+-
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+-# 02111-1307, USA.
+-
+-# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
+-# created by `make install' are always world readable, even if the
+-# installer happens to have an overly restrictive umask (e.g. 077).
+-# This was a mistake.  There are at least two reasons why we must not
+-# use `-m 0755':
+-#   - it causes special bits like SGID to be ignored,
+-#   - it may be too restrictive (some setups expect 775 directories).
+-#
+-# Do not use -m 0755 and let people choose whatever they expect by
+-# setting umask.
+-#
+-# We cannot accept any implementation of `mkdir' that recognizes `-p'.
+-# Some implementations (such as Solaris 8's) are not thread-safe: if a
+-# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c'
+-# concurrently, both version can detect that a/ is missing, but only
+-# one can create it and the other will error out.  Consequently we
+-# restrict ourselves to GNU make (using the --version option ensures
+-# this.)
++# Check for `mkdir -p'.
+ AC_DEFUN([AM_PROG_MKDIR_P],
+-[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
+-  # We used to keeping the `.' as first argument, in order to
+-  # allow $(mkdir_p) to be used without argument.  As in
+-  #   $(mkdir_p) $(somedir)
+-  # where $(somedir) is conditionally defined.  However this is wrong
+-  # for two reasons:
+-  #  1. if the package is installed by a user who cannot write `.'
+-  #     make install will fail,
+-  #  2. the above comment should most certainly read
+-  #     $(mkdir_p) $(DESTDIR)$(somedir)
+-  #     so it does not work when $(somedir) is undefined and
+-  #     $(DESTDIR) is not.
+-  #  To support the latter case, we have to write
+-  #     test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
+-  #  so the `.' trick is pointless.
+-  mkdir_p='mkdir -p --'
+-else
+-  # On NextStep and OpenStep, the `mkdir' command does not
+-  # recognize any option.  It will interpret all options as
+-  # directories to create, and then abort because `.' already
+-  # exists.
+-  for d in ./-p ./--version;
+-  do
+-    test -d $d && rmdir $d
+-  done
+-  # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
+-  if test -f "$ac_aux_dir/mkinstalldirs"; then
+-    mkdir_p='$(mkinstalldirs)'
+-  else
+-    mkdir_p='$(install_sh) -d'
+-  fi
+-fi
+-AC_SUBST([mkdir_p])])
+-
+-# Helper functions for option handling.                    -*- Autoconf -*-
+-
+-# Copyright (C) 2001, 2002, 2003  Free Software Foundation, Inc.
+-
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2, or (at your option)
+-# any later version.
++[AC_PREREQ([2.60])dnl
++AC_REQUIRE([AC_PROG_MKDIR_P])dnl
++dnl Automake 1.8 to 1.9.6 used to define mkdir_p.  We now use MKDIR_P,
++dnl while keeping a definition of mkdir_p for backward compatibility.
++dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
++dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
++dnl Makefile.ins that do not define MKDIR_P, so we do our own
++dnl adjustment using top_builddir (which is defined more often than
++dnl MKDIR_P).
++AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
++case $mkdir_p in
++  [[\\/$]]* | ?:[[\\/]]*) ;;
++  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
++esac
++])
+ 
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
++# Helper functions for option handling.                     -*- Autoconf -*-
+ 
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+-# 02111-1307, USA.
++# Copyright (C) 2001, 2002, 2003, 2005  Free Software Foundation, Inc.
++#
++# This file is free software; the Free Software Foundation
++# gives unlimited permission to copy and/or distribute it,
++# with or without modifications, as long as this notice is preserved.
+ 
+-# serial 2
++# serial 3
+ 
+ # _AM_MANGLE_OPTION(NAME)
+ # -----------------------
+@@ -847,28 +701,16 @@ AC_DEFUN([_AM_SET_OPTIONS],
+ AC_DEFUN([_AM_IF_OPTION],
+ [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+ 
+-#
+-# Check to make sure that the build environment is sane.
+-#
+-
+-# Copyright (C) 1996, 1997, 2000, 2001, 2003 Free Software Foundation, Inc.
+-
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2, or (at your option)
+-# any later version.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
++# Check to make sure that the build environment is sane.    -*- Autoconf -*-
+ 
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+-# 02111-1307, USA.
++# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
++# Free Software Foundation, Inc.
++#
++# This file is free software; the Free Software Foundation
++# gives unlimited permission to copy and/or distribute it,
++# with or without modifications, as long as this notice is preserved.
+ 
+-# serial 3
++# serial 4
+ 
+ # AM_SANITY_CHECK
+ # ---------------
+@@ -911,25 +753,14 @@ Check your system clock])
+ fi
+ AC_MSG_RESULT(yes)])
+ 
+-# AM_PROG_INSTALL_STRIP
+-
+-# Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+-
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2, or (at your option)
+-# any later version.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
+-
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+-# 02111-1307, USA.
++# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
++#
++# This file is free software; the Free Software Foundation
++# gives unlimited permission to copy and/or distribute it,
++# with or without modifications, as long as this notice is preserved.
+ 
++# AM_PROG_INSTALL_STRIP
++# ---------------------
+ # One issue with vendor `install' (even GNU) is that you can't
+ # specify the program used to strip binaries.  This is especially
+ # annoying in cross-compiling environments, where the build's strip
+@@ -947,30 +778,30 @@ dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+ if test "$cross_compiling" != no; then
+   AC_CHECK_TOOL([STRIP], [strip], :)
+ fi
+-INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
++INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+ AC_SUBST([INSTALL_STRIP_PROGRAM])])
+ 
+-# Check how to create a tarball.                            -*- Autoconf -*-
+-
+-# Copyright (C) 2004  Free Software Foundation, Inc.
+-
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2, or (at your option)
+-# any later version.
++# Copyright (C) 2006  Free Software Foundation, Inc.
++#
++# This file is free software; the Free Software Foundation
++# gives unlimited permission to copy and/or distribute it,
++# with or without modifications, as long as this notice is preserved.
+ 
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
++# _AM_SUBST_NOTMAKE(VARIABLE)
++# ---------------------------
++# Prevent Automake from outputing VARIABLE = @VARIABLE@ in Makefile.in.
++# This macro is traced by Automake.
++AC_DEFUN([_AM_SUBST_NOTMAKE])
+ 
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+-# 02111-1307, USA.
++# Check how to create a tarball.                            -*- Autoconf -*-
+ 
+-# serial 1
++# Copyright (C) 2004, 2005  Free Software Foundation, Inc.
++#
++# This file is free software; the Free Software Foundation
++# gives unlimited permission to copy and/or distribute it,
++# with or without modifications, as long as this notice is preserved.
+ 
++# serial 2
+ 
+ # _AM_PROG_TAR(FORMAT)
+ # --------------------
+diff --git a/config.h.in b/config.h.in
+index 68d7c8c..e2128e4 100644
+--- a/config.h.in
++++ b/config.h.in
+@@ -1,4 +1,4 @@
+-/* config.h.in.  Generated from configure.ac by autoheader.  */
++/* config.h.in.  Generated from configure.in by autoheader.  */
+ 
+ /* Define if an absolute indirect call/jump must NOT be prefixed with `*' */
+ #undef ABSOLUTE_WITHOUT_ASTERISK
+@@ -96,6 +96,9 @@
+ /* Define to the version of this package. */
+ #undef PACKAGE_VERSION
+ 
++/* Define if you run on EFI platform. */
++#undef PLATFORM_EFI
++
+ /* Define if there is user specified preset menu string */
+ #undef PRESET_MENU_STRING
+ 
+diff --git a/configure b/configure
+deleted file mode 100755
+index 537ab89..0000000
+--- a/configure
++++ /dev/null
+@@ -1,7639 +0,0 @@
+-#! /bin/sh
+-# Guess values for system-dependent variables and create Makefiles.
+-# Generated by GNU Autoconf 2.59 for GRUB 0.97.
+-#
+-# Report bugs to <bug-grub at gnu.org>.
+-#
+-# Copyright (C) 2003 Free Software Foundation, Inc.
+-# This configure script is free software; the Free Software Foundation
+-# gives unlimited permission to copy, distribute and modify it.
+-## --------------------- ##
+-## M4sh Initialization.  ##
+-## --------------------- ##
+-
+-# Be Bourne compatible
+-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+-  emulate sh
+-  NULLCMD=:
+-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+-  # is contrary to our usage.  Disable this feature.
+-  alias -g '${1+"$@"}'='"$@"'
+-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+-  set -o posix
+-fi
+-DUALCASE=1; export DUALCASE # for MKS sh
+-
+-# Support unset when possible.
+-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+-  as_unset=unset
+-else
+-  as_unset=false
+-fi
+-
+-
+-# Work around bugs in pre-3.0 UWIN ksh.
+-$as_unset ENV MAIL MAILPATH
+-PS1='$ '
+-PS2='> '
+-PS4='+ '
+-
+-# NLS nuisances.
+-for as_var in \
+-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+-  LC_TELEPHONE LC_TIME
+-do
+-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
+-    eval $as_var=C; export $as_var
+-  else
+-    $as_unset $as_var
+-  fi
+-done
+-
+-# Required to use basename.
+-if expr a : '\(a\)' >/dev/null 2>&1; then
+-  as_expr=expr
+-else
+-  as_expr=false
+-fi
+-
+-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+-  as_basename=basename
+-else
+-  as_basename=false
+-fi
+-
+-
+-# Name of the executable.
+-as_me=`$as_basename "$0" ||
+-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+-	 X"$0" : 'X\(//\)$' \| \
+-	 X"$0" : 'X\(/\)$' \| \
+-	 .     : '\(.\)' 2>/dev/null ||
+-echo X/"$0" |
+-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
+-  	  /^X\/\(\/\).*/{ s//\1/; q; }
+-  	  s/.*/./; q'`
+-
+-
+-# PATH needs CR, and LINENO needs CR and PATH.
+-# Avoid depending upon Character Ranges.
+-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+-as_cr_digits='0123456789'
+-as_cr_alnum=$as_cr_Letters$as_cr_digits
+-
+-# The user is always right.
+-if test "${PATH_SEPARATOR+set}" != set; then
+-  echo "#! /bin/sh" >conf$$.sh
+-  echo  "exit 0"   >>conf$$.sh
+-  chmod +x conf$$.sh
+-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+-    PATH_SEPARATOR=';'
+-  else
+-    PATH_SEPARATOR=:
+-  fi
+-  rm -f conf$$.sh
+-fi
+-
+-
+-  as_lineno_1=$LINENO
+-  as_lineno_2=$LINENO
+-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+-  test "x$as_lineno_1" != "x$as_lineno_2" &&
+-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
+-  # Find who we are.  Look in the path if we contain no path at all
+-  # relative or not.
+-  case $0 in
+-    *[\\/]* ) as_myself=$0 ;;
+-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+-done
+-
+-       ;;
+-  esac
+-  # We did not find ourselves, most probably we were run as `sh COMMAND'
+-  # in which case we are not to be found in the path.
+-  if test "x$as_myself" = x; then
+-    as_myself=$0
+-  fi
+-  if test ! -f "$as_myself"; then
+-    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
+-   { (exit 1); exit 1; }; }
+-  fi
+-  case $CONFIG_SHELL in
+-  '')
+-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for as_base in sh bash ksh sh5; do
+-	 case $as_dir in
+-	 /*)
+-	   if ("$as_dir/$as_base" -c '
+-  as_lineno_1=$LINENO
+-  as_lineno_2=$LINENO
+-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+-  test "x$as_lineno_1" != "x$as_lineno_2" &&
+-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
+-	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+-	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+-	     CONFIG_SHELL=$as_dir/$as_base
+-	     export CONFIG_SHELL
+-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+-	   fi;;
+-	 esac
+-       done
+-done
+-;;
+-  esac
+-
+-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+-  # uniformly replaced by the line number.  The first 'sed' inserts a
+-  # line-number line before each line; the second 'sed' does the real
+-  # work.  The second script uses 'N' to pair each line-number line
+-  # with the numbered line, and appends trailing '-' during
+-  # substitution so that $LINENO is not a special case at line end.
+-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
+-  sed '=' <$as_myself |
+-    sed '
+-      N
+-      s,$,-,
+-      : loop
+-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+-      t loop
+-      s,-$,,
+-      s,^['$as_cr_digits']*\n,,
+-    ' >$as_me.lineno &&
+-  chmod +x $as_me.lineno ||
+-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+-   { (exit 1); exit 1; }; }
+-
+-  # Don't try to exec as it changes $[0], causing all sort of problems
+-  # (the dirname of $[0] is not the place where we might find the
+-  # original and so on.  Autoconf is especially sensible to this).
+-  . ./$as_me.lineno
+-  # Exit status is that of the last command.
+-  exit
+-}
+-
+-
+-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+-  *c*,-n*) ECHO_N= ECHO_C='
+-' ECHO_T='	' ;;
+-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+-esac
+-
+-if expr a : '\(a\)' >/dev/null 2>&1; then
+-  as_expr=expr
+-else
+-  as_expr=false
+-fi
+-
+-rm -f conf$$ conf$$.exe conf$$.file
+-echo >conf$$.file
+-if ln -s conf$$.file conf$$ 2>/dev/null; then
+-  # We could just check for DJGPP; but this test a) works b) is more generic
+-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+-  if test -f conf$$.exe; then
+-    # Don't use ln at all; we don't have any links
+-    as_ln_s='cp -p'
+-  else
+-    as_ln_s='ln -s'
+-  fi
+-elif ln conf$$.file conf$$ 2>/dev/null; then
+-  as_ln_s=ln
+-else
+-  as_ln_s='cp -p'
+-fi
+-rm -f conf$$ conf$$.exe conf$$.file
+-
+-if mkdir -p . 2>/dev/null; then
+-  as_mkdir_p=:
+-else
+-  test -d ./-p && rmdir ./-p
+-  as_mkdir_p=false
+-fi
+-
+-as_executable_p="test -f"
+-
+-# Sed expression to map a string onto a valid CPP name.
+-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+-
+-# Sed expression to map a string onto a valid variable name.
+-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+-
+-
+-# IFS
+-# We need space, tab and new line, in precisely that order.
+-as_nl='
+-'
+-IFS=" 	$as_nl"
+-
+-# CDPATH.
+-$as_unset CDPATH
+-
+-
+-# Name of the host.
+-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+-# so uname gets run too.
+-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+-
+-exec 6>&1
+-
+-#
+-# Initializations.
+-#
+-ac_default_prefix=/usr/local
+-ac_config_libobj_dir=.
+-cross_compiling=no
+-subdirs=
+-MFLAGS=
+-MAKEFLAGS=
+-SHELL=${CONFIG_SHELL-/bin/sh}
+-
+-# Maximum number of lines to put in a shell here document.
+-# This variable seems obsolete.  It should probably be removed, and
+-# only ac_max_sed_lines should be used.
+-: ${ac_max_here_lines=38}
+-
+-# Identity of this package.
+-PACKAGE_NAME='GRUB'
+-PACKAGE_TARNAME='grub'
+-PACKAGE_VERSION='0.97'
+-PACKAGE_STRING='GRUB 0.97'
+-PACKAGE_BUGREPORT='bug-grub at gnu.org'
+-
+-ac_unique_file="stage2/stage2.c"
+-# Factoring default headers for most tests.
+-ac_includes_default="\
+-#include <stdio.h>
+-#if HAVE_SYS_TYPES_H
+-# include <sys/types.h>
+-#endif
+-#if HAVE_SYS_STAT_H
+-# include <sys/stat.h>
+-#endif
+-#if STDC_HEADERS
+-# include <stdlib.h>
+-# include <stddef.h>
+-#else
+-# if HAVE_STDLIB_H
+-#  include <stdlib.h>
+-# endif
+-#endif
+-#if HAVE_STRING_H
+-# if !STDC_HEADERS && HAVE_MEMORY_H
+-#  include <memory.h>
+-# endif
+-# include <string.h>
+-#endif
+-#if HAVE_STRINGS_H
+-# include <strings.h>
+-#endif
+-#if HAVE_INTTYPES_H
+-# include <inttypes.h>
+-#else
+-# if HAVE_STDINT_H
+-#  include <stdint.h>
+-# endif
+-#endif
+-#if HAVE_UNISTD_H
+-# include <unistd.h>
+-#endif"
+-
+-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar build build_cpu build_vendor build_os host host_cpu host_vendor host_os MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT PERL CC ac_ct_CC CFLAGS LDFLAGS CPPFLAGS EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CCAS RANLIB ac_ct_RANLIB STAGE1_CFLAGS STAGE2_CFLAGS GRUB_CFLAGS OBJCOPY ac_ct_OBJCOPY GRUB_LIBS CPP EGREP NETBOOT_SUPPORT_T
 RUE NETBOOT_SUPPORT_FALSE DISKLESS_SUPPORT_TRUE DISKLESS_SUPPORT_FALSE HERCULES_SUPPORT_TRUE HERCULES_SUPPORT_FALSE SERIAL_SUPPORT_TRUE SERIAL_SUPPORT_FALSE SERIAL_SPEED_SIMULATION_TRUE SERIAL_SPEED_SIMULATION_FALSE BUILD_EXAMPLE_KERNEL_TRUE BUILD_EXAMPLE_KERNEL_FALSE FSYS_CFLAGS NET_CFLAGS NET_EXTRAFLAGS NETBOOT_DRIVERS CCASFLAGS LIBOBJS LTLIBOBJS'
+-ac_subst_files=''
+-
+-# Initialize some variables set by options.
+-ac_init_help=
+-ac_init_version=false
+-# The variables have the same names as the options, with
+-# dashes changed to underlines.
+-cache_file=/dev/null
+-exec_prefix=NONE
+-no_create=
+-no_recursion=
+-prefix=NONE
+-program_prefix=NONE
+-program_suffix=NONE
+-program_transform_name=s,x,x,
+-silent=
+-site=
+-srcdir=
+-verbose=
+-x_includes=NONE
+-x_libraries=NONE
+-
+-# Installation directory options.
+-# These are left unexpanded so users can "make install exec_prefix=/foo"
+-# and all the variables that are supposed to be based on exec_prefix
+-# by default will actually change.
+-# Use braces instead of parens because sh, perl, etc. also accept them.
+-bindir='${exec_prefix}/bin'
+-sbindir='${exec_prefix}/sbin'
+-libexecdir='${exec_prefix}/libexec'
+-datadir='${prefix}/share'
+-sysconfdir='${prefix}/etc'
+-sharedstatedir='${prefix}/com'
+-localstatedir='${prefix}/var'
+-libdir='${exec_prefix}/lib'
+-includedir='${prefix}/include'
+-oldincludedir='/usr/include'
+-infodir='${prefix}/info'
+-mandir='${prefix}/man'
+-
+-ac_prev=
+-for ac_option
+-do
+-  # If the previous option needs an argument, assign it.
+-  if test -n "$ac_prev"; then
+-    eval "$ac_prev=\$ac_option"
+-    ac_prev=
+-    continue
+-  fi
+-
+-  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
+-
+-  # Accept the important Cygnus configure options, so we can diagnose typos.
+-
+-  case $ac_option in
+-
+-  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+-    ac_prev=bindir ;;
+-  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+-    bindir=$ac_optarg ;;
+-
+-  -build | --build | --buil | --bui | --bu)
+-    ac_prev=build_alias ;;
+-  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+-    build_alias=$ac_optarg ;;
+-
+-  -cache-file | --cache-file | --cache-fil | --cache-fi \
+-  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+-    ac_prev=cache_file ;;
+-  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+-  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+-    cache_file=$ac_optarg ;;
+-
+-  --config-cache | -C)
+-    cache_file=config.cache ;;
+-
+-  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+-    ac_prev=datadir ;;
+-  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+-  | --da=*)
+-    datadir=$ac_optarg ;;
+-
+-  -disable-* | --disable-*)
+-    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+-    # Reject names that are not valid shell variable names.
+-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+-   { (exit 1); exit 1; }; }
+-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+-    eval "enable_$ac_feature=no" ;;
+-
+-  -enable-* | --enable-*)
+-    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+-    # Reject names that are not valid shell variable names.
+-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+-   { (exit 1); exit 1; }; }
+-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+-    case $ac_option in
+-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+-      *) ac_optarg=yes ;;
+-    esac
+-    eval "enable_$ac_feature='$ac_optarg'" ;;
+-
+-  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+-  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+-  | --exec | --exe | --ex)
+-    ac_prev=exec_prefix ;;
+-  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+-  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+-  | --exec=* | --exe=* | --ex=*)
+-    exec_prefix=$ac_optarg ;;
+-
+-  -gas | --gas | --ga | --g)
+-    # Obsolete; use --with-gas.
+-    with_gas=yes ;;
+-
+-  -help | --help | --hel | --he | -h)
+-    ac_init_help=long ;;
+-  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+-    ac_init_help=recursive ;;
+-  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+-    ac_init_help=short ;;
+-
+-  -host | --host | --hos | --ho)
+-    ac_prev=host_alias ;;
+-  -host=* | --host=* | --hos=* | --ho=*)
+-    host_alias=$ac_optarg ;;
+-
+-  -includedir | --includedir | --includedi | --included | --include \
+-  | --includ | --inclu | --incl | --inc)
+-    ac_prev=includedir ;;
+-  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+-  | --includ=* | --inclu=* | --incl=* | --inc=*)
+-    includedir=$ac_optarg ;;
+-
+-  -infodir | --infodir | --infodi | --infod | --info | --inf)
+-    ac_prev=infodir ;;
+-  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+-    infodir=$ac_optarg ;;
+-
+-  -libdir | --libdir | --libdi | --libd)
+-    ac_prev=libdir ;;
+-  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+-    libdir=$ac_optarg ;;
+-
+-  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+-  | --libexe | --libex | --libe)
+-    ac_prev=libexecdir ;;
+-  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+-  | --libexe=* | --libex=* | --libe=*)
+-    libexecdir=$ac_optarg ;;
+-
+-  -localstatedir | --localstatedir | --localstatedi | --localstated \
+-  | --localstate | --localstat | --localsta | --localst \
+-  | --locals | --local | --loca | --loc | --lo)
+-    ac_prev=localstatedir ;;
+-  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+-  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+-  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+-    localstatedir=$ac_optarg ;;
+-
+-  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+-    ac_prev=mandir ;;
+-  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+-    mandir=$ac_optarg ;;
+-
+-  -nfp | --nfp | --nf)
+-    # Obsolete; use --without-fp.
+-    with_fp=no ;;
+-
+-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+-  | --no-cr | --no-c | -n)
+-    no_create=yes ;;
+-
+-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+-    no_recursion=yes ;;
+-
+-  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+-  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+-  | --oldin | --oldi | --old | --ol | --o)
+-    ac_prev=oldincludedir ;;
+-  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+-  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+-  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+-    oldincludedir=$ac_optarg ;;
+-
+-  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+-    ac_prev=prefix ;;
+-  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+-    prefix=$ac_optarg ;;
+-
+-  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+-  | --program-pre | --program-pr | --program-p)
+-    ac_prev=program_prefix ;;
+-  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+-  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+-    program_prefix=$ac_optarg ;;
+-
+-  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+-  | --program-suf | --program-su | --program-s)
+-    ac_prev=program_suffix ;;
+-  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+-  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+-    program_suffix=$ac_optarg ;;
+-
+-  -program-transform-name | --program-transform-name \
+-  | --program-transform-nam | --program-transform-na \
+-  | --program-transform-n | --program-transform- \
+-  | --program-transform | --program-transfor \
+-  | --program-transfo | --program-transf \
+-  | --program-trans | --program-tran \
+-  | --progr-tra | --program-tr | --program-t)
+-    ac_prev=program_transform_name ;;
+-  -program-transform-name=* | --program-transform-name=* \
+-  | --program-transform-nam=* | --program-transform-na=* \
+-  | --program-transform-n=* | --program-transform-=* \
+-  | --program-transform=* | --program-transfor=* \
+-  | --program-transfo=* | --program-transf=* \
+-  | --program-trans=* | --program-tran=* \
+-  | --progr-tra=* | --program-tr=* | --program-t=*)
+-    program_transform_name=$ac_optarg ;;
+-
+-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+-  | -silent | --silent | --silen | --sile | --sil)
+-    silent=yes ;;
+-
+-  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+-    ac_prev=sbindir ;;
+-  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+-  | --sbi=* | --sb=*)
+-    sbindir=$ac_optarg ;;
+-
+-  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+-  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+-  | --sharedst | --shareds | --shared | --share | --shar \
+-  | --sha | --sh)
+-    ac_prev=sharedstatedir ;;
+-  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+-  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+-  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+-  | --sha=* | --sh=*)
+-    sharedstatedir=$ac_optarg ;;
+-
+-  -site | --site | --sit)
+-    ac_prev=site ;;
+-  -site=* | --site=* | --sit=*)
+-    site=$ac_optarg ;;
+-
+-  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+-    ac_prev=srcdir ;;
+-  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+-    srcdir=$ac_optarg ;;
+-
+-  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+-  | --syscon | --sysco | --sysc | --sys | --sy)
+-    ac_prev=sysconfdir ;;
+-  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+-  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+-    sysconfdir=$ac_optarg ;;
+-
+-  -target | --target | --targe | --targ | --tar | --ta | --t)
+-    ac_prev=target_alias ;;
+-  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+-    target_alias=$ac_optarg ;;
+-
+-  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+-    verbose=yes ;;
+-
+-  -version | --version | --versio | --versi | --vers | -V)
+-    ac_init_version=: ;;
+-
+-  -with-* | --with-*)
+-    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+-    # Reject names that are not valid shell variable names.
+-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+-      { echo "$as_me: error: invalid package name: $ac_package" >&2
+-   { (exit 1); exit 1; }; }
+-    ac_package=`echo $ac_package| sed 's/-/_/g'`
+-    case $ac_option in
+-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+-      *) ac_optarg=yes ;;
+-    esac
+-    eval "with_$ac_package='$ac_optarg'" ;;
+-
+-  -without-* | --without-*)
+-    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+-    # Reject names that are not valid shell variable names.
+-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+-      { echo "$as_me: error: invalid package name: $ac_package" >&2
+-   { (exit 1); exit 1; }; }
+-    ac_package=`echo $ac_package | sed 's/-/_/g'`
+-    eval "with_$ac_package=no" ;;
+-
+-  --x)
+-    # Obsolete; use --with-x.
+-    with_x=yes ;;
+-
+-  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+-  | --x-incl | --x-inc | --x-in | --x-i)
+-    ac_prev=x_includes ;;
+-  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+-  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+-    x_includes=$ac_optarg ;;
+-
+-  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+-  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+-    ac_prev=x_libraries ;;
+-  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+-  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+-    x_libraries=$ac_optarg ;;
+-
+-  -*) { echo "$as_me: error: unrecognized option: $ac_option
+-Try \`$0 --help' for more information." >&2
+-   { (exit 1); exit 1; }; }
+-    ;;
+-
+-  *=*)
+-    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+-    # Reject names that are not valid shell variable names.
+-    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
+-      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+-   { (exit 1); exit 1; }; }
+-    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
+-    eval "$ac_envvar='$ac_optarg'"
+-    export $ac_envvar ;;
+-
+-  *)
+-    # FIXME: should be removed in autoconf 3.0.
+-    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+-    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+-      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+-    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+-    ;;
+-
+-  esac
+-done
+-
+-if test -n "$ac_prev"; then
+-  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+-  { echo "$as_me: error: missing argument to $ac_option" >&2
+-   { (exit 1); exit 1; }; }
+-fi
+-
+-# Be sure to have absolute paths.
+-for ac_var in exec_prefix prefix
+-do
+-  eval ac_val=$`echo $ac_var`
+-  case $ac_val in
+-    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
+-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+-   { (exit 1); exit 1; }; };;
+-  esac
+-done
+-
+-# Be sure to have absolute paths.
+-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
+-	      localstatedir libdir includedir oldincludedir infodir mandir
+-do
+-  eval ac_val=$`echo $ac_var`
+-  case $ac_val in
+-    [\\/$]* | ?:[\\/]* ) ;;
+-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+-   { (exit 1); exit 1; }; };;
+-  esac
+-done
+-
+-# There might be people who depend on the old broken behavior: `$host'
+-# used to hold the argument of --host etc.
+-# FIXME: To remove some day.
+-build=$build_alias
+-host=$host_alias
+-target=$target_alias
+-
+-# FIXME: To remove some day.
+-if test "x$host_alias" != x; then
+-  if test "x$build_alias" = x; then
+-    cross_compiling=maybe
+-    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+-    If a cross compiler is detected then cross compile mode will be used." >&2
+-  elif test "x$build_alias" != "x$host_alias"; then
+-    cross_compiling=yes
+-  fi
+-fi
+-
+-ac_tool_prefix=
+-test -n "$host_alias" && ac_tool_prefix=$host_alias-
+-
+-test "$silent" = yes && exec 6>/dev/null
+-
+-
+-# Find the source files, if location was not specified.
+-if test -z "$srcdir"; then
+-  ac_srcdir_defaulted=yes
+-  # Try the directory containing this script, then its parent.
+-  ac_confdir=`(dirname "$0") 2>/dev/null ||
+-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-	 X"$0" : 'X\(//\)[^/]' \| \
+-	 X"$0" : 'X\(//\)$' \| \
+-	 X"$0" : 'X\(/\)' \| \
+-	 .     : '\(.\)' 2>/dev/null ||
+-echo X"$0" |
+-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-  	  /^X\(\/\/\)$/{ s//\1/; q; }
+-  	  /^X\(\/\).*/{ s//\1/; q; }
+-  	  s/.*/./; q'`
+-  srcdir=$ac_confdir
+-  if test ! -r $srcdir/$ac_unique_file; then
+-    srcdir=..
+-  fi
+-else
+-  ac_srcdir_defaulted=no
+-fi
+-if test ! -r $srcdir/$ac_unique_file; then
+-  if test "$ac_srcdir_defaulted" = yes; then
+-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
+-   { (exit 1); exit 1; }; }
+-  else
+-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+-   { (exit 1); exit 1; }; }
+-  fi
+-fi
+-(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
+-  { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
+-   { (exit 1); exit 1; }; }
+-srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
+-ac_env_build_alias_set=${build_alias+set}
+-ac_env_build_alias_value=$build_alias
+-ac_cv_env_build_alias_set=${build_alias+set}
+-ac_cv_env_build_alias_value=$build_alias
+-ac_env_host_alias_set=${host_alias+set}
+-ac_env_host_alias_value=$host_alias
+-ac_cv_env_host_alias_set=${host_alias+set}
+-ac_cv_env_host_alias_value=$host_alias
+-ac_env_target_alias_set=${target_alias+set}
+-ac_env_target_alias_value=$target_alias
+-ac_cv_env_target_alias_set=${target_alias+set}
+-ac_cv_env_target_alias_value=$target_alias
+-ac_env_CC_set=${CC+set}
+-ac_env_CC_value=$CC
+-ac_cv_env_CC_set=${CC+set}
+-ac_cv_env_CC_value=$CC
+-ac_env_CFLAGS_set=${CFLAGS+set}
+-ac_env_CFLAGS_value=$CFLAGS
+-ac_cv_env_CFLAGS_set=${CFLAGS+set}
+-ac_cv_env_CFLAGS_value=$CFLAGS
+-ac_env_LDFLAGS_set=${LDFLAGS+set}
+-ac_env_LDFLAGS_value=$LDFLAGS
+-ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
+-ac_cv_env_LDFLAGS_value=$LDFLAGS
+-ac_env_CPPFLAGS_set=${CPPFLAGS+set}
+-ac_env_CPPFLAGS_value=$CPPFLAGS
+-ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
+-ac_cv_env_CPPFLAGS_value=$CPPFLAGS
+-ac_env_CPP_set=${CPP+set}
+-ac_env_CPP_value=$CPP
+-ac_cv_env_CPP_set=${CPP+set}
+-ac_cv_env_CPP_value=$CPP
+-
+-#
+-# Report the --help message.
+-#
+-if test "$ac_init_help" = "long"; then
+-  # Omit some internal or obsolete options to make the list less imposing.
+-  # This message is too long to be a string in the A/UX 3.1 sh.
+-  cat <<_ACEOF
+-\`configure' configures GRUB 0.97 to adapt to many kinds of systems.
+-
+-Usage: $0 [OPTION]... [VAR=VALUE]...
+-
+-To assign environment variables (e.g., CC, CFLAGS...), specify them as
+-VAR=VALUE.  See below for descriptions of some of the useful variables.
+-
+-Defaults for the options are specified in brackets.
+-
+-Configuration:
+-  -h, --help              display this help and exit
+-      --help=short        display options specific to this package
+-      --help=recursive    display the short help of all the included packages
+-  -V, --version           display version information and exit
+-  -q, --quiet, --silent   do not print \`checking...' messages
+-      --cache-file=FILE   cache test results in FILE [disabled]
+-  -C, --config-cache      alias for \`--cache-file=config.cache'
+-  -n, --no-create         do not create output files
+-      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
+-
+-_ACEOF
+-
+-  cat <<_ACEOF
+-Installation directories:
+-  --prefix=PREFIX         install architecture-independent files in PREFIX
+-			  [$ac_default_prefix]
+-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+-			  [PREFIX]
+-
+-By default, \`make install' will install all the files in
+-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
+-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+-for instance \`--prefix=\$HOME'.
+-
+-For better control, use the options below.
+-
+-Fine tuning of the installation directories:
+-  --bindir=DIR           user executables [EPREFIX/bin]
+-  --sbindir=DIR          system admin executables [EPREFIX/sbin]
+-  --libexecdir=DIR       program executables [EPREFIX/libexec]
+-  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
+-  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
+-  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
+-  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
+-  --libdir=DIR           object code libraries [EPREFIX/lib]
+-  --includedir=DIR       C header files [PREFIX/include]
+-  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
+-  --infodir=DIR          info documentation [PREFIX/info]
+-  --mandir=DIR           man documentation [PREFIX/man]
+-_ACEOF
+-
+-  cat <<\_ACEOF
+-
+-Program names:
+-  --program-prefix=PREFIX            prepend PREFIX to installed program names
+-  --program-suffix=SUFFIX            append SUFFIX to installed program names
+-  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
+-
+-System types:
+-  --build=BUILD     configure for building on BUILD [guessed]
+-  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
+-_ACEOF
+-fi
+-
+-if test -n "$ac_init_help"; then
+-  case $ac_init_help in
+-     short | recursive ) echo "Configuration of GRUB 0.97:";;
+-   esac
+-  cat <<\_ACEOF
+-
+-Optional Features:
+-  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+-  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+-  --enable-maintainer-mode  enable make rules and dependencies not useful
+-			  (and sometimes confusing) to the casual installer
+-  --disable-dependency-tracking  speeds up one-time build
+-  --enable-dependency-tracking   do not reject slow dependency extractors
+-  --disable-ext2fs        disable ext2fs support in Stage 2
+-  --disable-fat           disable FAT support in Stage 2
+-  --disable-ffs           disable FFS support in Stage 2
+-  --disable-ufs2          disable UFS2 support in Stage 2
+-  --disable-minix         disable Minix fs support in Stage 2
+-  --disable-reiserfs      disable ReiserFS support in Stage 2
+-  --disable-vstafs        disable VSTa FS support in Stage 2
+-  --disable-jfs           disable IBM JFS support in Stage 2
+-  --disable-xfs           disable SGI XFS support in Stage 2
+-  --disable-iso9660       disable ISO9660 support in Stage 2
+-  --disable-gunzip        disable decompression in Stage 2
+-  --disable-md5-password  disable MD5 password support in Stage 2
+-  --disable-packet-retransmission
+-                          turn off packet retransmission
+-  --enable-pci-direct     access PCI directly instead of using BIOS
+-  --enable-3c509          enable 3Com509 driver
+-  --enable-3c529          enable 3Com529 driver
+-  --enable-3c595          enable 3Com595 driver
+-  --enable-3c90x          enable 3Com90x driver
+-  --enable-cs89x0         enable CS89x0 driver
+-  --enable-davicom        enable Davicom driver
+-  --enable-depca          enable DEPCA and EtherWORKS driver
+-  --enable-eepro          enable Etherexpress Pro/10 driver
+-  --enable-eepro100       enable Etherexpress Pro/100 driver
+-  --enable-epic100        enable SMC 83c170 EPIC/100 driver
+-  --enable-3c507          enable 3Com507 driver
+-  --enable-exos205        enable EXOS205 driver
+-  --enable-ni5210         enable Racal-Interlan NI5210 driver
+-  --enable-lance          enable Lance PCI PCNet/32 driver
+-  --enable-ne2100         enable Novell NE2100 driver
+-  --enable-ni6510         enable Racal-Interlan NI6510 driver
+-  --enable-natsemi        enable NatSemi DP8381x driver
+-  --enable-ni5010         enable Racal-Interlan NI5010 driver
+-  --enable-3c503          enable 3Com503 driver
+-  --enable-ne             enable NE1000/2000 ISA driver
+-  --enable-ns8390         enable NE2000 PCI driver
+-  --enable-wd             enable WD8003/8013, SMC8216/8416 driver
+-  --enable-otulip         enable old Tulip driver
+-  --enable-rtl8139        enable Realtek 8139 driver
+-  --enable-sis900         enable SIS 900 and SIS 7016 driver
+-  --enable-sk-g16         enable Schneider and Koch G16 driver
+-  --enable-smc9000        enable SMC9000 driver
+-  --enable-tiara          enable Tiara driver
+-  --enable-tulip          enable Tulip driver
+-  --enable-via-rhine      enable Rhine-I/II driver
+-  --enable-w89c840        enable Winbond W89c840, Compex RL100-ATX driver
+-  --enable-3c503-shmem    use 3c503 shared memory mode
+-  --enable-3c503-aui      use AUI by default on 3c503 cards
+-  --enable-compex-rl2000-fix
+-                          specify this if you have a Compex RL2000 PCI
+-  --enable-smc9000-scan=LIST
+-                          probe for SMC9000 I/O addresses using LIST
+-  --enable-ne-scan=LIST   probe for NE base address using LIST
+-  --enable-wd-default-mem=MEM
+-                          set the default memory location for WD/SMC
+-  --enable-cs-scan=LIST   probe for CS89x0 base address using LIST
+-  --enable-diskless       enable diskless support
+-  --disable-hercules      disable hercules terminal support
+-  --disable-serial        disable serial terminal support
+-  --enable-serial-speed-simulation
+-                          simulate the slowness of a serial device
+-  --enable-preset-menu=FILE
+-                          preset a menu file FILE in Stage 2
+-  --enable-example-kernel
+-                          build the example Multiboot kernel
+-  --disable-auto-linux-mem-opt
+-                          don't pass Linux mem= option automatically
+-
+-Optional Packages:
+-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+-  --with-binutils=DIR     search the directory DIR to find binutils
+-  --without-curses        do not use curses
+-
+-Some influential environment variables:
+-  CC          C compiler command
+-  CFLAGS      C compiler flags
+-  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
+-              nonstandard directory <lib dir>
+-  CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
+-              headers in a nonstandard directory <include dir>
+-  CPP         C preprocessor
+-
+-Use these variables to override the choices made by `configure' or to help
+-it to find libraries and programs with nonstandard names/locations.
+-
+-Report bugs to <bug-grub at gnu.org>.
+-_ACEOF
+-fi
+-
+-if test "$ac_init_help" = "recursive"; then
+-  # If there are subdirs, report their specific --help.
+-  ac_popdir=`pwd`
+-  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+-    test -d $ac_dir || continue
+-    ac_builddir=.
+-
+-if test "$ac_dir" != .; then
+-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+-  # A "../" for each directory in $ac_dir_suffix.
+-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+-else
+-  ac_dir_suffix= ac_top_builddir=
+-fi
+-
+-case $srcdir in
+-  .)  # No --srcdir option.  We are building in place.
+-    ac_srcdir=.
+-    if test -z "$ac_top_builddir"; then
+-       ac_top_srcdir=.
+-    else
+-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+-    fi ;;
+-  [\\/]* | ?:[\\/]* )  # Absolute path.
+-    ac_srcdir=$srcdir$ac_dir_suffix;
+-    ac_top_srcdir=$srcdir ;;
+-  *) # Relative path.
+-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+-esac
+-
+-# Do not use `cd foo && pwd` to compute absolute paths, because
+-# the directories may not exist.
+-case `pwd` in
+-.) ac_abs_builddir="$ac_dir";;
+-*)
+-  case "$ac_dir" in
+-  .) ac_abs_builddir=`pwd`;;
+-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
+-  esac;;
+-esac
+-case $ac_abs_builddir in
+-.) ac_abs_top_builddir=${ac_top_builddir}.;;
+-*)
+-  case ${ac_top_builddir}. in
+-  .) ac_abs_top_builddir=$ac_abs_builddir;;
+-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+-  esac;;
+-esac
+-case $ac_abs_builddir in
+-.) ac_abs_srcdir=$ac_srcdir;;
+-*)
+-  case $ac_srcdir in
+-  .) ac_abs_srcdir=$ac_abs_builddir;;
+-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+-  esac;;
+-esac
+-case $ac_abs_builddir in
+-.) ac_abs_top_srcdir=$ac_top_srcdir;;
+-*)
+-  case $ac_top_srcdir in
+-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
+-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+-  esac;;
+-esac
+-
+-    cd $ac_dir
+-    # Check for guested configure; otherwise get Cygnus style configure.
+-    if test -f $ac_srcdir/configure.gnu; then
+-      echo
+-      $SHELL $ac_srcdir/configure.gnu  --help=recursive
+-    elif test -f $ac_srcdir/configure; then
+-      echo
+-      $SHELL $ac_srcdir/configure  --help=recursive
+-    elif test -f $ac_srcdir/configure.ac ||
+-	   test -f $ac_srcdir/configure.in; then
+-      echo
+-      $ac_configure --help
+-    else
+-      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+-    fi
+-    cd $ac_popdir
+-  done
+-fi
+-
+-test -n "$ac_init_help" && exit 0
+-if $ac_init_version; then
+-  cat <<\_ACEOF
+-GRUB configure 0.97
+-generated by GNU Autoconf 2.59
+-
+-Copyright (C) 2003 Free Software Foundation, Inc.
+-This configure script is free software; the Free Software Foundation
+-gives unlimited permission to copy, distribute and modify it.
+-_ACEOF
+-  exit 0
+-fi
+-exec 5>config.log
+-cat >&5 <<_ACEOF
+-This file contains any messages produced by compilers while
+-running configure, to aid debugging if configure makes a mistake.
+-
+-It was created by GRUB $as_me 0.97, which was
+-generated by GNU Autoconf 2.59.  Invocation command line was
+-
+-  $ $0 $@
+-
+-_ACEOF
+-{
+-cat <<_ASUNAME
+-## --------- ##
+-## Platform. ##
+-## --------- ##
+-
+-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+-uname -m = `(uname -m) 2>/dev/null || echo unknown`
+-uname -r = `(uname -r) 2>/dev/null || echo unknown`
+-uname -s = `(uname -s) 2>/dev/null || echo unknown`
+-uname -v = `(uname -v) 2>/dev/null || echo unknown`
+-
+-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
+-
+-/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
+-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
+-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+-hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
+-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
+-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
+-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
+-
+-_ASUNAME
+-
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  echo "PATH: $as_dir"
+-done
+-
+-} >&5
+-
+-cat >&5 <<_ACEOF
+-
+-
+-## ----------- ##
+-## Core tests. ##
+-## ----------- ##
+-
+-_ACEOF
+-
+-
+-# Keep a trace of the command line.
+-# Strip out --no-create and --no-recursion so they do not pile up.
+-# Strip out --silent because we don't want to record it for future runs.
+-# Also quote any args containing shell meta-characters.
+-# Make two passes to allow for proper duplicate-argument suppression.
+-ac_configure_args=
+-ac_configure_args0=
+-ac_configure_args1=
+-ac_sep=
+-ac_must_keep_next=false
+-for ac_pass in 1 2
+-do
+-  for ac_arg
+-  do
+-    case $ac_arg in
+-    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+-    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+-    | -silent | --silent | --silen | --sile | --sil)
+-      continue ;;
+-    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+-      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+-    esac
+-    case $ac_pass in
+-    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+-    2)
+-      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+-      if test $ac_must_keep_next = true; then
+-	ac_must_keep_next=false # Got value, back to normal.
+-      else
+-	case $ac_arg in
+-	  *=* | --config-cache | -C | -disable-* | --disable-* \
+-	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+-	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+-	  | -with-* | --with-* | -without-* | --without-* | --x)
+-	    case "$ac_configure_args0 " in
+-	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+-	    esac
+-	    ;;
+-	  -* ) ac_must_keep_next=true ;;
+-	esac
+-      fi
+-      ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
+-      # Get rid of the leading space.
+-      ac_sep=" "
+-      ;;
+-    esac
+-  done
+-done
+-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
+-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
+-
+-# When interrupted or exit'd, cleanup temporary files, and complete
+-# config.log.  We remove comments because anyway the quotes in there
+-# would cause problems or look ugly.
+-# WARNING: Be sure not to use single quotes in there, as some shells,
+-# such as our DU 5.0 friend, will then `close' the trap.
+-trap 'exit_status=$?
+-  # Save into config.log some information that might help in debugging.
+-  {
+-    echo
+-
+-    cat <<\_ASBOX
+-## ---------------- ##
+-## Cache variables. ##
+-## ---------------- ##
+-_ASBOX
+-    echo
+-    # The following way of writing the cache mishandles newlines in values,
+-{
+-  (set) 2>&1 |
+-    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
+-    *ac_space=\ *)
+-      sed -n \
+-	"s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
+-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
+-      ;;
+-    *)
+-      sed -n \
+-	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+-      ;;
+-    esac;
+-}
+-    echo
+-
+-    cat <<\_ASBOX
+-## ----------------- ##
+-## Output variables. ##
+-## ----------------- ##
+-_ASBOX
+-    echo
+-    for ac_var in $ac_subst_vars
+-    do
+-      eval ac_val=$`echo $ac_var`
+-      echo "$ac_var='"'"'$ac_val'"'"'"
+-    done | sort
+-    echo
+-
+-    if test -n "$ac_subst_files"; then
+-      cat <<\_ASBOX
+-## ------------- ##
+-## Output files. ##
+-## ------------- ##
+-_ASBOX
+-      echo
+-      for ac_var in $ac_subst_files
+-      do
+-	eval ac_val=$`echo $ac_var`
+-	echo "$ac_var='"'"'$ac_val'"'"'"
+-      done | sort
+-      echo
+-    fi
+-
+-    if test -s confdefs.h; then
+-      cat <<\_ASBOX
+-## ----------- ##
+-## confdefs.h. ##
+-## ----------- ##
+-_ASBOX
+-      echo
+-      sed "/^$/d" confdefs.h | sort
+-      echo
+-    fi
+-    test "$ac_signal" != 0 &&
+-      echo "$as_me: caught signal $ac_signal"
+-    echo "$as_me: exit $exit_status"
+-  } >&5
+-  rm -f core *.core &&
+-  rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
+-    exit $exit_status
+-     ' 0
+-for ac_signal in 1 2 13 15; do
+-  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+-done
+-ac_signal=0
+-
+-# confdefs.h avoids OS command line length limits that DEFS can exceed.
+-rm -rf conftest* confdefs.h
+-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+-echo >confdefs.h
+-
+-# Predefined preprocessor variables.
+-
+-cat >>confdefs.h <<_ACEOF
+-#define PACKAGE_NAME "$PACKAGE_NAME"
+-_ACEOF
+-
+-
+-cat >>confdefs.h <<_ACEOF
+-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+-_ACEOF
+-
+-
+-cat >>confdefs.h <<_ACEOF
+-#define PACKAGE_VERSION "$PACKAGE_VERSION"
+-_ACEOF
+-
+-
+-cat >>confdefs.h <<_ACEOF
+-#define PACKAGE_STRING "$PACKAGE_STRING"
+-_ACEOF
+-
+-
+-cat >>confdefs.h <<_ACEOF
+-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+-_ACEOF
+-
+-
+-# Let the site file select an alternate cache file if it wants to.
+-# Prefer explicitly selected file to automatically selected ones.
+-if test -z "$CONFIG_SITE"; then
+-  if test "x$prefix" != xNONE; then
+-    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+-  else
+-    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+-  fi
+-fi
+-for ac_site_file in $CONFIG_SITE; do
+-  if test -r "$ac_site_file"; then
+-    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+-echo "$as_me: loading site script $ac_site_file" >&6;}
+-    sed 's/^/| /' "$ac_site_file" >&5
+-    . "$ac_site_file"
+-  fi
+-done
+-
+-if test -r "$cache_file"; then
+-  # Some versions of bash will fail to source /dev/null (special
+-  # files actually), so we avoid doing that.
+-  if test -f "$cache_file"; then
+-    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
+-echo "$as_me: loading cache $cache_file" >&6;}
+-    case $cache_file in
+-      [\\/]* | ?:[\\/]* ) . $cache_file;;
+-      *)                      . ./$cache_file;;
+-    esac
+-  fi
+-else
+-  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
+-echo "$as_me: creating cache $cache_file" >&6;}
+-  >$cache_file
+-fi
+-
+-# Check that the precious variables saved in the cache have kept the same
+-# value.
+-ac_cache_corrupted=false
+-for ac_var in `(set) 2>&1 |
+-	       sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
+-  eval ac_old_set=\$ac_cv_env_${ac_var}_set
+-  eval ac_new_set=\$ac_env_${ac_var}_set
+-  eval ac_old_val="\$ac_cv_env_${ac_var}_value"
+-  eval ac_new_val="\$ac_env_${ac_var}_value"
+-  case $ac_old_set,$ac_new_set in
+-    set,)
+-      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+-      ac_cache_corrupted=: ;;
+-    ,set)
+-      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+-      ac_cache_corrupted=: ;;
+-    ,);;
+-    *)
+-      if test "x$ac_old_val" != "x$ac_new_val"; then
+-	{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+-	{ echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
+-echo "$as_me:   former value:  $ac_old_val" >&2;}
+-	{ echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
+-echo "$as_me:   current value: $ac_new_val" >&2;}
+-	ac_cache_corrupted=:
+-      fi;;
+-  esac
+-  # Pass precious variables to config.status.
+-  if test "$ac_new_set" = set; then
+-    case $ac_new_val in
+-    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+-      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+-    *) ac_arg=$ac_var=$ac_new_val ;;
+-    esac
+-    case " $ac_configure_args " in
+-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+-      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+-    esac
+-  fi
+-done
+-if $ac_cache_corrupted; then
+-  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+-  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-
+-ac_ext=c
+-ac_cpp='$CPP $CPPFLAGS'
+-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-          ac_config_headers="$ac_config_headers config.h"
+-
+-am__api_version="1.9"
+-ac_aux_dir=
+-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+-  if test -f $ac_dir/install-sh; then
+-    ac_aux_dir=$ac_dir
+-    ac_install_sh="$ac_aux_dir/install-sh -c"
+-    break
+-  elif test -f $ac_dir/install.sh; then
+-    ac_aux_dir=$ac_dir
+-    ac_install_sh="$ac_aux_dir/install.sh -c"
+-    break
+-  elif test -f $ac_dir/shtool; then
+-    ac_aux_dir=$ac_dir
+-    ac_install_sh="$ac_aux_dir/shtool install -c"
+-    break
+-  fi
+-done
+-if test -z "$ac_aux_dir"; then
+-  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
+-echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
+-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
+-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
+-
+-# Find a good install program.  We prefer a C program (faster),
+-# so one script is as good as another.  But avoid the broken or
+-# incompatible versions:
+-# SysV /etc/install, /usr/sbin/install
+-# SunOS /usr/etc/install
+-# IRIX /sbin/install
+-# AIX /bin/install
+-# AmigaOS /C/install, which installs bootblocks on floppy discs
+-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+-# OS/2's system install, which has a completely different semantic
+-# ./install, which can be erroneously created by make from ./install.sh.
+-echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
+-if test -z "$INSTALL"; then
+-if test "${ac_cv_path_install+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  # Account for people who put trailing slashes in PATH elements.
+-case $as_dir/ in
+-  ./ | .// | /cC/* | \
+-  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+-  ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
+-  /usr/ucb/* ) ;;
+-  *)
+-    # OSF1 and SCO ODT 3.0 have their own names for install.
+-    # Don't use installbsd from OSF since it installs stuff as root
+-    # by default.
+-    for ac_prog in ginstall scoinst install; do
+-      for ac_exec_ext in '' $ac_executable_extensions; do
+-	if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+-	  if test $ac_prog = install &&
+-	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+-	    # AIX install.  It has an incompatible calling convention.
+-	    :
+-	  elif test $ac_prog = install &&
+-	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+-	    # program-specific install script used by HP pwplus--don't use.
+-	    :
+-	  else
+-	    ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+-	    break 3
+-	  fi
+-	fi
+-      done
+-    done
+-    ;;
+-esac
+-done
+-
+-
+-fi
+-  if test "${ac_cv_path_install+set}" = set; then
+-    INSTALL=$ac_cv_path_install
+-  else
+-    # As a last resort, use the slow shell script.  We don't cache a
+-    # path for INSTALL within a source directory, because that will
+-    # break other packages using the cache if that directory is
+-    # removed, or if the path is relative.
+-    INSTALL=$ac_install_sh
+-  fi
+-fi
+-echo "$as_me:$LINENO: result: $INSTALL" >&5
+-echo "${ECHO_T}$INSTALL" >&6
+-
+-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+-# It thinks the first close brace ends the variable substitution.
+-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+-
+-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+-
+-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+-
+-echo "$as_me:$LINENO: checking whether build environment is sane" >&5
+-echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
+-# Just in case
+-sleep 1
+-echo timestamp > conftest.file
+-# Do `set' in a subshell so we don't clobber the current shell's
+-# arguments.  Must try -L first in case configure is actually a
+-# symlink; some systems play weird games with the mod time of symlinks
+-# (eg FreeBSD returns the mod time of the symlink's containing
+-# directory).
+-if (
+-   set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+-   if test "$*" = "X"; then
+-      # -L didn't work.
+-      set X `ls -t $srcdir/configure conftest.file`
+-   fi
+-   rm -f conftest.file
+-   if test "$*" != "X $srcdir/configure conftest.file" \
+-      && test "$*" != "X conftest.file $srcdir/configure"; then
+-
+-      # If neither matched, then we have a broken ls.  This can happen
+-      # if, for instance, CONFIG_SHELL is bash and it inherits a
+-      # broken ls alias from the environment.  This has actually
+-      # happened.  Such a system could not be considered "sane".
+-      { { echo "$as_me:$LINENO: error: ls -t appears to fail.  Make sure there is not a broken
+-alias in your environment" >&5
+-echo "$as_me: error: ls -t appears to fail.  Make sure there is not a broken
+-alias in your environment" >&2;}
+-   { (exit 1); exit 1; }; }
+-   fi
+-
+-   test "$2" = conftest.file
+-   )
+-then
+-   # Ok.
+-   :
+-else
+-   { { echo "$as_me:$LINENO: error: newly created file is older than distributed files!
+-Check your system clock" >&5
+-echo "$as_me: error: newly created file is older than distributed files!
+-Check your system clock" >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-echo "$as_me:$LINENO: result: yes" >&5
+-echo "${ECHO_T}yes" >&6
+-test "$program_prefix" != NONE &&
+-  program_transform_name="s,^,$program_prefix,;$program_transform_name"
+-# Use a double $ so make ignores it.
+-test "$program_suffix" != NONE &&
+-  program_transform_name="s,\$,$program_suffix,;$program_transform_name"
+-# Double any \ or $.  echo might interpret backslashes.
+-# By default was `s,x,x', remove it if useless.
+-cat <<\_ACEOF >conftest.sed
+-s/[\\$]/&&/g;s/;s,x,x,$//
+-_ACEOF
+-program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
+-rm conftest.sed
+-
+-# expand $ac_aux_dir to an absolute path
+-am_aux_dir=`cd $ac_aux_dir && pwd`
+-
+-test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+-# Use eval to expand $SHELL
+-if eval "$MISSING --run true"; then
+-  am_missing_run="$MISSING --run "
+-else
+-  am_missing_run=
+-  { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
+-echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
+-fi
+-
+-if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
+-  # We used to keeping the `.' as first argument, in order to
+-  # allow $(mkdir_p) to be used without argument.  As in
+-  #   $(mkdir_p) $(somedir)
+-  # where $(somedir) is conditionally defined.  However this is wrong
+-  # for two reasons:
+-  #  1. if the package is installed by a user who cannot write `.'
+-  #     make install will fail,
+-  #  2. the above comment should most certainly read
+-  #     $(mkdir_p) $(DESTDIR)$(somedir)
+-  #     so it does not work when $(somedir) is undefined and
+-  #     $(DESTDIR) is not.
+-  #  To support the latter case, we have to write
+-  #     test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
+-  #  so the `.' trick is pointless.
+-  mkdir_p='mkdir -p --'
+-else
+-  # On NextStep and OpenStep, the `mkdir' command does not
+-  # recognize any option.  It will interpret all options as
+-  # directories to create, and then abort because `.' already
+-  # exists.
+-  for d in ./-p ./--version;
+-  do
+-    test -d $d && rmdir $d
+-  done
+-  # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
+-  if test -f "$ac_aux_dir/mkinstalldirs"; then
+-    mkdir_p='$(mkinstalldirs)'
+-  else
+-    mkdir_p='$(install_sh) -d'
+-  fi
+-fi
+-
+-for ac_prog in gawk mawk nawk awk
+-do
+-  # Extract the first word of "$ac_prog", so it can be a program name with args.
+-set dummy $ac_prog; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_AWK+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$AWK"; then
+-  ac_cv_prog_AWK="$AWK" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_AWK="$ac_prog"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-fi
+-fi
+-AWK=$ac_cv_prog_AWK
+-if test -n "$AWK"; then
+-  echo "$as_me:$LINENO: result: $AWK" >&5
+-echo "${ECHO_T}$AWK" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-  test -n "$AWK" && break
+-done
+-
+-echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+-echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
+-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'`
+-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat >conftest.make <<\_ACEOF
+-all:
+-	@echo 'ac_maketemp="$(MAKE)"'
+-_ACEOF
+-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+-eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
+-if test -n "$ac_maketemp"; then
+-  eval ac_cv_prog_make_${ac_make}_set=yes
+-else
+-  eval ac_cv_prog_make_${ac_make}_set=no
+-fi
+-rm -f conftest.make
+-fi
+-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+-  echo "$as_me:$LINENO: result: yes" >&5
+-echo "${ECHO_T}yes" >&6
+-  SET_MAKE=
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-  SET_MAKE="MAKE=${MAKE-make}"
+-fi
+-
+-rm -rf .tst 2>/dev/null
+-mkdir .tst 2>/dev/null
+-if test -d .tst; then
+-  am__leading_dot=.
+-else
+-  am__leading_dot=_
+-fi
+-rmdir .tst 2>/dev/null
+-
+-# test to see if srcdir already configured
+-if test "`cd $srcdir && pwd`" != "`pwd`" &&
+-   test -f $srcdir/config.status; then
+-  { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
+-echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-
+-# test whether we have cygpath
+-if test -z "$CYGPATH_W"; then
+-  if (cygpath --version) >/dev/null 2>/dev/null; then
+-    CYGPATH_W='cygpath -w'
+-  else
+-    CYGPATH_W=echo
+-  fi
+-fi
+-
+-
+-# Define the identity of the package.
+- PACKAGE='grub'
+- VERSION='0.97'
+-
+-
+-cat >>confdefs.h <<_ACEOF
+-#define PACKAGE "$PACKAGE"
+-_ACEOF
+-
+-
+-cat >>confdefs.h <<_ACEOF
+-#define VERSION "$VERSION"
+-_ACEOF
+-
+-# Some tools Automake needs.
+-
+-ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+-
+-
+-AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+-
+-
+-AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+-
+-
+-AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+-
+-
+-MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+-
+-install_sh=${install_sh-"$am_aux_dir/install-sh"}
+-
+-# Installed binaries are usually stripped using `strip' when the user
+-# run `make install-strip'.  However `strip' might not be the right
+-# tool to use in cross-compilation environments, therefore Automake
+-# will honor the `STRIP' environment variable to overrule this program.
+-if test "$cross_compiling" != no; then
+-  if test -n "$ac_tool_prefix"; then
+-  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+-set dummy ${ac_tool_prefix}strip; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_STRIP+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$STRIP"; then
+-  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-fi
+-fi
+-STRIP=$ac_cv_prog_STRIP
+-if test -n "$STRIP"; then
+-  echo "$as_me:$LINENO: result: $STRIP" >&5
+-echo "${ECHO_T}$STRIP" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-fi
+-if test -z "$ac_cv_prog_STRIP"; then
+-  ac_ct_STRIP=$STRIP
+-  # Extract the first word of "strip", so it can be a program name with args.
+-set dummy strip; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$ac_ct_STRIP"; then
+-  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_ac_ct_STRIP="strip"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-  test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
+-fi
+-fi
+-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+-if test -n "$ac_ct_STRIP"; then
+-  echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
+-echo "${ECHO_T}$ac_ct_STRIP" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-  STRIP=$ac_ct_STRIP
+-else
+-  STRIP="$ac_cv_prog_STRIP"
+-fi
+-
+-fi
+-INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
+-
+-# We need awk for the "check" target.  The system "awk" is bad on
+-# some platforms.
+-# Always define AMTAR for backward compatibility.
+-
+-AMTAR=${AMTAR-"${am_missing_run}tar"}
+-
+-am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
+-
+-
+-
+-
+-
+-
+-# Make sure we can run config.sub.
+-$ac_config_sub sun4 >/dev/null 2>&1 ||
+-  { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
+-echo "$as_me: error: cannot run $ac_config_sub" >&2;}
+-   { (exit 1); exit 1; }; }
+-
+-echo "$as_me:$LINENO: checking build system type" >&5
+-echo $ECHO_N "checking build system type... $ECHO_C" >&6
+-if test "${ac_cv_build+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  ac_cv_build_alias=$build_alias
+-test -z "$ac_cv_build_alias" &&
+-  ac_cv_build_alias=`$ac_config_guess`
+-test -z "$ac_cv_build_alias" &&
+-  { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
+-echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
+-   { (exit 1); exit 1; }; }
+-ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
+-  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
+-echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
+-   { (exit 1); exit 1; }; }
+-
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_build" >&5
+-echo "${ECHO_T}$ac_cv_build" >&6
+-build=$ac_cv_build
+-build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+-build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+-build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+-
+-
+-echo "$as_me:$LINENO: checking host system type" >&5
+-echo $ECHO_N "checking host system type... $ECHO_C" >&6
+-if test "${ac_cv_host+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  ac_cv_host_alias=$host_alias
+-test -z "$ac_cv_host_alias" &&
+-  ac_cv_host_alias=$ac_cv_build_alias
+-ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
+-  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
+-echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
+-   { (exit 1); exit 1; }; }
+-
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_host" >&5
+-echo "${ECHO_T}$ac_cv_host" >&6
+-host=$ac_cv_host
+-host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+-host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+-host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+-
+-
+-
+-case "$host_cpu" in
+-i[3456]86) host_cpu=i386 ;;
+-x86_64) host_cpu=x86_64 ;;
+-*) { { echo "$as_me:$LINENO: error: unsupported CPU type" >&5
+-echo "$as_me: error: unsupported CPU type" >&2;}
+-   { (exit 1); exit 1; }; } ;;
+-esac
+-
+-
+-
+-
+-#
+-# Options
+-#
+-
+-echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
+-echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6
+-    # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
+-if test "${enable_maintainer_mode+set}" = set; then
+-  enableval="$enable_maintainer_mode"
+-  USE_MAINTAINER_MODE=$enableval
+-else
+-  USE_MAINTAINER_MODE=no
+-fi;
+-  echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
+-echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6
+-
+-
+-if test $USE_MAINTAINER_MODE = yes; then
+-  MAINTAINER_MODE_TRUE=
+-  MAINTAINER_MODE_FALSE='#'
+-else
+-  MAINTAINER_MODE_TRUE='#'
+-  MAINTAINER_MODE_FALSE=
+-fi
+-
+-  MAINT=$MAINTAINER_MODE_TRUE
+-
+-
+-if test "x$enable_maintainer_mode" = xyes; then
+-  # Extract the first word of "perl", so it can be a program name with args.
+-set dummy perl; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_path_PERL+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  case $PERL in
+-  [\\/]* | ?:[\\/]*)
+-  ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
+-  ;;
+-  *)
+-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-  ;;
+-esac
+-fi
+-PERL=$ac_cv_path_PERL
+-
+-if test -n "$PERL"; then
+-  echo "$as_me:$LINENO: result: $PERL" >&5
+-echo "${ECHO_T}$PERL" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-  if test -z "$PERL"; then
+-    { { echo "$as_me:$LINENO: error: perl not found" >&5
+-echo "$as_me: error: perl not found" >&2;}
+-   { (exit 1); exit 1; }; }
+-  fi
+-fi
+-
+-# This should be checked before AC_PROG_CC
+-if test "x$CFLAGS" = x; then
+-  default_CFLAGS=yes
+-fi
+-
+-if test "x$host_cpu" = xx86_64; then
+-  CFLAGS="-m32 $CFLAGS"
+-fi
+-
+-#
+-# Programs
+-#
+-
+-if test -n "$ac_tool_prefix"; then
+-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+-set dummy ${ac_tool_prefix}gcc; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_CC+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$CC"; then
+-  ac_cv_prog_CC="$CC" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-fi
+-fi
+-CC=$ac_cv_prog_CC
+-if test -n "$CC"; then
+-  echo "$as_me:$LINENO: result: $CC" >&5
+-echo "${ECHO_T}$CC" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-fi
+-if test -z "$ac_cv_prog_CC"; then
+-  ac_ct_CC=$CC
+-  # Extract the first word of "gcc", so it can be a program name with args.
+-set dummy gcc; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$ac_ct_CC"; then
+-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_ac_ct_CC="gcc"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-fi
+-fi
+-ac_ct_CC=$ac_cv_prog_ac_ct_CC
+-if test -n "$ac_ct_CC"; then
+-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+-echo "${ECHO_T}$ac_ct_CC" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-  CC=$ac_ct_CC
+-else
+-  CC="$ac_cv_prog_CC"
+-fi
+-
+-ac_ext=c
+-ac_cpp='$CPP $CPPFLAGS'
+-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+-if test -n "$ac_tool_prefix"; then
+-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+-set dummy ${ac_tool_prefix}gcc; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_CC+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$CC"; then
+-  ac_cv_prog_CC="$CC" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-fi
+-fi
+-CC=$ac_cv_prog_CC
+-if test -n "$CC"; then
+-  echo "$as_me:$LINENO: result: $CC" >&5
+-echo "${ECHO_T}$CC" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-fi
+-if test -z "$ac_cv_prog_CC"; then
+-  ac_ct_CC=$CC
+-  # Extract the first word of "gcc", so it can be a program name with args.
+-set dummy gcc; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$ac_ct_CC"; then
+-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_ac_ct_CC="gcc"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-fi
+-fi
+-ac_ct_CC=$ac_cv_prog_ac_ct_CC
+-if test -n "$ac_ct_CC"; then
+-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+-echo "${ECHO_T}$ac_ct_CC" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-  CC=$ac_ct_CC
+-else
+-  CC="$ac_cv_prog_CC"
+-fi
+-
+-if test -z "$CC"; then
+-  if test -n "$ac_tool_prefix"; then
+-  # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+-set dummy ${ac_tool_prefix}cc; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_CC+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$CC"; then
+-  ac_cv_prog_CC="$CC" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_CC="${ac_tool_prefix}cc"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-fi
+-fi
+-CC=$ac_cv_prog_CC
+-if test -n "$CC"; then
+-  echo "$as_me:$LINENO: result: $CC" >&5
+-echo "${ECHO_T}$CC" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-fi
+-if test -z "$ac_cv_prog_CC"; then
+-  ac_ct_CC=$CC
+-  # Extract the first word of "cc", so it can be a program name with args.
+-set dummy cc; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$ac_ct_CC"; then
+-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_ac_ct_CC="cc"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-fi
+-fi
+-ac_ct_CC=$ac_cv_prog_ac_ct_CC
+-if test -n "$ac_ct_CC"; then
+-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+-echo "${ECHO_T}$ac_ct_CC" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-  CC=$ac_ct_CC
+-else
+-  CC="$ac_cv_prog_CC"
+-fi
+-
+-fi
+-if test -z "$CC"; then
+-  # Extract the first word of "cc", so it can be a program name with args.
+-set dummy cc; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_CC+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$CC"; then
+-  ac_cv_prog_CC="$CC" # Let the user override the test.
+-else
+-  ac_prog_rejected=no
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+-       ac_prog_rejected=yes
+-       continue
+-     fi
+-    ac_cv_prog_CC="cc"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-if test $ac_prog_rejected = yes; then
+-  # We found a bogon in the path, so make sure we never use it.
+-  set dummy $ac_cv_prog_CC
+-  shift
+-  if test $# != 0; then
+-    # We chose a different compiler from the bogus one.
+-    # However, it has the same basename, so the bogon will be chosen
+-    # first if we set CC to just the basename; use the full file name.
+-    shift
+-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+-  fi
+-fi
+-fi
+-fi
+-CC=$ac_cv_prog_CC
+-if test -n "$CC"; then
+-  echo "$as_me:$LINENO: result: $CC" >&5
+-echo "${ECHO_T}$CC" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-fi
+-if test -z "$CC"; then
+-  if test -n "$ac_tool_prefix"; then
+-  for ac_prog in cl
+-  do
+-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_CC+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$CC"; then
+-  ac_cv_prog_CC="$CC" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-fi
+-fi
+-CC=$ac_cv_prog_CC
+-if test -n "$CC"; then
+-  echo "$as_me:$LINENO: result: $CC" >&5
+-echo "${ECHO_T}$CC" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-    test -n "$CC" && break
+-  done
+-fi
+-if test -z "$CC"; then
+-  ac_ct_CC=$CC
+-  for ac_prog in cl
+-do
+-  # Extract the first word of "$ac_prog", so it can be a program name with args.
+-set dummy $ac_prog; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$ac_ct_CC"; then
+-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_ac_ct_CC="$ac_prog"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-fi
+-fi
+-ac_ct_CC=$ac_cv_prog_ac_ct_CC
+-if test -n "$ac_ct_CC"; then
+-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+-echo "${ECHO_T}$ac_ct_CC" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-  test -n "$ac_ct_CC" && break
+-done
+-
+-  CC=$ac_ct_CC
+-fi
+-
+-fi
+-
+-
+-test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+-See \`config.log' for more details." >&5
+-echo "$as_me: error: no acceptable C compiler found in \$PATH
+-See \`config.log' for more details." >&2;}
+-   { (exit 1); exit 1; }; }
+-
+-# Provide some information about the compiler.
+-echo "$as_me:$LINENO:" \
+-     "checking for C compiler version" >&5
+-ac_compiler=`set X $ac_compile; echo $2`
+-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
+-  (eval $ac_compiler --version </dev/null >&5) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }
+-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
+-  (eval $ac_compiler -v </dev/null >&5) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }
+-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
+-  (eval $ac_compiler -V </dev/null >&5) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }
+-
+-cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-ac_clean_files_save=$ac_clean_files
+-ac_clean_files="$ac_clean_files a.out a.exe b.out"
+-# Try to create an executable without -o first, disregard a.out.
+-# It will help us diagnose broken compilers, and finding out an intuition
+-# of exeext.
+-echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
+-echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
+-ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+-if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
+-  (eval $ac_link_default) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; then
+-  # Find the output, starting from the most likely.  This scheme is
+-# not robust to junk in `.', hence go to wildcards (a.*) only as a last
+-# resort.
+-
+-# Be careful to initialize this variable, since it used to be cached.
+-# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
+-ac_cv_exeext=
+-# b.out is created by i960 compilers.
+-for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
+-do
+-  test -f "$ac_file" || continue
+-  case $ac_file in
+-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
+-	;;
+-    conftest.$ac_ext )
+-	# This is the source file.
+-	;;
+-    [ab].out )
+-	# We found the default executable, but exeext='' is most
+-	# certainly right.
+-	break;;
+-    *.* )
+-	ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+-	# FIXME: I believe we export ac_cv_exeext for Libtool,
+-	# but it would be cool to find out if it's true.  Does anybody
+-	# maintain Libtool? --akim.
+-	export ac_cv_exeext
+-	break;;
+-    * )
+-	break;;
+-  esac
+-done
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
+-See \`config.log' for more details." >&5
+-echo "$as_me: error: C compiler cannot create executables
+-See \`config.log' for more details." >&2;}
+-   { (exit 77); exit 77; }; }
+-fi
+-
+-ac_exeext=$ac_cv_exeext
+-echo "$as_me:$LINENO: result: $ac_file" >&5
+-echo "${ECHO_T}$ac_file" >&6
+-
+-# Check the compiler produces executables we can run.  If not, either
+-# the compiler is broken, or we cross compile.
+-echo "$as_me:$LINENO: checking whether the C compiler works" >&5
+-echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
+-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+-# If not cross compiling, check that we can run a simple program.
+-if test "$cross_compiling" != yes; then
+-  if { ac_try='./$ac_file'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-    cross_compiling=no
+-  else
+-    if test "$cross_compiling" = maybe; then
+-	cross_compiling=yes
+-    else
+-	{ { echo "$as_me:$LINENO: error: cannot run C compiled programs.
+-If you meant to cross compile, use \`--host'.
+-See \`config.log' for more details." >&5
+-echo "$as_me: error: cannot run C compiled programs.
+-If you meant to cross compile, use \`--host'.
+-See \`config.log' for more details." >&2;}
+-   { (exit 1); exit 1; }; }
+-    fi
+-  fi
+-fi
+-echo "$as_me:$LINENO: result: yes" >&5
+-echo "${ECHO_T}yes" >&6
+-
+-rm -f a.out a.exe conftest$ac_cv_exeext b.out
+-ac_clean_files=$ac_clean_files_save
+-# Check the compiler produces executables we can run.  If not, either
+-# the compiler is broken, or we cross compile.
+-echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
+-echo "$as_me:$LINENO: result: $cross_compiling" >&5
+-echo "${ECHO_T}$cross_compiling" >&6
+-
+-echo "$as_me:$LINENO: checking for suffix of executables" >&5
+-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; then
+-  # If both `conftest.exe' and `conftest' are `present' (well, observable)
+-# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
+-# work properly (i.e., refer to `conftest.exe'), while it won't with
+-# `rm'.
+-for ac_file in conftest.exe conftest conftest.*; do
+-  test -f "$ac_file" || continue
+-  case $ac_file in
+-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
+-    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+-	  export ac_cv_exeext
+-	  break;;
+-    * ) break;;
+-  esac
+-done
+-else
+-  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+-See \`config.log' for more details." >&5
+-echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
+-See \`config.log' for more details." >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-
+-rm -f conftest$ac_cv_exeext
+-echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+-echo "${ECHO_T}$ac_cv_exeext" >&6
+-
+-rm -f conftest.$ac_ext
+-EXEEXT=$ac_cv_exeext
+-ac_exeext=$EXEEXT
+-echo "$as_me:$LINENO: checking for suffix of object files" >&5
+-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
+-if test "${ac_cv_objext+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.o conftest.obj
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; then
+-  for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
+-  case $ac_file in
+-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
+-    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+-       break;;
+-  esac
+-done
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
+-See \`config.log' for more details." >&5
+-echo "$as_me: error: cannot compute suffix of object files: cannot compile
+-See \`config.log' for more details." >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-
+-rm -f conftest.$ac_cv_objext conftest.$ac_ext
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+-echo "${ECHO_T}$ac_cv_objext" >&6
+-OBJEXT=$ac_cv_objext
+-ac_objext=$OBJEXT
+-echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
+-if test "${ac_cv_c_compiler_gnu+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-#ifndef __GNUC__
+-       choke me
+-#endif
+-
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"
+-			 || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-	 { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  ac_compiler_gnu=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-ac_compiler_gnu=no
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+-ac_cv_c_compiler_gnu=$ac_compiler_gnu
+-
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
+-GCC=`test $ac_compiler_gnu = yes && echo yes`
+-ac_test_CFLAGS=${CFLAGS+set}
+-ac_save_CFLAGS=$CFLAGS
+-CFLAGS="-g"
+-echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
+-if test "${ac_cv_prog_cc_g+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"
+-			 || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-	 { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  ac_cv_prog_cc_g=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-ac_cv_prog_cc_g=no
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
+-if test "$ac_test_CFLAGS" = set; then
+-  CFLAGS=$ac_save_CFLAGS
+-elif test $ac_cv_prog_cc_g = yes; then
+-  if test "$GCC" = yes; then
+-    CFLAGS="-g -O2"
+-  else
+-    CFLAGS="-g"
+-  fi
+-else
+-  if test "$GCC" = yes; then
+-    CFLAGS="-O2"
+-  else
+-    CFLAGS=
+-  fi
+-fi
+-echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
+-echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
+-if test "${ac_cv_prog_cc_stdc+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  ac_cv_prog_cc_stdc=no
+-ac_save_CC=$CC
+-cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#include <stdarg.h>
+-#include <stdio.h>
+-#include <sys/types.h>
+-#include <sys/stat.h>
+-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+-struct buf { int x; };
+-FILE * (*rcsopen) (struct buf *, struct stat *, int);
+-static char *e (p, i)
+-     char **p;
+-     int i;
+-{
+-  return p[i];
+-}
+-static char *f (char * (*g) (char **, int), char **p, ...)
+-{
+-  char *s;
+-  va_list v;
+-  va_start (v,p);
+-  s = g (p, va_arg (v,int));
+-  va_end (v);
+-  return s;
+-}
+-
+-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+-   function prototypes and stuff, but not '\xHH' hex character constants.
+-   These don't provoke an error unfortunately, instead are silently treated
+-   as 'x'.  The following induces an error, until -std1 is added to get
+-   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+-   array size at least.  It's necessary to write '\x00'==0 to get something
+-   that's true only with -std1.  */
+-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+-
+-int test (int i, double x);
+-struct s1 {int (*f) (int a);};
+-struct s2 {int (*f) (double a);};
+-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+-int argc;
+-char **argv;
+-int
+-main ()
+-{
+-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-# Don't try gcc -ansi; that turns off useful extensions and
+-# breaks some systems' header files.
+-# AIX			-qlanglvl=ansi
+-# Ultrix and OSF/1	-std1
+-# HP-UX 10.20 and later	-Ae
+-# HP-UX older versions	-Aa -D_HPUX_SOURCE
+-# SVR4			-Xc -D__EXTENSIONS__
+-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+-do
+-  CC="$ac_save_CC $ac_arg"
+-  rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"
+-			 || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-	 { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  ac_cv_prog_cc_stdc=$ac_arg
+-break
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-fi
+-rm -f conftest.err conftest.$ac_objext
+-done
+-rm -f conftest.$ac_ext conftest.$ac_objext
+-CC=$ac_save_CC
+-
+-fi
+-
+-case "x$ac_cv_prog_cc_stdc" in
+-  x|xno)
+-    echo "$as_me:$LINENO: result: none needed" >&5
+-echo "${ECHO_T}none needed" >&6 ;;
+-  *)
+-    echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
+-echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
+-    CC="$CC $ac_cv_prog_cc_stdc" ;;
+-esac
+-
+-# Some people use a C++ compiler to compile C.  Since we use `exit',
+-# in C++ we need to declare it.  In case someone uses the same compiler
+-# for both compiling C and C++ we need to have the C++ compiler decide
+-# the declaration of exit, since it's the most demanding environment.
+-cat >conftest.$ac_ext <<_ACEOF
+-#ifndef __cplusplus
+-  choke me
+-#endif
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"
+-			 || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-	 { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  for ac_declaration in \
+-   '' \
+-   'extern "C" void std::exit (int) throw (); using std::exit;' \
+-   'extern "C" void std::exit (int); using std::exit;' \
+-   'extern "C" void exit (int) throw ();' \
+-   'extern "C" void exit (int);' \
+-   'void exit (int);'
+-do
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-$ac_declaration
+-#include <stdlib.h>
+-int
+-main ()
+-{
+-exit (42);
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"
+-			 || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-	 { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  :
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-continue
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-$ac_declaration
+-int
+-main ()
+-{
+-exit (42);
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"
+-			 || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-	 { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  break
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+-done
+-rm -f conftest*
+-if test -n "$ac_declaration"; then
+-  echo '#ifdef __cplusplus' >>confdefs.h
+-  echo $ac_declaration      >>confdefs.h
+-  echo '#endif'             >>confdefs.h
+-fi
+-
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+-ac_ext=c
+-ac_cpp='$CPP $CPPFLAGS'
+-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+-DEPDIR="${am__leading_dot}deps"
+-
+-          ac_config_commands="$ac_config_commands depfiles"
+-
+-
+-am_make=${MAKE-make}
+-cat > confinc << 'END'
+-am__doit:
+-	@echo done
+-.PHONY: am__doit
+-END
+-# If we don't find an include directive, just comment out the code.
+-echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
+-echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6
+-am__include="#"
+-am__quote=
+-_am_result=none
+-# First try GNU make style include.
+-echo "include confinc" > confmf
+-# We grep out `Entering directory' and `Leaving directory'
+-# messages which can occur if `w' ends up in MAKEFLAGS.
+-# In particular we don't look at `^make:' because GNU make might
+-# be invoked under some other name (usually "gmake"), in which
+-# case it prints its new name instead of `make'.
+-if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
+-   am__include=include
+-   am__quote=
+-   _am_result=GNU
+-fi
+-# Now try BSD make style include.
+-if test "$am__include" = "#"; then
+-   echo '.include "confinc"' > confmf
+-   if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+-      am__include=.include
+-      am__quote="\""
+-      _am_result=BSD
+-   fi
+-fi
+-
+-
+-echo "$as_me:$LINENO: result: $_am_result" >&5
+-echo "${ECHO_T}$_am_result" >&6
+-rm -f confinc confmf
+-
+-# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given.
+-if test "${enable_dependency_tracking+set}" = set; then
+-  enableval="$enable_dependency_tracking"
+-
+-fi;
+-if test "x$enable_dependency_tracking" != xno; then
+-  am_depcomp="$ac_aux_dir/depcomp"
+-  AMDEPBACKSLASH='\'
+-fi
+-
+-
+-if test "x$enable_dependency_tracking" != xno; then
+-  AMDEP_TRUE=
+-  AMDEP_FALSE='#'
+-else
+-  AMDEP_TRUE='#'
+-  AMDEP_FALSE=
+-fi
+-
+-
+-
+-
+-depcc="$CC"   am_compiler_list=
+-
+-echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+-echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
+-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+-  # We make a subdir and do the tests there.  Otherwise we can end up
+-  # making bogus files that we don't know about and never remove.  For
+-  # instance it was reported that on HP-UX the gcc test will end up
+-  # making a dummy file named `D' -- because `-MD' means `put the output
+-  # in D'.
+-  mkdir conftest.dir
+-  # Copy depcomp to subdir because otherwise we won't find it if we're
+-  # using a relative directory.
+-  cp "$am_depcomp" conftest.dir
+-  cd conftest.dir
+-  # We will build objects and dependencies in a subdirectory because
+-  # it helps to detect inapplicable dependency modes.  For instance
+-  # both Tru64's cc and ICC support -MD to output dependencies as a
+-  # side effect of compilation, but ICC will put the dependencies in
+-  # the current directory while Tru64 will put them in the object
+-  # directory.
+-  mkdir sub
+-
+-  am_cv_CC_dependencies_compiler_type=none
+-  if test "$am_compiler_list" = ""; then
+-     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+-  fi
+-  for depmode in $am_compiler_list; do
+-    # Setup a source with many dependencies, because some compilers
+-    # like to wrap large dependency lists on column 80 (with \), and
+-    # we should not choose a depcomp mode which is confused by this.
+-    #
+-    # We need to recreate these files for each test, as the compiler may
+-    # overwrite some of them when testing with obscure command lines.
+-    # This happens at least with the AIX C compiler.
+-    : > sub/conftest.c
+-    for i in 1 2 3 4 5 6; do
+-      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+-      # Solaris 8's {/usr,}/bin/sh.
+-      touch sub/conftst$i.h
+-    done
+-    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+-
+-    case $depmode in
+-    nosideeffect)
+-      # after this tag, mechanisms are not by side-effect, so they'll
+-      # only be used when explicitly requested
+-      if test "x$enable_dependency_tracking" = xyes; then
+-	continue
+-      else
+-	break
+-      fi
+-      ;;
+-    none) break ;;
+-    esac
+-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+-    # mode.  It turns out that the SunPro C++ compiler does not properly
+-    # handle `-M -o', and we need to detect this.
+-    if depmode=$depmode \
+-       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+-       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+-       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+-         >/dev/null 2>conftest.err &&
+-       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+-       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+-       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+-      # icc doesn't choke on unknown options, it will just issue warnings
+-      # or remarks (even with -Werror).  So we grep stderr for any message
+-      # that says an option was ignored or not supported.
+-      # When given -MP, icc 7.0 and 7.1 complain thusly:
+-      #   icc: Command line warning: ignoring option '-M'; no argument required
+-      # The diagnosis changed in icc 8.0:
+-      #   icc: Command line remark: option '-MP' not supported
+-      if (grep 'ignoring option' conftest.err ||
+-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+-        am_cv_CC_dependencies_compiler_type=$depmode
+-        break
+-      fi
+-    fi
+-  done
+-
+-  cd ..
+-  rm -rf conftest.dir
+-else
+-  am_cv_CC_dependencies_compiler_type=none
+-fi
+-
+-fi
+-echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
+-echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6
+-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+-
+-
+-
+-if
+-  test "x$enable_dependency_tracking" != xno \
+-  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+-  am__fastdepCC_TRUE=
+-  am__fastdepCC_FALSE='#'
+-else
+-  am__fastdepCC_TRUE='#'
+-  am__fastdepCC_FALSE=
+-fi
+-
+-
+-# We need this for older versions of Autoconf.
+-
+-depcc="$CC"   am_compiler_list=
+-
+-echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+-echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
+-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+-  # We make a subdir and do the tests there.  Otherwise we can end up
+-  # making bogus files that we don't know about and never remove.  For
+-  # instance it was reported that on HP-UX the gcc test will end up
+-  # making a dummy file named `D' -- because `-MD' means `put the output
+-  # in D'.
+-  mkdir conftest.dir
+-  # Copy depcomp to subdir because otherwise we won't find it if we're
+-  # using a relative directory.
+-  cp "$am_depcomp" conftest.dir
+-  cd conftest.dir
+-  # We will build objects and dependencies in a subdirectory because
+-  # it helps to detect inapplicable dependency modes.  For instance
+-  # both Tru64's cc and ICC support -MD to output dependencies as a
+-  # side effect of compilation, but ICC will put the dependencies in
+-  # the current directory while Tru64 will put them in the object
+-  # directory.
+-  mkdir sub
+-
+-  am_cv_CC_dependencies_compiler_type=none
+-  if test "$am_compiler_list" = ""; then
+-     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+-  fi
+-  for depmode in $am_compiler_list; do
+-    # Setup a source with many dependencies, because some compilers
+-    # like to wrap large dependency lists on column 80 (with \), and
+-    # we should not choose a depcomp mode which is confused by this.
+-    #
+-    # We need to recreate these files for each test, as the compiler may
+-    # overwrite some of them when testing with obscure command lines.
+-    # This happens at least with the AIX C compiler.
+-    : > sub/conftest.c
+-    for i in 1 2 3 4 5 6; do
+-      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+-      # Solaris 8's {/usr,}/bin/sh.
+-      touch sub/conftst$i.h
+-    done
+-    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+-
+-    case $depmode in
+-    nosideeffect)
+-      # after this tag, mechanisms are not by side-effect, so they'll
+-      # only be used when explicitly requested
+-      if test "x$enable_dependency_tracking" = xyes; then
+-	continue
+-      else
+-	break
+-      fi
+-      ;;
+-    none) break ;;
+-    esac
+-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+-    # mode.  It turns out that the SunPro C++ compiler does not properly
+-    # handle `-M -o', and we need to detect this.
+-    if depmode=$depmode \
+-       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+-       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+-       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+-         >/dev/null 2>conftest.err &&
+-       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+-       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+-       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+-      # icc doesn't choke on unknown options, it will just issue warnings
+-      # or remarks (even with -Werror).  So we grep stderr for any message
+-      # that says an option was ignored or not supported.
+-      # When given -MP, icc 7.0 and 7.1 complain thusly:
+-      #   icc: Command line warning: ignoring option '-M'; no argument required
+-      # The diagnosis changed in icc 8.0:
+-      #   icc: Command line remark: option '-MP' not supported
+-      if (grep 'ignoring option' conftest.err ||
+-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+-        am_cv_CC_dependencies_compiler_type=$depmode
+-        break
+-      fi
+-    fi
+-  done
+-
+-  cd ..
+-  rm -rf conftest.dir
+-else
+-  am_cv_CC_dependencies_compiler_type=none
+-fi
+-
+-fi
+-echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
+-echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6
+-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+-
+-
+-
+-if
+-  test "x$enable_dependency_tracking" != xno \
+-  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+-  am__fastdepCC_TRUE=
+-  am__fastdepCC_FALSE='#'
+-else
+-  am__fastdepCC_TRUE='#'
+-  am__fastdepCC_FALSE=
+-fi
+-
+-
+-
+-CCAS="$CC"
+-
+-
+-
+-# Check whether --with-binutils or --without-binutils was given.
+-if test "${with_binutils+set}" = set; then
+-  withval="$with_binutils"
+-
+-fi;
+-
+-if test "x$with_binutils" != x; then
+-  # Extract the first word of "ranlib", so it can be a program name with args.
+-set dummy ranlib; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_path_RANLIB+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  case $RANLIB in
+-  [\\/]* | ?:[\\/]*)
+-  ac_cv_path_RANLIB="$RANLIB" # Let the user override the test with a path.
+-  ;;
+-  *)
+-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-as_dummy=""$with_binutils:$PATH""
+-for as_dir in $as_dummy
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_path_RANLIB="$as_dir/$ac_word$ac_exec_ext"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-  test -z "$ac_cv_path_RANLIB" && ac_cv_path_RANLIB=":"
+-  ;;
+-esac
+-fi
+-RANLIB=$ac_cv_path_RANLIB
+-
+-if test -n "$RANLIB"; then
+-  echo "$as_me:$LINENO: result: $RANLIB" >&5
+-echo "${ECHO_T}$RANLIB" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-else
+-  if test -n "$ac_tool_prefix"; then
+-  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_RANLIB+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$RANLIB"; then
+-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-fi
+-fi
+-RANLIB=$ac_cv_prog_RANLIB
+-if test -n "$RANLIB"; then
+-  echo "$as_me:$LINENO: result: $RANLIB" >&5
+-echo "${ECHO_T}$RANLIB" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-fi
+-if test -z "$ac_cv_prog_RANLIB"; then
+-  ac_ct_RANLIB=$RANLIB
+-  # Extract the first word of "ranlib", so it can be a program name with args.
+-set dummy ranlib; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$ac_ct_RANLIB"; then
+-  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_ac_ct_RANLIB="ranlib"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-  test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
+-fi
+-fi
+-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+-if test -n "$ac_ct_RANLIB"; then
+-  echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
+-echo "${ECHO_T}$ac_ct_RANLIB" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-  RANLIB=$ac_ct_RANLIB
+-else
+-  RANLIB="$ac_cv_prog_RANLIB"
+-fi
+-
+-fi
+-
+-# optimization flags
+-if test "x$ac_cv_c_compiler_gnu" = xyes; then
+-  if test "x$default_CFLAGS" = xyes; then
+-    # Autoconf may set CFLAGS to -O2 and/or -g. So eliminate them.
+-    CFLAGS="`echo $CFLAGS | sed -e 's/-g//g' -e 's/-O[0-9]//g'` -g"
+-    # If the user specify the directory for binutils, add the option `-B'.
+-    if test "x$with_binutils" != x; then
+-      CFLAGS="-B$with_binutils/ $CFLAGS"
+-    fi
+-    STAGE1_CFLAGS="-O2"
+-    GRUB_CFLAGS="-O2"
+-
+-echo "$as_me:$LINENO: checking whether optimization for size works" >&5
+-echo $ECHO_N "checking whether optimization for size works... $ECHO_C" >&6
+-if test "${size_flag+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-
+-      saved_CFLAGS=$CFLAGS
+-      CFLAGS="-Os -g"
+-      cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"
+-			 || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-	 { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  size_flag=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-size_flag=no
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+-      CFLAGS=$saved_CFLAGS
+-
+-fi
+-echo "$as_me:$LINENO: result: $size_flag" >&5
+-echo "${ECHO_T}$size_flag" >&6
+-    if test "x$size_flag" = xyes; then
+-      STAGE2_CFLAGS="-Os"
+-    else
+-      STAGE2_CFLAGS="-O2 -fno-strength-reduce -fno-unroll-loops"
+-    fi
+-    # OpenBSD has a GCC extension for protecting applications from
+-    # stack smashing attacks, but GRUB doesn't want this feature.
+-    echo "$as_me:$LINENO: checking whether gcc has -fno-stack-protector" >&5
+-echo $ECHO_N "checking whether gcc has -fno-stack-protector... $ECHO_C" >&6
+-if test "${no_stack_protector_flag+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-
+-      saved_CFLAGS=$CFLAGS
+-      CFLAGS="-fno-stack-protector"
+-      cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"
+-			 || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-	 { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  no_stack_protector_flag=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-no_stack_protector_flag=no
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+-      CFLAGS=$saved_CFLAGS
+-
+-fi
+-echo "$as_me:$LINENO: result: $no_stack_protector_flag" >&5
+-echo "${ECHO_T}$no_stack_protector_flag" >&6
+-    if test "x$no_stack_protector_flag" = xyes; then
+-      STAGE2_CFLAGS="$STAGE2_CFLAGS -fno-stack-protector"
+-    fi
+-  fi
+-fi
+-
+-
+-
+-
+-
+-# Enforce coding standards.
+-CPPFLAGS="$CPPFLAGS -Wall -Wmissing-prototypes -Wunused -Wshadow"
+-CPPFLAGS="$CPPFLAGS -Wpointer-arith"
+-
+-echo "$as_me:$LINENO: checking whether -Wundef works" >&5
+-echo $ECHO_N "checking whether -Wundef works... $ECHO_C" >&6
+-if test "${undef_flag+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-
+-  saved_CPPFLAGS="$CPPFLAGS"
+-  CPPFLAGS="-Wundef"
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"
+-			 || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-	 { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  undef_flag=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-undef_flag=no
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+-  CPPFLAGS="$saved_CPPFLAGS"
+-
+-fi
+-echo "$as_me:$LINENO: result: $undef_flag" >&5
+-echo "${ECHO_T}$undef_flag" >&6
+-
+-# The options `-falign-*' are supported by gcc 3.0 or later.
+-# Probably it is sufficient to only check for -falign-loops.
+-echo "$as_me:$LINENO: checking whether -falign-loops works" >&5
+-echo $ECHO_N "checking whether -falign-loops works... $ECHO_C" >&6
+-if test "${falign_loop_flag+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-
+-  saved_CPPFLAGS="$CPPFLAGS"
+-  CPPFLAGS="-falign-loops=1"
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"
+-			 || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-	 { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  falign_loop_flag=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-falign_loop_flag=no
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+-  CPPFLAGS="$saved_CPPFLAGS"
+-
+-fi
+-echo "$as_me:$LINENO: result: $falign_loop_flag" >&5
+-echo "${ECHO_T}$falign_loop_flag" >&6
+-
+-# Force no alignment to save space.
+-if test "x$falign_loop_flag" = xyes; then
+-  CPPFLAGS="$CPPFLAGS -falign-jumps=1 -falign-loops=1 -falign-functions=1"
+-else
+-  CPPFLAGS="$CPPFLAGS -malign-jumps=1 -malign-loops=1 -malign-functions=1"
+-fi
+-
+-if test "x$undef_flag" = xyes; then
+-  CPPFLAGS="$CPPFLAGS -Wundef"
+-fi
+-
+-if test "x$with_binutils" != x; then
+-  # Extract the first word of "objcopy", so it can be a program name with args.
+-set dummy objcopy; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_path_OBJCOPY+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  case $OBJCOPY in
+-  [\\/]* | ?:[\\/]*)
+-  ac_cv_path_OBJCOPY="$OBJCOPY" # Let the user override the test with a path.
+-  ;;
+-  *)
+-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-as_dummy=""$with_binutils:$PATH""
+-for as_dir in $as_dummy
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_path_OBJCOPY="$as_dir/$ac_word$ac_exec_ext"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-  ;;
+-esac
+-fi
+-OBJCOPY=$ac_cv_path_OBJCOPY
+-
+-if test -n "$OBJCOPY"; then
+-  echo "$as_me:$LINENO: result: $OBJCOPY" >&5
+-echo "${ECHO_T}$OBJCOPY" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-else
+-  if test -n "$ac_tool_prefix"; then
+-  # Extract the first word of "${ac_tool_prefix}objcopy", so it can be a program name with args.
+-set dummy ${ac_tool_prefix}objcopy; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_OBJCOPY+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$OBJCOPY"; then
+-  ac_cv_prog_OBJCOPY="$OBJCOPY" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_OBJCOPY="${ac_tool_prefix}objcopy"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-fi
+-fi
+-OBJCOPY=$ac_cv_prog_OBJCOPY
+-if test -n "$OBJCOPY"; then
+-  echo "$as_me:$LINENO: result: $OBJCOPY" >&5
+-echo "${ECHO_T}$OBJCOPY" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-fi
+-if test -z "$ac_cv_prog_OBJCOPY"; then
+-  ac_ct_OBJCOPY=$OBJCOPY
+-  # Extract the first word of "objcopy", so it can be a program name with args.
+-set dummy objcopy; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_ac_ct_OBJCOPY+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$ac_ct_OBJCOPY"; then
+-  ac_cv_prog_ac_ct_OBJCOPY="$ac_ct_OBJCOPY" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_ac_ct_OBJCOPY="objcopy"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-fi
+-fi
+-ac_ct_OBJCOPY=$ac_cv_prog_ac_ct_OBJCOPY
+-if test -n "$ac_ct_OBJCOPY"; then
+-  echo "$as_me:$LINENO: result: $ac_ct_OBJCOPY" >&5
+-echo "${ECHO_T}$ac_ct_OBJCOPY" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-  OBJCOPY=$ac_ct_OBJCOPY
+-else
+-  OBJCOPY="$ac_cv_prog_OBJCOPY"
+-fi
+-
+-fi
+-
+-# Defined in acinclude.m4.
+-
+-echo "$as_me:$LINENO: checking if C symbols get an underscore after compilation" >&5
+-echo $ECHO_N "checking if C symbols get an underscore after compilation... $ECHO_C" >&6
+-if test "${grub_cv_asm_uscore+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat > conftest.c <<\EOF
+-int
+-func (int *list)
+-{
+-  *list = 0;
+-  return *list;
+-}
+-EOF
+-
+-if { ac_try='${CC-cc} ${CFLAGS} -S conftest.c'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } && test -s conftest.s; then
+-  true
+-else
+-  { { echo "$as_me:$LINENO: error: ${CC-cc} failed to produce assembly code" >&5
+-echo "$as_me: error: ${CC-cc} failed to produce assembly code" >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-
+-if grep _func conftest.s >/dev/null 2>&1; then
+-  grub_cv_asm_uscore=yes
+-else
+-  grub_cv_asm_uscore=no
+-fi
+-
+-rm -f conftest*
+-fi
+-
+-
+-if test "x$grub_cv_asm_uscore" = xyes; then
+-
+-cat >>confdefs.h <<_ACEOF
+-#define HAVE_ASM_USCORE $grub_cv_asm_uscore
+-_ACEOF
+-
+-fi
+-
+-echo "$as_me:$LINENO: result: $grub_cv_asm_uscore" >&5
+-echo "${ECHO_T}$grub_cv_asm_uscore" >&6
+-
+-echo "$as_me:$LINENO: checking whether ${OBJCOPY} works for absolute addresses" >&5
+-echo $ECHO_N "checking whether ${OBJCOPY} works for absolute addresses... $ECHO_C" >&6
+-if test "${grub_cv_prog_objcopy_absolute+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat > conftest.c <<\EOF
+-void
+-cmain (void)
+-{
+-   *((int *) 0x1000) = 2;
+-}
+-EOF
+-
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } && test -s conftest.o; then :
+-else
+-  { { echo "$as_me:$LINENO: error: ${CC-cc} cannot compile C source code" >&5
+-echo "$as_me: error: ${CC-cc} cannot compile C source code" >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-grub_cv_prog_objcopy_absolute=yes
+-for link_addr in 2000 8000 7C00; do
+-  if { ac_try='${CC-cc} ${CFLAGS} -nostdlib -Wl,-N -Wl,-Ttext -Wl,$link_addr conftest.o -o conftest.exec'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then :
+-  else
+-    { { echo "$as_me:$LINENO: error: ${CC-cc} cannot link at address $link_addr" >&5
+-echo "$as_me: error: ${CC-cc} cannot link at address $link_addr" >&2;}
+-   { (exit 1); exit 1; }; }
+-  fi
+-  if { ac_try='${OBJCOPY-objcopy} -O binary conftest.exec conftest'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then :
+-  else
+-    { { echo "$as_me:$LINENO: error: ${OBJCOPY-objcopy} cannot create binary files" >&5
+-echo "$as_me: error: ${OBJCOPY-objcopy} cannot create binary files" >&2;}
+-   { (exit 1); exit 1; }; }
+-  fi
+-  if test ! -f conftest.old || { ac_try='cmp -s conftest.old conftest'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-    mv -f conftest conftest.old
+-  else
+-    grub_cv_prog_objcopy_absolute=no
+-    break
+-  fi
+-done
+-rm -f conftest*
+-fi
+-
+-echo "$as_me:$LINENO: result: $grub_cv_prog_objcopy_absolute" >&5
+-echo "${ECHO_T}$grub_cv_prog_objcopy_absolute" >&6
+-if test "x$grub_cv_prog_objcopy_absolute" != xyes; then
+-  { { echo "$as_me:$LINENO: error: GRUB requires a working absolute objcopy; upgrade your binutils" >&5
+-echo "$as_me: error: GRUB requires a working absolute objcopy; upgrade your binutils" >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-
+-
+-echo "$as_me:$LINENO: checking whether addr32 must be in the same line as the instruction" >&5
+-echo $ECHO_N "checking whether addr32 must be in the same line as the instruction... $ECHO_C" >&6
+-if test "${grub_cv_asm_prefix_requirement+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat > conftest.s <<\EOF
+-	.code16
+-l1:	addr32	movb	%al, l1
+-EOF
+-
+-if { ac_try='${CC-cc} ${CFLAGS} -c conftest.s'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } && test -s conftest.o; then
+-  grub_cv_asm_prefix_requirement=yes
+-else
+-  grub_cv_asm_prefix_requirement=no
+-fi
+-
+-rm -f conftest*
+-fi
+-
+-
+-if test "x$grub_cv_asm_prefix_requirement" = xyes; then
+-  grub_tmp_addr32="addr32"
+-  grub_tmp_data32="data32"
+-else
+-  grub_tmp_addr32="addr32;"
+-  grub_tmp_data32="data32;"
+-fi
+-
+-
+-cat >>confdefs.h <<_ACEOF
+-#define ADDR32 $grub_tmp_addr32
+-_ACEOF
+-
+-
+-cat >>confdefs.h <<_ACEOF
+-#define DATA32 $grub_tmp_data32
+-_ACEOF
+-
+-
+-echo "$as_me:$LINENO: result: $grub_cv_asm_prefix_requirement" >&5
+-echo "${ECHO_T}$grub_cv_asm_prefix_requirement" >&6
+-
+-
+-
+-echo "$as_me:$LINENO: checking for .code16 addr32 assembler support" >&5
+-echo $ECHO_N "checking for .code16 addr32 assembler support... $ECHO_C" >&6
+-if test "${grub_cv_asm_addr32+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat > conftest.s.in <<\EOF
+-	.code16
+-l1:	@ADDR32@	movb	%al, l1
+-EOF
+-
+-if test "x$grub_cv_asm_prefix_requirement" = xyes; then
+-  sed -e s/@ADDR32@/addr32/ < conftest.s.in > conftest.s
+-else
+-  sed -e s/@ADDR32@/addr32\;/ < conftest.s.in > conftest.s
+-fi
+-
+-if { ac_try='${CC-cc} ${CFLAGS} -c conftest.s'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } && test -s conftest.o; then
+-  grub_cv_asm_addr32=yes
+-else
+-  grub_cv_asm_addr32=no
+-fi
+-
+-rm -f conftest*
+-fi
+-
+-
+-echo "$as_me:$LINENO: result: $grub_cv_asm_addr32" >&5
+-echo "${ECHO_T}$grub_cv_asm_addr32" >&6
+-if test "x$grub_cv_asm_addr32" != xyes; then
+-  { { echo "$as_me:$LINENO: error: GRUB requires GAS .code16 addr32 support; upgrade your binutils" >&5
+-echo "$as_me: error: GRUB requires GAS .code16 addr32 support; upgrade your binutils" >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-
+-
+-echo "$as_me:$LINENO: checking whether an absolute indirect call/jump must not be prefixed with an asterisk" >&5
+-echo $ECHO_N "checking whether an absolute indirect call/jump must not be prefixed with an asterisk... $ECHO_C" >&6
+-if test "${grub_cv_asm_absolute_without_asterisk+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat > conftest.s <<\EOF
+-	lcall	*(offset)
+-offset:
+-	.long	0
+-	.word	0
+-EOF
+-
+-if { ac_try='${CC-cc} ${CFLAGS} -c conftest.s'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } && test -s conftest.o; then
+-  grub_cv_asm_absolute_without_asterisk=no
+-else
+-  grub_cv_asm_absolute_without_asterisk=yes
+-fi
+-
+-rm -f conftest*
+-fi
+-
+-
+-if test "x$grub_cv_asm_absolute_without_asterisk" = xyes; then
+-
+-cat >>confdefs.h <<\_ACEOF
+-#define ABSOLUTE_WITHOUT_ASTERISK 1
+-_ACEOF
+-
+-fi
+-
+-echo "$as_me:$LINENO: result: $grub_cv_asm_absolute_without_asterisk" >&5
+-echo "${ECHO_T}$grub_cv_asm_absolute_without_asterisk" >&6
+-
+-
+-echo "$as_me:$LINENO: checking if start is defined by the compiler" >&5
+-echo $ECHO_N "checking if start is defined by the compiler... $ECHO_C" >&6
+-if test "${grub_cv_check_start_symbol+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-asm ("incl start")
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"
+-			 || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-	 { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  grub_cv_check_start_symbol=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-grub_cv_check_start_symbol=no
+-fi
+-rm -f conftest.err conftest.$ac_objext \
+-      conftest$ac_exeext conftest.$ac_ext
+-fi
+-
+-
+-if test "x$grub_cv_check_start_symbol" = xyes; then
+-
+-cat >>confdefs.h <<\_ACEOF
+-#define HAVE_START_SYMBOL 1
+-_ACEOF
+-
+-fi
+-
+-echo "$as_me:$LINENO: result: $grub_cv_check_start_symbol" >&5
+-echo "${ECHO_T}$grub_cv_check_start_symbol" >&6
+-
+-
+-echo "$as_me:$LINENO: checking if _start is defined by the compiler" >&5
+-echo $ECHO_N "checking if _start is defined by the compiler... $ECHO_C" >&6
+-if test "${grub_cv_check_uscore_start_symbol+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-asm ("incl _start")
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"
+-			 || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-	 { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  grub_cv_check_uscore_start_symbol=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-grub_cv_check_uscore_start_symbol=no
+-fi
+-rm -f conftest.err conftest.$ac_objext \
+-      conftest$ac_exeext conftest.$ac_ext
+-fi
+-
+-
+-if test "x$grub_cv_check_uscore_start_symbol" = xyes; then
+-
+-cat >>confdefs.h <<\_ACEOF
+-#define HAVE_USCORE_START_SYMBOL 1
+-_ACEOF
+-
+-fi
+-
+-echo "$as_me:$LINENO: result: $grub_cv_check_uscore_start_symbol" >&5
+-echo "${ECHO_T}$grub_cv_check_uscore_start_symbol" >&6
+-
+-if test "x$grub_cv_check_start_symbol" != "xyes" \
+-	-a "x$grub_cv_check_uscore_start_symbol" != "xyes"; then
+-  { { echo "$as_me:$LINENO: error: Neither start nor _start is defined" >&5
+-echo "$as_me: error: Neither start nor _start is defined" >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-
+-
+-echo "$as_me:$LINENO: checking if __bss_start is defined by the compiler" >&5
+-echo $ECHO_N "checking if __bss_start is defined by the compiler... $ECHO_C" >&6
+-if test "${grub_cv_check_uscore_uscore_bss_start_symbol+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-asm ("incl __bss_start")
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"
+-			 || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-	 { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  grub_cv_check_uscore_uscore_bss_start_symbol=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-grub_cv_check_uscore_uscore_bss_start_symbol=no
+-fi
+-rm -f conftest.err conftest.$ac_objext \
+-      conftest$ac_exeext conftest.$ac_ext
+-fi
+-
+-
+-if test "x$grub_cv_check_uscore_uscore_bss_start_symbol" = xyes; then
+-
+-cat >>confdefs.h <<\_ACEOF
+-#define HAVE_USCORE_USCORE_BSS_START_SYMBOL 1
+-_ACEOF
+-
+-fi
+-
+-echo "$as_me:$LINENO: result: $grub_cv_check_uscore_uscore_bss_start_symbol" >&5
+-echo "${ECHO_T}$grub_cv_check_uscore_uscore_bss_start_symbol" >&6
+-
+-
+-echo "$as_me:$LINENO: checking if _edata is defined by the compiler" >&5
+-echo $ECHO_N "checking if _edata is defined by the compiler... $ECHO_C" >&6
+-if test "${grub_cv_check_uscore_edata_symbol+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-asm ("incl _edata")
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"
+-			 || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-	 { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  grub_cv_check_uscore_edata_symbol=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-grub_cv_check_uscore_edata_symbol=no
+-fi
+-rm -f conftest.err conftest.$ac_objext \
+-      conftest$ac_exeext conftest.$ac_ext
+-fi
+-
+-
+-if test "x$grub_cv_check_uscore_edata_symbol" = xyes; then
+-
+-cat >>confdefs.h <<\_ACEOF
+-#define HAVE_USCORE_EDATA_SYMBOL 1
+-_ACEOF
+-
+-fi
+-
+-echo "$as_me:$LINENO: result: $grub_cv_check_uscore_edata_symbol" >&5
+-echo "${ECHO_T}$grub_cv_check_uscore_edata_symbol" >&6
+-
+-
+-echo "$as_me:$LINENO: checking if edata is defined by the compiler" >&5
+-echo $ECHO_N "checking if edata is defined by the compiler... $ECHO_C" >&6
+-if test "${grub_cv_check_edata_symbol+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-asm ("incl edata")
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"
+-			 || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-	 { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  grub_cv_check_edata_symbol=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-grub_cv_check_edata_symbol=no
+-fi
+-rm -f conftest.err conftest.$ac_objext \
+-      conftest$ac_exeext conftest.$ac_ext
+-fi
+-
+-
+-if test "x$grub_cv_check_edata_symbol" = xyes; then
+-
+-cat >>confdefs.h <<\_ACEOF
+-#define HAVE_EDATA_SYMBOL 1
+-_ACEOF
+-
+-fi
+-
+-echo "$as_me:$LINENO: result: $grub_cv_check_edata_symbol" >&5
+-echo "${ECHO_T}$grub_cv_check_edata_symbol" >&6
+-
+-if test "x$grub_cv_check_uscore_uscore_bss_start_symbol" != "xyes" \
+-	-a "x$grub_cv_check_uscore_edata_symbol" != "xyes" \
+-	-a "x$grub_cv_check_edata_symbol" != "xyes"; then
+-  { { echo "$as_me:$LINENO: error: None of __bss_start, _edata, edata defined" >&5
+-echo "$as_me: error: None of __bss_start, _edata, edata defined" >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-
+-
+-echo "$as_me:$LINENO: checking if end is defined by the compiler" >&5
+-echo $ECHO_N "checking if end is defined by the compiler... $ECHO_C" >&6
+-if test "${grub_cv_check_end_symbol+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-asm ("incl end")
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"
+-			 || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-	 { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  grub_cv_check_end_symbol=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-grub_cv_check_end_symbol=no
+-fi
+-rm -f conftest.err conftest.$ac_objext \
+-      conftest$ac_exeext conftest.$ac_ext
+-fi
+-
+-
+-if test "x$grub_cv_check_end_symbol" = xyes; then
+-
+-cat >>confdefs.h <<\_ACEOF
+-#define HAVE_END_SYMBOL 1
+-_ACEOF
+-
+-fi
+-
+-echo "$as_me:$LINENO: result: $grub_cv_check_end_symbol" >&5
+-echo "${ECHO_T}$grub_cv_check_end_symbol" >&6
+-
+-
+-echo "$as_me:$LINENO: checking if _end is defined by the compiler" >&5
+-echo $ECHO_N "checking if _end is defined by the compiler... $ECHO_C" >&6
+-if test "${grub_cv_check_uscore_end_symbol+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-asm ("incl _end")
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"
+-			 || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-	 { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  grub_cv_check_uscore_end_symbol=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-grub_cv_check_uscore_end_symbol=no
+-fi
+-rm -f conftest.err conftest.$ac_objext \
+-      conftest$ac_exeext conftest.$ac_ext
+-fi
+-
+-
+-if test "x$grub_cv_check_uscore_end_symbol" = xyes; then
+-
+-cat >>confdefs.h <<\_ACEOF
+-#define HAVE_USCORE_END_SYMBOL 1
+-_ACEOF
+-
+-fi
+-
+-echo "$as_me:$LINENO: result: $grub_cv_check_uscore_end_symbol" >&5
+-echo "${ECHO_T}$grub_cv_check_uscore_end_symbol" >&6
+-
+-if test "x$grub_cv_check_end_symbol" != "xyes" \
+-	-a "x$grub_cv_check_uscore_end_symbol" != "xyes"; then
+-  { { echo "$as_me:$LINENO: error: Neither end nor _end is defined" >&5
+-echo "$as_me: error: Neither end nor _end is defined" >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-
+-# Check for curses libraries.
+-
+-# Check whether --with-curses or --without-curses was given.
+-if test "${with_curses+set}" = set; then
+-  withval="$with_curses"
+-
+-fi;
+-
+-# Get the filename or the whole disk and open it.
+-# Known to work on NetBSD.
+-echo "$as_me:$LINENO: checking for opendisk in -lutil" >&5
+-echo $ECHO_N "checking for opendisk in -lutil... $ECHO_C" >&6
+-if test "${ac_cv_lib_util_opendisk+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lutil  $LIBS"
+-cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-/* Override any gcc2 internal prototype to avoid an error.  */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+-   builtin and then its argument prototype would still apply.  */
+-char opendisk ();
+-int
+-main ()
+-{
+-opendisk ();
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"
+-			 || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-	 { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  ac_cv_lib_util_opendisk=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-ac_cv_lib_util_opendisk=no
+-fi
+-rm -f conftest.err conftest.$ac_objext \
+-      conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_lib_util_opendisk" >&5
+-echo "${ECHO_T}$ac_cv_lib_util_opendisk" >&6
+-if test $ac_cv_lib_util_opendisk = yes; then
+-  GRUB_LIBS="$GRUB_LIBS -lutil"
+-
+-cat >>confdefs.h <<\_ACEOF
+-#define HAVE_OPENDISK 1
+-_ACEOF
+-
+-fi
+-
+-
+-# Unless the user specify --without-curses, check for curses.
+-if test "x$with_curses" != "xno"; then
+-  echo "$as_me:$LINENO: checking for wgetch in -lncurses" >&5
+-echo $ECHO_N "checking for wgetch in -lncurses... $ECHO_C" >&6
+-if test "${ac_cv_lib_ncurses_wgetch+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lncurses  $LIBS"
+-cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-/* Override any gcc2 internal prototype to avoid an error.  */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+-   builtin and then its argument prototype would still apply.  */
+-char wgetch ();
+-int
+-main ()
+-{
+-wgetch ();
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"
+-			 || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-	 { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  ac_cv_lib_ncurses_wgetch=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-ac_cv_lib_ncurses_wgetch=no
+-fi
+-rm -f conftest.err conftest.$ac_objext \
+-      conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_lib_ncurses_wgetch" >&5
+-echo "${ECHO_T}$ac_cv_lib_ncurses_wgetch" >&6
+-if test $ac_cv_lib_ncurses_wgetch = yes; then
+-  GRUB_LIBS="$GRUB_LIBS -lncurses"
+-
+-cat >>confdefs.h <<\_ACEOF
+-#define HAVE_LIBCURSES 1
+-_ACEOF
+-
+-else
+-  echo "$as_me:$LINENO: checking for wgetch in -lcurses" >&5
+-echo $ECHO_N "checking for wgetch in -lcurses... $ECHO_C" >&6
+-if test "${ac_cv_lib_curses_wgetch+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lcurses  $LIBS"
+-cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-/* Override any gcc2 internal prototype to avoid an error.  */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+-   builtin and then its argument prototype would still apply.  */
+-char wgetch ();
+-int
+-main ()
+-{
+-wgetch ();
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"
+-			 || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-	 { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  ac_cv_lib_curses_wgetch=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-ac_cv_lib_curses_wgetch=no
+-fi
+-rm -f conftest.err conftest.$ac_objext \
+-      conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_lib_curses_wgetch" >&5
+-echo "${ECHO_T}$ac_cv_lib_curses_wgetch" >&6
+-if test $ac_cv_lib_curses_wgetch = yes; then
+-  GRUB_LIBS="$GRUB_LIBS -lcurses"
+-
+-cat >>confdefs.h <<\_ACEOF
+-#define HAVE_LIBCURSES 1
+-_ACEOF
+-
+-fi
+-
+-fi
+-
+-fi
+-
+-
+-
+-# Check for headers.
+-ac_ext=c
+-ac_cpp='$CPP $CPPFLAGS'
+-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+-echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
+-# On Suns, sometimes $CPP names a directory.
+-if test -n "$CPP" && test -d "$CPP"; then
+-  CPP=
+-fi
+-if test -z "$CPP"; then
+-  if test "${ac_cv_prog_CPP+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-      # Double quotes because CPP needs to be expanded
+-    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+-    do
+-      ac_preproc_ok=false
+-for ac_c_preproc_warn_flag in '' yes
+-do
+-  # Use a header file that comes with gcc, so configuring glibc
+-  # with a fresh cross-compiler works.
+-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+-  # <limits.h> exists even on freestanding compilers.
+-  # On the NeXT, cc -E runs the code through the compiler's parser,
+-  # not just through cpp. "Syntax error" is here to catch this case.
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#ifdef __STDC__
+-# include <limits.h>
+-#else
+-# include <assert.h>
+-#endif
+-		     Syntax error
+-_ACEOF
+-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } >/dev/null; then
+-  if test -s conftest.err; then
+-    ac_cpp_err=$ac_c_preproc_warn_flag
+-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+-  else
+-    ac_cpp_err=
+-  fi
+-else
+-  ac_cpp_err=yes
+-fi
+-if test -z "$ac_cpp_err"; then
+-  :
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-  # Broken: fails on valid input.
+-continue
+-fi
+-rm -f conftest.err conftest.$ac_ext
+-
+-  # OK, works on sane cases.  Now check whether non-existent headers
+-  # can be detected and how.
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#include <ac_nonexistent.h>
+-_ACEOF
+-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } >/dev/null; then
+-  if test -s conftest.err; then
+-    ac_cpp_err=$ac_c_preproc_warn_flag
+-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+-  else
+-    ac_cpp_err=
+-  fi
+-else
+-  ac_cpp_err=yes
+-fi
+-if test -z "$ac_cpp_err"; then
+-  # Broken: success on invalid input.
+-continue
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-  # Passes both tests.
+-ac_preproc_ok=:
+-break
+-fi
+-rm -f conftest.err conftest.$ac_ext
+-
+-done
+-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+-rm -f conftest.err conftest.$ac_ext
+-if $ac_preproc_ok; then
+-  break
+-fi
+-
+-    done
+-    ac_cv_prog_CPP=$CPP
+-
+-fi
+-  CPP=$ac_cv_prog_CPP
+-else
+-  ac_cv_prog_CPP=$CPP
+-fi
+-echo "$as_me:$LINENO: result: $CPP" >&5
+-echo "${ECHO_T}$CPP" >&6
+-ac_preproc_ok=false
+-for ac_c_preproc_warn_flag in '' yes
+-do
+-  # Use a header file that comes with gcc, so configuring glibc
+-  # with a fresh cross-compiler works.
+-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+-  # <limits.h> exists even on freestanding compilers.
+-  # On the NeXT, cc -E runs the code through the compiler's parser,
+-  # not just through cpp. "Syntax error" is here to catch this case.
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#ifdef __STDC__
+-# include <limits.h>
+-#else
+-# include <assert.h>
+-#endif
+-		     Syntax error
+-_ACEOF
+-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } >/dev/null; then
+-  if test -s conftest.err; then
+-    ac_cpp_err=$ac_c_preproc_warn_flag
+-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+-  else
+-    ac_cpp_err=
+-  fi
+-else
+-  ac_cpp_err=yes
+-fi
+-if test -z "$ac_cpp_err"; then
+-  :
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-  # Broken: fails on valid input.
+-continue
+-fi
+-rm -f conftest.err conftest.$ac_ext
+-
+-  # OK, works on sane cases.  Now check whether non-existent headers
+-  # can be detected and how.
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#include <ac_nonexistent.h>
+-_ACEOF
+-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } >/dev/null; then
+-  if test -s conftest.err; then
+-    ac_cpp_err=$ac_c_preproc_warn_flag
+-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+-  else
+-    ac_cpp_err=
+-  fi
+-else
+-  ac_cpp_err=yes
+-fi
+-if test -z "$ac_cpp_err"; then
+-  # Broken: success on invalid input.
+-continue
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-  # Passes both tests.
+-ac_preproc_ok=:
+-break
+-fi
+-rm -f conftest.err conftest.$ac_ext
+-
+-done
+-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+-rm -f conftest.err conftest.$ac_ext
+-if $ac_preproc_ok; then
+-  :
+-else
+-  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+-See \`config.log' for more details." >&5
+-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
+-See \`config.log' for more details." >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-
+-ac_ext=c
+-ac_cpp='$CPP $CPPFLAGS'
+-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+-
+-
+-echo "$as_me:$LINENO: checking for egrep" >&5
+-echo $ECHO_N "checking for egrep... $ECHO_C" >&6
+-if test "${ac_cv_prog_egrep+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+-    then ac_cv_prog_egrep='grep -E'
+-    else ac_cv_prog_egrep='egrep'
+-    fi
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
+-echo "${ECHO_T}$ac_cv_prog_egrep" >&6
+- EGREP=$ac_cv_prog_egrep
+-
+-
+-echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+-if test "${ac_cv_header_stdc+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#include <stdlib.h>
+-#include <stdarg.h>
+-#include <string.h>
+-#include <float.h>
+-
+-int
+-main ()
+-{
+-
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"
+-			 || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-	 { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  ac_cv_header_stdc=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-ac_cv_header_stdc=no
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+-
+-if test $ac_cv_header_stdc = yes; then
+-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#include <string.h>
+-
+-_ACEOF
+-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+-  $EGREP "memchr" >/dev/null 2>&1; then
+-  :
+-else
+-  ac_cv_header_stdc=no
+-fi
+-rm -f conftest*
+-
+-fi
+-
+-if test $ac_cv_header_stdc = yes; then
+-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#include <stdlib.h>
+-
+-_ACEOF
+-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+-  $EGREP "free" >/dev/null 2>&1; then
+-  :
+-else
+-  ac_cv_header_stdc=no
+-fi
+-rm -f conftest*
+-
+-fi
+-
+-if test $ac_cv_header_stdc = yes; then
+-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+-  if test "$cross_compiling" = yes; then
+-  :
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#include <ctype.h>
+-#if ((' ' & 0x0FF) == 0x020)
+-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+-#else
+-# define ISLOWER(c) \
+-		   (('a' <= (c) && (c) <= 'i') \
+-		     || ('j' <= (c) && (c) <= 'r') \
+-		     || ('s' <= (c) && (c) <= 'z'))
+-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+-#endif
+-
+-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+-int
+-main ()
+-{
+-  int i;
+-  for (i = 0; i < 256; i++)
+-    if (XOR (islower (i), ISLOWER (i))
+-	|| toupper (i) != TOUPPER (i))
+-      exit(2);
+-  exit (0);
+-}
+-_ACEOF
+-rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  :
+-else
+-  echo "$as_me: program exited with status $ac_status" >&5
+-echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-( exit $ac_status )
+-ac_cv_header_stdc=no
+-fi
+-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+-fi
+-fi
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+-echo "${ECHO_T}$ac_cv_header_stdc" >&6
+-if test $ac_cv_header_stdc = yes; then
+-
+-cat >>confdefs.h <<\_ACEOF
+-#define STDC_HEADERS 1
+-_ACEOF
+-
+-fi
+-
+-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+-		  inttypes.h stdint.h unistd.h
+-do
+-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:$LINENO: checking for $ac_header" >&5
+-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-$ac_includes_default
+-
+-#include <$ac_header>
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"
+-			 || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-	 { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  eval "$as_ac_Header=yes"
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-eval "$as_ac_Header=no"
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+-fi
+-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+-  cat >>confdefs.h <<_ACEOF
+-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+-_ACEOF
+-
+-fi
+-
+-done
+-
+-
+-
+-
+-
+-
+-
+-for ac_header in string.h strings.h ncurses/curses.h ncurses.h curses.h
+-do
+-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+-  echo "$as_me:$LINENO: checking for $ac_header" >&5
+-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-fi
+-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+-else
+-  # Is the header compilable?
+-echo "$as_me:$LINENO: checking $ac_header usability" >&5
+-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+-cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-$ac_includes_default
+-#include <$ac_header>
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"
+-			 || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-	 { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  ac_header_compiler=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-ac_header_compiler=no
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+-echo "${ECHO_T}$ac_header_compiler" >&6
+-
+-# Is the header present?
+-echo "$as_me:$LINENO: checking $ac_header presence" >&5
+-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+-cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#include <$ac_header>
+-_ACEOF
+-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } >/dev/null; then
+-  if test -s conftest.err; then
+-    ac_cpp_err=$ac_c_preproc_warn_flag
+-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+-  else
+-    ac_cpp_err=
+-  fi
+-else
+-  ac_cpp_err=yes
+-fi
+-if test -z "$ac_cpp_err"; then
+-  ac_header_preproc=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-  ac_header_preproc=no
+-fi
+-rm -f conftest.err conftest.$ac_ext
+-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+-echo "${ECHO_T}$ac_header_preproc" >&6
+-
+-# So?  What about this header?
+-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+-  yes:no: )
+-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+-    ac_header_preproc=yes
+-    ;;
+-  no:yes:* )
+-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+-    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+-echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+-    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+-    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+-echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+-    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+-    (
+-      cat <<\_ASBOX
+-## ------------------------------- ##
+-## Report this to bug-grub at gnu.org ##
+-## ------------------------------- ##
+-_ASBOX
+-    ) |
+-      sed "s/^/$as_me: WARNING:     /" >&2
+-    ;;
+-esac
+-echo "$as_me:$LINENO: checking for $ac_header" >&5
+-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  eval "$as_ac_Header=\$ac_header_preproc"
+-fi
+-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+-
+-fi
+-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+-  cat >>confdefs.h <<_ACEOF
+-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+-_ACEOF
+-
+-fi
+-
+-done
+-
+-
+-# Check for user options.
+-
+-# filesystems support.
+-# Check whether --enable-ext2fs or --disable-ext2fs was given.
+-if test "${enable_ext2fs+set}" = set; then
+-  enableval="$enable_ext2fs"
+-
+-fi;
+-
+-if test x"$enable_ext2fs" != xno; then
+-  FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_EXT2FS=1"
+-fi
+-
+-# Check whether --enable-fat or --disable-fat was given.
+-if test "${enable_fat+set}" = set; then
+-  enableval="$enable_fat"
+-
+-fi;
+-
+-if test x"$enable_fat" != xno; then
+-  FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_FAT=1"
+-fi
+-
+-# Check whether --enable-ffs or --disable-ffs was given.
+-if test "${enable_ffs+set}" = set; then
+-  enableval="$enable_ffs"
+-
+-fi;
+-
+-if test x"$enable_ffs" != xno; then
+-  FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_FFS=1"
+-fi
+-
+-# Check whether --enable-ufs2 or --disable-ufs2 was given.
+-if test "${enable_ufs2+set}" = set; then
+-  enableval="$enable_ufs2"
+-
+-fi;
+-
+-if test x"$enable_ufs2" != xno; then
+-  FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_UFS2=1"
+-fi
+-
+-# Check whether --enable-minix or --disable-minix was given.
+-if test "${enable_minix+set}" = set; then
+-  enableval="$enable_minix"
+-
+-fi;
+-
+-if test x"$enable_minix" != xno; then
+-  FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_MINIX=1"
+-fi
+-
+-# Check whether --enable-reiserfs or --disable-reiserfs was given.
+-if test "${enable_reiserfs+set}" = set; then
+-  enableval="$enable_reiserfs"
+-
+-fi;
+-
+-if test x"$enable_reiserfs" != xno; then
+-  FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_REISERFS=1"
+-fi
+-
+-# Check whether --enable-vstafs or --disable-vstafs was given.
+-if test "${enable_vstafs+set}" = set; then
+-  enableval="$enable_vstafs"
+-
+-fi;
+-
+-if test x"$enable_vstafs" != xno; then
+-  FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_VSTAFS=1"
+-fi
+-
+-# Check whether --enable-jfs or --disable-jfs was given.
+-if test "${enable_jfs+set}" = set; then
+-  enableval="$enable_jfs"
+-
+-fi;
+-
+-if test x"$enable_jfs" != xno; then
+-  FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_JFS=1"
+-fi
+-
+-# Check whether --enable-xfs or --disable-xfs was given.
+-if test "${enable_xfs+set}" = set; then
+-  enableval="$enable_xfs"
+-
+-fi;
+-
+-if test x"$enable_xfs" != xno; then
+-  FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_XFS=1"
+-fi
+-
+-# Check whether --enable-iso9660 or --disable-iso9660 was given.
+-if test "${enable_iso9660+set}" = set; then
+-  enableval="$enable_iso9660"
+-
+-fi;
+-
+-if test x"$enable_iso9660" != xno; then
+-  FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_ISO9660=1"
+-fi
+-
+-
+-# Check whether --enable-gunzip or --disable-gunzip was given.
+-if test "${enable_gunzip+set}" = set; then
+-  enableval="$enable_gunzip"
+-
+-fi;
+-
+-if test x"$enable_gunzip" = xno; then
+-  FSYS_CFLAGS="$FSYS_CFLAGS -DNO_DECOMPRESSION=1"
+-fi
+-
+-# Check whether --enable-md5-password or --disable-md5-password was given.
+-if test "${enable_md5_password+set}" = set; then
+-  enableval="$enable_md5_password"
+-
+-fi;
+-if test "x$enable_md5_password" != xno; then
+-  FSYS_CFLAGS="$FSYS_CFLAGS -DUSE_MD5_PASSWORDS=1"
+-fi
+-
+-# Check whether --enable-packet-retransmission or --disable-packet-retransmission was given.
+-if test "${enable_packet_retransmission+set}" = set; then
+-  enableval="$enable_packet_retransmission"
+-
+-fi;
+-if test "x$enable_packet_retransmission" != xno; then
+-  NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DCONGESTED=1"
+-fi
+-
+-# Check whether --enable-pci-direct or --disable-pci-direct was given.
+-if test "${enable_pci_direct+set}" = set; then
+-  enableval="$enable_pci_direct"
+-
+-fi;
+-if test "x$enable_pci_direct" = xyes; then
+-  NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DCONFIG_PCI_DIRECT=1"
+-fi
+-
+-# Check whether --enable-3c509 or --disable-3c509 was given.
+-if test "${enable_3c509+set}" = set; then
+-  enableval="$enable_3c509"
+-
+-fi;
+-if test "x$enable_3c509" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C509"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c509.o"
+-fi
+-
+-# Check whether --enable-3c529 or --disable-3c529 was given.
+-if test "${enable_3c529+set}" = set; then
+-  enableval="$enable_3c529"
+-
+-fi;
+-if test "x$enable_3c529" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C529=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c529.o"
+-fi
+-
+-# Check whether --enable-3c595 or --disable-3c595 was given.
+-if test "${enable_3c595+set}" = set; then
+-  enableval="$enable_3c595"
+-
+-fi;
+-if test "x$enable_3c595" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C595=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c595.o"
+-fi
+-
+-# Check whether --enable-3c90x or --disable-3c90x was given.
+-if test "${enable_3c90x+set}" = set; then
+-  enableval="$enable_3c90x"
+-
+-fi;
+-if test "x$enable_3c90x" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C90X=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c90x.o"
+-fi
+-
+-# Check whether --enable-cs89x0 or --disable-cs89x0 was given.
+-if test "${enable_cs89x0+set}" = set; then
+-  enableval="$enable_cs89x0"
+-
+-fi;
+-if test "x$enable_cs89x0" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_CS89X0=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS cs89x0.o"
+-fi
+-
+-# Check whether --enable-davicom or --disable-davicom was given.
+-if test "${enable_davicom+set}" = set; then
+-  enableval="$enable_davicom"
+-
+-fi;
+-if test "x$enable_davicom" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_DAVICOM=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS davicom.o"
+-fi
+-
+-# Check whether --enable-depca or --disable-depca was given.
+-if test "${enable_depca+set}" = set; then
+-  enableval="$enable_depca"
+-
+-fi;
+-if test "x$enable_depca" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_DEPCA=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS depca.o"
+-fi
+-
+-# Check whether --enable-eepro or --disable-eepro was given.
+-if test "${enable_eepro+set}" = set; then
+-  enableval="$enable_eepro"
+-
+-fi;
+-if test "x$enable_eepro" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_EEPRO=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS eepro.o"
+-fi
+-
+-# Check whether --enable-eepro100 or --disable-eepro100 was given.
+-if test "${enable_eepro100+set}" = set; then
+-  enableval="$enable_eepro100"
+-
+-fi;
+-if test "x$enable_eepro100" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_EEPRO100=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS eepro100.o"
+-fi
+-
+-# Check whether --enable-epic100 or --disable-epic100 was given.
+-if test "${enable_epic100+set}" = set; then
+-  enableval="$enable_epic100"
+-
+-fi;
+-if test "x$enable_epic100" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_EPIC100=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS epic100.o"
+-fi
+-
+-# Check whether --enable-3c507 or --disable-3c507 was given.
+-if test "${enable_3c507+set}" = set; then
+-  enableval="$enable_3c507"
+-
+-fi;
+-if test "x$enable_3c507" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C507=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c507.o"
+-fi
+-
+-# Check whether --enable-exos205 or --disable-exos205 was given.
+-if test "${enable_exos205+set}" = set; then
+-  enableval="$enable_exos205"
+-
+-fi;
+-if test "x$enable_exos205" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_EXOS205=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS exos205.o"
+-fi
+-
+-# Check whether --enable-ni5210 or --disable-ni5210 was given.
+-if test "${enable_ni5210+set}" = set; then
+-  enableval="$enable_ni5210"
+-
+-fi;
+-if test "x$enable_ni5210" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NI5210=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS ni5210.o"
+-fi
+-
+-# Check whether --enable-lance or --disable-lance was given.
+-if test "${enable_lance+set}" = set; then
+-  enableval="$enable_lance"
+-
+-fi;
+-if test "x$enable_lance" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_LANCE=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS lance.o"
+-fi
+-
+-# Check whether --enable-ne2100 or --disable-ne2100 was given.
+-if test "${enable_ne2100+set}" = set; then
+-  enableval="$enable_ne2100"
+-
+-fi;
+-if test "x$enable_ne2100" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NE2100=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS ne2100.o"
+-fi
+-
+-# Check whether --enable-ni6510 or --disable-ni6510 was given.
+-if test "${enable_ni6510+set}" = set; then
+-  enableval="$enable_ni6510"
+-
+-fi;
+-if test "x$enable_ni6510" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NI6510=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS ni6510.o"
+-fi
+-
+-# Check whether --enable-natsemi or --disable-natsemi was given.
+-if test "${enable_natsemi+set}" = set; then
+-  enableval="$enable_natsemi"
+-
+-fi;
+-if test "x$enable_natsemi" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NATSEMI=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS natsemi.o"
+-fi
+-
+-# Check whether --enable-ni5010 or --disable-ni5010 was given.
+-if test "${enable_ni5010+set}" = set; then
+-  enableval="$enable_ni5010"
+-
+-fi;
+-if test "x$enable_ni5010" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NI5010=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS ni5010.o"
+-fi
+-
+-# Check whether --enable-3c503 or --disable-3c503 was given.
+-if test "${enable_3c503+set}" = set; then
+-  enableval="$enable_3c503"
+-
+-fi;
+-if test "x$enable_3c503" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C503=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c503.o"
+-fi
+-
+-# Check whether --enable-ne or --disable-ne was given.
+-if test "${enable_ne+set}" = set; then
+-  enableval="$enable_ne"
+-
+-fi;
+-if test "x$enable_ne" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NE=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS ne.o"
+-fi
+-
+-# Check whether --enable-ns8390 or --disable-ns8390 was given.
+-if test "${enable_ns8390+set}" = set; then
+-  enableval="$enable_ns8390"
+-
+-fi;
+-if test "x$enable_ns8390" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NS8390=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS ns8390.o"
+-fi
+-
+-# Check whether --enable-wd or --disable-wd was given.
+-if test "${enable_wd+set}" = set; then
+-  enableval="$enable_wd"
+-
+-fi;
+-if test "x$enable_wd" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_WD=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS wd.o"
+-fi
+-
+-# Check whether --enable-otulip or --disable-otulip was given.
+-if test "${enable_otulip+set}" = set; then
+-  enableval="$enable_otulip"
+-
+-fi;
+-if test "x$enable_otulip" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_OTULIP=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS otulip.o"
+-fi
+-
+-# Check whether --enable-rtl8139 or --disable-rtl8139 was given.
+-if test "${enable_rtl8139+set}" = set; then
+-  enableval="$enable_rtl8139"
+-
+-fi;
+-if test "x$enable_rtl8139" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_RTL8139=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS rtl8139.o"
+-fi
+-
+-# Check whether --enable-sis900 or --disable-sis900 was given.
+-if test "${enable_sis900+set}" = set; then
+-  enableval="$enable_sis900"
+-
+-fi;
+-if test "x$enable_sis900" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_SIS900=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS sis900.o"
+-fi
+-
+-# Check whether --enable-sk-g16 or --disable-sk-g16 was given.
+-if test "${enable_sk_g16+set}" = set; then
+-  enableval="$enable_sk_g16"
+-
+-fi;
+-if test "x$enable_sk_g16" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_SK_G16=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS sk_g16.o"
+-fi
+-
+-# Check whether --enable-smc9000 or --disable-smc9000 was given.
+-if test "${enable_smc9000+set}" = set; then
+-  enableval="$enable_smc9000"
+-
+-fi;
+-if test "x$enable_smc9000" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_SMC9000=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS smc9000.o"
+-fi
+-
+-# Check whether --enable-tiara or --disable-tiara was given.
+-if test "${enable_tiara+set}" = set; then
+-  enableval="$enable_tiara"
+-
+-fi;
+-if test "x$enable_tiara" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_TIARA=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS tiara.o"
+-fi
+-
+-# Check whether --enable-tulip or --disable-tulip was given.
+-if test "${enable_tulip+set}" = set; then
+-  enableval="$enable_tulip"
+-
+-fi;
+-if test "x$enable_tulip" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_TULIP=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS tulip.o"
+-fi
+-
+-# Check whether --enable-via-rhine or --disable-via-rhine was given.
+-if test "${enable_via_rhine+set}" = set; then
+-  enableval="$enable_via_rhine"
+-
+-fi;
+-if test "x$enable_via_rhine" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_VIA_RHINE=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS via_rhine.o"
+-fi
+-
+-# Check whether --enable-w89c840 or --disable-w89c840 was given.
+-if test "${enable_w89c840+set}" = set; then
+-  enableval="$enable_w89c840"
+-
+-fi;
+-if test "x$enable_w89c840" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_W89C840=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS w89c840.o"
+-fi
+-
+-
+-
+-if test "x$NET_CFLAGS" != x; then
+-  NETBOOT_SUPPORT_TRUE=
+-  NETBOOT_SUPPORT_FALSE='#'
+-else
+-  NETBOOT_SUPPORT_TRUE='#'
+-  NETBOOT_SUPPORT_FALSE=
+-fi
+-
+-if test "x$NET_CFLAGS" != x; then
+-  FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_TFTP=1"
+-fi
+-
+-# Check whether --enable-3c503-shmem or --disable-3c503-shmem was given.
+-if test "${enable_3c503_shmem+set}" = set; then
+-  enableval="$enable_3c503_shmem"
+-
+-fi;
+-if test "x$enable_3c503_shmem" = xyes; then
+-  NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DT503_SHMEM=1"
+-fi
+-
+-# Check whether --enable-3c503-aui or --disable-3c503-aui was given.
+-if test "${enable_3c503_aui+set}" = set; then
+-  enableval="$enable_3c503_aui"
+-
+-fi;
+-if test "x$enable_3c503_aui" = xyes; then
+-  NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DT503_AUI=1"
+-fi
+-
+-# Check whether --enable-compex-rl2000-fix or --disable-compex-rl2000-fix was given.
+-if test "${enable_compex_rl2000_fix+set}" = set; then
+-  enableval="$enable_compex_rl2000_fix"
+-
+-fi;
+-if test "x$enable_compex_rl2000_fix" = xyes; then
+-  NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DCOMPEX_RL2000_FIX=1"
+-fi
+-
+-# Check whether --enable-smc9000-scan or --disable-smc9000-scan was given.
+-if test "${enable_smc9000_scan+set}" = set; then
+-  enableval="$enable_smc9000_scan"
+-  NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DSMC9000_SCAN=$enable_smc9000_scan"
+-fi;
+-
+-# Check whether --enable-ne-scan or --disable-ne-scan was given.
+-if test "${enable_ne_scan+set}" = set; then
+-  enableval="$enable_ne_scan"
+-  NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DNE_SCAN=$enable_ne_scan"
+-else
+-  NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DNE_SCAN=0x280,0x300,0x320,0x340"
+-fi;
+-
+-# Check whether --enable-wd-default-mem or --disable-wd-default-mem was given.
+-if test "${enable_wd_default_mem+set}" = set; then
+-  enableval="$enable_wd_default_mem"
+-  NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DWD_DEFAULT_MEM=$enable_wd_default_mem"
+-else
+-  NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DWD_DEFAULT_MEM=0xCC000"
+-fi;
+-
+-# Check whether --enable-cs-scan or --disable-cs-scan was given.
+-if test "${enable_cs_scan+set}" = set; then
+-  enableval="$enable_cs_scan"
+-  NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DCS_SCAN=$enable_cs_scan"
+-fi;
+-
+-# Check whether --enable-diskless or --disable-diskless was given.
+-if test "${enable_diskless+set}" = set; then
+-  enableval="$enable_diskless"
+-
+-fi;
+-
+-
+-if test "x$enable_diskless" = xyes; then
+-  DISKLESS_SUPPORT_TRUE=
+-  DISKLESS_SUPPORT_FALSE='#'
+-else
+-  DISKLESS_SUPPORT_TRUE='#'
+-  DISKLESS_SUPPORT_FALSE=
+-fi
+-
+-
+-# Check whether --enable-hercules or --disable-hercules was given.
+-if test "${enable_hercules+set}" = set; then
+-  enableval="$enable_hercules"
+-
+-fi;
+-
+-
+-if test "x$enable_hercules" != xno; then
+-  HERCULES_SUPPORT_TRUE=
+-  HERCULES_SUPPORT_FALSE='#'
+-else
+-  HERCULES_SUPPORT_TRUE='#'
+-  HERCULES_SUPPORT_FALSE=
+-fi
+-
+-
+-# Check whether --enable-serial or --disable-serial was given.
+-if test "${enable_serial+set}" = set; then
+-  enableval="$enable_serial"
+-
+-fi;
+-
+-
+-if test "x$enable_serial" != xno; then
+-  SERIAL_SUPPORT_TRUE=
+-  SERIAL_SUPPORT_FALSE='#'
+-else
+-  SERIAL_SUPPORT_TRUE='#'
+-  SERIAL_SUPPORT_FALSE=
+-fi
+-
+-
+-# Check whether --enable-serial-speed-simulation or --disable-serial-speed-simulation was given.
+-if test "${enable_serial_speed_simulation+set}" = set; then
+-  enableval="$enable_serial_speed_simulation"
+-
+-fi;
+-
+-
+-if test "x$enable_serial_speed_simulation" = xyes; then
+-  SERIAL_SPEED_SIMULATION_TRUE=
+-  SERIAL_SPEED_SIMULATION_FALSE='#'
+-else
+-  SERIAL_SPEED_SIMULATION_TRUE='#'
+-  SERIAL_SPEED_SIMULATION_FALSE=
+-fi
+-
+-
+-# Sanity check.
+-if test "x$enable_diskless" = xyes; then
+-  if test "x$NET_CFLAGS" = x; then
+-    { { echo "$as_me:$LINENO: error: You must enable at least one network driver" >&5
+-echo "$as_me: error: You must enable at least one network driver" >&2;}
+-   { (exit 1); exit 1; }; }
+-  fi
+-fi
+-
+-# Check whether --enable-preset-menu or --disable-preset-menu was given.
+-if test "${enable_preset_menu+set}" = set; then
+-  enableval="$enable_preset_menu"
+-
+-fi;
+-if test "x$enable_preset_menu" = x; then
+-  :
+-else
+-  if test -r $enable_preset_menu; then
+-
+-# Because early versions of GNU sed 3.x are too buggy, use a C program
+-# instead of shell commands. *sigh*
+-cat >conftest.c <<\EOF
+-#include <stdio.h>
+-
+-int
+-main (void)
+-{
+-  int c;
+-
+-  while ((c = getchar ()) != EOF)
+-    {
+-      switch (c)
+-        {
+-	case '\n':
+-	  fputs ("\\n", stdout);
+-	  break;
+-	case '\r':
+-	  fputs ("\\r", stdout);
+-	  break;
+-	case '\\':
+-	  fputs ("\\\\", stdout);
+-	  break;
+-	case '"':
+-	  fputs ("\\\"", stdout);
+-	  break;
+-	default:
+-	  putchar (c);
+-	}
+-    }
+-
+-  return 0;
+-}
+-EOF
+-
+-if { ac_try='${CC-cc} ${CFLAGS} conftest.c -o conftest'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } && test -s conftest; then
+-  grub_tmp_value=`./conftest < "$enable_preset_menu"`
+-else
+-  { { echo "$as_me:$LINENO: error: ${CC-cc} failed to produce an executable file" >&5
+-echo "$as_me: error: ${CC-cc} failed to produce an executable file" >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-
+-
+-cat >>confdefs.h <<_ACEOF
+-#define PRESET_MENU_STRING "$grub_tmp_value"
+-_ACEOF
+-
+-rm -f conftest*
+-
+-  else
+-    { { echo "$as_me:$LINENO: error: Cannot read the preset menu file $enable_preset_menu" >&5
+-echo "$as_me: error: Cannot read the preset menu file $enable_preset_menu" >&2;}
+-   { (exit 1); exit 1; }; }
+-  fi
+-fi
+-
+-# Check whether --enable-example-kernel or --disable-example-kernel was given.
+-if test "${enable_example_kernel+set}" = set; then
+-  enableval="$enable_example_kernel"
+-
+-fi;
+-
+-
+-if test "x$enable_example_kernel" = xyes; then
+-  BUILD_EXAMPLE_KERNEL_TRUE=
+-  BUILD_EXAMPLE_KERNEL_FALSE='#'
+-else
+-  BUILD_EXAMPLE_KERNEL_TRUE='#'
+-  BUILD_EXAMPLE_KERNEL_FALSE=
+-fi
+-
+-
+-# Check whether --enable-auto-linux-mem-opt or --disable-auto-linux-mem-opt was given.
+-if test "${enable_auto_linux_mem_opt+set}" = set; then
+-  enableval="$enable_auto_linux_mem_opt"
+-
+-fi;
+-if test "x$enable_auto_linux_mem_opt" = xno; then
+-  :
+-else
+-
+-cat >>confdefs.h <<\_ACEOF
+-#define AUTO_LINUX_MEM_OPT 1
+-_ACEOF
+-
+-fi
+-
+-
+-
+-
+-
+-
+-CCASFLAGS='$(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)'
+-
+-
+-
+-                                                                                                                                  ac_config_files="$ac_config_files Makefile stage1/Makefile stage2/Makefile docs/Makefile lib/Makefile util/Makefile grub/Makefile netboot/Makefile util/grub-image util/grub-install util/grub-md5-crypt util/grub-terminfo util/grub-set-default"
+-
+-cat >confcache <<\_ACEOF
+-# This file is a shell script that caches the results of configure
+-# tests run on this system so they can be shared between configure
+-# scripts and configure runs, see configure's option --config-cache.
+-# It is not useful on other systems.  If it contains results you don't
+-# want to keep, you may remove or edit it.
+-#
+-# config.status only pays attention to the cache file if you give it
+-# the --recheck option to rerun configure.
+-#
+-# `ac_cv_env_foo' variables (set or unset) will be overridden when
+-# loading this file, other *unset* `ac_cv_foo' will be assigned the
+-# following values.
+-
+-_ACEOF
+-
+-# The following way of writing the cache mishandles newlines in values,
+-# but we know of no workaround that is simple, portable, and efficient.
+-# So, don't put newlines in cache variables' values.
+-# Ultrix sh set writes to stderr and can't be redirected directly,
+-# and sets the high bit in the cache file unless we assign to the vars.
+-{
+-  (set) 2>&1 |
+-    case `(ac_space=' '; set | grep ac_space) 2>&1` in
+-    *ac_space=\ *)
+-      # `set' does not quote correctly, so add quotes (double-quote
+-      # substitution turns \\\\ into \\, and sed turns \\ into \).
+-      sed -n \
+-	"s/'/'\\\\''/g;
+-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+-      ;;
+-    *)
+-      # `set' quotes correctly as required by POSIX, so do not add quotes.
+-      sed -n \
+-	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+-      ;;
+-    esac;
+-} |
+-  sed '
+-     t clear
+-     : clear
+-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+-     t end
+-     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+-     : end' >>confcache
+-if diff $cache_file confcache >/dev/null 2>&1; then :; else
+-  if test -w $cache_file; then
+-    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
+-    cat confcache >$cache_file
+-  else
+-    echo "not updating unwritable cache $cache_file"
+-  fi
+-fi
+-rm -f confcache
+-
+-test "x$prefix" = xNONE && prefix=$ac_default_prefix
+-# Let make expand exec_prefix.
+-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+-
+-# VPATH may cause trouble with some makes, so we remove $(srcdir),
+-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+-# trailing colons and then remove the whole line if VPATH becomes empty
+-# (actually we leave an empty line to preserve line numbers).
+-if test "x$srcdir" = x.; then
+-  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
+-s/:*\$(srcdir):*/:/;
+-s/:*\${srcdir}:*/:/;
+-s/:*@srcdir@:*/:/;
+-s/^\([^=]*=[	 ]*\):*/\1/;
+-s/:*$//;
+-s/^[^=]*=[	 ]*$//;
+-}'
+-fi
+-
+-DEFS=-DHAVE_CONFIG_H
+-
+-ac_libobjs=
+-ac_ltlibobjs=
+-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+-  # 1. Remove the extension, and $U if already installed.
+-  ac_i=`echo "$ac_i" |
+-	 sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
+-  # 2. Add them.
+-  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
+-  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
+-done
+-LIBOBJS=$ac_libobjs
+-
+-LTLIBOBJS=$ac_ltlibobjs
+-
+-
+-if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
+-  { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&5
+-echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+-  { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&5
+-echo "$as_me: error: conditional \"AMDEP\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+-  { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&5
+-echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+-  { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&5
+-echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-if test -z "${NETBOOT_SUPPORT_TRUE}" && test -z "${NETBOOT_SUPPORT_FALSE}"; then
+-  { { echo "$as_me:$LINENO: error: conditional \"NETBOOT_SUPPORT\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&5
+-echo "$as_me: error: conditional \"NETBOOT_SUPPORT\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-if test -z "${DISKLESS_SUPPORT_TRUE}" && test -z "${DISKLESS_SUPPORT_FALSE}"; then
+-  { { echo "$as_me:$LINENO: error: conditional \"DISKLESS_SUPPORT\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&5
+-echo "$as_me: error: conditional \"DISKLESS_SUPPORT\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-if test -z "${HERCULES_SUPPORT_TRUE}" && test -z "${HERCULES_SUPPORT_FALSE}"; then
+-  { { echo "$as_me:$LINENO: error: conditional \"HERCULES_SUPPORT\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&5
+-echo "$as_me: error: conditional \"HERCULES_SUPPORT\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-if test -z "${SERIAL_SUPPORT_TRUE}" && test -z "${SERIAL_SUPPORT_FALSE}"; then
+-  { { echo "$as_me:$LINENO: error: conditional \"SERIAL_SUPPORT\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&5
+-echo "$as_me: error: conditional \"SERIAL_SUPPORT\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-if test -z "${SERIAL_SPEED_SIMULATION_TRUE}" && test -z "${SERIAL_SPEED_SIMULATION_FALSE}"; then
+-  { { echo "$as_me:$LINENO: error: conditional \"SERIAL_SPEED_SIMULATION\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&5
+-echo "$as_me: error: conditional \"SERIAL_SPEED_SIMULATION\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-if test -z "${BUILD_EXAMPLE_KERNEL_TRUE}" && test -z "${BUILD_EXAMPLE_KERNEL_FALSE}"; then
+-  { { echo "$as_me:$LINENO: error: conditional \"BUILD_EXAMPLE_KERNEL\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&5
+-echo "$as_me: error: conditional \"BUILD_EXAMPLE_KERNEL\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-
+-: ${CONFIG_STATUS=./config.status}
+-ac_clean_files_save=$ac_clean_files
+-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+-echo "$as_me: creating $CONFIG_STATUS" >&6;}
+-cat >$CONFIG_STATUS <<_ACEOF
+-#! $SHELL
+-# Generated by $as_me.
+-# Run this file to recreate the current configuration.
+-# Compiler output produced by configure, useful for debugging
+-# configure, is in config.log if it exists.
+-
+-debug=false
+-ac_cs_recheck=false
+-ac_cs_silent=false
+-SHELL=\${CONFIG_SHELL-$SHELL}
+-_ACEOF
+-
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-## --------------------- ##
+-## M4sh Initialization.  ##
+-## --------------------- ##
+-
+-# Be Bourne compatible
+-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+-  emulate sh
+-  NULLCMD=:
+-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+-  # is contrary to our usage.  Disable this feature.
+-  alias -g '${1+"$@"}'='"$@"'
+-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+-  set -o posix
+-fi
+-DUALCASE=1; export DUALCASE # for MKS sh
+-
+-# Support unset when possible.
+-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+-  as_unset=unset
+-else
+-  as_unset=false
+-fi
+-
+-
+-# Work around bugs in pre-3.0 UWIN ksh.
+-$as_unset ENV MAIL MAILPATH
+-PS1='$ '
+-PS2='> '
+-PS4='+ '
+-
+-# NLS nuisances.
+-for as_var in \
+-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+-  LC_TELEPHONE LC_TIME
+-do
+-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
+-    eval $as_var=C; export $as_var
+-  else
+-    $as_unset $as_var
+-  fi
+-done
+-
+-# Required to use basename.
+-if expr a : '\(a\)' >/dev/null 2>&1; then
+-  as_expr=expr
+-else
+-  as_expr=false
+-fi
+-
+-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+-  as_basename=basename
+-else
+-  as_basename=false
+-fi
+-
+-
+-# Name of the executable.
+-as_me=`$as_basename "$0" ||
+-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+-	 X"$0" : 'X\(//\)$' \| \
+-	 X"$0" : 'X\(/\)$' \| \
+-	 .     : '\(.\)' 2>/dev/null ||
+-echo X/"$0" |
+-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
+-  	  /^X\/\(\/\).*/{ s//\1/; q; }
+-  	  s/.*/./; q'`
+-
+-
+-# PATH needs CR, and LINENO needs CR and PATH.
+-# Avoid depending upon Character Ranges.
+-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+-as_cr_digits='0123456789'
+-as_cr_alnum=$as_cr_Letters$as_cr_digits
+-
+-# The user is always right.
+-if test "${PATH_SEPARATOR+set}" != set; then
+-  echo "#! /bin/sh" >conf$$.sh
+-  echo  "exit 0"   >>conf$$.sh
+-  chmod +x conf$$.sh
+-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+-    PATH_SEPARATOR=';'
+-  else
+-    PATH_SEPARATOR=:
+-  fi
+-  rm -f conf$$.sh
+-fi
+-
+-
+-  as_lineno_1=$LINENO
+-  as_lineno_2=$LINENO
+-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+-  test "x$as_lineno_1" != "x$as_lineno_2" &&
+-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
+-  # Find who we are.  Look in the path if we contain no path at all
+-  # relative or not.
+-  case $0 in
+-    *[\\/]* ) as_myself=$0 ;;
+-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+-done
+-
+-       ;;
+-  esac
+-  # We did not find ourselves, most probably we were run as `sh COMMAND'
+-  # in which case we are not to be found in the path.
+-  if test "x$as_myself" = x; then
+-    as_myself=$0
+-  fi
+-  if test ! -f "$as_myself"; then
+-    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
+-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
+-   { (exit 1); exit 1; }; }
+-  fi
+-  case $CONFIG_SHELL in
+-  '')
+-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for as_base in sh bash ksh sh5; do
+-	 case $as_dir in
+-	 /*)
+-	   if ("$as_dir/$as_base" -c '
+-  as_lineno_1=$LINENO
+-  as_lineno_2=$LINENO
+-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+-  test "x$as_lineno_1" != "x$as_lineno_2" &&
+-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
+-	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+-	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+-	     CONFIG_SHELL=$as_dir/$as_base
+-	     export CONFIG_SHELL
+-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+-	   fi;;
+-	 esac
+-       done
+-done
+-;;
+-  esac
+-
+-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+-  # uniformly replaced by the line number.  The first 'sed' inserts a
+-  # line-number line before each line; the second 'sed' does the real
+-  # work.  The second script uses 'N' to pair each line-number line
+-  # with the numbered line, and appends trailing '-' during
+-  # substitution so that $LINENO is not a special case at line end.
+-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
+-  sed '=' <$as_myself |
+-    sed '
+-      N
+-      s,$,-,
+-      : loop
+-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+-      t loop
+-      s,-$,,
+-      s,^['$as_cr_digits']*\n,,
+-    ' >$as_me.lineno &&
+-  chmod +x $as_me.lineno ||
+-    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
+-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
+-   { (exit 1); exit 1; }; }
+-
+-  # Don't try to exec as it changes $[0], causing all sort of problems
+-  # (the dirname of $[0] is not the place where we might find the
+-  # original and so on.  Autoconf is especially sensible to this).
+-  . ./$as_me.lineno
+-  # Exit status is that of the last command.
+-  exit
+-}
+-
+-
+-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+-  *c*,-n*) ECHO_N= ECHO_C='
+-' ECHO_T='	' ;;
+-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+-esac
+-
+-if expr a : '\(a\)' >/dev/null 2>&1; then
+-  as_expr=expr
+-else
+-  as_expr=false
+-fi
+-
+-rm -f conf$$ conf$$.exe conf$$.file
+-echo >conf$$.file
+-if ln -s conf$$.file conf$$ 2>/dev/null; then
+-  # We could just check for DJGPP; but this test a) works b) is more generic
+-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+-  if test -f conf$$.exe; then
+-    # Don't use ln at all; we don't have any links
+-    as_ln_s='cp -p'
+-  else
+-    as_ln_s='ln -s'
+-  fi
+-elif ln conf$$.file conf$$ 2>/dev/null; then
+-  as_ln_s=ln
+-else
+-  as_ln_s='cp -p'
+-fi
+-rm -f conf$$ conf$$.exe conf$$.file
+-
+-if mkdir -p . 2>/dev/null; then
+-  as_mkdir_p=:
+-else
+-  test -d ./-p && rmdir ./-p
+-  as_mkdir_p=false
+-fi
+-
+-as_executable_p="test -f"
+-
+-# Sed expression to map a string onto a valid CPP name.
+-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+-
+-# Sed expression to map a string onto a valid variable name.
+-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+-
+-
+-# IFS
+-# We need space, tab and new line, in precisely that order.
+-as_nl='
+-'
+-IFS=" 	$as_nl"
+-
+-# CDPATH.
+-$as_unset CDPATH
+-
+-exec 6>&1
+-
+-# Open the log real soon, to keep \$[0] and so on meaningful, and to
+-# report actual input values of CONFIG_FILES etc. instead of their
+-# values after options handling.  Logging --version etc. is OK.
+-exec 5>>config.log
+-{
+-  echo
+-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+-## Running $as_me. ##
+-_ASBOX
+-} >&5
+-cat >&5 <<_CSEOF
+-
+-This file was extended by GRUB $as_me 0.97, which was
+-generated by GNU Autoconf 2.59.  Invocation command line was
+-
+-  CONFIG_FILES    = $CONFIG_FILES
+-  CONFIG_HEADERS  = $CONFIG_HEADERS
+-  CONFIG_LINKS    = $CONFIG_LINKS
+-  CONFIG_COMMANDS = $CONFIG_COMMANDS
+-  $ $0 $@
+-
+-_CSEOF
+-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
+-echo >&5
+-_ACEOF
+-
+-# Files that config.status was made for.
+-if test -n "$ac_config_files"; then
+-  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
+-fi
+-
+-if test -n "$ac_config_headers"; then
+-  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
+-fi
+-
+-if test -n "$ac_config_links"; then
+-  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
+-fi
+-
+-if test -n "$ac_config_commands"; then
+-  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
+-fi
+-
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-
+-ac_cs_usage="\
+-\`$as_me' instantiates files from templates according to the
+-current configuration.
+-
+-Usage: $0 [OPTIONS] [FILE]...
+-
+-  -h, --help       print this help, then exit
+-  -V, --version    print version number, then exit
+-  -q, --quiet      do not print progress messages
+-  -d, --debug      don't remove temporary files
+-      --recheck    update $as_me by reconfiguring in the same conditions
+-  --file=FILE[:TEMPLATE]
+-		   instantiate the configuration file FILE
+-  --header=FILE[:TEMPLATE]
+-		   instantiate the configuration header FILE
+-
+-Configuration files:
+-$config_files
+-
+-Configuration headers:
+-$config_headers
+-
+-Configuration commands:
+-$config_commands
+-
+-Report bugs to <bug-autoconf at gnu.org>."
+-_ACEOF
+-
+-cat >>$CONFIG_STATUS <<_ACEOF
+-ac_cs_version="\\
+-GRUB config.status 0.97
+-configured by $0, generated by GNU Autoconf 2.59,
+-  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+-
+-Copyright (C) 2003 Free Software Foundation, Inc.
+-This config.status script is free software; the Free Software Foundation
+-gives unlimited permission to copy, distribute and modify it."
+-srcdir=$srcdir
+-INSTALL="$INSTALL"
+-_ACEOF
+-
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-# If no file are specified by the user, then we need to provide default
+-# value.  By we need to know if files were specified by the user.
+-ac_need_defaults=:
+-while test $# != 0
+-do
+-  case $1 in
+-  --*=*)
+-    ac_option=`expr "x$1" : 'x\([^=]*\)='`
+-    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
+-    ac_shift=:
+-    ;;
+-  -*)
+-    ac_option=$1
+-    ac_optarg=$2
+-    ac_shift=shift
+-    ;;
+-  *) # This is not an option, so the user has probably given explicit
+-     # arguments.
+-     ac_option=$1
+-     ac_need_defaults=false;;
+-  esac
+-
+-  case $ac_option in
+-  # Handling of the options.
+-_ACEOF
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+-    ac_cs_recheck=: ;;
+-  --version | --vers* | -V )
+-    echo "$ac_cs_version"; exit 0 ;;
+-  --he | --h)
+-    # Conflict between --help and --header
+-    { { echo "$as_me:$LINENO: error: ambiguous option: $1
+-Try \`$0 --help' for more information." >&5
+-echo "$as_me: error: ambiguous option: $1
+-Try \`$0 --help' for more information." >&2;}
+-   { (exit 1); exit 1; }; };;
+-  --help | --hel | -h )
+-    echo "$ac_cs_usage"; exit 0 ;;
+-  --debug | --d* | -d )
+-    debug=: ;;
+-  --file | --fil | --fi | --f )
+-    $ac_shift
+-    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
+-    ac_need_defaults=false;;
+-  --header | --heade | --head | --hea )
+-    $ac_shift
+-    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
+-    ac_need_defaults=false;;
+-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+-  | -silent | --silent | --silen | --sile | --sil | --si | --s)
+-    ac_cs_silent=: ;;
+-
+-  # This is an error.
+-  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
+-Try \`$0 --help' for more information." >&5
+-echo "$as_me: error: unrecognized option: $1
+-Try \`$0 --help' for more information." >&2;}
+-   { (exit 1); exit 1; }; } ;;
+-
+-  *) ac_config_targets="$ac_config_targets $1" ;;
+-
+-  esac
+-  shift
+-done
+-
+-ac_configure_extra_args=
+-
+-if $ac_cs_silent; then
+-  exec 6>/dev/null
+-  ac_configure_extra_args="$ac_configure_extra_args --silent"
+-fi
+-
+-_ACEOF
+-cat >>$CONFIG_STATUS <<_ACEOF
+-if \$ac_cs_recheck; then
+-  echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
+-  exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+-fi
+-
+-_ACEOF
+-
+-cat >>$CONFIG_STATUS <<_ACEOF
+-#
+-# INIT-COMMANDS section.
+-#
+-
+-AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+-
+-_ACEOF
+-
+-
+-
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-for ac_config_target in $ac_config_targets
+-do
+-  case "$ac_config_target" in
+-  # Handling of arguments.
+-  "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+-  "stage1/Makefile" ) CONFIG_FILES="$CONFIG_FILES stage1/Makefile" ;;
+-  "stage2/Makefile" ) CONFIG_FILES="$CONFIG_FILES stage2/Makefile" ;;
+-  "docs/Makefile" ) CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;;
+-  "lib/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;;
+-  "util/Makefile" ) CONFIG_FILES="$CONFIG_FILES util/Makefile" ;;
+-  "grub/Makefile" ) CONFIG_FILES="$CONFIG_FILES grub/Makefile" ;;
+-  "netboot/Makefile" ) CONFIG_FILES="$CONFIG_FILES netboot/Makefile" ;;
+-  "util/grub-image" ) CONFIG_FILES="$CONFIG_FILES util/grub-image" ;;
+-  "util/grub-install" ) CONFIG_FILES="$CONFIG_FILES util/grub-install" ;;
+-  "util/grub-md5-crypt" ) CONFIG_FILES="$CONFIG_FILES util/grub-md5-crypt" ;;
+-  "util/grub-terminfo" ) CONFIG_FILES="$CONFIG_FILES util/grub-terminfo" ;;
+-  "util/grub-set-default" ) CONFIG_FILES="$CONFIG_FILES util/grub-set-default" ;;
+-  "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+-  "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+-  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+-   { (exit 1); exit 1; }; };;
+-  esac
+-done
+-
+-# If the user did not use the arguments to specify the items to instantiate,
+-# then the envvar interface is used.  Set only those that are not.
+-# We use the long form for the default assignment because of an extremely
+-# bizarre bug on SunOS 4.1.3.
+-if $ac_need_defaults; then
+-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+-  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+-  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+-fi
+-
+-# Have a temporary directory for convenience.  Make it in the build tree
+-# simply because there is no reason to put it here, and in addition,
+-# creating and moving files from /tmp can sometimes cause problems.
+-# Create a temporary directory, and hook for its removal unless debugging.
+-$debug ||
+-{
+-  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
+-  trap '{ (exit 1); exit 1; }' 1 2 13 15
+-}
+-
+-# Create a (secure) tmp directory for tmp files.
+-
+-{
+-  tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
+-  test -n "$tmp" && test -d "$tmp"
+-}  ||
+-{
+-  tmp=./confstat$$-$RANDOM
+-  (umask 077 && mkdir $tmp)
+-} ||
+-{
+-   echo "$me: cannot create a temporary directory in ." >&2
+-   { (exit 1); exit 1; }
+-}
+-
+-_ACEOF
+-
+-cat >>$CONFIG_STATUS <<_ACEOF
+-
+-#
+-# CONFIG_FILES section.
+-#
+-
+-# No need to generate the scripts if there are no CONFIG_FILES.
+-# This happens for instance when ./config.status config.h
+-if test -n "\$CONFIG_FILES"; then
+-  # Protect against being on the right side of a sed subst in config.status.
+-  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
+-   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
+-s, at SHELL@,$SHELL,;t t
+-s, at PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
+-s, at PACKAGE_NAME@,$PACKAGE_NAME,;t t
+-s, at PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
+-s, at PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
+-s, at PACKAGE_STRING@,$PACKAGE_STRING,;t t
+-s, at PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
+-s, at exec_prefix@,$exec_prefix,;t t
+-s, at prefix@,$prefix,;t t
+-s, at program_transform_name@,$program_transform_name,;t t
+-s, at bindir@,$bindir,;t t
+-s, at sbindir@,$sbindir,;t t
+-s, at libexecdir@,$libexecdir,;t t
+-s, at datadir@,$datadir,;t t
+-s, at sysconfdir@,$sysconfdir,;t t
+-s, at sharedstatedir@,$sharedstatedir,;t t
+-s, at localstatedir@,$localstatedir,;t t
+-s, at libdir@,$libdir,;t t
+-s, at includedir@,$includedir,;t t
+-s, at oldincludedir@,$oldincludedir,;t t
+-s, at infodir@,$infodir,;t t
+-s, at mandir@,$mandir,;t t
+-s, at build_alias@,$build_alias,;t t
+-s, at host_alias@,$host_alias,;t t
+-s, at target_alias@,$target_alias,;t t
+-s, at DEFS@,$DEFS,;t t
+-s, at ECHO_C@,$ECHO_C,;t t
+-s, at ECHO_N@,$ECHO_N,;t t
+-s, at ECHO_T@,$ECHO_T,;t t
+-s, at LIBS@,$LIBS,;t t
+-s, at INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
+-s, at INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
+-s, at INSTALL_DATA@,$INSTALL_DATA,;t t
+-s, at CYGPATH_W@,$CYGPATH_W,;t t
+-s, at PACKAGE@,$PACKAGE,;t t
+-s, at VERSION@,$VERSION,;t t
+-s, at ACLOCAL@,$ACLOCAL,;t t
+-s, at AUTOCONF@,$AUTOCONF,;t t
+-s, at AUTOMAKE@,$AUTOMAKE,;t t
+-s, at AUTOHEADER@,$AUTOHEADER,;t t
+-s, at MAKEINFO@,$MAKEINFO,;t t
+-s, at install_sh@,$install_sh,;t t
+-s, at STRIP@,$STRIP,;t t
+-s, at ac_ct_STRIP@,$ac_ct_STRIP,;t t
+-s, at INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t
+-s, at mkdir_p@,$mkdir_p,;t t
+-s, at AWK@,$AWK,;t t
+-s, at SET_MAKE@,$SET_MAKE,;t t
+-s, at am__leading_dot@,$am__leading_dot,;t t
+-s, at AMTAR@,$AMTAR,;t t
+-s, at am__tar@,$am__tar,;t t
+-s, at am__untar@,$am__untar,;t t
+-s, at build@,$build,;t t
+-s, at build_cpu@,$build_cpu,;t t
+-s, at build_vendor@,$build_vendor,;t t
+-s, at build_os@,$build_os,;t t
+-s, at host@,$host,;t t
+-s, at host_cpu@,$host_cpu,;t t
+-s, at host_vendor@,$host_vendor,;t t
+-s, at host_os@,$host_os,;t t
+-s, at MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
+-s, at MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
+-s, at MAINT@,$MAINT,;t t
+-s, at PERL@,$PERL,;t t
+-s, at CC@,$CC,;t t
+-s, at ac_ct_CC@,$ac_ct_CC,;t t
+-s, at CFLAGS@,$CFLAGS,;t t
+-s, at LDFLAGS@,$LDFLAGS,;t t
+-s, at CPPFLAGS@,$CPPFLAGS,;t t
+-s, at EXEEXT@,$EXEEXT,;t t
+-s, at OBJEXT@,$OBJEXT,;t t
+-s, at DEPDIR@,$DEPDIR,;t t
+-s, at am__include@,$am__include,;t t
+-s, at am__quote@,$am__quote,;t t
+-s, at AMDEP_TRUE@,$AMDEP_TRUE,;t t
+-s, at AMDEP_FALSE@,$AMDEP_FALSE,;t t
+-s, at AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t
+-s, at CCDEPMODE@,$CCDEPMODE,;t t
+-s, at am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t
+-s, at am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t
+-s, at CCAS@,$CCAS,;t t
+-s, at RANLIB@,$RANLIB,;t t
+-s, at ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
+-s, at STAGE1_CFLAGS@,$STAGE1_CFLAGS,;t t
+-s, at STAGE2_CFLAGS@,$STAGE2_CFLAGS,;t t
+-s, at GRUB_CFLAGS@,$GRUB_CFLAGS,;t t
+-s, at OBJCOPY@,$OBJCOPY,;t t
+-s, at ac_ct_OBJCOPY@,$ac_ct_OBJCOPY,;t t
+-s, at GRUB_LIBS@,$GRUB_LIBS,;t t
+-s, at CPP@,$CPP,;t t
+-s, at EGREP@,$EGREP,;t t
+-s, at NETBOOT_SUPPORT_TRUE@,$NETBOOT_SUPPORT_TRUE,;t t
+-s, at NETBOOT_SUPPORT_FALSE@,$NETBOOT_SUPPORT_FALSE,;t t
+-s, at DISKLESS_SUPPORT_TRUE@,$DISKLESS_SUPPORT_TRUE,;t t
+-s, at DISKLESS_SUPPORT_FALSE@,$DISKLESS_SUPPORT_FALSE,;t t
+-s, at HERCULES_SUPPORT_TRUE@,$HERCULES_SUPPORT_TRUE,;t t
+-s, at HERCULES_SUPPORT_FALSE@,$HERCULES_SUPPORT_FALSE,;t t
+-s, at SERIAL_SUPPORT_TRUE@,$SERIAL_SUPPORT_TRUE,;t t
+-s, at SERIAL_SUPPORT_FALSE@,$SERIAL_SUPPORT_FALSE,;t t
+-s, at SERIAL_SPEED_SIMULATION_TRUE@,$SERIAL_SPEED_SIMULATION_TRUE,;t t
+-s, at SERIAL_SPEED_SIMULATION_FALSE@,$SERIAL_SPEED_SIMULATION_FALSE,;t t
+-s, at BUILD_EXAMPLE_KERNEL_TRUE@,$BUILD_EXAMPLE_KERNEL_TRUE,;t t
+-s, at BUILD_EXAMPLE_KERNEL_FALSE@,$BUILD_EXAMPLE_KERNEL_FALSE,;t t
+-s, at FSYS_CFLAGS@,$FSYS_CFLAGS,;t t
+-s, at NET_CFLAGS@,$NET_CFLAGS,;t t
+-s, at NET_EXTRAFLAGS@,$NET_EXTRAFLAGS,;t t
+-s, at NETBOOT_DRIVERS@,$NETBOOT_DRIVERS,;t t
+-s, at CCASFLAGS@,$CCASFLAGS,;t t
+-s, at LIBOBJS@,$LIBOBJS,;t t
+-s, at LTLIBOBJS@,$LTLIBOBJS,;t t
+-CEOF
+-
+-_ACEOF
+-
+-  cat >>$CONFIG_STATUS <<\_ACEOF
+-  # Split the substitutions into bite-sized pieces for seds with
+-  # small command number limits, like on Digital OSF/1 and HP-UX.
+-  ac_max_sed_lines=48
+-  ac_sed_frag=1 # Number of current file.
+-  ac_beg=1 # First line for current file.
+-  ac_end=$ac_max_sed_lines # Line after last line for current file.
+-  ac_more_lines=:
+-  ac_sed_cmds=
+-  while $ac_more_lines; do
+-    if test $ac_beg -gt 1; then
+-      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+-    else
+-      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+-    fi
+-    if test ! -s $tmp/subs.frag; then
+-      ac_more_lines=false
+-    else
+-      # The purpose of the label and of the branching condition is to
+-      # speed up the sed processing (if there are no `@' at all, there
+-      # is no need to browse any of the substitutions).
+-      # These are the two extra sed commands mentioned above.
+-      (echo ':t
+-  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
+-      if test -z "$ac_sed_cmds"; then
+-	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
+-      else
+-	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
+-      fi
+-      ac_sed_frag=`expr $ac_sed_frag + 1`
+-      ac_beg=$ac_end
+-      ac_end=`expr $ac_end + $ac_max_sed_lines`
+-    fi
+-  done
+-  if test -z "$ac_sed_cmds"; then
+-    ac_sed_cmds=cat
+-  fi
+-fi # test -n "$CONFIG_FILES"
+-
+-_ACEOF
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
+-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+-  case $ac_file in
+-  - | *:- | *:-:* ) # input from stdin
+-	cat >$tmp/stdin
+-	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+-  * )   ac_file_in=$ac_file.in ;;
+-  esac
+-
+-  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
+-  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-	 X"$ac_file" : 'X\(//\)[^/]' \| \
+-	 X"$ac_file" : 'X\(//\)$' \| \
+-	 X"$ac_file" : 'X\(/\)' \| \
+-	 .     : '\(.\)' 2>/dev/null ||
+-echo X"$ac_file" |
+-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-  	  /^X\(\/\/\)$/{ s//\1/; q; }
+-  	  /^X\(\/\).*/{ s//\1/; q; }
+-  	  s/.*/./; q'`
+-  { if $as_mkdir_p; then
+-    mkdir -p "$ac_dir"
+-  else
+-    as_dir="$ac_dir"
+-    as_dirs=
+-    while test ! -d "$as_dir"; do
+-      as_dirs="$as_dir $as_dirs"
+-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-	 X"$as_dir" : 'X\(//\)[^/]' \| \
+-	 X"$as_dir" : 'X\(//\)$' \| \
+-	 X"$as_dir" : 'X\(/\)' \| \
+-	 .     : '\(.\)' 2>/dev/null ||
+-echo X"$as_dir" |
+-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-  	  /^X\(\/\/\)$/{ s//\1/; q; }
+-  	  /^X\(\/\).*/{ s//\1/; q; }
+-  	  s/.*/./; q'`
+-    done
+-    test ! -n "$as_dirs" || mkdir $as_dirs
+-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+-   { (exit 1); exit 1; }; }; }
+-
+-  ac_builddir=.
+-
+-if test "$ac_dir" != .; then
+-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+-  # A "../" for each directory in $ac_dir_suffix.
+-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+-else
+-  ac_dir_suffix= ac_top_builddir=
+-fi
+-
+-case $srcdir in
+-  .)  # No --srcdir option.  We are building in place.
+-    ac_srcdir=.
+-    if test -z "$ac_top_builddir"; then
+-       ac_top_srcdir=.
+-    else
+-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+-    fi ;;
+-  [\\/]* | ?:[\\/]* )  # Absolute path.
+-    ac_srcdir=$srcdir$ac_dir_suffix;
+-    ac_top_srcdir=$srcdir ;;
+-  *) # Relative path.
+-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+-esac
+-
+-# Do not use `cd foo && pwd` to compute absolute paths, because
+-# the directories may not exist.
+-case `pwd` in
+-.) ac_abs_builddir="$ac_dir";;
+-*)
+-  case "$ac_dir" in
+-  .) ac_abs_builddir=`pwd`;;
+-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
+-  esac;;
+-esac
+-case $ac_abs_builddir in
+-.) ac_abs_top_builddir=${ac_top_builddir}.;;
+-*)
+-  case ${ac_top_builddir}. in
+-  .) ac_abs_top_builddir=$ac_abs_builddir;;
+-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+-  esac;;
+-esac
+-case $ac_abs_builddir in
+-.) ac_abs_srcdir=$ac_srcdir;;
+-*)
+-  case $ac_srcdir in
+-  .) ac_abs_srcdir=$ac_abs_builddir;;
+-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+-  esac;;
+-esac
+-case $ac_abs_builddir in
+-.) ac_abs_top_srcdir=$ac_top_srcdir;;
+-*)
+-  case $ac_top_srcdir in
+-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
+-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+-  esac;;
+-esac
+-
+-
+-  case $INSTALL in
+-  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+-  *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
+-  esac
+-
+-  if test x"$ac_file" != x-; then
+-    { echo "$as_me:$LINENO: creating $ac_file" >&5
+-echo "$as_me: creating $ac_file" >&6;}
+-    rm -f "$ac_file"
+-  fi
+-  # Let's still pretend it is `configure' which instantiates (i.e., don't
+-  # use $as_me), people would be surprised to read:
+-  #    /* config.h.  Generated by config.status.  */
+-  if test x"$ac_file" = x-; then
+-    configure_input=
+-  else
+-    configure_input="$ac_file.  "
+-  fi
+-  configure_input=$configure_input"Generated from `echo $ac_file_in |
+-				     sed 's,.*/,,'` by configure."
+-
+-  # First look for the input files in the build tree, otherwise in the
+-  # src tree.
+-  ac_file_inputs=`IFS=:
+-    for f in $ac_file_in; do
+-      case $f in
+-      -) echo $tmp/stdin ;;
+-      [\\/$]*)
+-	 # Absolute (can't be DOS-style, as IFS=:)
+-	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+-echo "$as_me: error: cannot find input file: $f" >&2;}
+-   { (exit 1); exit 1; }; }
+-	 echo "$f";;
+-      *) # Relative
+-	 if test -f "$f"; then
+-	   # Build tree
+-	   echo "$f"
+-	 elif test -f "$srcdir/$f"; then
+-	   # Source tree
+-	   echo "$srcdir/$f"
+-	 else
+-	   # /dev/null tree
+-	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+-echo "$as_me: error: cannot find input file: $f" >&2;}
+-   { (exit 1); exit 1; }; }
+-	 fi;;
+-      esac
+-    done` || { (exit 1); exit 1; }
+-_ACEOF
+-cat >>$CONFIG_STATUS <<_ACEOF
+-  sed "$ac_vpsub
+-$extrasub
+-_ACEOF
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-:t
+-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+-s, at configure_input@,$configure_input,;t t
+-s, at srcdir@,$ac_srcdir,;t t
+-s, at abs_srcdir@,$ac_abs_srcdir,;t t
+-s, at top_srcdir@,$ac_top_srcdir,;t t
+-s, at abs_top_srcdir@,$ac_abs_top_srcdir,;t t
+-s, at builddir@,$ac_builddir,;t t
+-s, at abs_builddir@,$ac_abs_builddir,;t t
+-s, at top_builddir@,$ac_top_builddir,;t t
+-s, at abs_top_builddir@,$ac_abs_top_builddir,;t t
+-s, at INSTALL@,$ac_INSTALL,;t t
+-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
+-  rm -f $tmp/stdin
+-  if test x"$ac_file" != x-; then
+-    mv $tmp/out $ac_file
+-  else
+-    cat $tmp/out
+-    rm -f $tmp/out
+-  fi
+-
+-done
+-_ACEOF
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-
+-#
+-# CONFIG_HEADER section.
+-#
+-
+-# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+-# NAME is the cpp macro being defined and VALUE is the value it is being given.
+-#
+-# ac_d sets the value in "#define NAME VALUE" lines.
+-ac_dA='s,^\([	 ]*\)#\([	 ]*define[	 ][	 ]*\)'
+-ac_dB='[	 ].*$,\1#\2'
+-ac_dC=' '
+-ac_dD=',;t'
+-# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+-ac_uA='s,^\([	 ]*\)#\([	 ]*\)undef\([	 ][	 ]*\)'
+-ac_uB='$,\1#\2define\3'
+-ac_uC=' '
+-ac_uD=',;t'
+-
+-for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
+-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+-  case $ac_file in
+-  - | *:- | *:-:* ) # input from stdin
+-	cat >$tmp/stdin
+-	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+-  * )   ac_file_in=$ac_file.in ;;
+-  esac
+-
+-  test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
+-echo "$as_me: creating $ac_file" >&6;}
+-
+-  # First look for the input files in the build tree, otherwise in the
+-  # src tree.
+-  ac_file_inputs=`IFS=:
+-    for f in $ac_file_in; do
+-      case $f in
+-      -) echo $tmp/stdin ;;
+-      [\\/$]*)
+-	 # Absolute (can't be DOS-style, as IFS=:)
+-	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+-echo "$as_me: error: cannot find input file: $f" >&2;}
+-   { (exit 1); exit 1; }; }
+-	 # Do quote $f, to prevent DOS paths from being IFS'd.
+-	 echo "$f";;
+-      *) # Relative
+-	 if test -f "$f"; then
+-	   # Build tree
+-	   echo "$f"
+-	 elif test -f "$srcdir/$f"; then
+-	   # Source tree
+-	   echo "$srcdir/$f"
+-	 else
+-	   # /dev/null tree
+-	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+-echo "$as_me: error: cannot find input file: $f" >&2;}
+-   { (exit 1); exit 1; }; }
+-	 fi;;
+-      esac
+-    done` || { (exit 1); exit 1; }
+-  # Remove the trailing spaces.
+-  sed 's/[	 ]*$//' $ac_file_inputs >$tmp/in
+-
+-_ACEOF
+-
+-# Transform confdefs.h into two sed scripts, `conftest.defines' and
+-# `conftest.undefs', that substitutes the proper values into
+-# config.h.in to produce config.h.  The first handles `#define'
+-# templates, and the second `#undef' templates.
+-# And first: Protect against being on the right side of a sed subst in
+-# config.status.  Protect against being in an unquoted here document
+-# in config.status.
+-rm -f conftest.defines conftest.undefs
+-# Using a here document instead of a string reduces the quoting nightmare.
+-# Putting comments in sed scripts is not portable.
+-#
+-# `end' is used to avoid that the second main sed command (meant for
+-# 0-ary CPP macros) applies to n-ary macro definitions.
+-# See the Autoconf documentation for `clear'.
+-cat >confdef2sed.sed <<\_ACEOF
+-s/[\\&,]/\\&/g
+-s,[\\$`],\\&,g
+-t clear
+-: clear
+-s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 (][^	 (]*\)\(([^)]*)\)[	 ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
+-t end
+-s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 ][^	 ]*\)[	 ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
+-: end
+-_ACEOF
+-# If some macros were called several times there might be several times
+-# the same #defines, which is useless.  Nevertheless, we may not want to
+-# sort them, since we want the *last* AC-DEFINE to be honored.
+-uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
+-sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
+-rm -f confdef2sed.sed
+-
+-# This sed command replaces #undef with comments.  This is necessary, for
+-# example, in the case of _POSIX_SOURCE, which is predefined and required
+-# on some systems where configure will not decide to define it.
+-cat >>conftest.undefs <<\_ACEOF
+-s,^[	 ]*#[	 ]*undef[	 ][	 ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
+-_ACEOF
+-
+-# Break up conftest.defines because some shells have a limit on the size
+-# of here documents, and old seds have small limits too (100 cmds).
+-echo '  # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
+-echo '  if grep "^[	 ]*#[	 ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
+-echo '  # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
+-echo '  :' >>$CONFIG_STATUS
+-rm -f conftest.tail
+-while grep . conftest.defines >/dev/null
+-do
+-  # Write a limited-size here document to $tmp/defines.sed.
+-  echo '  cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
+-  # Speed up: don't consider the non `#define' lines.
+-  echo '/^[	 ]*#[	 ]*define/!b' >>$CONFIG_STATUS
+-  # Work around the forget-to-reset-the-flag bug.
+-  echo 't clr' >>$CONFIG_STATUS
+-  echo ': clr' >>$CONFIG_STATUS
+-  sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
+-  echo 'CEOF
+-  sed -f $tmp/defines.sed $tmp/in >$tmp/out
+-  rm -f $tmp/in
+-  mv $tmp/out $tmp/in
+-' >>$CONFIG_STATUS
+-  sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
+-  rm -f conftest.defines
+-  mv conftest.tail conftest.defines
+-done
+-rm -f conftest.defines
+-echo '  fi # grep' >>$CONFIG_STATUS
+-echo >>$CONFIG_STATUS
+-
+-# Break up conftest.undefs because some shells have a limit on the size
+-# of here documents, and old seds have small limits too (100 cmds).
+-echo '  # Handle all the #undef templates' >>$CONFIG_STATUS
+-rm -f conftest.tail
+-while grep . conftest.undefs >/dev/null
+-do
+-  # Write a limited-size here document to $tmp/undefs.sed.
+-  echo '  cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
+-  # Speed up: don't consider the non `#undef'
+-  echo '/^[	 ]*#[	 ]*undef/!b' >>$CONFIG_STATUS
+-  # Work around the forget-to-reset-the-flag bug.
+-  echo 't clr' >>$CONFIG_STATUS
+-  echo ': clr' >>$CONFIG_STATUS
+-  sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
+-  echo 'CEOF
+-  sed -f $tmp/undefs.sed $tmp/in >$tmp/out
+-  rm -f $tmp/in
+-  mv $tmp/out $tmp/in
+-' >>$CONFIG_STATUS
+-  sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
+-  rm -f conftest.undefs
+-  mv conftest.tail conftest.undefs
+-done
+-rm -f conftest.undefs
+-
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-  # Let's still pretend it is `configure' which instantiates (i.e., don't
+-  # use $as_me), people would be surprised to read:
+-  #    /* config.h.  Generated by config.status.  */
+-  if test x"$ac_file" = x-; then
+-    echo "/* Generated by configure.  */" >$tmp/config.h
+-  else
+-    echo "/* $ac_file.  Generated by configure.  */" >$tmp/config.h
+-  fi
+-  cat $tmp/in >>$tmp/config.h
+-  rm -f $tmp/in
+-  if test x"$ac_file" != x-; then
+-    if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
+-      { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
+-echo "$as_me: $ac_file is unchanged" >&6;}
+-    else
+-      ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-	 X"$ac_file" : 'X\(//\)[^/]' \| \
+-	 X"$ac_file" : 'X\(//\)$' \| \
+-	 X"$ac_file" : 'X\(/\)' \| \
+-	 .     : '\(.\)' 2>/dev/null ||
+-echo X"$ac_file" |
+-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-  	  /^X\(\/\/\)$/{ s//\1/; q; }
+-  	  /^X\(\/\).*/{ s//\1/; q; }
+-  	  s/.*/./; q'`
+-      { if $as_mkdir_p; then
+-    mkdir -p "$ac_dir"
+-  else
+-    as_dir="$ac_dir"
+-    as_dirs=
+-    while test ! -d "$as_dir"; do
+-      as_dirs="$as_dir $as_dirs"
+-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-	 X"$as_dir" : 'X\(//\)[^/]' \| \
+-	 X"$as_dir" : 'X\(//\)$' \| \
+-	 X"$as_dir" : 'X\(/\)' \| \
+-	 .     : '\(.\)' 2>/dev/null ||
+-echo X"$as_dir" |
+-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-  	  /^X\(\/\/\)$/{ s//\1/; q; }
+-  	  /^X\(\/\).*/{ s//\1/; q; }
+-  	  s/.*/./; q'`
+-    done
+-    test ! -n "$as_dirs" || mkdir $as_dirs
+-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+-   { (exit 1); exit 1; }; }; }
+-
+-      rm -f $ac_file
+-      mv $tmp/config.h $ac_file
+-    fi
+-  else
+-    cat $tmp/config.h
+-    rm -f $tmp/config.h
+-  fi
+-# Compute $ac_file's index in $config_headers.
+-_am_stamp_count=1
+-for _am_header in $config_headers :; do
+-  case $_am_header in
+-    $ac_file | $ac_file:* )
+-      break ;;
+-    * )
+-      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+-  esac
+-done
+-echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null ||
+-$as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-	 X$ac_file : 'X\(//\)[^/]' \| \
+-	 X$ac_file : 'X\(//\)$' \| \
+-	 X$ac_file : 'X\(/\)' \| \
+-	 .     : '\(.\)' 2>/dev/null ||
+-echo X$ac_file |
+-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-  	  /^X\(\/\/\)$/{ s//\1/; q; }
+-  	  /^X\(\/\).*/{ s//\1/; q; }
+-  	  s/.*/./; q'`/stamp-h$_am_stamp_count
+-done
+-_ACEOF
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-
+-#
+-# CONFIG_COMMANDS section.
+-#
+-for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
+-  ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
+-  ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
+-  ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
+-$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-	 X"$ac_dest" : 'X\(//\)[^/]' \| \
+-	 X"$ac_dest" : 'X\(//\)$' \| \
+-	 X"$ac_dest" : 'X\(/\)' \| \
+-	 .     : '\(.\)' 2>/dev/null ||
+-echo X"$ac_dest" |
+-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-  	  /^X\(\/\/\)$/{ s//\1/; q; }
+-  	  /^X\(\/\).*/{ s//\1/; q; }
+-  	  s/.*/./; q'`
+-  { if $as_mkdir_p; then
+-    mkdir -p "$ac_dir"
+-  else
+-    as_dir="$ac_dir"
+-    as_dirs=
+-    while test ! -d "$as_dir"; do
+-      as_dirs="$as_dir $as_dirs"
+-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-	 X"$as_dir" : 'X\(//\)[^/]' \| \
+-	 X"$as_dir" : 'X\(//\)$' \| \
+-	 X"$as_dir" : 'X\(/\)' \| \
+-	 .     : '\(.\)' 2>/dev/null ||
+-echo X"$as_dir" |
+-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-  	  /^X\(\/\/\)$/{ s//\1/; q; }
+-  	  /^X\(\/\).*/{ s//\1/; q; }
+-  	  s/.*/./; q'`
+-    done
+-    test ! -n "$as_dirs" || mkdir $as_dirs
+-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+-   { (exit 1); exit 1; }; }; }
+-
+-  ac_builddir=.
+-
+-if test "$ac_dir" != .; then
+-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+-  # A "../" for each directory in $ac_dir_suffix.
+-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+-else
+-  ac_dir_suffix= ac_top_builddir=
+-fi
+-
+-case $srcdir in
+-  .)  # No --srcdir option.  We are building in place.
+-    ac_srcdir=.
+-    if test -z "$ac_top_builddir"; then
+-       ac_top_srcdir=.
+-    else
+-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+-    fi ;;
+-  [\\/]* | ?:[\\/]* )  # Absolute path.
+-    ac_srcdir=$srcdir$ac_dir_suffix;
+-    ac_top_srcdir=$srcdir ;;
+-  *) # Relative path.
+-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+-esac
+-
+-# Do not use `cd foo && pwd` to compute absolute paths, because
+-# the directories may not exist.
+-case `pwd` in
+-.) ac_abs_builddir="$ac_dir";;
+-*)
+-  case "$ac_dir" in
+-  .) ac_abs_builddir=`pwd`;;
+-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
+-  esac;;
+-esac
+-case $ac_abs_builddir in
+-.) ac_abs_top_builddir=${ac_top_builddir}.;;
+-*)
+-  case ${ac_top_builddir}. in
+-  .) ac_abs_top_builddir=$ac_abs_builddir;;
+-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+-  esac;;
+-esac
+-case $ac_abs_builddir in
+-.) ac_abs_srcdir=$ac_srcdir;;
+-*)
+-  case $ac_srcdir in
+-  .) ac_abs_srcdir=$ac_abs_builddir;;
+-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+-  esac;;
+-esac
+-case $ac_abs_builddir in
+-.) ac_abs_top_srcdir=$ac_top_srcdir;;
+-*)
+-  case $ac_top_srcdir in
+-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
+-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+-  esac;;
+-esac
+-
+-
+-  { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
+-echo "$as_me: executing $ac_dest commands" >&6;}
+-  case $ac_dest in
+-    depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
+-  # Strip MF so we end up with the name of the file.
+-  mf=`echo "$mf" | sed -e 's/:.*$//'`
+-  # Check whether this is an Automake generated Makefile or not.
+-  # We used to match only the files named `Makefile.in', but
+-  # some people rename them; so instead we look at the file content.
+-  # Grep'ing the first line is not enough: some people post-process
+-  # each Makefile.in and add a new line on top of each file to say so.
+-  # So let's grep whole file.
+-  if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
+-    dirpart=`(dirname "$mf") 2>/dev/null ||
+-$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-	 X"$mf" : 'X\(//\)[^/]' \| \
+-	 X"$mf" : 'X\(//\)$' \| \
+-	 X"$mf" : 'X\(/\)' \| \
+-	 .     : '\(.\)' 2>/dev/null ||
+-echo X"$mf" |
+-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-  	  /^X\(\/\/\)$/{ s//\1/; q; }
+-  	  /^X\(\/\).*/{ s//\1/; q; }
+-  	  s/.*/./; q'`
+-  else
+-    continue
+-  fi
+-  # Extract the definition of DEPDIR, am__include, and am__quote
+-  # from the Makefile without running `make'.
+-  DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+-  test -z "$DEPDIR" && continue
+-  am__include=`sed -n 's/^am__include = //p' < "$mf"`
+-  test -z "am__include" && continue
+-  am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+-  # When using ansi2knr, U may be empty or an underscore; expand it
+-  U=`sed -n 's/^U = //p' < "$mf"`
+-  # Find all dependency output files, they are included files with
+-  # $(DEPDIR) in their names.  We invoke sed twice because it is the
+-  # simplest approach to changing $(DEPDIR) to its actual value in the
+-  # expansion.
+-  for file in `sed -n "
+-    s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+-       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+-    # Make sure the directory exists.
+-    test -f "$dirpart/$file" && continue
+-    fdir=`(dirname "$file") 2>/dev/null ||
+-$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-	 X"$file" : 'X\(//\)[^/]' \| \
+-	 X"$file" : 'X\(//\)$' \| \
+-	 X"$file" : 'X\(/\)' \| \
+-	 .     : '\(.\)' 2>/dev/null ||
+-echo X"$file" |
+-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-  	  /^X\(\/\/\)$/{ s//\1/; q; }
+-  	  /^X\(\/\).*/{ s//\1/; q; }
+-  	  s/.*/./; q'`
+-    { if $as_mkdir_p; then
+-    mkdir -p $dirpart/$fdir
+-  else
+-    as_dir=$dirpart/$fdir
+-    as_dirs=
+-    while test ! -d "$as_dir"; do
+-      as_dirs="$as_dir $as_dirs"
+-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-	 X"$as_dir" : 'X\(//\)[^/]' \| \
+-	 X"$as_dir" : 'X\(//\)$' \| \
+-	 X"$as_dir" : 'X\(/\)' \| \
+-	 .     : '\(.\)' 2>/dev/null ||
+-echo X"$as_dir" |
+-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-  	  /^X\(\/\/\)$/{ s//\1/; q; }
+-  	  /^X\(\/\).*/{ s//\1/; q; }
+-  	  s/.*/./; q'`
+-    done
+-    test ! -n "$as_dirs" || mkdir $as_dirs
+-  fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5
+-echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;}
+-   { (exit 1); exit 1; }; }; }
+-
+-    # echo "creating $dirpart/$file"
+-    echo '# dummy' > "$dirpart/$file"
+-  done
+-done
+- ;;
+-  esac
+-done
+-_ACEOF
+-
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-
+-{ (exit 0); exit 0; }
+-_ACEOF
+-chmod +x $CONFIG_STATUS
+-ac_clean_files=$ac_clean_files_save
+-
+-
+-# configure is writing to config.log, and then calls config.status.
+-# config.status does its own redirection, appending to config.log.
+-# Unfortunately, on DOS this fails, as config.log is still kept open
+-# by configure, so config.status won't be able to write to it; its
+-# output is simply discarded.  So we exec the FD to /dev/null,
+-# effectively closing config.log, so it can be properly (re)opened and
+-# appended to by config.status.  When coming back to configure, we
+-# need to make the FD available again.
+-if test "$no_create" != yes; then
+-  ac_cs_success=:
+-  ac_config_status_args=
+-  test "$silent" = yes &&
+-    ac_config_status_args="$ac_config_status_args --quiet"
+-  exec 5>/dev/null
+-  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+-  exec 5>>config.log
+-  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+-  # would make configure fail if this is the last instruction.
+-  $ac_cs_success || { (exit 1); exit 1; }
+-fi
+-
+diff --git a/configure.ac b/configure.in
+similarity index 85%
+rename from configure.ac
+rename to configure.in
+index bb9e1d9..1580801 100644
+--- a/configure.ac
++++ b/configure.in
+@@ -29,6 +29,65 @@ esac
+ AC_SUBST(host_cpu)
+ AC_SUBST(host_vendor)
+ 
++# Specify the platform (such as firmware).
++AC_ARG_WITH([platform],
++            AS_HELP_STRING([--with-platform=PLATFORM],
++                           [select the host platform [[guessed]]]))
++
++# Guess the platform if not specified.
++if test "x$with_platform" = x; then
++  case "$host_cpu"-"$host_vendor" in
++    i386-*) platform=pc ;;
++    x86_64-*) platform=pc ;;
++    *) AC_MSG_ERROR([unsupported machine type $host_cpu-$host_vendor]) ;;
++  esac
++else
++  platform="$with_platform"
++fi
++
++# Sanity check.
++case "$host_cpu"-"$platform" in
++  i386-pc) ;;
++  i386-efi) ;;
++  x86_64-pc) ;;
++  x86_64-efi) ;;
++  *) AC_MSG_ERROR([unsupported machine type "$host_cpu"-"$platform"]) ;;
++esac
++
++if test "x$platform" = xefi; then
++  case "$host_cpu" in
++    i386) EFI_ARCH=ia32 ;;
++    x86_64) EFI_ARCH=x86_64 ;;
++  *) AC_MSG_ERROR([unsupported machine type "$host_cpu"]) ;;
++  esac
++  AC_SUBST(EFI_ARCH)
++fi
++
++gnuefi_path=${libdir}/gnuefi
++gnuefi_crt0=${gnuefi_path}/crt0-efi-${EFI_ARCH}.o
++if ! test -f $gnuefi_crt0 ; then
++  gnuefi_crt0=crt0-efi.o
++fi
++GNUEFI_CRT0=${gnuefi_crt0}
++AC_SUBST(GNUEFI_CRT0)
++gnuefi_lds=${gnuefi_path}/elf_${EFI_ARCH}_efi.lds
++if ! test -f $gnuefi_lds ; then
++  gnuefi_lds=${EFI_ARCH}/elf_efi.lds
++fi
++GNUEFI_LDS=${gnuefi_lds}
++AC_SUBST(GNUEFI_LDS)
++LIBGNUEFI=${libdir}/libgnuefi.a
++AC_SUBST(LIBGNUEFI)
++LIBEFI=${libdir}/libefi.a
++AC_SUBST(LIBEFI)
++
++AC_SUBST(platform)
++AM_CONDITIONAL(PLATFORM_EFI, test "x$platform" = xefi)
++
++if test "x$platform" = xefi; then
++   AC_DEFINE(PLATFORM_EFI, 1, [Define if you run on EFI platform.])
++fi
++
+ #
+ # Options
+ #
+@@ -46,7 +105,7 @@ if test "x$CFLAGS" = x; then
+   default_CFLAGS=yes
+ fi
+ 
+-if test "x$host_cpu" = xx86_64; then
++if test "x$platform" = xpc -a "x$host_cpu" = xx86_64; then
+   CFLAGS="-m32 $CFLAGS"
+ fi
+ 
+@@ -63,6 +122,8 @@ dnl Because recent automake complains about AS, set it here.
+ CCAS="$CC"
+ AC_SUBST(CCAS)
+ 
++_AM_DEPENDENCIES(CCAS)
++
+ AC_ARG_WITH(binutils,
+   [  --with-binutils=DIR     search the directory DIR to find binutils])
+ 
+@@ -114,6 +175,20 @@ if test "x$ac_cv_prog_gcc" = xyes; then
+     fi
+   fi
+ fi
++STAGE2_CFLAGS="$STAGE2_CFLAGS -isystem `$CC -print-file-name=include`"
++
++LIBGCC=$(gcc $CFLAGS -static-libgcc -print-libgcc-file-name)
++AC_SUBST(LIBGCC)
++
++LOADER_LDFLAGS="-Wl,--build-id=none ${LIBGCC}"
++AC_SUBST(LOADER_LDFLAGS)
++
++if test "x$platform" = xefi; then
++  STAGE2_CFLAGS="$STAGE2_CFLAGS -fpic -fshort-wchar -fno-strict-aliasing -fno-merge-constants"
++  if test "x$EFI_ARCH" = xx86_64; then
++     STAGE2_CFLAGS="$STAGE2_CFLAGS -DEFI_FUNCTION_WRAPPER"
++  fi
++fi
+ 
+ AC_SUBST(STAGE1_CFLAGS)
+ AC_SUBST(STAGE2_CFLAGS)
+@@ -159,9 +234,12 @@ fi
+ 
+ # Defined in acinclude.m4.
+ grub_ASM_USCORE
+-grub_PROG_OBJCOPY_ABSOLUTE
+-if test "x$grub_cv_prog_objcopy_absolute" != xyes; then
+-  AC_MSG_ERROR([GRUB requires a working absolute objcopy; upgrade your binutils])
++
++if test "x$platform" != xefi; then
++  grub_PROG_OBJCOPY_ABSOLUTE
++  if test "x$grub_cv_prog_objcopy_absolute" != xyes; then
++    AC_MSG_ERROR([GRUB requires a working absolute objcopy; upgrade your binutils])
++  fi
+ fi
+ 
+ grub_ASM_PREFIX_REQUIREMENT
+@@ -207,9 +285,9 @@ AC_CHECK_LIB(util, opendisk, [GRUB_LIBS="$GRUB_LIBS -lutil"
+ 
+ # Unless the user specify --without-curses, check for curses.
+ if test "x$with_curses" != "xno"; then
+-  AC_CHECK_LIB(ncurses, wgetch, [GRUB_LIBS="$GRUB_LIBS -lncurses"
++  AC_CHECK_LIB(ncurses, wgetch, [GRUB_LIBS="$GRUB_LIBS -Wl,-Bstatic -lncurses -ltinfo -Wl,-Bdynamic"
+   AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have a curses library])],
+-    [AC_CHECK_LIB(curses, wgetch, [GRUB_LIBS="$GRUB_LIBS -lcurses"
++    [AC_CHECK_LIB(curses, wgetch, [GRUB_LIBS="$GRUB_LIBS -Wl,-Bstatic -lcurses -Wl,-Bdynamic"
+        AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have a curses library])])])
+ fi
+ 
+@@ -284,6 +362,13 @@ if test x"$enable_xfs" != xno; then
+   FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_XFS=1"
+ fi
+ 
++AC_ARG_ENABLE(btrfs,
++  [  --disable-btrfs         disable BtrFS support in Stage 2])
++
++if test x"$enable_btrfs" != xno; then
++  FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_BTRFS=1"
++fi
++
+ AC_ARG_ENABLE(iso9660,
+   [  --disable-iso9660       disable ISO9660 support in Stage 2])
+ 
+@@ -595,9 +680,18 @@ AC_ARG_ENABLE(diskless,
+   [  --enable-diskless       enable diskless support])
+ AM_CONDITIONAL(DISKLESS_SUPPORT, test "x$enable_diskless" = xyes)
+ 
++dnl Graphical splashscreen support
++AC_ARG_ENABLE(graphics,
++  [  --disable-graphics      disable graphics terminal support])
++AM_CONDITIONAL(GRAPHICS_SUPPORT, test "x$enable_graphics" != xno)
++
+ dnl Hercules terminal
+-AC_ARG_ENABLE(hercules,
+-  [  --disable-hercules      disable hercules terminal support])
++if test "x$platform" = xefi; then
++  enable_hercules=no
++else
++  AC_ARG_ENABLE(hercules,
++    [  --disable-hercules      disable hercules terminal support])
++fi
+ AM_CONDITIONAL(HERCULES_SUPPORT, test "x$enable_hercules" != xno)
+ 
+ dnl Serial terminal
+@@ -662,9 +756,13 @@ AC_SUBST(CCASFLAGS)
+ 
+ 
+ dnl Output.
++if test "x$platform" = xefi; then
++  AC_CONFIG_FILES([efi/Makefile])
++  AC_CONFIG_LINKS([efi/grub/cpu:efi/grub/$host_cpu])
++fi
+ AC_CONFIG_FILES([Makefile stage1/Makefile stage2/Makefile \
+ 		 docs/Makefile lib/Makefile util/Makefile \
+-		 grub/Makefile netboot/Makefile util/grub-image \
+-		 util/grub-install util/grub-md5-crypt \
+-		 util/grub-terminfo util/grub-set-default])
++		 grub/Makefile netboot/Makefile util/grub-crypt \
++		 util/grub-image util/grub-install util/grub-md5-crypt \
++		 util/grub-terminfo])
+ AC_OUTPUT
+diff --git a/docs/.gitignore b/docs/.gitignore
+new file mode 100644
+index 0000000..e440faf
+--- /dev/null
++++ b/docs/.gitignore
+@@ -0,0 +1,3 @@
++Makefile.in
++Makefile
++.deps
+diff --git a/docs/Makefile.am b/docs/Makefile.am
+index db99e2d..fe6b22b 100644
+--- a/docs/Makefile.am
++++ b/docs/Makefile.am
+@@ -2,7 +2,8 @@ info_TEXINFOS = grub.texi multiboot.texi
+ grub_TEXINFOS = internals.texi
+ EXAMPLES = boot.S kernel.c multiboot.h
+ multiboot_TEXINFOS = boot.S.texi kernel.c.texi multiboot.h.texi
+-man_MANS = grub.8 mbchk.1 grub-install.8 grub-md5-crypt.8 grub-terminfo.8
++man_MANS = grub.8 mbchk.1 grub-crypt.8 grub-install.8 grub-md5-crypt.8 \
++	grub-terminfo.8
+ HELP2MAN = help2man
+ SRC2TEXI = src2texi
+ noinst_SCRIPTS = $(HELP2MAN) $(SRC2TEXI)
+@@ -51,6 +52,12 @@ $(srcdir)/mbchk.1: ../util/mbchk $(srcdir)/$(HELP2MAN)
+ 		--name="check the format of a Multiboot kernel" \
+ 		--section=1 --output=$@ $<
+ 
++$(srcdir)/grub-crypt.8: ../util/grub-crypt $(srcdir)/$(HELP2MAN)
++	chmod 755 $<
++	$(PERL) $(srcdir)/$(HELP2MAN) \
++		--name="Encrypt a password" \
++		--section=8 --output=$@ $<
++
+ $(srcdir)/grub-md5-crypt.8: ../util/grub-md5-crypt $(srcdir)/$(HELP2MAN)
+ 	chmod 755 $<
+ 	$(PERL) $(srcdir)/$(HELP2MAN) \
+diff --git a/docs/Makefile.in b/docs/Makefile.in
+index 3e2de4b..f350fcd 100644
+--- a/docs/Makefile.in
++++ b/docs/Makefile.in
+@@ -1,8 +1,8 @@
+-# Makefile.in generated by automake 1.9.4 from Makefile.am.
++# Makefile.in generated by automake 1.10 from Makefile.am.
+ # @configure_input@
+ 
+ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+-# 2003, 2004  Free Software Foundation, Inc.
++# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+@@ -15,17 +15,11 @@
+ @SET_MAKE@
+ 
+ 
+-SOURCES = $(kernel_SOURCES)
+-
+-srcdir = @srcdir@
+-top_srcdir = @top_srcdir@
+ VPATH = @srcdir@
+ pkgdatadir = $(datadir)/@PACKAGE@
+ pkglibdir = $(libdir)/@PACKAGE@
+ pkgincludedir = $(includedir)/@PACKAGE@
+-top_builddir = ..
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+-INSTALL = @INSTALL@
+ install_sh_DATA = $(install_sh) -c -m 644
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+@@ -48,7 +42,7 @@ DIST_COMMON = $(grub_TEXINFOS) $(multiboot_TEXINFOS) \
+ 	texinfo.tex
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+-	$(top_srcdir)/configure.ac
++	$(top_srcdir)/configure.in
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+@@ -60,11 +54,14 @@ am__objects_1 = boot.$(OBJEXT) kernel-kernel.$(OBJEXT)
+ @BUILD_EXAMPLE_KERNEL_TRUE at am_kernel_OBJECTS = $(am__objects_1)
+ kernel_OBJECTS = $(am_kernel_OBJECTS)
+ kernel_LDADD = $(LDADD)
++kernel_LINK = $(CCLD) $(kernel_CFLAGS) $(CFLAGS) $(kernel_LDFLAGS) \
++	$(LDFLAGS) -o $@
+ SCRIPTS = $(noinst_SCRIPTS)
+-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
++DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
+ depcomp = $(SHELL) $(top_srcdir)/depcomp
+ am__depfiles_maybe = depfiles
+-CCASCOMPILE = $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS)
++CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
++	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS)
+ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+ CCLD = $(CC)
+@@ -85,6 +82,12 @@ AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS)
+ DVIPS = dvips
+ am__installdirs = "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)" \
+ 	"$(DESTDIR)$(man8dir)"
++am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
++am__vpath_adj = case $$p in \
++    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
++    *) f=$$p;; \
++  esac;
++am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+ man1dir = $(mandir)/man1
+ man8dir = $(mandir)/man8
+ NROFF = nroff
+@@ -93,17 +96,14 @@ ETAGS = etags
+ CTAGS = ctags
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ ACLOCAL = @ACLOCAL@
+-AMDEP_FALSE = @AMDEP_FALSE@
+-AMDEP_TRUE = @AMDEP_TRUE@
+ AMTAR = @AMTAR@
+ AUTOCONF = @AUTOCONF@
+ AUTOHEADER = @AUTOHEADER@
+ AUTOMAKE = @AUTOMAKE@
+ AWK = @AWK@
+-BUILD_EXAMPLE_KERNEL_FALSE = @BUILD_EXAMPLE_KERNEL_FALSE@
+-BUILD_EXAMPLE_KERNEL_TRUE = @BUILD_EXAMPLE_KERNEL_TRUE@
+ CC = @CC@
+ CCAS = @CCAS@
++CCASDEPMODE = @CCASDEPMODE@
+ CCASFLAGS = @CCASFLAGS@
+ CCDEPMODE = @CCDEPMODE@
+ CFLAGS = @CFLAGS@
+@@ -112,18 +112,16 @@ CPPFLAGS = @CPPFLAGS@
+ CYGPATH_W = @CYGPATH_W@
+ DEFS = @DEFS@
+ DEPDIR = @DEPDIR@
+-DISKLESS_SUPPORT_FALSE = @DISKLESS_SUPPORT_FALSE@
+-DISKLESS_SUPPORT_TRUE = @DISKLESS_SUPPORT_TRUE@
+ ECHO_C = @ECHO_C@
+ ECHO_N = @ECHO_N@
+ ECHO_T = @ECHO_T@
+ EGREP = @EGREP@
+ EXEEXT = @EXEEXT@
+ FSYS_CFLAGS = @FSYS_CFLAGS@
++GREP = @GREP@
+ GRUB_CFLAGS = @GRUB_CFLAGS@
+ GRUB_LIBS = @GRUB_LIBS@
+-HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@
+-HERCULES_SUPPORT_TRUE = @HERCULES_SUPPORT_TRUE@
++INSTALL = @INSTALL@
+ INSTALL_DATA = @INSTALL_DATA@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+@@ -131,14 +129,12 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
++LOADER_LDFLAGS = @LOADER_LDFLAGS@
+ LTLIBOBJS = @LTLIBOBJS@
+ MAINT = @MAINT@
+-MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+-MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+ MAKEINFO = @MAKEINFO@
++MKDIR_P = @MKDIR_P@
+ NETBOOT_DRIVERS = @NETBOOT_DRIVERS@
+-NETBOOT_SUPPORT_FALSE = @NETBOOT_SUPPORT_FALSE@
+-NETBOOT_SUPPORT_TRUE = @NETBOOT_SUPPORT_TRUE@
+ NET_CFLAGS = @NET_CFLAGS@
+ NET_EXTRAFLAGS = @NET_EXTRAFLAGS@
+ OBJCOPY = @OBJCOPY@
+@@ -152,22 +148,17 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
+ PATH_SEPARATOR = @PATH_SEPARATOR@
+ PERL = @PERL@
+ RANLIB = @RANLIB@
+-SERIAL_SPEED_SIMULATION_FALSE = @SERIAL_SPEED_SIMULATION_FALSE@
+-SERIAL_SPEED_SIMULATION_TRUE = @SERIAL_SPEED_SIMULATION_TRUE@
+-SERIAL_SUPPORT_FALSE = @SERIAL_SUPPORT_FALSE@
+-SERIAL_SUPPORT_TRUE = @SERIAL_SUPPORT_TRUE@
+ SET_MAKE = @SET_MAKE@
+ SHELL = @SHELL@
+ STAGE1_CFLAGS = @STAGE1_CFLAGS@
+ STAGE2_CFLAGS = @STAGE2_CFLAGS@
+ STRIP = @STRIP@
+ VERSION = @VERSION@
++abs_builddir = @abs_builddir@
++abs_srcdir = @abs_srcdir@
++abs_top_builddir = @abs_top_builddir@
++abs_top_srcdir = @abs_top_srcdir@
+ ac_ct_CC = @ac_ct_CC@
+-ac_ct_OBJCOPY = @ac_ct_OBJCOPY@
+-ac_ct_RANLIB = @ac_ct_RANLIB@
+-ac_ct_STRIP = @ac_ct_STRIP@
+-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+ am__include = @am__include@
+ am__leading_dot = @am__leading_dot@
+ am__quote = @am__quote@
+@@ -179,28 +170,39 @@ build_alias = @build_alias@
+ build_cpu = @build_cpu@
+ build_os = @build_os@
+ build_vendor = @build_vendor@
++builddir = @builddir@
+ datadir = @datadir@
++datarootdir = @datarootdir@
++docdir = @docdir@
++dvidir = @dvidir@
+ exec_prefix = @exec_prefix@
+ host = @host@
+ host_alias = @host_alias@
+ host_cpu = @host_cpu@
+ host_os = @host_os@
+ host_vendor = @host_vendor@
++htmldir = @htmldir@
+ includedir = @includedir@
+ infodir = @infodir@
+ install_sh = @install_sh@
+ libdir = @libdir@
+ libexecdir = @libexecdir@
++localedir = @localedir@
+ localstatedir = @localstatedir@
+ mandir = @mandir@
+ mkdir_p = @mkdir_p@
+ oldincludedir = @oldincludedir@
++pdfdir = @pdfdir@
+ prefix = @prefix@
+ program_transform_name = @program_transform_name@
++psdir = @psdir@
+ sbindir = @sbindir@
+ sharedstatedir = @sharedstatedir@
++srcdir = @srcdir@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
++top_builddir = @top_builddir@
++top_srcdir = @top_srcdir@
+ info_TEXINFOS = grub.texi multiboot.texi
+ grub_TEXINFOS = internals.texi
+ EXAMPLES = boot.S kernel.c multiboot.h
+@@ -256,7 +258,7 @@ clean-noinstPROGRAMS:
+ 	-test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
+ kernel$(EXEEXT): $(kernel_OBJECTS) $(kernel_DEPENDENCIES) 
+ 	@rm -f kernel$(EXEEXT)
+-	$(LINK) $(kernel_LDFLAGS) $(kernel_OBJECTS) $(kernel_LDADD) $(LIBS)
++	$(kernel_LINK) $(kernel_OBJECTS) $(kernel_LDADD) $(LIBS)
+ 
+ mostlyclean-compile:
+ 	-rm -f *.$(OBJEXT)
+@@ -264,38 +266,47 @@ mostlyclean-compile:
+ distclean-compile:
+ 	-rm -f *.tab.c
+ 
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/boot.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kernel-kernel.Po at am__quote@
+ 
+ .S.o:
+-	$(CCASCOMPILE) -c $<
++ at am__fastdepCCAS_TRUE@	$(CPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CPPASCOMPILE) -c -o $@ $<
+ 
+ .S.obj:
+-	$(CCASCOMPILE) -c `$(CYGPATH_W) '$<'`
++ at am__fastdepCCAS_TRUE@	$(CPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CPPASCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+ 
+ .c.o:
+- at am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(COMPILE) -c $<
+ 
+ .c.obj:
+- at am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ 
+ kernel-kernel.o: kernel.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(kernel_CFLAGS) $(CFLAGS) -MT kernel-kernel.o -MD -MP -MF "$(DEPDIR)/kernel-kernel.Tpo" -c -o kernel-kernel.o `test -f 'kernel.c' || echo '$(srcdir)/'`kernel.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/kernel-kernel.Tpo" "$(DEPDIR)/kernel-kernel.Po"; else rm -f "$(DEPDIR)/kernel-kernel.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(kernel_CFLAGS) $(CFLAGS) -MT kernel-kernel.o -MD -MP -MF $(DEPDIR)/kernel-kernel.Tpo -c -o kernel-kernel.o `test -f 'kernel.c' || echo '$(srcdir)/'`kernel.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/kernel-kernel.Tpo $(DEPDIR)/kernel-kernel.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='kernel.c' object='kernel-kernel.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(kernel_CFLAGS) $(CFLAGS) -c -o kernel-kernel.o `test -f 'kernel.c' || echo '$(srcdir)/'`kernel.c
+ 
+ kernel-kernel.obj: kernel.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(kernel_CFLAGS) $(CFLAGS) -MT kernel-kernel.obj -MD -MP -MF "$(DEPDIR)/kernel-kernel.Tpo" -c -o kernel-kernel.obj `if test -f 'kernel.c'; then $(CYGPATH_W) 'kernel.c'; else $(CYGPATH_W) '$(srcdir)/kernel.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/kernel-kernel.Tpo" "$(DEPDIR)/kernel-kernel.Po"; else rm -f "$(DEPDIR)/kernel-kernel.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(kernel_CFLAGS) $(CFLAGS) -MT kernel-kernel.obj -MD -MP -MF $(DEPDIR)/kernel-kernel.Tpo -c -o kernel-kernel.obj `if test -f 'kernel.c'; then $(CYGPATH_W) 'kernel.c'; else $(CYGPATH_W) '$(srcdir)/kernel.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/kernel-kernel.Tpo $(DEPDIR)/kernel-kernel.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='kernel.c' object='kernel-kernel.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(kernel_CFLAGS) $(CFLAGS) -c -o kernel-kernel.obj `if test -f 'kernel.c'; then $(CYGPATH_W) 'kernel.c'; else $(CYGPATH_W) '$(srcdir)/kernel.c'; fi`
+@@ -304,9 +315,11 @@ kernel-kernel.obj: kernel.c
+ 	restore=: && backupdir="$(am__leading_dot)am$$$$" && \
+ 	am__cwd=`pwd` && cd $(srcdir) && \
+ 	rm -rf $$backupdir && mkdir $$backupdir && \
+-	for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
+-	  if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
+-	done; \
++	if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
++	  for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
++	    if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
++	  done; \
++	else :; fi && \
+ 	cd "$$am__cwd"; \
+ 	if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+ 	 -o $@ $<; \
+@@ -371,11 +384,29 @@ multiboot.dvi: multiboot.texi $(multiboot_TEXINFOS)
+ multiboot.pdf: multiboot.texi $(multiboot_TEXINFOS)
+ multiboot.html: multiboot.texi $(multiboot_TEXINFOS)
+ .dvi.ps:
++	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+ 	$(DVIPS) -o $@ $<
+ 
++uninstall-dvi-am:
++	@$(NORMAL_UNINSTALL)
++	@list='$(DVIS)'; for p in $$list; do \
++	  f=$(am__strip_dir) \
++	  echo " rm -f '$(DESTDIR)$(dvidir)/$$f'"; \
++	  rm -f "$(DESTDIR)$(dvidir)/$$f"; \
++	done
++
++uninstall-html-am:
++	@$(NORMAL_UNINSTALL)
++	@list='$(HTMLS)'; for p in $$list; do \
++	  f=$(am__strip_dir) \
++	  echo " rm -rf '$(DESTDIR)$(htmldir)/$$f'"; \
++	  rm -rf "$(DESTDIR)$(htmldir)/$$f"; \
++	done
++
+ uninstall-info-am:
+-	$(PRE_UNINSTALL)
+-	@if (install-info --version && \
++	@$(PRE_UNINSTALL)
++	@if test -d '$(DESTDIR)$(infodir)' && \
++	    (install-info --version && \
+ 	     install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
+ 	  list='$(INFO_DEPS)'; \
+ 	  for file in $$list; do \
+@@ -389,12 +420,28 @@ uninstall-info-am:
+ 	for file in $$list; do \
+ 	  relfile=`echo "$$file" | sed 's|^.*/||'`; \
+ 	  relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \
+-	  (if cd "$(DESTDIR)$(infodir)"; then \
+-	     echo " rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9])"; \
++	  (if test -d "$(DESTDIR)$(infodir)" && cd "$(DESTDIR)$(infodir)"; then \
++	     echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \
+ 	     rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \
+ 	   else :; fi); \
+ 	done
+ 
++uninstall-pdf-am:
++	@$(NORMAL_UNINSTALL)
++	@list='$(PDFS)'; for p in $$list; do \
++	  f=$(am__strip_dir) \
++	  echo " rm -f '$(DESTDIR)$(pdfdir)/$$f'"; \
++	  rm -f "$(DESTDIR)$(pdfdir)/$$f"; \
++	done
++
++uninstall-ps-am:
++	@$(NORMAL_UNINSTALL)
++	@list='$(PSS)'; for p in $$list; do \
++	  f=$(am__strip_dir) \
++	  echo " rm -f '$(DESTDIR)$(psdir)/$$f'"; \
++	  rm -f "$(DESTDIR)$(psdir)/$$f"; \
++	done
++
+ dist-info: $(INFO_DEPS)
+ 	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ 	list='$(INFO_DEPS)'; \
+@@ -403,10 +450,13 @@ dist-info: $(INFO_DEPS)
+ 	    $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \
+ 	  esac; \
+ 	  if test -f $$base; then d=.; else d=$(srcdir); fi; \
+-	  for file in $$d/$$base*; do \
+-	    relfile=`expr "$$file" : "$$d/\(.*\)"`; \
+-	    test -f $(distdir)/$$relfile || \
+-	      cp -p $$file $(distdir)/$$relfile; \
++	  base_i=`echo "$$base" | sed 's|\.info$$||;s|$$|.i|'`; \
++	  for file in $$d/$$base $$d/$$base-[0-9] $$d/$$base-[0-9][0-9] $$d/$$base_i[0-9] $$d/$$base_i[0-9][0-9]; do \
++	    if test -f $$file; then \
++	      relfile=`expr "$$file" : "$$d/\(.*\)"`; \
++	      test -f $(distdir)/$$relfile || \
++		cp -p $$file $(distdir)/$$relfile; \
++	    else :; fi; \
+ 	  done; \
+ 	done
+ 
+@@ -426,7 +476,7 @@ maintainer-clean-aminfo:
+ 	done
+ install-man1: $(man1_MANS) $(man_MANS)
+ 	@$(NORMAL_INSTALL)
+-	test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)"
++	test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
+ 	@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
+ 	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+ 	for i in $$l2; do \
+@@ -471,7 +521,7 @@ uninstall-man1:
+ 	done
+ install-man8: $(man8_MANS) $(man_MANS)
+ 	@$(NORMAL_INSTALL)
+-	test -z "$(man8dir)" || $(mkdir_p) "$(DESTDIR)$(man8dir)"
++	test -z "$(man8dir)" || $(MKDIR_P) "$(DESTDIR)$(man8dir)"
+ 	@list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
+ 	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+ 	for i in $$l2; do \
+@@ -564,22 +614,21 @@ distclean-tags:
+ 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+ 
+ distdir: $(DISTFILES)
+-	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+-	list='$(DISTFILES)'; for file in $$list; do \
+-	  case $$file in \
+-	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+-	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+-	  esac; \
++	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
++	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
++	list='$(DISTFILES)'; \
++	  dist_files=`for file in $$list; do echo $$file; done | \
++	  sed -e "s|^$$srcdirstrip/||;t" \
++	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
++	case $$dist_files in \
++	  */*) $(MKDIR_P) `echo "$$dist_files" | \
++			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
++			   sort -u` ;; \
++	esac; \
++	for file in $$dist_files; do \
+ 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+-	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+-	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+-	    dir="/$$dir"; \
+-	    $(mkdir_p) "$(distdir)$$dir"; \
+-	  else \
+-	    dir=''; \
+-	  fi; \
+ 	  if test -d $$d/$$file; then \
++	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ 	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ 	    fi; \
+@@ -598,7 +647,7 @@ check: check-am
+ all-am: Makefile $(INFO_DEPS) $(PROGRAMS) $(SCRIPTS) $(MANS)
+ installdirs:
+ 	for dir in "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man8dir)"; do \
+-	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
++	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ 	done
+ install: install-am
+ install-exec: install-exec-am
+@@ -649,13 +698,42 @@ info-am: $(INFO_DEPS)
+ 
+ install-data-am: install-info-am install-man
+ 
++install-dvi: install-dvi-am
++
++install-dvi-am: $(DVIS)
++	@$(NORMAL_INSTALL)
++	test -z "$(dvidir)" || $(MKDIR_P) "$(DESTDIR)$(dvidir)"
++	@list='$(DVIS)'; for p in $$list; do \
++	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
++	  f=$(am__strip_dir) \
++	  echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(dvidir)/$$f'"; \
++	  $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(dvidir)/$$f"; \
++	done
+ install-exec-am:
+ 
++install-html: install-html-am
++
++install-html-am: $(HTMLS)
++	@$(NORMAL_INSTALL)
++	test -z "$(htmldir)" || $(MKDIR_P) "$(DESTDIR)$(htmldir)"
++	@list='$(HTMLS)'; for p in $$list; do \
++	  if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \
++	  f=$(am__strip_dir) \
++	  if test -d "$$d$$p"; then \
++	    echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)/$$f'"; \
++	    $(MKDIR_P) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \
++	    echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \
++	    $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f"; \
++	  else \
++	    echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(htmldir)/$$f'"; \
++	    $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(htmldir)/$$f"; \
++	  fi; \
++	done
+ install-info: install-info-am
+ 
+ install-info-am: $(INFO_DEPS)
+ 	@$(NORMAL_INSTALL)
+-	test -z "$(infodir)" || $(mkdir_p) "$(DESTDIR)$(infodir)"
++	test -z "$(infodir)" || $(MKDIR_P) "$(DESTDIR)$(infodir)"
+ 	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ 	list='$(INFO_DEPS)'; \
+ 	for file in $$list; do \
+@@ -685,6 +763,28 @@ install-info-am: $(INFO_DEPS)
+ 	else : ; fi
+ install-man: install-man1 install-man8
+ 
++install-pdf: install-pdf-am
++
++install-pdf-am: $(PDFS)
++	@$(NORMAL_INSTALL)
++	test -z "$(pdfdir)" || $(MKDIR_P) "$(DESTDIR)$(pdfdir)"
++	@list='$(PDFS)'; for p in $$list; do \
++	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
++	  f=$(am__strip_dir) \
++	  echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(pdfdir)/$$f'"; \
++	  $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(pdfdir)/$$f"; \
++	done
++install-ps: install-ps-am
++
++install-ps-am: $(PSS)
++	@$(NORMAL_INSTALL)
++	test -z "$(psdir)" || $(MKDIR_P) "$(DESTDIR)$(psdir)"
++	@list='$(PSS)'; for p in $$list; do \
++	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
++	  f=$(am__strip_dir) \
++	  echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(psdir)/$$f'"; \
++	  $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(psdir)/$$f"; \
++	done
+ installcheck-am:
+ 
+ maintainer-clean: maintainer-clean-am
+@@ -706,23 +806,29 @@ ps: ps-am
+ 
+ ps-am: $(PSS)
+ 
+-uninstall-am: uninstall-info-am uninstall-man
++uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \
++	uninstall-man uninstall-pdf-am uninstall-ps-am
+ 
+ uninstall-man: uninstall-man1 uninstall-man8
+ 
++.MAKE: install-am install-strip
++
+ .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ 	clean-noinstPROGRAMS ctags dist-info distclean \
+ 	distclean-compile distclean-generic distclean-tags distdir dvi \
+ 	dvi-am html html-am info info-am install install-am \
+-	install-data install-data-am install-exec install-exec-am \
++	install-data install-data-am install-dvi install-dvi-am \
++	install-exec install-exec-am install-html install-html-am \
+ 	install-info install-info-am install-man install-man1 \
+-	install-man8 install-strip installcheck installcheck-am \
++	install-man8 install-pdf install-pdf-am install-ps \
++	install-ps-am install-strip installcheck installcheck-am \
+ 	installdirs maintainer-clean maintainer-clean-aminfo \
+ 	maintainer-clean-generic maintainer-clean-vti mostlyclean \
+ 	mostlyclean-aminfo mostlyclean-compile mostlyclean-generic \
+ 	mostlyclean-vti pdf pdf-am ps ps-am tags uninstall \
+-	uninstall-am uninstall-info-am uninstall-man uninstall-man1 \
+-	uninstall-man8
++	uninstall-am uninstall-dvi-am uninstall-html-am \
++	uninstall-info-am uninstall-man uninstall-man1 uninstall-man8 \
++	uninstall-pdf-am uninstall-ps-am
+ 
+ 
+ @BUILD_EXAMPLE_KERNEL_TRUE at boot.o: multiboot.h
+diff --git a/docs/grub-crypt.8 b/docs/grub-crypt.8
+new file mode 100644
+index 0000000..eb132d7
+--- /dev/null
++++ b/docs/grub-crypt.8
+@@ -0,0 +1,39 @@
++.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.23.
++.TH GRUB-CRYPT "1" "January 2010" "grub-crypt (GNU GRUB 0.97)" FSF
++.SH NAME
++grub-crypt \- manual page for grub-crypt (GNU GRUB 0.97)
++.SH SYNOPSIS
++.B grub-crypt
++[\fIOPTION\fR]...
++.SH DESCRIPTION
++Encrypt a password.
++.TP
++\fB\-h\fR, \fB\-\-help\fR
++Print this message and exit
++.TP
++\fB\-v\fR, \fB\-\-version\fR
++Print the version information and exit
++.TP
++\fB\-\-md5\fR
++Use MD5 to encrypt the password
++.TP
++\fB\-\-sha\-256\fR
++Use SHA-256 to encrypt the password
++.TP
++\fB\-\-sha\-512\fR
++Use SHA-512 to encrypt the password (default)
++.SH "REPORTING BUGS"
++Report bugs to <bug-grub at gnu.org>.
++EOF
++.SH "SEE ALSO"
++The full documentation for
++.B grub-crypt
++is maintained as a Texinfo manual.  If the
++.B info
++and
++.B grub-crypt
++programs are properly installed at your site, the command
++.IP
++.B info grub-crypt
++.PP
++should give you access to the complete manual.
+diff --git a/docs/grub-install.8 b/docs/grub-install.8
+index ac588a3..accff22 100644
+--- a/docs/grub-install.8
++++ b/docs/grub-install.8
+@@ -30,6 +30,8 @@ BIOS
+ .TP
+ \fB\-\-recheck\fR
+ probe a device map even if it already exists
++
++This option is unreliable and its use is strongly discouraged.
+ .PP
+ INSTALL_DEVICE can be a GRUB device name or a system device filename.
+ .PP
+diff --git a/docs/grub.8 b/docs/grub.8
+index 92149f7..7a087d6 100644
+--- a/docs/grub.8
++++ b/docs/grub.8
+@@ -15,7 +15,7 @@ turn on batch mode for non-interactive use
+ specify stage2 boot_drive [default=0x0]
+ .TP
+ \fB\-\-config\-file\fR=\fIFILE\fR
+-specify stage2 config_file [default=/boot/grub/menu.lst]
++specify stage2 config_file [default=/boot/grub/grub.conf]
+ .TP
+ \fB\-\-device\-map\fR=\fIFILE\fR
+ use the device map file FILE
+diff --git a/docs/grub.info b/docs/grub.info
+index f48783c..7692f31 100644
+--- a/docs/grub.info
++++ b/docs/grub.info
+@@ -1,5 +1,4 @@
+-This is ../../docs/grub.info, produced by makeinfo version 4.8 from
+-../../docs/grub.texi.
++This is grub.info, produced by makeinfo version 4.9 from grub.texi.
+ 
+ INFO-DIR-SECTION Kernel
+ START-INFO-DIR-ENTRY
+@@ -1147,7 +1146,7 @@ your OS. There's a solution to that - GRUB provides a menu interface
+ (*note Menu interface::) from which you can select an item (using arrow
+ keys) that will do everything to boot an OS.
+ 
+-   To enable the menu, you need a configuration file, `menu.lst' under
++   To enable the menu, you need a configuration file, `grub.conf' under
+ the boot directory. We'll analyze an example file.
+ 
+    The file first contains some general settings, the menu interface
+@@ -1693,12 +1692,12 @@ There are two ways to specify files, by "absolute file name" and by
+ 
+    An absolute file name resembles a Unix absolute file name, using `/'
+ for the directory separator (not `\' as in DOS). One example is
+-`(hd0,0)/boot/grub/menu.lst'. This means the file `/boot/grub/menu.lst'
+-in the first partition of the first hard disk. If you omit the device
+-name in an absolute file name, GRUB uses GRUB's "root device"
+-implicitly. So if you set the root device to, say, `(hd1,0)' by the
+-command `root' (*note root::), then `/boot/kernel' is the same as
+-`(hd1,0)/boot/kernel'.
++`(hd0,0)/boot/grub/grub.conf'. This means the file
++`/boot/grub/grub.conf' in the first partition of the first hard disk.
++If you omit the device name in an absolute file name, GRUB uses GRUB's
++"root device" implicitly. So if you set the root device to, say,
++`(hd1,0)' by the command `root' (*note root::), then `/boot/kernel' is
++the same as `(hd1,0)/boot/kernel'.
+ 
+ 
+ File: grub.info,  Node: Block list syntax,  Prev: File name syntax,  Up: Filesystem
+@@ -2023,6 +2022,7 @@ Commands usable anywhere in the menu and in the command-line.
+ * rarp::                        Initialize a network device via RARP
+ * serial::                      Set up a serial device
+ * setkey::                      Configure the key map
++* splashimage::                 Use a splash image
+ * terminal::                    Choose a terminal
+ * terminfo::                    Define escape sequences for a terminal
+ * tftpserver::                  Specify a TFTP server
+@@ -2258,7 +2258,7 @@ File: grub.info,  Node: serial,  Next: setkey,  Prev: rarp,  Up: General command
+      support. See also *Note Serial terminal::.
+ 
+ 
+-File: grub.info,  Node: setkey,  Next: terminal,  Prev: serial,  Up: General commands
++File: grub.info,  Node: setkey,  Next: splashimage,  Prev: serial,  Up: General commands
+ 
+ 13.2.13 setkey
+ --------------
+@@ -2384,9 +2384,20 @@ File: grub.info,  Node: setkey,  Next: terminal,  Prev: serial,  Up: General com
+           ` '
+ 
+ 
+-File: grub.info,  Node: terminal,  Next: terminfo,  Prev: setkey,  Up: General commands
++File: grub.info,  Node: splashimage,  Next: terminal,  Prev: setkey,  Up: General commands
+ 
+-13.2.14 terminal
++13.2.14 splashimage
++-------------------
++
++ -- Command: splashimage file
++     Select an image to use as the background image.  This should be
++     specified using normal GRUB device naming syntax.  The format of
++     the file is a gzipped xpm which is 640x480 with a 14 color palette.
++
++
++File: grub.info,  Node: terminal,  Next: terminfo,  Prev: splashimage,  Up: General commands
++
++13.2.15 terminal
+ ----------------
+ 
+  -- Command: terminal [`--dumb'] [`--no-echo'] [`--no-edit']
+@@ -2421,7 +2432,7 @@ File: grub.info,  Node: terminal,  Next: terminfo,  Prev: setkey,  Up: General c
+ 
+ File: grub.info,  Node: terminfo,  Next: tftpserver,  Prev: terminal,  Up: General commands
+ 
+-13.2.15 terminfo
++13.2.16 terminfo
+ ----------------
+ 
+  -- Command: terminfo `--name=name' `--cursor-address=seq'
+@@ -2439,7 +2450,7 @@ File: grub.info,  Node: terminfo,  Next: tftpserver,  Prev: terminal,  Up: Gener
+ 
+ File: grub.info,  Node: tftpserver,  Next: unhide,  Prev: terminfo,  Up: General commands
+ 
+-13.2.16 tftpserver
++13.2.17 tftpserver
+ ------------------
+ 
+  -- Command: tftpserver ipaddr
+@@ -2454,7 +2465,7 @@ File: grub.info,  Node: tftpserver,  Next: unhide,  Prev: terminfo,  Up: General
+ 
+ File: grub.info,  Node: unhide,  Prev: tftpserver,  Up: General commands
+ 
+-13.2.17 unhide
++13.2.18 unhide
+ --------------
+ 
+  -- Command: unhide partition
+@@ -3405,9 +3416,9 @@ calls with UNIX system calls and libc functions.
+      grub shell just ignores this option.
+ 
+ `--config-file=FILE'
+-     Read the configuration file FILE instead of `/boot/grub/menu.lst'.
+-     The format is the same as the normal GRUB syntax. See *Note
+-     Filesystem::, for more information.
++     Read the configuration file FILE instead of
++     `/boot/grub/grub.conf'. The format is the same as the normal GRUB
++     syntax. See *Note Filesystem::, for more information.
+ 
+ `--boot-drive=DRIVE'
+      Set the stage2 BOOT_DRIVE to DRIVE. This argument should be an
+@@ -3551,8 +3562,9 @@ name.
+ 
+ `--recheck'
+      Recheck the device map, even if `/boot/grub/device.map' already
+-     exists. You should use this option whenever you add/remove a disk
+-     into/from your computer.
++     exists.
++
++     This option is unreliable and its use is strongly discouraged.
+ 
+ 
+ File: grub.info,  Node: Invoking grub-md5-crypt,  Next: Invoking grub-terminfo,  Prev: Invoking grub-install,  Up: Top
+@@ -4279,6 +4291,7 @@ Index
+ * serial:                                serial.               (line  9)
+ * setkey:                                setkey.               (line  7)
+ * setup:                                 setup.                (line  8)
++* splashimage:                           splashimage.          (line  7)
+ * terminal:                              terminal.             (line  9)
+ * terminfo:                              terminfo.             (line  9)
+ * testload:                              testload.             (line  7)
+@@ -4293,163 +4306,164 @@ Index
+ 
+ 
+ Tag Table:
+-Node: Top1487
+-Node: Introduction3266
+-Node: Overview3643
+-Node: Overview-Footnotes5865
+-Ref: Overview-Footnote-15926
+-Node: History6087
+-Node: Features7208
+-Node: Features-Footnotes12976
+-Ref: Features-Footnote-113037
+-Node: Role of a boot loader13182
+-Node: Role of a boot loader-Footnotes14520
+-Ref: Role of a boot loader-Footnote-114607
+-Node: Naming convention14686
+-Node: Installation17621
+-Node: Creating a GRUB boot floppy19363
+-Node: Installing GRUB natively20181
+-Node: Installing GRUB natively-Footnotes22461
+-Ref: Installing GRUB natively-Footnote-122554
+-Node: Installing GRUB using grub-install22739
+-Node: Making a GRUB bootable CD-ROM25685
+-Node: Making a GRUB bootable CD-ROM-Footnotes27730
+-Ref: Making a GRUB bootable CD-ROM-Footnote-127833
+-Node: Booting27908
+-Node: General boot methods28363
+-Node: Loading an operating system directly29104
+-Node: Chain-loading30408
+-Node: Chain-loading-Footnotes31718
+-Ref: Chain-loading-Footnote-131789
+-Node: OS-specific notes31861
+-Node: GNU/Hurd32237
+-Node: GNU/Linux32856
+-Node: FreeBSD34104
+-Node: NetBSD34617
+-Node: OpenBSD35275
+-Node: DOS/Windows35475
+-Node: SCO UnixWare37301
+-Node: QNX37719
+-Node: Making your system robust37969
+-Node: Booting once-only39294
+-Node: Booting fallback systems41219
+-Node: Configuration44066
+-Node: Network48495
+-Node: General usage of network support48989
+-Node: General usage of network support-Footnotes50850
+-Ref: General usage of network support-Footnote-150959
+-Node: Diskless51027
+-Node: Serial terminal53211
+-Node: Preset Menu55444
+-Node: Security57812
+-Node: Images60620
+-Node: Filesystem63131
+-Node: Device syntax63814
+-Node: File name syntax65308
+-Node: Block list syntax66051
+-Node: Interface66784
+-Node: Command-line interface67661
+-Node: Command-line interface-Footnotes69602
+-Ref: Command-line interface-Footnote-169691
+-Node: Menu interface69786
+-Node: Menu entry editor70796
+-Node: Hidden menu interface71875
+-Node: Commands72452
+-Node: Menu-specific commands73029
+-Node: default74200
+-Node: fallback74678
+-Node: hiddenmenu75229
+-Node: timeout75717
+-Node: title75995
+-Node: General commands76266
+-Node: bootp77579
+-Node: color78058
+-Node: device79532
+-Node: dhcp80104
+-Node: hide80689
+-Node: ifconfig81066
+-Node: pager81642
+-Node: partnew81976
+-Node: parttype82412
+-Node: password82779
+-Node: rarp83598
+-Node: serial83899
+-Node: setkey85172
+-Node: terminal87341
+-Node: terminfo88878
+-Node: tftpserver89565
+-Node: unhide90111
+-Node: Command-line and menu entry commands90486
+-Node: blocklist93017
+-Node: boot93259
+-Node: cat93580
+-Node: chainloader93884
+-Node: cmp94500
+-Node: configfile95051
+-Node: debug95265
+-Node: displayapm95649
+-Node: displaymem95860
+-Node: embed96562
+-Node: embed-Footnotes97096
+-Ref: embed-Footnote-197151
+-Node: find97208
+-Node: fstest97588
+-Node: geometry98273
+-Node: halt98885
+-Node: help99212
+-Node: impsprobe99833
+-Node: initrd100232
+-Node: install100571
+-Node: install-Footnotes103415
+-Ref: install-Footnote-1103474
+-Node: ioprobe103571
+-Node: kernel103896
+-Node: lock105016
+-Node: makeactive105591
+-Node: map105903
+-Node: md5crypt106470
+-Node: module106817
+-Node: modulenounzip107394
+-Node: pause107687
+-Node: quit108101
+-Node: reboot108377
+-Node: read108558
+-Node: root108800
+-Node: rootnoverify109677
+-Node: savedefault110232
+-Node: setup111208
+-Node: testload112274
+-Node: testvbe112884
+-Node: uppermem113255
+-Node: vbeprobe113837
+-Node: Troubleshooting114220
+-Node: Stage1 errors114758
+-Node: Stage1.5 errors116135
+-Node: Stage2 errors116573
+-Node: Invoking the grub shell124033
+-Node: Basic usage124786
+-Node: Installation under UNIX127073
+-Node: Device map128748
+-Node: Invoking grub-install129896
+-Node: Invoking grub-md5-crypt131484
+-Node: Invoking grub-terminfo132133
+-Node: Invoking grub-set-default132899
+-Node: Invoking mbchk134700
+-Node: Obtaining and Building GRUB135214
+-Node: Reporting bugs136631
+-Node: Future139435
+-Node: Internals139926
+-Node: Memory map141149
+-Node: Embedded data142627
+-Node: Filesystem interface144644
+-Node: Command interface148077
+-Node: Bootstrap tricks149392
+-Node: I/O ports detection151541
+-Node: Memory detection151813
+-Node: Low-level disk I/O152105
+-Node: MBR152374
+-Node: Partition table152571
+-Node: Submitting patches152844
+-Node: Index154332
++Node: Top1465
++Node: Introduction3244
++Node: Overview3621
++Node: Overview-Footnotes5843
++Ref: Overview-Footnote-15904
++Node: History6065
++Node: Features7186
++Node: Features-Footnotes12954
++Ref: Features-Footnote-113015
++Node: Role of a boot loader13160
++Node: Role of a boot loader-Footnotes14498
++Ref: Role of a boot loader-Footnote-114585
++Node: Naming convention14664
++Node: Installation17599
++Node: Creating a GRUB boot floppy19341
++Node: Installing GRUB natively20159
++Node: Installing GRUB natively-Footnotes22439
++Ref: Installing GRUB natively-Footnote-122532
++Node: Installing GRUB using grub-install22717
++Node: Making a GRUB bootable CD-ROM25663
++Node: Making a GRUB bootable CD-ROM-Footnotes27708
++Ref: Making a GRUB bootable CD-ROM-Footnote-127811
++Node: Booting27886
++Node: General boot methods28341
++Node: Loading an operating system directly29082
++Node: Chain-loading30386
++Node: Chain-loading-Footnotes31696
++Ref: Chain-loading-Footnote-131767
++Node: OS-specific notes31839
++Node: GNU/Hurd32215
++Node: GNU/Linux32834
++Node: FreeBSD34082
++Node: NetBSD34595
++Node: OpenBSD35253
++Node: DOS/Windows35453
++Node: SCO UnixWare37279
++Node: QNX37697
++Node: Making your system robust37947
++Node: Booting once-only39272
++Node: Booting fallback systems41197
++Node: Configuration44044
++Node: Network48474
++Node: General usage of network support48968
++Node: General usage of network support-Footnotes50829
++Ref: General usage of network support-Footnote-150938
++Node: Diskless51006
++Node: Serial terminal53190
++Node: Preset Menu55423
++Node: Security57791
++Node: Images60599
++Node: Filesystem63110
++Node: Device syntax63793
++Node: File name syntax65287
++Node: Block list syntax66032
++Node: Interface66765
++Node: Command-line interface67642
++Node: Command-line interface-Footnotes69583
++Ref: Command-line interface-Footnote-169672
++Node: Menu interface69767
++Node: Menu entry editor70777
++Node: Hidden menu interface71856
++Node: Commands72433
++Node: Menu-specific commands73010
++Node: default74181
++Node: fallback74659
++Node: hiddenmenu75210
++Node: timeout75698
++Node: title75976
++Node: General commands76247
++Node: bootp77611
++Node: color78090
++Node: device79564
++Node: dhcp80136
++Node: hide80721
++Node: ifconfig81098
++Node: pager81674
++Node: partnew82008
++Node: parttype82444
++Node: password82811
++Node: rarp83630
++Node: serial83931
++Node: setkey85204
++Node: splashimage87376
++Node: terminal87754
++Node: terminfo89296
++Node: tftpserver89983
++Node: unhide90529
++Node: Command-line and menu entry commands90904
++Node: blocklist93435
++Node: boot93677
++Node: cat93998
++Node: chainloader94302
++Node: cmp94918
++Node: configfile95469
++Node: debug95683
++Node: displayapm96067
++Node: displaymem96278
++Node: embed96980
++Node: embed-Footnotes97514
++Ref: embed-Footnote-197569
++Node: find97626
++Node: fstest98006
++Node: geometry98691
++Node: halt99303
++Node: help99630
++Node: impsprobe100251
++Node: initrd100650
++Node: install100989
++Node: install-Footnotes103833
++Ref: install-Footnote-1103892
++Node: ioprobe103989
++Node: kernel104314
++Node: lock105434
++Node: makeactive106009
++Node: map106321
++Node: md5crypt106888
++Node: module107235
++Node: modulenounzip107812
++Node: pause108105
++Node: quit108519
++Node: reboot108795
++Node: read108976
++Node: root109218
++Node: rootnoverify110095
++Node: savedefault110650
++Node: setup111626
++Node: testload112692
++Node: testvbe113302
++Node: uppermem113673
++Node: vbeprobe114255
++Node: Troubleshooting114638
++Node: Stage1 errors115176
++Node: Stage1.5 errors116553
++Node: Stage2 errors116991
++Node: Invoking the grub shell124451
++Node: Basic usage125204
++Node: Installation under UNIX127492
++Node: Device map129167
++Node: Invoking grub-install130315
++Node: Invoking grub-md5-crypt131884
++Node: Invoking grub-terminfo132533
++Node: Invoking grub-set-default133299
++Node: Invoking mbchk135100
++Node: Obtaining and Building GRUB135614
++Node: Reporting bugs137031
++Node: Future139835
++Node: Internals140326
++Node: Memory map141549
++Node: Embedded data143027
++Node: Filesystem interface145044
++Node: Command interface148477
++Node: Bootstrap tricks149792
++Node: I/O ports detection151941
++Node: Memory detection152213
++Node: Low-level disk I/O152505
++Node: MBR152774
++Node: Partition table152971
++Node: Submitting patches153244
++Node: Index154732
+ 
+ End Tag Table
+diff --git a/docs/grub.texi b/docs/grub.texi
+index 51d330a..ca10751 100644
+--- a/docs/grub.texi
++++ b/docs/grub.texi
+@@ -21,6 +21,7 @@
+ @dircategory Kernel
+ @direntry
+ * GRUB: (grub).                 The GRand Unified Bootloader
++* grub-crypt: (grub)Invoking grub-crypt.        Encrypt a password
+ * grub-install: (grub)Invoking grub-install.    Install GRUB on your drive
+ * grub-md5-crypt: (grub)Invoking grub-md5-crypt.        Encrypt a password
+                                                         in MD5 format
+@@ -115,8 +116,9 @@ This edition documents version @value{VERSION}.
+ * Commands::                    The list of available builtin commands
+ * Troubleshooting::             Error messages produced by GRUB
+ * Invoking the grub shell::     How to use the grub shell
++* Invoking grub-crypt::         How to generate an encrypted password
+ * Invoking grub-install::       How to use the GRUB installer
+-* Invoking grub-md5-crypt::     How to generate a cryptic password
++* Invoking grub-md5-crypt::     How to generate an MD5-encrypted password
+ * Invoking grub-terminfo::      How to generate a terminfo command
+ * Invoking grub-set-default::   How to set a default boot entry
+ * Invoking mbchk::              How to use the Multiboot checker
+@@ -283,7 +285,7 @@ devices, partitions, and files in a directory depending on context.
+ Support multiple filesystem types transparently, plus a useful explicit
+ blocklist notation. The currently supported filesystem types are
+ @dfn{BSD FFS}, @dfn{DOS FAT16 and FAT32}, @dfn{Minix fs}, @dfn{Linux
+-ext2fs}, @dfn{ReiserFS}, @dfn{JFS}, @dfn{XFS}, and @dfn{VSTa
++ext2fs}, @dfn{ReiserFS}, @dfn{JFS}, @dfn{XFS}, @dfn{BtrFS}, and @dfn{VSTa
+ fs}. @xref{Filesystem}, for more information.
+ 
+ @item Support automatic decompression
+@@ -1265,7 +1267,7 @@ OS. There's a solution to that - GRUB provides a menu interface
+ keys) that will do everything to boot an OS.
+ 
+ To enable the menu, you need a configuration file,
+- at file{menu.lst} under the boot directory. We'll analyze an example
++ at file{grub.conf} under the boot directory. We'll analyze an example
+ file.
+ 
+ The file first contains some general settings, the menu interface
+@@ -1685,27 +1687,17 @@ run the command @command{password} in your configuration file
+ (@pxref{password}), like this:
+ 
+ @example
+-password --md5 PASSWORD
++password --encrypted PASSWORD
+ @end example
+ 
+ If this is specified, GRUB disallows any interactive control, until you
+ press the key @key{p} and enter a correct password.  The option
+- at option{--md5} tells GRUB that @samp{PASSWORD} is in MD5 format.  If it
++ at option{--encrypted} tells GRUB that @samp{PASSWORD} is encrypted format.  If it
+ is omitted, GRUB assumes the @samp{PASSWORD} is in clear text.
+ 
+-You can encrypt your password with the command @command{md5crypt}
+-(@pxref{md5crypt}). For example, run the grub shell (@pxref{Invoking the
+-grub shell}), and enter your password:
+-
+- at example
+- at group
+-grub> md5crypt
+-Password: **********
+-Encrypted: $1$U$JK7xFegdxWH6VuppCUSIb.
+- at end group
+- at end example
+-
+-Then, cut and paste the encrypted password to your configuration file.
++You can encrypt your password with the program @command{grub-crypt}
++(@pxref{Invoking grub-crypt}). Then, cut and paste the encrypted password to
++your configuration file.
+ 
+ Also, you can specify an optional argument to @command{password}. See
+ this example:
+@@ -1778,6 +1770,7 @@ itself. Usually, this is put in a filesystem, but that is not required.
+ @itemx reiserfs_stage1_5
+ @itemx vstafs_stage1_5
+ @itemx xfs_stage1_5
++ at itemx btrfs_stage1_5
+ 
+ These are called @dfn{Stage 1.5}, because they serve as a bridge
+ between @file{stage1} and @file{stage2}, that is to say, Stage 1.5 is
+@@ -1882,8 +1875,8 @@ There are two ways to specify files, by @dfn{absolute file name} and by
+ 
+ An absolute file name resembles a Unix absolute file name, using
+ @samp{/} for the directory separator (not @samp{\} as in DOS). One
+-example is @samp{(hd0,0)/boot/grub/menu.lst}. This means the file
+- at file{/boot/grub/menu.lst} in the first partition of the first hard
++example is @samp{(hd0,0)/boot/grub/grub.conf}. This means the file
++ at file{/boot/grub/grub.conf} in the first partition of the first hard
+ disk. If you omit the device name in an absolute file name, GRUB uses
+ GRUB's @dfn{root device} implicitly. So if you set the root device to,
+ say, @samp{(hd1,0)} by the command @command{root} (@pxref{root}), then
+@@ -2199,6 +2192,7 @@ Commands usable anywhere in the menu and in the command-line.
+ * rarp::                        Initialize a network device via RARP
+ * serial::                      Set up a serial device
+ * setkey::                      Configure the key map
++* splashimage::                 Use a splash image
+ * terminal::                    Choose a terminal
+ * terminfo::                    Define escape sequences for a terminal
+ * tftpserver::                  Specify a TFTP server
+@@ -2398,7 +2392,7 @@ is the new partition type and must be a number in the range 0-0xff.
+ @node password
+ @subsection password
+ 
+- at deffn Command password [@option{--md5}] passwd [new-config-file]
++ at deffn Command password [@option{--md5}] [@option{--encrypted}] passwd [new-config-file]
+ If used in the first section of a menu file, disable all interactive
+ editing control (menu entry editor and command-line) and entries
+ protected by the command @command{lock}. If the password @var{passwd} is
+@@ -2408,7 +2402,9 @@ specified. Otherwise, GRUB will just unlock the privileged instructions.
+ You can also use this command in the script section, in which case it
+ will ask for the password, before continuing.  The option
+ @option{--md5} tells GRUB that @var{passwd} is encrypted with
+- at command{md5crypt} (@pxref{md5crypt}).
++ at command{md5crypt} (@pxref{md5crypt}), the option @option{--encrypted}
++tells GRUB that @var{passwd} is using one of the crypt formats (GRUB currently
++supports MD5, SHA-256 and SHA-512 encryption).
+ @end deffn
+ 
+ 
+@@ -2578,6 +2574,16 @@ character each of the symbols corresponds:
+ @end deffn
+ 
+ 
++ at node splashimage
++ at subsection splashimage
++
++ at deffn Command splashimage file
++Select an image to use as the background image.  This should be
++specified using normal GRUB device naming syntax.  The format of the
++file is a gzipped xpm which is 640x480 with a 14 color palette.
++ at end deffn
++
++
+ @node terminal
+ @subsection terminal
+ 
+@@ -3542,7 +3548,7 @@ ignores this option.
+ 
+ @item --config-file=@var{file}
+ Read the configuration file @var{file} instead of
+- at file{/boot/grub/menu.lst}. The format is the same as the normal GRUB
++ at file{/boot/grub/grub.conf}. The format is the same as the normal GRUB
+ syntax. See @ref{Filesystem}, for more information.
+ 
+ @item --boot-drive=@var{drive}
+@@ -3653,6 +3659,31 @@ comments in the file if needed, as the grub shell assumes that a line is
+ just a comment if the first character is @samp{#}.
+ 
+ 
++ at node Invoking grub-crypt
++ at chapter Invoking grub-crypt
++
++The program @command{grub-crypt} encrypts a password in one of the specified
++formats. Passwords encrypted by this program can be used with the
++command @command{password} (@pxref{password}).
++
++ at command{grub-crypt} accepts the following options:
++
++ at table @option
++ at item --help
++Print a summary of the command-line options and exit.
++
++ at item --version
++Print the version information and exit.
++
++ at item --md5
++Use MD5 for password encryption.
++ at item --sha-256
++Use SHA-256 for password encryption.
++ at item --sha-512
++Use SHA-512 for password encryption. This is the default.
++ at end table
++
++
+ @node Invoking grub-install
+ @chapter Invoking grub-install
+ 
+@@ -3702,8 +3733,9 @@ Use @var{file} as the grub shell. You can append arbitrary options to
+ 
+ @item --recheck
+ Recheck the device map, even if @file{/boot/grub/device.map} already
+-exists. You should use this option whenever you add/remove a disk
+-into/from your computer.
++exists.
++
++This option is unreliable and its use is strongly discouraged.
+ @end table
+ 
+ 
+diff --git a/docs/stamp-vti b/docs/stamp-vti
+index b97de24..eb5144d 100644
+--- a/docs/stamp-vti
++++ b/docs/stamp-vti
+@@ -1,4 +1,4 @@
+- at set UPDATED 8 May 2005
+- at set UPDATED-MONTH May 2005
++ at set UPDATED 7 August 2007
++ at set UPDATED-MONTH August 2007
+ @set EDITION 0.97
+ @set VERSION 0.97
+diff --git a/docs/version.texi b/docs/version.texi
+index b97de24..eb5144d 100644
+--- a/docs/version.texi
++++ b/docs/version.texi
+@@ -1,4 +1,4 @@
+- at set UPDATED 8 May 2005
+- at set UPDATED-MONTH May 2005
++ at set UPDATED 7 August 2007
++ at set UPDATED-MONTH August 2007
+ @set EDITION 0.97
+ @set VERSION 0.97
+diff --git a/efi/.gitignore b/efi/.gitignore
+new file mode 100644
+index 0000000..a0e4294
+--- /dev/null
++++ b/efi/.gitignore
+@@ -0,0 +1,7 @@
++.deps
++Makefile.in
++Makefile
++*.a
++*.o
++*.so
++*.efi
+diff --git a/efi/Makefile.am b/efi/Makefile.am
+new file mode 100644
+index 0000000..4cffe7d
+--- /dev/null
++++ b/efi/Makefile.am
+@@ -0,0 +1,76 @@
++
++pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
++pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
++
++if PLATFORM_EFI
++
++if NETBOOT_SUPPORT
++NETBOOT_FLAGS = -I$(top_srcdir)/netboot -DSUPPORT_NETBOOT=1
++else
++NETBOOT_FLAGS =
++endif
++
++if SERIAL_SUPPORT
++SERIAL_FLAGS = -DSUPPORT_SERIAL=1
++else
++SERIAL_FLAGS =
++endif
++
++if HERCULES_SUPPORT
++HERCULES_FLAGS = -DSUPPORT_HERCULES=1
++else
++HERCULES_FLAGS =
++endif
++
++if GRAPHICS_SUPPORT
++GRAPHICS_FLAGS = -DSUPPORT_GRAPHICS=1
++else
++GRAPHICS_FLAGS =
++endif
++
++GRUBEFI_FORMAT = efi-app-$(EFI_ARCH)
++GRUBSO_LD_SCRIPT = @GNUEFI_LDS@
++GRUBSO_LD_FLAGS = -T $(GRUBSO_LD_SCRIPT) -nostdlib -shared -Bsymbolic
++
++GRUBSO_OBJS = efimain.o
++GRUBSO_LIBS = @GNUEFI_CRT0@ $(top_srcdir)/stage2/libstage2.a \
++		libgrubefi.a @LIBGCC@
++
++if NETBOOT_SUPPORT
++GRUBSO_LIBS += $(top_srcdir)/netboot/libdrivers.a
++endif
++
++pkgdata_DATA = grub.efi
++
++grub.efi: grub.so
++	$(OBJCOPY) -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel \
++                   -j .rela -j .reloc --target=$(GRUBEFI_FORMAT) $^ $@
++
++grub.so: $(GRUBSO_OBJS) $(GRUBSO_LIBS) @LIBGNUEFI@
++	$(LD) -o $@ $(GRUBSO_LD_FLAGS) $^
++	echo '-------------- unresolved symbols ---------------------'
++	! nm $@ | grep -iw u
++	echo '-------------------------------------------------------'
++
++crt0-efi.o: $(EFI_ARCH)/crt0-efi.S
++	$(CC) -o $@ -c $(libgrubefi_a_CFLAGS) $^
++
++efimain.o: efimain.c
++	$(CC) -o $@ -c $(libgrubefi_a_CFLAGS) $^
++
++clean-local:
++	-rm -rf grub.so grub.efi
++
++RELOC_FLAGS = $(STAGE2_CFLAGS) -I$(top_srcdir)/stage1 \
++	-I$(top_srcdir)/lib -I. -I$(top_srcdir) -I$(top_srcdir)/stage2 \
++	-fno-builtin $(NETBOOT_FLAGS) $(SERIAL_FLAGS) \
++	$(HERCULES_FLAGS) $(GRAPHICS_FLAGS)
++
++noinst_LIBRARIES = libgrubefi.a
++libgrubefi_a_SOURCES = $(EFI_ARCH)/callwrap.c eficore.c efimm.c efimisc.c \
++	eficon.c efidisk.c graphics.c efigraph.c efiuga.c efidp.c \
++	font_8x16.c efiserial.c $(EFI_ARCH)/loader/linux.c efichainloader.c \
++	xpm.c pxe.c efitftp.c
++libgrubefi_a_CFLAGS = $(RELOC_FLAGS) -nostdinc
++
++endif
+diff --git a/efi/byteswap.h b/efi/byteswap.h
+new file mode 100644
+index 0000000..5a057c4
+--- /dev/null
++++ b/efi/byteswap.h
+@@ -0,0 +1,37 @@
++#ifndef BYTESWAP_H
++#define BYTESWAP_H 1
++
++#if defined(__i386__)
++#define LITTLE_ENDIAN 1
++#elif defined(__x86_64__)
++#define LITTLE_ENDIAN 1
++#else
++#error endian not defined
++#endif
++
++#define bswap_16(x) \
++     ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))
++
++#define bswap_32(x) \
++     ((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >>  8) |		      \
++      (((x) & 0x0000ff00) <<  8) | (((x) & 0x000000ff) << 24))
++
++static inline grub_efi_uint16_t htons(grub_efi_uint16_t hostshort)
++{
++#ifdef LITTLE_ENDIAN
++	return bswap_16(hostshort);
++#else
++	return hostshort;
++#endif
++}
++
++static inline grub_efi_uint32_t htonl(grub_efi_uint32_t hostshort)
++{
++#ifdef LITTLE_ENDIAN
++	return bswap_32(hostshort);
++#else
++	return hostshort;
++#endif
++}
++
++#endif /* BYTESWAP_H */
+diff --git a/efi/dhcp.h b/efi/dhcp.h
+new file mode 100644
+index 0000000..a82a522
+--- /dev/null
++++ b/efi/dhcp.h
+@@ -0,0 +1,133 @@
++#ifndef DHCP_H
++#define DHCP_H 1
++
++#include "pxe.h"
++
++#define EFI_DHCP4_PROTOCOL_GUID \
++{ 0x8a219718, 0x4ef5, 0x4761, {0x91,0xc8,0xc0,0xf0,0x4b,0xda,0x9e,0x56} }
++static grub_efi_guid_t DHCP4Protocol = EFI_DHCP4_PROTOCOL_GUID;
++
++#define EFI_DHCP4_SERVICE_BINDING_PROTOCOL_GUID \
++{ 0x9d9a39d8, 0xbd42, 0x4a73, {0xa4,0xd5,0x8e,0xe9,0x4b,0xe1,0x13,0x80} }
++static grub_efi_guid_t DHCP4SbProtocol = EFI_DHCP4_SERVICE_BINDING_PROTOCOL_GUID;
++
++#define EFI_PXE_DHCP4_PROTOCOL_GUID \
++{ 0x03c4e624, 0xac28, 0x11d3, {0x9a,0x2d,0x00,0x90,0x29,0x3f,0xc1,0x4d} }
++static grub_efi_guid_t PxeDHCP4Protocol = EFI_PXE_DHCP4_PROTOCOL_GUID;
++
++
++typedef EFI_STATUS (*EFI_DHCP4_GET_MODE_DATA)();
++typedef EFI_STATUS (*EFI_DHCP4_CONFIGURE)();
++typedef EFI_STATUS (*EFI_DHCP4_START)();
++typedef EFI_STATUS (*EFI_DHCP4_RENEW_REBIND)();
++typedef EFI_STATUS (*EFI_DHCP4_RELEASE)();
++typedef EFI_STATUS (*EFI_DHCP4_STOP)();
++typedef EFI_STATUS (*EFI_DHCP4_BUILD)();
++typedef EFI_STATUS (*EFI_DHCP4_TRANSMIT_RECIEVE)();
++typedef EFI_STATUS (*EFI_DHCP4_PARSE)();
++
++typedef struct _EFI_DHCP4_PROTOCOL {
++	EFI_DHCP4_GET_MODE_DATA GetModeData;
++	EFI_DHCP4_CONFIGURE Configure;
++	EFI_DHCP4_START Start;
++	EFI_DHCP4_RENEW_REBIND RenewRebind;
++	EFI_DHCP4_RELEASE Release;
++	EFI_DHCP4_STOP Stop;
++	EFI_DHCP4_BUILD Build;
++	EFI_DHCP4_TRANSMIT_RECIEVE TransmitReceive;
++	EFI_DHCP4_PARSE Parse;
++} EFI_DHCP4_PROTOCOL;
++
++typedef enum {
++	Dhcp4Stopped,
++	Dhcp4Init,
++	Dhcp4Selecting,
++	Dhcp4Requesting,
++	Dhcp4Bound,
++	Dhcp4Renewing,
++	Dhcp4Rebinding,
++	Dhcp4InitReboot,
++	Dhcp4Rebooting,
++} EFI_DHCP4_STATE;
++
++typedef enum {
++	Dhcp4SendDiscover = 0x1,
++	Dhcp4RcvdOffer,
++	Dhcp4SelectOffer,
++	Dhcp4SendRequest,
++	Dhcp4RcvdAck,
++	Dhcp4RcvdNak,
++	Dhcp4SendDecline,
++	Dhcp4BoundCompleted,
++	Dhcp4EnterRenewing,
++	Dhcp4EnterRebinding,
++	Dhcp4AddressLost,
++	Dhcp4Fail,
++} EFI_DHCP4_EVENT;
++
++typedef struct {
++	grub_efi_uint8_t OpCode;
++	grub_efi_uint8_t HwType;
++	grub_efi_uint8_t HwAddrLen;
++	grub_efi_uint8_t Hops;
++	grub_efi_uint32_t xid;
++	grub_efi_uint16_t Seconds;
++	grub_efi_uint16_t reserved;
++	EFI_IPv4_ADDRESS ClientAddr;
++	EFI_IPv4_ADDRESS YourAddr;
++	EFI_IPv4_ADDRESS ServerAddr;
++	EFI_IPv4_ADDRESS GatewayAddr;
++	grub_efi_uint8_t ClientHwAddr[16];
++	char ServerName[64];
++	char BootFileName[128];
++} EFI_DHCP4_HEADER;
++
++typedef struct {
++	grub_efi_uint32_t Size;
++	grub_efi_uint32_t Length;
++	struct {
++		EFI_DHCP4_HEADER Header;
++		grub_efi_uint32_t Magik;
++		grub_efi_uint8_t option[];
++	} Dhcp4;
++} EFI_DHCP4_PACKET;
++
++typedef struct {
++	grub_efi_uint8_t OpCode;
++	grub_efi_uint8_t Length;
++	grub_efi_uint8_t Data[1];
++} EFI_DHCP4_PACKET_OPTION;
++
++typedef EFI_STATUS (*EFI_DHCP4_CALLBACK) (
++	EFI_DHCP4_PROTOCOL *This,
++	void *Context,
++	EFI_DHCP4_STATE CurrentState,
++	EFI_DHCP4_EVENT Dhcp4Event,
++	EFI_DHCP4_PACKET *Packet,
++	EFI_DHCP4_PACKET **NewPacket);
++
++typedef struct {
++	grub_efi_uint32_t DiscoverTryCount;
++	grub_efi_uint32_t *DiscoverTimeout;
++	grub_efi_uint32_t RequestTryCount;
++	grub_efi_uint32_t *RequestTimeout;
++	EFI_IPv4_ADDRESS ClientAddress;
++	EFI_DHCP4_CALLBACK Dhcp4Callback;
++	void *CallbackContext;
++	grub_efi_uint32_t OptionCount;
++	EFI_DHCP4_PACKET_OPTION **OptionList;
++} EFI_DHCP4_CONFIG_DATA;
++
++typedef struct {
++	EFI_DHCP4_STATE State;
++	EFI_DHCP4_CONFIG_DATA ConfigData;
++	EFI_IPv4_ADDRESS ClientAddress;
++	EFI_MAC_ADDRESS ClientMacAddress;
++	EFI_IPv4_ADDRESS ServerAddress;
++	EFI_IPv4_ADDRESS RouterAddress;
++	EFI_IPv4_ADDRESS SubnetMask;
++	grub_efi_uint32_t LeaseTime;
++	EFI_DHCP4_PACKET *ReplyPacket;
++} EFI_DHCP4_MODE_DATA;
++
++#endif /* DHCP_H */
+diff --git a/efi/efichainloader.c b/efi/efichainloader.c
+new file mode 100644
+index 0000000..016636c
+--- /dev/null
++++ b/efi/efichainloader.c
+@@ -0,0 +1,265 @@
++/* efichainloader.c - boot another boot loader */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2002,2004,2006  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#include <grub/misc.h>
++#include <grub/types.h>
++#include <grub/efi/api.h>
++#include <grub/efi/efi.h>
++#include <grub/efi/misc.h>
++
++#include <shared.h>
++
++#define grub_file_size()    filemax
++
++static grub_efi_physical_address_t address;
++static grub_efi_uintn_t pages;
++static grub_efi_device_path_t *file_path;
++static grub_efi_handle_t image_handle;
++
++static int
++grub_chainloader_unload (void)
++{
++  grub_efi_boot_services_t *b;
++
++  b = grub_efi_system_table->boot_services;
++  Call_Service_1 (b->unload_image, image_handle);
++  Call_Service_2 (b->free_pages, address, pages);
++  grub_free (file_path);
++
++  return 0;
++}
++
++static int
++grub_chainloader_boot (void)
++{
++  grub_efi_boot_services_t *b;
++  grub_efi_status_t status;
++  grub_efi_uintn_t exit_data_size = 0;
++  grub_efi_char16_t *exit_data = NULL;
++
++  b = grub_efi_system_table->boot_services;
++  status = Call_Service_3 (b->start_image, image_handle,
++			   &exit_data_size, &exit_data);
++  if (status != GRUB_EFI_SUCCESS)
++    {
++      if (exit_data)
++	{
++	  char *buf;
++
++	  buf = grub_malloc (exit_data_size * 4 + 1);
++	  if (buf)
++	    {
++	      *grub_utf16_to_utf8 ((grub_uint8_t *) buf,
++				   exit_data, exit_data_size) = 0;
++
++	      grub_printf (buf);
++	      grub_free (buf);
++	    }
++	  else
++	    grub_printf ("unknown error\n");
++	}
++      errnum = ERR_UNRECOGNIZED;
++    }
++
++  if (exit_data)
++    Call_Service_1 (b->free_pool, exit_data);
++
++  grub_chainloader_unload ();
++
++  return 0;
++}
++
++static void
++copy_file_path (grub_efi_file_path_device_path_t *fp,
++		const char *str, grub_efi_uint16_t len)
++{
++  grub_efi_char16_t *p;
++  grub_efi_uint16_t size;
++
++  fp->header.type = GRUB_EFI_MEDIA_DEVICE_PATH_TYPE;
++  fp->header.subtype = GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE;
++  size = len * sizeof (grub_efi_char16_t) + sizeof (*fp);
++  fp->header.length[0] = (grub_efi_uint8_t) (size & 0xff);
++  fp->header.length[1] = (grub_efi_uint8_t) (size >> 8);
++  for (p = fp->path_name; len > 0; len--, p++, str++)
++    {
++      *p = (grub_efi_char16_t) (*str == '/' ? '\\' : *str);
++    }
++}
++
++static grub_efi_device_path_t *
++make_file_path (const char *filename)
++{
++  char *dir_start;
++  char *dir_end;
++  grub_size_t size;
++  grub_efi_device_path_t *d;
++
++  dir_start = grub_strchr (filename, ')');
++  if (! dir_start)
++    dir_start = (char *) filename;
++  else
++    dir_start++;
++
++  dir_end = grub_strrchr (dir_start, '/');
++  if (! dir_end)
++    {
++      errnum = ERR_BAD_FILENAME;
++      grub_printf ("invalid EFI file path");
++      return 0;
++    }
++
++  size = 0;
++  file_path = grub_malloc ((grub_strlen (dir_start) + 1)
++			   * sizeof (grub_efi_char16_t)
++			   + sizeof (grub_efi_file_path_device_path_t) * 2);
++  if (! file_path)
++    return 0;
++
++  /* Fill the file path for the directory.  */
++  d = (grub_efi_device_path_t *) file_path;
++
++  if (dir_end - dir_start)
++    {
++      copy_file_path ((grub_efi_file_path_device_path_t *) d,
++		      dir_start, dir_end - dir_start);
++      d = GRUB_EFI_NEXT_DEVICE_PATH (d);
++      /* Fill the file path for the file.  */
++      copy_file_path ((grub_efi_file_path_device_path_t *) d,
++		      dir_end + 1, grub_strlen (dir_end + 1));
++    }
++  else
++    {
++      /* Fill the file path for the file.  */
++      copy_file_path ((grub_efi_file_path_device_path_t *) d,
++		      dir_end, grub_strlen (dir_end));
++    }
++
++  /* Fill the end of device path nodes.  */
++  d = GRUB_EFI_NEXT_DEVICE_PATH (d);
++  d->type = GRUB_EFI_END_DEVICE_PATH_TYPE;
++  d->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE;
++  d->length[0] = sizeof (*d);
++  d->length[1] = 0;
++
++  return file_path;
++}
++
++int
++grub_chainloader (char *filename)
++{
++  grub_ssize_t size;
++  grub_efi_status_t status;
++  grub_efi_boot_services_t *b;
++  grub_efi_handle_t dev_handle = 0;
++  grub_efi_loaded_image_t *loaded_image;
++
++  /* Initialize some global variables.  */
++  address = 0xffffffff;
++  image_handle = 0;
++
++  b = grub_efi_system_table->boot_services;
++
++  if (! grub_open (filename))
++    goto fail1;
++
++  dev_handle = grub_efidisk_get_current_bdev_handle ();
++  if (! dev_handle)
++    {
++      errnum = ERR_UNRECOGNIZED;
++      grub_printf ("not a valid root device\n");
++      goto fail;
++    }
++
++  file_path = make_file_path (filename);
++  if (! file_path)
++    goto fail;
++
++  grub_printf ("file path: ");
++  grub_efi_print_device_path (file_path);
++
++  size = grub_file_size ();
++  pages = (((grub_efi_uintn_t) size + ((1 << 12) - 1)) >> 12);
++
++  status = Call_Service_4 (b->allocate_pages, GRUB_EFI_ALLOCATE_ANY_PAGES,
++			   GRUB_EFI_LOADER_CODE, pages, &address);
++  if (status != GRUB_EFI_SUCCESS)
++    {
++      errnum = ERR_UNRECOGNIZED;
++      grub_printf ("cannot allocate %u pages", pages);
++      goto fail;
++    }
++
++  if (grub_read ((void *) ((grub_addr_t) address), size) != size)
++    {
++      if (errnum == ERR_NONE)
++	{
++	  errnum = ERR_UNRECOGNIZED;
++	  grub_printf ("too small");
++	}
++      goto fail;
++    }
++
++  status = Call_Service_6 (b->load_image, 0, grub_efi_image_handle, file_path,
++			   (void *) ((grub_addr_t) address), size,
++			   &image_handle);
++  if (status != GRUB_EFI_SUCCESS)
++    {
++      errnum = ERR_UNRECOGNIZED;
++      if (status == GRUB_EFI_OUT_OF_RESOURCES)
++	grub_printf ("out of resources");
++      else
++	grub_printf ("cannot load image");
++
++      goto fail;
++    }
++
++  /* LoadImage does not set a device handler when the image is
++     loaded from memory, so it is necessary to set it explicitly here.
++     This is a mess.  */
++  loaded_image = grub_efi_get_loaded_image (image_handle);
++  if (! loaded_image)
++    {
++      errnum = ERR_UNRECOGNIZED;
++      grub_printf ("no loaded image available");
++      goto fail;
++    }
++  loaded_image->device_handle = dev_handle;
++
++  grub_close ();
++  return KERNEL_TYPE_CHAINLOADER;
++
++ fail:
++  grub_close ();
++ fail1:
++  if (address)
++    b->free_pages (address, pages);
++
++  return KERNEL_TYPE_NONE;
++}
++
++/* calls for direct boot-loader chaining */
++void
++chain_stage1 (unsigned long segment, unsigned long offset,
++	      unsigned long part_table_addr)
++{
++  grub_chainloader_boot ();
++  for (;;);
++}
+diff --git a/efi/eficon.c b/efi/eficon.c
+new file mode 100644
+index 0000000..037f050
+--- /dev/null
++++ b/efi/eficon.c
+@@ -0,0 +1,306 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2006  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#include <grub/misc.h>
++#include <grub/types.h>
++#include <grub/efi/efi.h>
++#include <grub/efi/api.h>
++#include <grub/efi/misc.h>
++
++#include <shared.h>
++#include <term.h>
++
++static int
++grub_console_standard_color = GRUB_EFI_TEXT_ATTR (GRUB_EFI_YELLOW,
++						  GRUB_EFI_BACKGROUND_BLACK);
++static int
++grub_console_normal_color = GRUB_EFI_TEXT_ATTR (GRUB_EFI_LIGHTGRAY,
++						GRUB_EFI_BACKGROUND_BLACK);
++static int
++grub_console_highlight_color = GRUB_EFI_TEXT_ATTR (GRUB_EFI_BLACK,
++						   GRUB_EFI_BACKGROUND_LIGHTGRAY);
++
++static int read_key = -1;
++
++void
++console_putchar (int c)
++{
++  grub_efi_char16_t str[2];
++  grub_efi_simple_text_output_interface_t *o;
++
++  o = grub_efi_system_table->con_out;
++
++  switch (c)
++    {
++    case DISP_LEFT:
++      c = '<';
++      break;
++
++    case DISP_UP:
++      c = '^';
++      break;
++
++    case DISP_RIGHT:
++      c = '>';
++      break;
++
++    case DISP_DOWN:
++      c = 'v';
++      break;
++
++    case DISP_HORIZ:
++      c = '-';
++      break;
++
++    case DISP_VERT:
++      c = '|';
++      break;
++
++    case DISP_UL:
++    case DISP_UR:
++    case DISP_LL:
++    case DISP_LR:
++      c = '+';
++      break;
++    }
++
++  /* For now, do not try to use a surrogate pair.  */
++  if (c > 0xffff)
++    c = '?';
++
++  str[0] = (grub_efi_char16_t)  (c & 0xffff);
++  str[1] = 0;
++
++  /* Should this test be cached?  */
++  if (c > 0x7f && Call_Service_2 (o->test_string, o, str) != GRUB_EFI_SUCCESS)
++    return;
++
++  Call_Service_2 (o->output_string, o, str);
++}
++
++int
++console_checkkey (void)
++{
++  grub_efi_simple_input_interface_t *i;
++  grub_efi_input_key_t key;
++  grub_efi_status_t status;
++
++  if (read_key >= 0)
++    return 1;
++
++  i = grub_efi_system_table->con_in;
++  status = Call_Service_2 (i->read_key_stroke ,i, &key);
++#if 0
++  switch (status)
++    {
++    case GRUB_EFI_SUCCESS:
++      {
++	int xy;
++
++	xy = console_getxy ();
++	console_gotoxy (0, 0);
++	grub_printf ("scan_code=%x,unicode_char=%x  ",
++		     (unsigned) key.scan_code,
++		     (unsigned) key.unicode_char);
++	console_gotoxy (xy >> 8, xy & 0xff);
++      }
++      break;
++
++    case GRUB_EFI_NOT_READY:
++      grub_printf ("not ready   ");
++      break;
++
++    default:
++      grub_printf ("device error   ");
++      break;
++    }
++#endif
++
++  if (status == GRUB_EFI_SUCCESS)
++    {
++      switch (key.scan_code)
++	{
++	case 0x00:
++	  read_key = key.unicode_char;
++	  break;
++	case 0x01:
++	  read_key = 16;
++	  break;
++	case 0x02:
++	  read_key = 14;
++	  break;
++	case 0x03:
++	  read_key = 6;
++	  break;
++	case 0x04:
++	  read_key = 2;
++	  break;
++	case 0x05:
++	  read_key = 1;
++	  break;
++	case 0x06:
++	  read_key = 5;
++	  break;
++	case 0x07:
++	  break;
++	case 0x08:
++	  read_key = 4;
++	  break;
++	case 0x09:
++	  break;
++	case 0x0a:
++	  break;
++	case 0x17:
++	  read_key = '\e';
++	  break;
++	default:
++	  break;
++	}
++    }
++
++  return read_key;
++}
++
++int
++console_getkey (void)
++{
++  grub_efi_simple_input_interface_t *i;
++  grub_efi_boot_services_t *b;
++  grub_efi_uintn_t index;
++  grub_efi_status_t status;
++  int key;
++
++  if (read_key >= 0)
++    {
++      key = read_key;
++      read_key = -1;
++      return key;
++    }
++
++  i = grub_efi_system_table->con_in;
++  b = grub_efi_system_table->boot_services;
++
++  do
++    {
++      status = Call_Service_3 (b->wait_for_event , 1, &(i->wait_for_key), &index);
++      if (status != GRUB_EFI_SUCCESS)
++      	return -1;
++
++      console_checkkey ();
++    }
++  while (read_key < 0);
++
++  key = read_key;
++  read_key = -1;
++  return key;
++}
++
++int
++console_keystatus (void)
++{
++  /* Doesn't look like EFI can support this... */
++  return 0;
++}
++
++int
++console_getxy (void)
++{
++  grub_efi_simple_text_output_interface_t *o;
++
++  o = grub_efi_system_table->con_out;
++  return ((o->mode->cursor_column << 8) | o->mode->cursor_row);
++}
++
++void
++console_gotoxy (int x, int y)
++{
++  grub_efi_simple_text_output_interface_t *o;
++
++  o = grub_efi_system_table->con_out;
++  Call_Service_3 (o->set_cursor_position , o, x, y);
++}
++
++void
++console_cls (void)
++{
++  grub_efi_simple_text_output_interface_t *o;
++  grub_efi_int32_t orig_attr;
++
++  o = grub_efi_system_table->con_out;
++  orig_attr = o->mode->attribute;
++  Call_Service_2 (o->set_attributes, o, GRUB_EFI_BACKGROUND_BLACK);
++  Call_Service_1 (o->clear_screen , o);
++  Call_Service_2 (o->set_attributes , o, orig_attr);
++}
++
++void
++console_setcolorstate (color_state state)
++{
++  grub_efi_simple_text_output_interface_t *o;
++
++  o = grub_efi_system_table->con_out;
++
++  switch (state) {
++    case COLOR_STATE_STANDARD:
++      Call_Service_2 (o->set_attributes, o, grub_console_standard_color);
++      break;
++    case COLOR_STATE_NORMAL:
++      Call_Service_2 (o->set_attributes, o, grub_console_normal_color);
++      break;
++    case COLOR_STATE_HIGHLIGHT:
++      Call_Service_2 (o->set_attributes, o, grub_console_highlight_color);
++      break;
++    default:
++      break;
++  }
++}
++
++void
++console_setcolor (int normal_color, int highlight_color)
++{
++  grub_console_normal_color = normal_color;
++  grub_console_highlight_color = highlight_color;
++}
++
++int
++console_setcursor (int on)
++{
++  grub_efi_simple_text_output_interface_t *o;
++
++  o = grub_efi_system_table->con_out;
++  Call_Service_2 (o->enable_cursor, o, on);
++  return on;
++}
++
++void
++grub_console_init (void)
++{
++  /* FIXME: it is necessary to consider the case where no console control
++     is present but the default is already in text mode.  */
++  if (! grub_efi_set_text_mode (1))
++    {
++      grub_printf ("cannot set text mode");
++      return;
++    }
++}
++
++void
++grub_console_fini (void)
++{
++}
+diff --git a/efi/eficore.c b/efi/eficore.c
+new file mode 100644
+index 0000000..259c5dc
+--- /dev/null
++++ b/efi/eficore.c
+@@ -0,0 +1,231 @@
++/* eficore.c - generic EFI support */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2006  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#include <config.h>
++#include <grub/misc.h>
++#include <grub/efi/api.h>
++#include <grub/efi/efi.h>
++#include <grub/efi/eficall.h>
++#include <grub/efi/console_control.h>
++#include <grub/efi/time.h>
++
++#include <shared.h>
++
++/* The handle of GRUB itself. Filled in by the startup code.  */
++grub_efi_handle_t grub_efi_image_handle;
++
++/* The pointer to a system table. Filled in by the startup code.  */
++grub_efi_system_table_t *grub_efi_system_table;
++
++static grub_efi_guid_t console_control_guid = GRUB_EFI_CONSOLE_CONTROL_GUID;
++static grub_efi_guid_t loaded_image_guid = GRUB_EFI_LOADED_IMAGE_GUID;
++static grub_efi_guid_t device_path_guid = GRUB_EFI_DEVICE_PATH_GUID;
++
++/* temporary, until we're using gnu-efi's include files --pjones */
++extern int setjmp(grub_jmp_buf env);
++int grub_setjmp(grub_jmp_buf env)
++{
++	return setjmp(env);
++}
++
++extern void longjmp(grub_jmp_buf env, int val);
++void grub_longjmp(grub_jmp_buf env, int val)
++{
++	longjmp(env, val);
++}
++
++grub_efi_status_t
++grub_efi_locate_handle_buffer (grub_efi_locate_search_type_t search_type,
++				grub_efi_guid_t *protocol,
++				void *search_key,
++				grub_efi_uintn_t *no_handles,
++				grub_efi_handle_t **buffer)
++{
++	return Call_Service_5(
++		grub_efi_system_table->boot_services->locate_handle_buffer,
++		search_type, protocol, search_key, no_handles, buffer);
++}
++
++void *
++grub_efi_locate_protocol (grub_efi_guid_t *protocol, void *registration)
++{
++  void *interface;
++  grub_efi_status_t status;
++
++  status = Call_Service_3 (grub_efi_system_table->boot_services->locate_protocol,
++				protocol,
++				registration,
++				&interface);
++  if (status != GRUB_EFI_SUCCESS)
++    return 0;
++
++  return interface;
++}
++
++/* Return the array of handles which meet the requirement. If successful,
++   the number of handles is stored in NUM_HANDLES. The array is allocated
++   from the heap.  */
++grub_efi_handle_t *
++grub_efi_locate_handle (grub_efi_locate_search_type_t search_type,
++			grub_efi_guid_t *protocol,
++			void *search_key,
++			grub_efi_uintn_t *num_handles)
++{
++  grub_efi_boot_services_t *b;
++  grub_efi_status_t status;
++  grub_efi_handle_t *buffer;
++  grub_efi_uintn_t buffer_size = 8 * sizeof (grub_efi_handle_t);
++
++  buffer = grub_malloc (buffer_size);
++  if (! buffer)
++    return 0;
++
++  b = grub_efi_system_table->boot_services;
++  status = Call_Service_5 (b->locate_handle, search_type, protocol,
++				 search_key, &buffer_size, buffer);
++  if (status == GRUB_EFI_BUFFER_TOO_SMALL)
++    {
++      grub_free (buffer);
++      buffer = grub_malloc (buffer_size);
++      if (! buffer)
++	return 0;
++
++      status = Call_Service_5 (b->locate_handle, search_type, protocol,
++				 search_key, &buffer_size, buffer);
++    }
++
++  if (status != GRUB_EFI_SUCCESS)
++    {
++      grub_free (buffer);
++      return 0;
++    }
++
++  *num_handles = buffer_size / sizeof (grub_efi_handle_t);
++  return buffer;
++}
++
++void *
++grub_efi_open_protocol (grub_efi_handle_t handle,
++			grub_efi_guid_t *protocol,
++			grub_efi_uint32_t attributes)
++{
++  grub_efi_boot_services_t *b;
++  grub_efi_status_t status;
++  void *interface;
++
++  b = grub_efi_system_table->boot_services;
++  status = Call_Service_6 ( b->open_protocol,
++			     handle,
++			     protocol,
++			     &interface,
++			     grub_efi_image_handle,
++			     0,
++			     attributes);
++  if (status != GRUB_EFI_SUCCESS)
++    return 0;
++
++  return interface;
++}
++
++int
++grub_efi_set_text_mode (int on)
++{
++  grub_efi_console_control_protocol_t *c;
++  grub_efi_screen_mode_t mode, new_mode;
++
++  c = grub_efi_locate_protocol (&console_control_guid, 0);
++  if (! c)
++    /* No console control protocol instance available, assume it is
++       already in text mode. */
++    return 1;
++
++  if (Call_Service_4 (c->get_mode , c, &mode, 0, 0) != GRUB_EFI_SUCCESS)
++    return 0;
++
++  new_mode = on ? GRUB_EFI_SCREEN_TEXT : GRUB_EFI_SCREEN_GRAPHICS;
++  if (mode != new_mode)
++    if (Call_Service_2 (c->set_mode , c, new_mode) != GRUB_EFI_SUCCESS)
++      return 0;
++
++  return 1;
++}
++
++void
++grub_efi_stall (grub_efi_uintn_t microseconds)
++{
++  Call_Service_1 (grub_efi_system_table->boot_services->stall , microseconds);
++}
++
++grub_efi_loaded_image_t *
++grub_efi_get_loaded_image (grub_efi_handle_t image_handle)
++{
++  return grub_efi_open_protocol (image_handle,
++			 &loaded_image_guid,
++			 GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
++}
++
++void
++grub_exit (void)
++{
++  grub_efi_fini ();
++  Call_Service_4(grub_efi_system_table->boot_services->exit,
++		 grub_efi_image_handle,
++		 GRUB_EFI_SUCCESS,
++		 0,
++		 0 );
++  for (;;);
++}
++
++int
++grub_efi_exit_boot_services (grub_efi_uintn_t map_key)
++{
++  grub_efi_boot_services_t *b;
++  grub_efi_status_t status;
++
++  b = grub_efi_system_table->boot_services;
++  status = Call_Service_2 (b->exit_boot_services ,
++				grub_efi_image_handle,
++				map_key);
++  return status == GRUB_EFI_SUCCESS;
++}
++
++grub_uint32_t
++grub_get_rtc (void)
++{
++  grub_efi_time_t time;
++  grub_efi_runtime_services_t *r;
++
++  r = grub_efi_system_table->runtime_services;
++  if (Call_Service_2(r->get_time , &time, 0) != GRUB_EFI_SUCCESS)
++    /* What is possible in this case?  */
++    return 0;
++
++  return (((time.minute * 60 + time.second) * 1000
++	   + time.nanosecond / 1000000)
++	  * GRUB_TICKS_PER_SECOND / 1000);
++}
++
++grub_efi_device_path_t *
++grub_efi_get_device_path (grub_efi_handle_t handle)
++{
++  return grub_efi_open_protocol (handle, &device_path_guid,
++				 GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
++}
++
+diff --git a/efi/efidisk.c b/efi/efidisk.c
+new file mode 100644
+index 0000000..2192021
+--- /dev/null
++++ b/efi/efidisk.c
+@@ -0,0 +1,785 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2006  Free Software Foundation, Inc.
++ *
++ *  GRUB is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with GRUB; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#include <grub/types.h>
++#include <grub/misc.h>
++#include <grub/efi/api.h>
++#include <grub/efi/efi.h>
++#include <grub/efi/misc.h>
++
++#include <shared.h>
++
++struct grub_efidisk_data
++{
++  grub_efi_handle_t handle;
++  grub_efi_device_path_t *device_path;
++  grub_efi_device_path_t *last_device_path;
++  grub_efi_block_io_t *block_io;
++  grub_efi_disk_io_t *disk_io;
++  struct grub_efidisk_data *next;
++};
++
++/* GUIDs.  */
++static grub_efi_guid_t disk_io_guid = GRUB_EFI_DISK_IO_GUID;
++static grub_efi_guid_t block_io_guid = GRUB_EFI_BLOCK_IO_GUID;
++static grub_efi_guid_t device_path_from_text_guid = GRUB_EFI_DEVICE_PATH_FROM_TEXT_GUID;
++
++static struct grub_efidisk_data *fd_devices;
++static struct grub_efidisk_data *hd_devices;
++static struct grub_efidisk_data *cd_devices;
++
++static int get_device_sector_bits(struct grub_efidisk_data *device);
++static int get_device_sector_size(struct grub_efidisk_data *device);
++static struct grub_efidisk_data *get_device_from_drive (int drive);
++
++static struct grub_efidisk_data *
++make_devices (void)
++{
++  grub_efi_uintn_t num_handles;
++  grub_efi_handle_t *handles;
++  grub_efi_handle_t *handle;
++  struct grub_efidisk_data *devices = 0;
++
++  /* Find handles which support the disk io interface.  */
++  handles = grub_efi_locate_handle (GRUB_EFI_BY_PROTOCOL, &disk_io_guid,
++				    0, &num_handles);
++  if (! handles)
++    return 0;
++
++  /* Make a linked list of devices.  */
++  for (handle = handles; num_handles--; handle++)
++    {
++      grub_efi_device_path_t *dp;
++      grub_efi_device_path_t *ldp;
++      struct grub_efidisk_data *d;
++      grub_efi_block_io_t *bio;
++      grub_efi_disk_io_t *dio;
++
++      dp = grub_efi_get_device_path (*handle);
++      if (! dp)
++	continue;
++
++      ldp = find_last_device_path (dp);
++      if (! ldp)
++	/* This is empty. Why?  */
++	continue;
++
++      bio = grub_efi_open_protocol (*handle, &block_io_guid,
++				    GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
++      dio = grub_efi_open_protocol (*handle, &disk_io_guid,
++				    GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
++      if (! bio || ! dio)
++	/* This should not happen... Why?  */
++	continue;
++
++      d = grub_malloc (sizeof (*d));
++      if (! d)
++	{
++	  /* Uggh.  */
++	  grub_free (handles);
++	  return 0;
++	}
++
++      d->handle = *handle;
++      d->device_path = dp;
++      d->last_device_path = ldp;
++      d->block_io = bio;
++      d->disk_io = dio;
++      d->next = devices;
++      devices = d;
++    }
++
++  grub_free (handles);
++
++  return devices;
++}
++
++static int
++iterate_child_devices (struct grub_efidisk_data *devices,
++		       struct grub_efidisk_data *d,
++		       int (*hook) (struct grub_efidisk_data *child))
++{
++  struct grub_efidisk_data *p;
++
++  for (p = devices; p; p = p->next)
++    {
++      grub_efi_device_path_t *dp, *ldp;
++
++      dp = duplicate_device_path (p->device_path);
++      if (! dp)
++	return 0;
++
++      ldp = find_last_device_path (dp);
++      ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE;
++      ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE;
++      ldp->length[0] = sizeof (*ldp);
++      ldp->length[1] = 0;
++
++      if (compare_device_paths (dp, d->device_path) == 0)
++	if (hook (p))
++	  {
++	    grub_free (dp);
++	    return 1;
++	  }
++
++      grub_free (dp);
++    }
++
++  return 0;
++}
++
++/* Add a device into a list of devices in an ascending order.  */
++static void
++add_device (struct grub_efidisk_data **devices, struct grub_efidisk_data *d)
++{
++  struct grub_efidisk_data **p;
++  struct grub_efidisk_data *n;
++
++  for (p = devices; *p; p = &((*p)->next))
++    {
++      int ret;
++
++      ret = compare_device_paths (find_last_device_path ((*p)->device_path),
++				  find_last_device_path (d->device_path));
++      if (ret == 0)
++	ret = compare_device_paths ((*p)->device_path,
++				    d->device_path);
++      if (ret == 0)
++	return;
++      else if (ret > 0)
++	break;
++    }
++
++  n = grub_malloc (sizeof (*n));
++  if (! n)
++    return;
++
++  grub_memcpy (n, d, sizeof (*n));
++  n->next = (*p);
++  (*p) = n;
++}
++
++/* Name the devices.  */
++static void
++name_devices (struct grub_efidisk_data *devices)
++{
++  struct grub_efidisk_data *d;
++
++  /* Let's see what can be added more.  */
++  for (d = devices; d; d = d->next)
++    {
++      grub_efi_device_path_t *dp;
++      grub_efi_block_io_media_t *m;
++
++      dp = d->last_device_path;
++      if (! dp)
++	continue;
++
++      m = d->block_io->media;
++      if (GRUB_EFI_DEVICE_PATH_TYPE(dp) == GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE)
++	{
++	  /* XXX FIXME this won't work if we see write-protected disks with
++	   * 4k sectors */
++	  if (m->read_only && m->block_size > 0x200)
++	    {
++	      add_device (&cd_devices, d);
++	    } else
++	    {
++	      add_device (&hd_devices, d);
++	    }
++	}
++      if (GRUB_EFI_DEVICE_PATH_TYPE(dp) == GRUB_EFI_ACPI_DEVICE_PATH_TYPE)
++	{
++	  add_device (&fd_devices, d);
++	}
++    }
++}
++
++static void
++free_devices (struct grub_efidisk_data *devices)
++{
++  struct grub_efidisk_data *p, *q;
++
++  for (p = devices; p; p = q)
++    {
++      q = p->next;
++      grub_free (p);
++    }
++}
++
++/* Enumerate all disks to name devices.  */
++static void
++enumerate_disks (void)
++{
++  struct grub_efidisk_data *devices;
++
++  devices = make_devices ();
++  if (! devices)
++    return;
++
++  name_devices (devices);
++  free_devices (devices);
++}
++
++static struct grub_efidisk_data *
++get_device (struct grub_efidisk_data *devices, int num)
++{
++  struct grub_efidisk_data *d;
++
++  for (d = devices; d && num; d = d->next, num--)
++    ;
++
++  if (num == 0)
++    return d;
++
++  return 0;
++}
++
++static int
++grub_efidisk_read (struct grub_efidisk_data *d, grub_disk_addr_t sector,
++		   grub_size_t size, char *buf)
++{
++  /* For now, use the disk io interface rather than the block io's.  */
++  grub_efi_disk_io_t *dio;
++  grub_efi_block_io_t *bio;
++  grub_efi_status_t status;
++  grub_efi_uint64_t sector_size = get_device_sector_size(d);
++
++  dio = d->disk_io;
++  bio = d->block_io;
++
++  status = Call_Service_5 (dio->read,
++			   dio, bio->media->media_id,
++			   sector * sector_size,
++			   size * sector_size,
++			   buf);
++  if (status != GRUB_EFI_SUCCESS)
++    return -1;
++
++  return 0;
++}
++
++static int
++grub_efidisk_write (struct grub_efidisk_data *d, grub_disk_addr_t sector,
++		    grub_size_t size, const char *buf)
++{
++  /* For now, use the disk io interface rather than the block io's.  */
++  grub_efi_disk_io_t *dio;
++  grub_efi_block_io_t *bio;
++  grub_efi_status_t status;
++  grub_efi_uint64_t sector_size = get_device_sector_size(d);
++
++  dio = d->disk_io;
++  bio = d->block_io;
++
++  grub_dprintf ("efidisk",
++		"writing 0x%x sectors at the sector 0x%x to ??\n",
++		(unsigned) size, (unsigned int) sector);
++
++  status = Call_Service_5 (dio->write ,
++			   dio, bio->media->media_id,
++			   sector * sector_size,
++			   size * sector_size,
++			   (void *) buf);
++  if (status != GRUB_EFI_SUCCESS)
++    return -1;
++
++  return 0;
++}
++
++void
++grub_efidisk_init (void)
++{
++  enumerate_disks ();
++}
++
++void
++grub_efidisk_fini (void)
++{
++  free_devices (fd_devices);
++  free_devices (hd_devices);
++  free_devices (cd_devices);
++}
++
++static int
++get_device_sector_size(struct grub_efidisk_data *device)
++{
++	return device->block_io->media->block_size;
++}
++
++int
++get_sector_size(int drive)
++{
++	struct grub_efidisk_data *device = get_device_from_drive(drive);
++	return get_device_sector_size(device);
++}
++
++/*
++ * ffz = Find First Zero in word. Undefined if no zero exists,
++ * so code should check against ~0UL first..
++ */
++static __inline__ unsigned int
++ffz (unsigned int word)
++{
++  __asm__ ("bsfl %1,%0"
++:	   "=r" (word)
++:	   "r" (~word));
++  return word;
++}
++#define log2(n) ffz(~(n))
++
++static int
++get_device_sector_bits(struct grub_efidisk_data *device)
++{
++	int sector_size = get_device_sector_size(device);
++	return log2(sector_size);
++}
++
++int
++get_sector_bits(int drive)
++{
++	int sector_size = get_sector_size(drive);
++	return log2(sector_size);
++}
++
++static struct grub_efidisk_data *
++get_device_from_drive (int drive)
++{
++#ifdef SUPPORT_NETBOOT
++  /* Not supported */
++  if (drive == NETWORK_DRIVE)
++    return NULL;
++#endif
++  if (drive == GRUB_INVALID_DRIVE)
++    return NULL;
++  if (drive == cdrom_drive)
++    return get_device (cd_devices, 0);
++  /* Hard disk */
++  if (drive & 0x80)
++    return get_device (hd_devices, drive - 0x80);
++  /* Floppy disk */
++  else
++    return get_device (fd_devices, drive);
++}
++
++/* Low-level disk I/O.  Our stubbed version just returns a file
++   descriptor, not the actual geometry. */
++int
++get_diskinfo (int drive, struct geometry *geometry)
++{
++  struct grub_efidisk_data *d;
++
++  d = get_device_from_drive (drive);
++  if (!d)
++    return -1;
++  geometry->total_sectors = d->block_io->media->last_block+1;
++  geometry->sector_size = d->block_io->media->block_size;
++  geometry->flags = BIOSDISK_FLAG_LBA_EXTENSION;
++  geometry->sectors = 63;
++  if (geometry->total_sectors / 63 < 255)
++    geometry->heads = 1;
++  else
++    geometry->heads = 255;
++  geometry->cylinders = geometry->total_sectors / 63 / geometry->heads;
++  return 0;
++}
++
++int
++biosdisk (int subfunc, int drive, struct geometry *geometry,
++	  int sector, int nsec, int segment)
++{
++  char *buf;
++  struct grub_efidisk_data *d;
++  int ret;
++
++  d = get_device_from_drive (drive);
++  if (!d)
++    return -1;
++  buf = (char *) ((unsigned long) segment << 4);
++  switch (subfunc)
++    {
++    case BIOSDISK_READ:
++      ret = grub_efidisk_read (d, sector, nsec, buf);
++      break;
++    case BIOSDISK_WRITE:
++      ret = grub_efidisk_write (d, sector, nsec, buf);
++      break;
++    default:
++      return -1;
++    }
++
++  return 0;
++}
++
++/* Some utility functions to map GRUB devices with EFI devices.  */
++grub_efi_handle_t
++grub_efidisk_get_current_bdev_handle (void)
++{
++  struct grub_efidisk_data *d;
++
++  d = get_device_from_drive (current_drive);
++  if (d == NULL)
++    return NULL;
++
++  if (current_drive == GRUB_INVALID_DRIVE)
++    return NULL;
++
++  if (current_drive == cdrom_drive)
++    return d->handle;
++
++  if (! (current_drive & 0x80))
++    return d->handle;
++  /* If this is the whole disk, just return its own data.  */
++  else if (current_partition == 0xFFFFFF)
++    return d->handle;
++  /* Otherwise, we must query the corresponding device to the firmware.  */
++  else
++    {
++      struct grub_efidisk_data *devices;
++      grub_efi_handle_t handle = 0;
++      auto int find_partition (struct grub_efidisk_data *c);
++
++      int find_partition (struct grub_efidisk_data *c)
++	{
++	  grub_efi_hard_drive_device_path_t hd;
++
++	  grub_memcpy (&hd, c->last_device_path, sizeof (hd));
++
++	  if ((GRUB_EFI_DEVICE_PATH_TYPE (c->last_device_path)
++	       == GRUB_EFI_MEDIA_DEVICE_PATH_TYPE)
++	      && (GRUB_EFI_DEVICE_PATH_SUBTYPE (c->last_device_path)
++		  == GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE)
++	      && (part_start == hd.partition_start)
++	      && (part_length == hd.partition_size))
++	    {
++	      handle = c->handle;
++	      return 1;
++	    }
++
++	  return 0;
++	}
++
++      devices = make_devices ();
++      iterate_child_devices (devices, d, find_partition);
++      free_devices (devices);
++
++      if (handle != 0)
++	return handle;
++    }
++
++  return 0;
++}
++
++int
++grub_get_drive_partition_from_bdev_handle (grub_efi_handle_t handle,
++					   unsigned long *drive,
++					   unsigned long *partition)
++{
++  grub_efi_device_path_t *dp, *dp1;
++  struct grub_efidisk_data *d, *devices;
++  int drv;
++  unsigned long part;
++  grub_efi_hard_drive_device_path_t hd;
++  int found;
++  int part_type, part_entry;
++  unsigned long partition_start, partition_len, part_offset, part_extoffset;
++  unsigned long gpt_offset;
++  int gpt_count, gpt_size;
++  auto int find_bdev (struct grub_efidisk_data *c);
++
++  int find_bdev (struct grub_efidisk_data *c)
++    {
++      if (! compare_device_paths (c->device_path, dp))
++	{
++	  grub_memcpy (&hd, c->last_device_path, sizeof (hd));
++	  found = 1;
++	  return 1;
++	}
++      return 0;
++    }
++
++  dp = grub_efi_get_device_path (handle);
++  if (! dp)
++    return 0;
++
++  dp1 = dp;
++  while (1)
++    {
++      grub_efi_uint8_t type = GRUB_EFI_DEVICE_PATH_TYPE (dp1);
++      grub_efi_uint8_t subtype = GRUB_EFI_DEVICE_PATH_SUBTYPE(dp1);
++
++      if (type == GRUB_EFI_MEDIA_DEVICE_PATH_TYPE &&
++	      subtype == GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE)
++	{
++	  dp1->type = GRUB_EFI_END_DEVICE_PATH_TYPE;
++	  dp1->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE;
++	  dp1->length[0] = 4;
++	  dp1->length[1] = 0;
++	}
++
++      if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (dp1))
++	break;
++
++      dp1 = GRUB_EFI_NEXT_DEVICE_PATH(dp1);
++    }
++
++  drv = 0;
++  for (d = fd_devices; d; d = d->next, drv++)
++    {
++      if (! compare_device_paths (d->device_path, dp))
++	{
++	  *partition = 0xFFFFFF;
++	  *drive = drv;
++	  return 1;
++	}
++    }
++
++  drv = cdrom_drive;
++  if (cd_devices  && ! compare_device_paths (cd_devices->device_path, dp))
++    {
++      *partition = 0xFFFFFF;
++      *drive = drv;
++      return 1;
++    }
++
++  drv = 0x80;
++  for (d = hd_devices; d; d = d->next, drv++)
++    {
++      if (! compare_device_paths (d->device_path, dp))
++	{
++	  *partition = 0xFFFFFF;
++	  *drive = drv;
++	  return 1;
++	}
++    }
++
++  devices = make_devices ();
++
++  drv = 0x80;
++  found = 0;
++  for (d = hd_devices; d; d = d->next, drv++)
++    {
++      iterate_child_devices (devices, d, find_bdev);
++      if (found)
++	break;
++    }
++
++  free_devices (devices);
++
++  if (! found)
++    return 0;
++
++  char buf[get_sector_size(drv)];
++  part = 0xFFFFFF;
++  while (next_partition (drv, 0, &part, &part_type,
++			 &partition_start, &partition_len,
++			 &part_offset, &part_entry,
++			 &part_extoffset, &gpt_offset, &gpt_count,
++			 &gpt_size, buf))
++    {
++      if (part_type
++	  && partition_start == hd.partition_start
++	  && partition_len == hd.partition_size)
++	{
++	  *drive = drv;
++	  *partition = part;
++	  return 1;
++	}
++    }
++
++  return 0;
++}
++
++int
++check_device (const char *device)
++{
++  grub_efi_device_path_t *dp;
++
++  dp = device_path_from_utf8(device);
++  if (dp == NULL)
++    return 0;
++
++  grub_free(dp);
++  return 1;
++}
++
++static void
++swap_devices (struct grub_efidisk_data *d0,
++	      struct grub_efidisk_data *d1)
++{
++  struct grub_efidisk_data tmp;
++
++  if (!d0 || !d1)
++    return;
++
++  memcpy(&tmp, d1, sizeof(*d1));
++
++  memcpy(&d0->handle, &d1->handle, sizeof(d1->handle));
++  d0->device_path = d1->device_path;
++  d0->last_device_path = d1->last_device_path;
++  d0->block_io = d1->block_io;
++  d0->disk_io = d1->disk_io;
++
++  memcpy(d1->handle, tmp.handle, sizeof(tmp.handle));
++  d1->device_path = tmp.device_path;
++  d1->last_device_path = tmp.last_device_path;
++  d1->block_io = tmp.block_io;
++  d1->disk_io = tmp.disk_io;
++}
++
++static int
++compare_hd_device_paths(grub_efi_hard_drive_device_path_t *hd0,
++			grub_efi_hard_drive_device_path_t *hd1)
++{
++  grub_efi_uint64_t x;
++  int sigsize;
++
++  if ((x = hd1->partition_number - hd0->partition_number))
++    return x;
++
++  if ((x = hd1->partition_start - hd0->partition_start))
++    return x;
++
++
++  if ((x = hd1->partition_size - hd0->partition_size))
++    return x;
++
++  if ((x = hd1->signature_type - hd0->signature_type))
++    return x;
++
++  switch (hd0->signature_type)
++    {
++    case 1:
++      sigsize = 4;
++      break;
++    case 2:
++      sigsize = 16;
++      break;
++    default:
++      sigsize = 0;
++      break;
++    }
++  x = grub_memcmp((char *)hd0->partition_signature,
++                  (char *)hd1->partition_signature, sigsize);
++  return x;
++}
++
++static grub_efi_device_path_t *
++get_parent_of_disk(grub_efi_device_path_t *hd)
++{
++  grub_efi_uintn_t num_handles;
++  grub_efi_handle_t *handles;
++  grub_efi_handle_t *handle;
++  grub_efi_device_path_t *ret;
++
++  handles = grub_efi_locate_handle (GRUB_EFI_BY_PROTOCOL,
++				     &simple_file_system_guid,
++                                    0, &num_handles);
++  for (handle = handles; num_handles--; handle++)
++    {
++      grub_efi_device_path_t *fsdp, *hddp;
++
++      fsdp = grub_efi_get_device_path (*handle);
++      if (!fsdp)
++	continue;
++      hddp = find_last_device_path(fsdp);
++
++      if (compare_hd_device_paths((grub_efi_hard_drive_device_path_t *)hddp,
++				   (grub_efi_hard_drive_device_path_t *)hd) == 0)
++        {
++	  grub_efi_device_path_t *p;
++	  ret = duplicate_device_path((grub_efi_device_path_t *)fsdp);
++	  if (!ret)
++	    return NULL;
++	  for (p = ret; ; p = GRUB_EFI_NEXT_DEVICE_PATH(p))
++	    {
++	      if (GRUB_EFI_END_ENTIRE_DEVICE_PATH(p))
++		break;
++	      if ((GRUB_EFI_DEVICE_PATH_TYPE(p) ==
++			GRUB_EFI_MEDIA_DEVICE_PATH_TYPE)
++		      && (GRUB_EFI_DEVICE_PATH_SUBTYPE(p) ==
++				GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE))
++	        {
++		  p->type = GRUB_EFI_END_DEVICE_PATH_TYPE;
++		  p->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE;
++		  p->length[0] = 4;
++		  p->length[1] = 0;
++		  break;
++		}
++	    }
++	  return ret;
++	}
++    }
++  return NULL;
++}
++
++void
++assign_device_name (int drive, const char *device)
++{
++  grub_efi_device_path_t *dp0, *dp1;
++  struct grub_efidisk_data *devices;
++  struct grub_efidisk_data *d, *d0 = NULL, *d1 = NULL;
++  int n = -1;
++
++  dp0 = device_path_from_utf8(device);
++  if (!dp0)
++    return;
++
++  dp1 = get_parent_of_disk(dp0);
++  grub_free(dp0);
++  if (!dp1)
++    return;
++
++  if (drive & 0x80)
++    {
++      drive -= 0x80;
++      devices = hd_devices;
++    }
++  else
++    {
++      devices = cd_devices;
++      drive -= 0x100;
++    }
++
++  for (d = devices; d; d = d->next)
++    {
++      if (!d->device_path)
++	continue;
++
++      if (++n == drive)
++	d0 = d;
++
++      int x;
++      if (!(x = compare_device_paths(dp1, d->device_path)))
++	d1 = d;
++
++      if (d0 && d1)
++        {
++	  /* if they're the same node, that just means it's already at
++	   * the right position. */
++	  if (d0 != d1)
++	    {
++	      swap_devices(d0, d1);
++	      grub_free(dp1);
++	      return;
++	    }
++	}
++    }
++  grub_free(dp1);
++}
+diff --git a/efi/efidp.c b/efi/efidp.c
+new file mode 100644
+index 0000000..3e0019d
+--- /dev/null
++++ b/efi/efidp.c
+@@ -0,0 +1,984 @@
++/*
++ * GRUB  --  GRand Unified Bootloader
++ * Copyright (C) 2010 Free Software Foundation, Inc.
++ *
++ *  GRUB is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with GRUB; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#include <grub/types.h>
++#include <grub/misc.h>
++#include <grub/efi/api.h>
++#include <grub/efi/efi.h>
++#include <grub/efi/misc.h>
++
++#include <shared.h>
++
++/* Duplicate a device path.  */
++grub_efi_device_path_t *
++duplicate_device_path (const grub_efi_device_path_t *dp)
++{
++  grub_efi_device_path_t *p;
++  grub_size_t total_size = 0;
++
++  for (p = (grub_efi_device_path_t *) dp;
++       ;
++       p = GRUB_EFI_NEXT_DEVICE_PATH (p))
++    {
++      total_size += GRUB_EFI_DEVICE_PATH_LENGTH (p);
++      if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (p))
++	break;
++    }
++
++  p = grub_malloc (total_size);
++  if (! p)
++    return 0;
++
++  grub_memcpy (p, dp, total_size);
++  return p;
++}
++
++/* Return the device path node right before the end node.  */
++grub_efi_device_path_t *
++find_last_device_path (const grub_efi_device_path_t *dp)
++{
++  grub_efi_device_path_t *next, *p;
++
++  if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (dp))
++    return 0;
++
++  for (p = (grub_efi_device_path_t *) dp, next = GRUB_EFI_NEXT_DEVICE_PATH (p);
++       ! GRUB_EFI_END_ENTIRE_DEVICE_PATH (next);
++       p = next, next = GRUB_EFI_NEXT_DEVICE_PATH (next))
++    ;
++
++  return p;
++}
++
++/* Compare device paths.  */
++int
++compare_device_paths (const grub_efi_device_path_t *dp1,
++		      const grub_efi_device_path_t *dp2)
++{
++  if (! dp1 || ! dp2)
++    /* Return non-zero.  */
++    return 1;
++
++  while (1)
++    {
++      grub_efi_uint8_t type1, type2;
++      grub_efi_uint8_t subtype1, subtype2;
++      grub_efi_uint16_t len1, len2;
++      int ret;
++
++      type1 = GRUB_EFI_DEVICE_PATH_TYPE (dp1);
++      type2 = GRUB_EFI_DEVICE_PATH_TYPE (dp2);
++
++      if (type1 != type2)
++	return (int) type2 - (int) type1;
++
++      subtype1 = GRUB_EFI_DEVICE_PATH_SUBTYPE (dp1);
++      subtype2 = GRUB_EFI_DEVICE_PATH_SUBTYPE (dp2);
++
++      if (subtype1 != subtype2)
++	return (int) subtype1 - (int) subtype2;
++
++      len1 = GRUB_EFI_DEVICE_PATH_LENGTH (dp1);
++      len2 = GRUB_EFI_DEVICE_PATH_LENGTH (dp2);
++
++      if (len1 != len2)
++	return (int) len1 - (int) len2;
++
++      ret = grub_memcmp ((char *)dp1, (char *)dp2, len1);
++      if (ret != 0)
++	return ret;
++
++      if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (dp1))
++	break;
++
++      dp1 = (grub_efi_device_path_t *) ((char *) dp1 + len1);
++      dp2 = (grub_efi_device_path_t *) ((char *) dp2 + len2);
++    }
++
++  return 0;
++}
++
++/* Print the chain of Device Path nodes. This is mainly for debugging. */
++void
++grub_efi_print_device_path (grub_efi_device_path_t *dp)
++{
++  while (1)
++    {
++      grub_efi_uint8_t type = GRUB_EFI_DEVICE_PATH_TYPE (dp);
++      grub_efi_uint8_t subtype = GRUB_EFI_DEVICE_PATH_SUBTYPE (dp);
++      grub_efi_uint16_t len = GRUB_EFI_DEVICE_PATH_LENGTH (dp);
++
++      switch (type)
++	{
++	case GRUB_EFI_END_DEVICE_PATH_TYPE:
++	  switch (subtype)
++	    {
++	    case GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE:
++	      grub_printf ("/EndEntire\n");
++	      //grub_putchar ('\n');
++	      break;
++	    case GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE:
++	      grub_printf ("/EndThis\n");
++	      //grub_putchar ('\n');
++	      break;
++	    default:
++	      grub_printf ("/EndUnknown(%x)\n", (unsigned) subtype);
++	      break;
++	    }
++	  break;
++
++	case GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE:
++	  switch (subtype)
++	    {
++	    case GRUB_EFI_PCI_DEVICE_PATH_SUBTYPE:
++	      {
++		grub_efi_pci_device_path_t pci;
++		grub_memcpy (&pci, dp, len);
++		grub_printf ("/PCI(%x,%x)",
++			     (unsigned) pci.function, (unsigned) pci.device);
++	      }
++	      break;
++	    case GRUB_EFI_PCCARD_DEVICE_PATH_SUBTYPE:
++	      {
++		grub_efi_pccard_device_path_t pccard;
++		grub_memcpy (&pccard, dp, len);
++		grub_printf ("/PCCARD(%x)",
++			     (unsigned) pccard.function);
++	      }
++	      break;
++	    case GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE:
++	      {
++		grub_efi_memory_mapped_device_path_t mmapped;
++		grub_memcpy (&mmapped, dp, len);
++		grub_printf ("/MMap(%x,%llx,%llx)",
++			     (unsigned) mmapped.memory_type,
++			     mmapped.start_address,
++			     mmapped.end_address);
++	      }
++	      break;
++	    case GRUB_EFI_VENDOR_DEVICE_PATH_SUBTYPE:
++	      {
++		grub_efi_vendor_device_path_t vendor;
++		grub_memcpy (&vendor, dp, sizeof (vendor));
++		grub_printf ("/Vendor(%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x)",
++			     (unsigned) vendor.vendor_guid.data1,
++			     (unsigned) vendor.vendor_guid.data2,
++			     (unsigned) vendor.vendor_guid.data3,
++			     (unsigned) vendor.vendor_guid.data4[0],
++			     (unsigned) vendor.vendor_guid.data4[1],
++			     (unsigned) vendor.vendor_guid.data4[2],
++			     (unsigned) vendor.vendor_guid.data4[3],
++			     (unsigned) vendor.vendor_guid.data4[4],
++			     (unsigned) vendor.vendor_guid.data4[5],
++			     (unsigned) vendor.vendor_guid.data4[6],
++			     (unsigned) vendor.vendor_guid.data4[7]);
++	      }
++	      break;
++	    case GRUB_EFI_CONTROLLER_DEVICE_PATH_SUBTYPE:
++	      {
++		grub_efi_controller_device_path_t controller;
++		grub_memcpy (&controller, dp, len);
++		grub_printf ("/Ctrl(%x)",
++			     (unsigned) controller.controller_number);
++	      }
++	      break;
++	    default:
++	      grub_printf ("/UnknownHW(%x)", (unsigned) subtype);
++	      break;
++	    }
++	  break;
++
++	case GRUB_EFI_ACPI_DEVICE_PATH_TYPE:
++	  switch (subtype)
++	    {
++	    case GRUB_EFI_ACPI_DEVICE_PATH_SUBTYPE:
++	      {
++		grub_efi_acpi_device_path_t acpi;
++		grub_memcpy (&acpi, dp, len);
++		grub_printf ("/ACPI(%x,%x)",
++			     (unsigned) acpi.hid,
++			     (unsigned) acpi.uid);
++	      }
++	      break;
++	    case GRUB_EFI_EXPANDED_ACPI_DEVICE_PATH_SUBTYPE:
++	      {
++		grub_efi_expanded_acpi_device_path_t eacpi;
++		grub_memcpy (&eacpi, dp, sizeof (eacpi));
++		grub_printf ("/ACPI(");
++
++		if (GRUB_EFI_EXPANDED_ACPI_HIDSTR (dp)[0] == '\0')
++		  grub_printf ("%x,", (unsigned) eacpi.hid);
++		else
++		  grub_printf ("%s,", GRUB_EFI_EXPANDED_ACPI_HIDSTR (dp));
++
++		if (GRUB_EFI_EXPANDED_ACPI_UIDSTR (dp)[0] == '\0')
++		  grub_printf ("%x,", (unsigned) eacpi.uid);
++		else
++		  grub_printf ("%s,", GRUB_EFI_EXPANDED_ACPI_UIDSTR (dp));
++
++		if (GRUB_EFI_EXPANDED_ACPI_CIDSTR (dp)[0] == '\0')
++		  grub_printf ("%x)", (unsigned) eacpi.cid);
++		else
++		  grub_printf ("%s)", GRUB_EFI_EXPANDED_ACPI_CIDSTR (dp));
++	      }
++	      break;
++	    default:
++	      grub_printf ("/UnknownACPI(%x)", (unsigned) subtype);
++	      break;
++	    }
++	  break;
++
++	case GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE:
++	  switch (subtype)
++	    {
++	    case GRUB_EFI_ATAPI_DEVICE_PATH_SUBTYPE:
++	      {
++		grub_efi_atapi_device_path_t atapi;
++		grub_memcpy (&atapi, dp, len);
++		grub_printf ("/ATAPI(%x,%x,%x)",
++			     (unsigned) atapi.primary_secondary,
++			     (unsigned) atapi.slave_master,
++			     (unsigned) atapi.lun);
++	      }
++	      break;
++	    case GRUB_EFI_SCSI_DEVICE_PATH_SUBTYPE:
++	      {
++		grub_efi_scsi_device_path_t scsi;
++		grub_memcpy (&scsi, dp, len);
++		grub_printf ("/SCSI(%x,%x)",
++			     (unsigned) scsi.pun,
++			     (unsigned) scsi.lun);
++	      }
++	      break;
++	    case GRUB_EFI_FIBRE_CHANNEL_DEVICE_PATH_SUBTYPE:
++	      {
++		grub_efi_fibre_channel_device_path_t fc;
++		grub_memcpy (&fc, dp, len);
++		grub_printf ("/FibreChannel(%llx,%llx)",
++			     fc.wwn, fc.lun);
++	      }
++	      break;
++	    case GRUB_EFI_1394_DEVICE_PATH_SUBTYPE:
++	      {
++		grub_efi_1394_device_path_t firewire;
++		grub_memcpy (&firewire, dp, len);
++		grub_printf ("/1394(%llx)", firewire.guid);
++	      }
++	      break;
++	    case GRUB_EFI_USB_DEVICE_PATH_SUBTYPE:
++	      {
++		grub_efi_usb_device_path_t usb;
++		grub_memcpy (&usb, dp, len);
++		grub_printf ("/USB(%x,%x)",
++			     (unsigned) usb.parent_port_number,
++			     (unsigned) usb.interface);
++	      }
++	      break;
++	    case GRUB_EFI_USB_CLASS_DEVICE_PATH_SUBTYPE:
++	      {
++		grub_efi_usb_class_device_path_t usb_class;
++		grub_memcpy (&usb_class, dp, len);
++		grub_printf ("/USBClass(%x,%x,%x,%x,%x)",
++			     (unsigned) usb_class.vendor_id,
++			     (unsigned) usb_class.product_id,
++			     (unsigned) usb_class.device_class,
++			     (unsigned) usb_class.device_subclass,
++			     (unsigned) usb_class.device_protocol);
++	      }
++	      break;
++	    case GRUB_EFI_I2O_DEVICE_PATH_SUBTYPE:
++	      {
++		grub_efi_i2o_device_path_t i2o;
++		grub_memcpy (&i2o, dp, len);
++		grub_printf ("/I2O(%x)", (unsigned) i2o.tid);
++	      }
++	      break;
++	    case GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE:
++	      {
++		grub_efi_mac_address_device_path_t mac;
++		grub_memcpy (&mac, dp, len);
++		grub_printf ("/MacAddr(%x:%x:%x:%x:%x:%x,%x)",
++			     (unsigned) mac.mac_address[0],
++			     (unsigned) mac.mac_address[1],
++			     (unsigned) mac.mac_address[2],
++			     (unsigned) mac.mac_address[3],
++			     (unsigned) mac.mac_address[4],
++			     (unsigned) mac.mac_address[5],
++			     (unsigned) mac.if_type);
++	      }
++	      break;
++	    case GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE:
++	      {
++		grub_efi_ipv4_device_path_t ipv4;
++		grub_memcpy (&ipv4, dp, len);
++		grub_printf ("/IPv4(%u.%u.%u.%u,%u.%u.%u.%u,%u,%u,%x,%x)",
++			     (unsigned) ipv4.local_ip_address[0],
++			     (unsigned) ipv4.local_ip_address[1],
++			     (unsigned) ipv4.local_ip_address[2],
++			     (unsigned) ipv4.local_ip_address[3],
++			     (unsigned) ipv4.remote_ip_address[0],
++			     (unsigned) ipv4.remote_ip_address[1],
++			     (unsigned) ipv4.remote_ip_address[2],
++			     (unsigned) ipv4.remote_ip_address[3],
++			     (unsigned) ipv4.local_port,
++			     (unsigned) ipv4.remote_port,
++			     (unsigned) ipv4.protocol,
++			     (unsigned) ipv4.static_ip_address);
++	      }
++	      break;
++	    case GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE:
++	      {
++		grub_efi_ipv6_device_path_t ipv6;
++		grub_memcpy (&ipv6, dp, len);
++		grub_printf ("/IPv6(%x:%x:%x:%x:%x:%x:%x:%x,%x:%x:%x:%x:%x:%x:%x:%x,%u,%u,%x,%x)",
++			     (unsigned) ipv6.local_ip_address[0],
++			     (unsigned) ipv6.local_ip_address[1],
++			     (unsigned) ipv6.local_ip_address[2],
++			     (unsigned) ipv6.local_ip_address[3],
++			     (unsigned) ipv6.local_ip_address[4],
++			     (unsigned) ipv6.local_ip_address[5],
++			     (unsigned) ipv6.local_ip_address[6],
++			     (unsigned) ipv6.local_ip_address[7],
++			     (unsigned) ipv6.remote_ip_address[0],
++			     (unsigned) ipv6.remote_ip_address[1],
++			     (unsigned) ipv6.remote_ip_address[2],
++			     (unsigned) ipv6.remote_ip_address[3],
++			     (unsigned) ipv6.remote_ip_address[4],
++			     (unsigned) ipv6.remote_ip_address[5],
++			     (unsigned) ipv6.remote_ip_address[6],
++			     (unsigned) ipv6.remote_ip_address[7],
++			     (unsigned) ipv6.local_port,
++			     (unsigned) ipv6.remote_port,
++			     (unsigned) ipv6.protocol,
++			     (unsigned) ipv6.static_ip_address);
++	      }
++	      break;
++	    case GRUB_EFI_INFINIBAND_DEVICE_PATH_SUBTYPE:
++	      {
++		grub_efi_infiniband_device_path_t ib;
++		grub_memcpy (&ib, dp, len);
++		grub_printf ("/InfiniBand(%x,%llx,%llx,%llx)",
++			     (unsigned) ib.port_gid[0], /* XXX */
++			     ib.remote_id,
++			     ib.target_port_id,
++			     ib.device_id);
++	      }
++	      break;
++	    case GRUB_EFI_UART_DEVICE_PATH_SUBTYPE:
++	      {
++		grub_efi_uart_device_path_t uart;
++		grub_memcpy (&uart, dp, len);
++		grub_printf ("/UART(%llu,%u,%x,%x)",
++			     uart.baud_rate,
++			     uart.data_bits,
++			     uart.parity,
++			     uart.stop_bits);
++	      }
++	      break;
++	    case GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE:
++	      {
++		grub_efi_vendor_messaging_device_path_t vendor;
++		grub_memcpy (&vendor, dp, sizeof (vendor));
++		grub_printf ("/Vendor(%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x)",
++			     (unsigned) vendor.vendor_guid.data1,
++			     (unsigned) vendor.vendor_guid.data2,
++			     (unsigned) vendor.vendor_guid.data3,
++			     (unsigned) vendor.vendor_guid.data4[0],
++			     (unsigned) vendor.vendor_guid.data4[1],
++			     (unsigned) vendor.vendor_guid.data4[2],
++			     (unsigned) vendor.vendor_guid.data4[3],
++			     (unsigned) vendor.vendor_guid.data4[4],
++			     (unsigned) vendor.vendor_guid.data4[5],
++			     (unsigned) vendor.vendor_guid.data4[6],
++			     (unsigned) vendor.vendor_guid.data4[7]);
++	      }
++	      break;
++	    default:
++	      grub_printf ("/UnknownMessaging(%x)", (unsigned) subtype);
++	      break;
++	    }
++	  break;
++
++	case GRUB_EFI_MEDIA_DEVICE_PATH_TYPE:
++	  switch (subtype)
++	    {
++	    case GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE:
++	      {
++		grub_efi_hard_drive_device_path_t hd;
++		grub_memcpy (&hd, dp, len);
++		grub_printf ("/HD(%u,%llx,%llx,%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x)",
++			     hd.partition_number,
++			     hd.partition_start,
++			     hd.partition_size,
++			     (unsigned) hd.partition_signature[3],
++			     (unsigned) hd.partition_signature[2],
++			     (unsigned) hd.partition_signature[1],
++			     (unsigned) hd.partition_signature[0],
++			     (unsigned) hd.partition_signature[5],
++			     (unsigned) hd.partition_signature[4],
++			     (unsigned) hd.partition_signature[7],
++			     (unsigned) hd.partition_signature[6],
++			     (unsigned) hd.partition_signature[9],
++			     (unsigned) hd.partition_signature[8],
++			     (unsigned) hd.partition_signature[10],
++			     (unsigned) hd.partition_signature[11],
++			     (unsigned) hd.partition_signature[12],
++			     (unsigned) hd.partition_signature[13],
++			     (unsigned) hd.partition_signature[14],
++			     (unsigned) hd.partition_signature[15]);
++	      }
++	      break;
++	    case GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE:
++	      {
++		grub_efi_cdrom_device_path_t cd;
++		grub_memcpy (&cd, dp, len);
++		grub_printf ("/CD(%u,%llx,%llx)",
++			     cd.boot_entry,
++			     cd.partition_start,
++			     cd.partition_size);
++	      }
++	      break;
++	    case GRUB_EFI_VENDOR_MEDIA_DEVICE_PATH_SUBTYPE:
++	      {
++		grub_efi_vendor_media_device_path_t vendor;
++		grub_memcpy (&vendor, dp, sizeof (vendor));
++		grub_printf ("/Vendor(%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x)",
++			     (unsigned) vendor.vendor_guid.data1,
++			     (unsigned) vendor.vendor_guid.data2,
++			     (unsigned) vendor.vendor_guid.data3,
++			     (unsigned) vendor.vendor_guid.data4[0],
++			     (unsigned) vendor.vendor_guid.data4[1],
++			     (unsigned) vendor.vendor_guid.data4[2],
++			     (unsigned) vendor.vendor_guid.data4[3],
++			     (unsigned) vendor.vendor_guid.data4[4],
++			     (unsigned) vendor.vendor_guid.data4[5],
++			     (unsigned) vendor.vendor_guid.data4[6],
++			     (unsigned) vendor.vendor_guid.data4[7]);
++	      }
++	      break;
++	    case GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE:
++	      {
++		grub_efi_file_path_device_path_t *fp;
++		grub_uint8_t buf[(len - 4) * 2 + 1];
++		fp = (grub_efi_file_path_device_path_t *) dp;
++		*grub_utf16_to_utf8 (buf, fp->path_name,
++				     (len - 4) / sizeof (grub_efi_char16_t))
++		  = '\0';
++		grub_printf ("/File(%s)", buf);
++	      }
++	      break;
++	    case GRUB_EFI_PROTOCOL_DEVICE_PATH_SUBTYPE:
++	      {
++		grub_efi_protocol_device_path_t proto;
++		grub_memcpy (&proto, dp, sizeof (proto));
++		grub_printf ("/Protocol(%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x)",
++			     (unsigned) proto.guid.data1,
++			     (unsigned) proto.guid.data2,
++			     (unsigned) proto.guid.data3,
++			     (unsigned) proto.guid.data4[0],
++			     (unsigned) proto.guid.data4[1],
++			     (unsigned) proto.guid.data4[2],
++			     (unsigned) proto.guid.data4[3],
++			     (unsigned) proto.guid.data4[4],
++			     (unsigned) proto.guid.data4[5],
++			     (unsigned) proto.guid.data4[6],
++			     (unsigned) proto.guid.data4[7]);
++	      }
++	      break;
++	    default:
++	      grub_printf ("/UnknownMedia(%x)", (unsigned) subtype);
++	      break;
++	    }
++	  break;
++
++	case GRUB_EFI_BIOS_DEVICE_PATH_TYPE:
++	  switch (subtype)
++	    {
++	    case GRUB_EFI_BIOS_DEVICE_PATH_SUBTYPE:
++	      {
++		grub_efi_bios_device_path_t bios;
++		grub_memcpy (&bios, dp, sizeof (bios));
++		grub_printf ("/BIOS(%x,%x,%s)",
++			     (unsigned) bios.device_type,
++			     (unsigned) bios.status_flags,
++			     (char *) (dp + 1));
++	      }
++	      break;
++	    default:
++	      grub_printf ("/UnknownBIOS(%x)", (unsigned) subtype);
++	      break;
++	    }
++	  break;
++
++	default:
++	  grub_printf ("/UnknownType(%x,%x)\n",
++		       (unsigned) type,
++		       (unsigned) subtype);
++	  return;
++	  break;
++	}
++
++      if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (dp))
++	break;
++
++      dp = (grub_efi_device_path_t *) ((char *) dp + len);
++    }
++}
++
++static inline int
++dpname_matches(char *str, char *candidate)
++{
++  grub_size_t clen = grub_strlen(candidate);
++  char scratch[clen + 2];
++  int rc;
++
++  grub_strncpy(scratch, candidate, clen);
++  scratch[clen+1] = '\0';
++  if (scratch[clen-1] == '$')
++    {
++      scratch[--clen] = '\0';
++      rc = !grub_strncasecmp(str, scratch, clen);
++      return rc;
++    }
++
++    grub_strncpy(scratch+clen, "(", 2);
++    clen = grub_strlen(scratch);
++    rc = !grub_strncasecmp(str, scratch, clen);
++    return rc;
++}
++
++static void
++finish_param_parse(char *pos, char **end, char *tmp)
++{
++  if (!pos || !end || !tmp)
++    return;
++
++  if (*end)
++    **end = *tmp;
++}
++
++static char *
++get_next_param(char *pos, char **end, char *tmp)
++{
++  char *comma = NULL;
++  char *openparen = NULL;
++  char *closeparen = NULL;
++
++  if (!pos || !end || !tmp)
++    return NULL;
++
++  if (*end)
++    **end = *tmp;
++
++  openparen = grub_strchr(pos, '(');
++  if (openparen && *openparen)
++    {
++      pos = grub_strnchr(openparen + 1, ' ');
++      comma = grub_strchr(pos, ',');
++      closeparen = grub_strchr(pos, ')');
++
++      if (comma && *comma)
++	{
++	  *tmp = *comma;
++	  *comma = '\0';
++	  *end = comma;
++	}
++      else if (closeparen && *closeparen)
++	{
++	  *tmp = *closeparen;
++	  *closeparen = '\0';
++	  *end = closeparen;
++	}
++      return pos;
++    }
++
++  comma = grub_strchr(pos, ',');
++  if (comma && *comma)
++    {
++      pos = grub_strnchr(comma + 1, ' ');
++      comma = grub_strchr(pos, ',');
++      closeparen = grub_strchr(pos, ')');
++
++      if (comma && *comma)
++	{
++	  *tmp = *comma;
++	  *comma = '\0';
++	  *end = comma;
++	}
++      else if (closeparen && *closeparen)
++	{
++	  *tmp = *closeparen;
++	  *closeparen = '\0';
++	  *end = closeparen;
++	}
++      return pos;
++    }
++
++  closeparen = grub_strchr(pos, ')');
++  if (closeparen && *closeparen)
++    pos = grub_strnchr(closeparen + 1, ' ');
++
++  return pos;
++}
++
++struct generic_device_path
++  {
++    grub_efi_uint8_t type;
++    grub_efi_uint8_t subtype;
++    grub_efi_uint16_t length;
++  } __attribute__((packed));
++
++struct hd_media_device_path
++  {
++    grub_efi_uint8_t type;
++    grub_efi_uint8_t subtype;
++    grub_efi_uint16_t length;
++    grub_efi_uint32_t partition;
++    grub_efi_uint64_t startlba;
++    grub_efi_uint64_t size;
++    grub_efi_uint8_t signature[16];
++    grub_efi_uint8_t mbr_type;
++    grub_efi_uint8_t signature_type;
++  } __attribute__((packed));
++
++static inline int
++parse_device_path_component(const char *orig_str, void *data)
++{
++  int orig_str_len = strlen(orig_str) + 1;
++  char str[orig_str_len];
++  char tmp;
++  char *pos = str;
++  int ret = 0;
++
++  grub_strcpy(str, orig_str);
++  if (dpname_matches(str, "pci"))
++    {
++    }
++  else if (dpname_matches(str, "pccard"))
++    {
++    }
++  else if (dpname_matches(str, "mmap"))
++    {
++    }
++  else if (dpname_matches(str, "ctrl"))
++    {
++    }
++  else if (dpname_matches(str, "acpi"))
++    {
++    }
++    /* XXX what about _ADR? */
++  /* messaging device paths */
++  else if (dpname_matches(str, "atapi"))
++    {
++    }
++  else if (dpname_matches(str, "scsi"))
++    {
++    }
++  else if (dpname_matches(str, "fibrechannel"))
++    {
++    }
++  else if (dpname_matches(str, "1394"))
++    {
++    }
++  else if (dpname_matches(str, "usb"))
++    {
++    }
++  else if (dpname_matches(str, "sata"))
++    {
++    }
++    /* XXX what about usb-wwid */
++    /* XXX what about lun */
++  else if (dpname_matches(str, "usbclass"))
++    {
++    }
++  else if (dpname_matches(str, "i2o"))
++    {
++    }
++  else if (dpname_matches(str, "macaddr"))
++    {
++    }
++  else if (dpname_matches(str, "ipv4"))
++    {
++    }
++  else if (dpname_matches(str, "ipv6"))
++    {
++    }
++    /* XXX what about vlan */
++  else if (dpname_matches(str, "infiniband"))
++    {
++    }
++  else if (dpname_matches(str, "uart"))
++    {
++    }
++  else if (dpname_matches(str, "uartflowctrl"))
++    {
++    }
++  else if (dpname_matches(str, "sas"))
++    {
++    }
++  else if (dpname_matches(str, "iscsi"))
++    {
++    }
++  /* media device paths */
++  else if (dpname_matches(str, "hd"))
++    {
++      /* these look roughly like:
++       *  HD(Partition,Type,Signature,Start, Size)
++       * but:
++       * - type may be optional.  1 or "MBR" means MBR. 2 or "GPT" means GPT.
++       * - start and size are optional
++       * - there can be random spaces
++       */
++      struct hd_media_device_path hddp;
++      unsigned long tmpul;
++      char *end = NULL, c;
++      char tmps[19] = "0x";
++      char *tmpsp;
++
++      ret = 42;
++
++      hddp.type = GRUB_EFI_MEDIA_DEVICE_PATH_TYPE;
++      hddp.subtype = GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE;
++      hddp.length = ret;
++
++      //pos += grub_strcspn(pos, '(');
++      pos = get_next_param(pos, &end, &c);
++      if (!*pos)
++	{
++broken_hd:
++	  finish_param_parse(pos, &end, &c);
++	  return 0;
++	}
++      grub_strncpy(tmps+2, pos, 16);
++      tmps[18] = '\0';
++      tmpsp = tmps;
++      safe_parse_maxulong(&tmpsp, &tmpul);
++      hddp.partition = tmpul;
++
++      pos = get_next_param(pos, &end, &c);
++      if (!*pos)
++	goto broken_hd;
++      grub_strcpy(tmps+2, pos);
++      tmpsp = tmps;
++      safe_parse_maxulong(&tmpsp, &tmpul);
++      hddp.startlba = tmpul;
++
++      pos = get_next_param(pos, &end, &c);
++      if (!*pos)
++	goto broken_hd;
++      grub_strcpy(tmps+2, pos);
++      tmpsp = tmps;
++      safe_parse_maxulong(&tmpsp, &tmpul);
++      hddp.size = tmpul;
++
++      pos = get_next_param(pos, &end, &c);
++      if (!*pos)
++	goto broken_hd;
++      if (!grub_strcmp(pos, "None"))
++	{
++	  hddp.signature_type = 0;
++	  grub_memset(hddp.signature, '\0', sizeof(hddp.signature));
++	}
++      else if (grub_strnlen(pos, 36) == 8)
++        {
++	  grub_efi_uint32_t tmpu32;
++	  grub_strncpy(tmps+2, pos, 8);
++	  tmps[10] = '\0';
++	  tmpsp = tmps;
++	  safe_parse_maxulong(&tmpsp, &tmpul);
++	  tmpu32 = tmpul;
++	  hddp.signature_type = 1;
++	  grub_memcpy(hddp.signature, &tmpu32, sizeof(tmpu32));
++	}
++      else if (grub_strnlen(pos, 36) == 36)
++	{
++	  grub_efi_uint32_t tmpu32;
++	  grub_efi_uint16_t tmpu16;
++	  grub_efi_uint8_t tmpu8;
++
++	  grub_strncpy(tmps+2, pos, 8);
++	  tmps[10] = '\0';
++	  tmpsp = tmps;
++	  safe_parse_maxulong(&tmpsp, &tmpul);
++	  tmpu32 = tmpul;
++	  grub_memcpy(hddp.signature, &tmpu32, sizeof(tmpu32));
++
++	  grub_strncpy(tmps+2, pos+9, 4);
++	  tmps[6] = '\0';
++	  tmpsp = tmps;
++	  safe_parse_maxulong(&tmpsp, &tmpul);
++	  tmpu16 = tmpul;
++	  grub_memcpy(hddp.signature + 4, &tmpu16, sizeof(tmpu16));
++
++	  grub_strncpy(tmps+2, pos+14, 4);
++	  tmps[6] = '\0';
++	  tmpsp = tmps;
++	  safe_parse_maxulong(&tmpsp, &tmpul);
++	  tmpu16 = tmpul;
++	  grub_memcpy(hddp.signature + 6, &tmpu16, sizeof(tmpu16));
++
++	  /* these are displayed like a u16, but they're a u8.  thanks. */
++	  grub_strncpy(tmps+2, pos+19, 2);
++	  tmps[4] = '\0';
++	  tmpsp = tmps;
++	  safe_parse_maxulong(&tmpsp, &tmpul);
++	  tmpu8 = tmpul;
++	  grub_memcpy(hddp.signature + 8, &tmpu8, sizeof(tmpu8));
++	  grub_strncpy(tmps+2, pos+21, 2);
++	  tmps[4] = '\0';
++	  tmpsp = tmps;
++	  safe_parse_maxulong(&tmpsp, &tmpul);
++	  tmpu8 = tmpul;
++	  grub_memcpy(hddp.signature + 9, &tmpu8, sizeof(tmpu8));
++
++	  grub_strncpy(tmps+2, pos+24, 2);
++	  tmps[4] = '\0';
++	  tmpsp = tmps;
++	  safe_parse_maxulong(&tmpsp, &tmpul);
++	  tmpu8 = tmpul;
++	  grub_memcpy(hddp.signature + 10, &tmpu8, sizeof(tmpu8));
++
++	  grub_strncpy(tmps+2, pos+26, 2);
++	  tmps[4] = '\0';
++	  tmpsp = tmps;
++	  safe_parse_maxulong(&tmpsp, &tmpul);
++	  tmpu8 = tmpul;
++	  grub_memcpy(hddp.signature + 11, &tmpu8, sizeof(tmpu8));
++
++	  grub_strncpy(tmps+2, pos+28, 2);
++	  tmps[4] = '\0';
++	  tmpsp = tmps;
++	  safe_parse_maxulong(&tmpsp, &tmpul);
++	  tmpu8 = tmpul;
++	  grub_memcpy(hddp.signature + 12, &tmpu8, sizeof(tmpu8));
++
++	  grub_strncpy(tmps+2, pos+30, 2);
++	  tmps[4] = '\0';
++	  tmpsp = tmps;
++	  safe_parse_maxulong(&tmpsp, &tmpul);
++	  tmpu8 = tmpul;
++	  grub_memcpy(hddp.signature + 13, &tmpu8, sizeof(tmpu8));
++
++	  grub_strncpy(tmps+2, pos+32, 2);
++	  tmps[4] = '\0';
++	  tmpsp = tmps;
++	  safe_parse_maxulong(&tmpsp, &tmpul);
++	  tmpu8 = tmpul;
++	  grub_memcpy(hddp.signature + 14, &tmpu8, sizeof(tmpu8));
++
++	  grub_strncpy(tmps+2, pos+34, 2);
++	  tmps[4] = '\0';
++	  tmpsp = tmps;
++	  safe_parse_maxulong(&tmpsp, &tmpul);
++	  tmpu8 = tmpul;
++	  grub_memcpy(hddp.signature + 15, &tmpu8, sizeof(tmpu8));
++
++	  hddp.signature_type = 2;
++	}
++      else
++	goto broken_hd;
++
++      hddp.mbr_type = hddp.signature_type;
++
++      if (data)
++	grub_memcpy(data, &hddp, sizeof(hddp));
++    }
++  else if (dpname_matches(str, "cd"))
++    {
++    }
++  else if (dpname_matches(str, "file"))
++    {
++    }
++  else if (dpname_matches(str, "protocol"))
++    {
++    }
++    /* what about piwg firmware file? */
++    /* what about piwg firmware volume? */
++    /* what about relative offset media */
++  else if (dpname_matches(str, "bios"))
++    {
++    }
++  /* This is the end beautiful friend */
++  else if (dpname_matches(str, "EndEntire$"))
++    {
++      struct generic_device_path gdp = {
++	      .type = GRUB_EFI_END_DEVICE_PATH_TYPE,
++	      .subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE,
++	      .length = 4
++      };
++      ret = 4;
++      if (data)
++	grub_memmove(data, &gdp, sizeof(gdp));
++    }
++  else if (dpname_matches(str, "EndThis$"))
++    {
++      struct generic_device_path gdp = {
++	      .type = GRUB_EFI_END_DEVICE_PATH_TYPE,
++	      .subtype = GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE,
++	      .length = 4
++      };
++      ret = 4;
++      if (data)
++	grub_memmove(data, &gdp, sizeof(gdp));
++    }
++  else if (dpname_matches(str, "EndUnknown$"))
++    {
++      struct generic_device_path gdp = {
++	      .type = GRUB_EFI_END_DEVICE_PATH_TYPE,
++	      .subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE,
++	      .length = 4
++      };
++      ret = 4;
++      if (data)
++	grub_memmove(data, &gdp, sizeof(gdp));
++    }
++  /* handle anything we didn't recognize */
++  else if (dpname_matches(str, "vendor"))
++    {
++      /* needs to handle:
++       * 1) hw vendor
++       * 2) messaging vendor
++       * 3) media vendor
++       */
++    }
++  else
++    {
++    }
++
++  return ret;
++}
++
++grub_efi_device_path_t *
++device_path_from_utf8 (const char *device)
++{
++  grub_size_t device_len;
++  grub_efi_device_path_t *dp = NULL;
++
++  device_len = parse_device_path_component(device, dp);
++  device_len += parse_device_path_component("EndEntire", dp);
++  dp = grub_malloc(device_len);
++  if (!dp)
++    return NULL;
++  device_len = parse_device_path_component(device, dp);
++  device_len += parse_device_path_component("EndEntire",
++				     (void *)((unsigned long)dp + device_len));
++
++
++  return dp;
++}
+diff --git a/efi/efigraph.c b/efi/efigraph.c
+new file mode 100644
+index 0000000..db112dd
+--- /dev/null
++++ b/efi/efigraph.c
+@@ -0,0 +1,1467 @@
++/* efigraph.c - EFI "graphics output" support for GRUB/EFI */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright 2007 Red Hat, Inc.
++ *  Copyright (C) 2007 Intel Corp.
++ *  Copyright (C) 2001,2002  Red Hat, Inc.
++ *  Portions copyright (C) 2000  Conectiva, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifdef SUPPORT_GRAPHICS
++
++#include <grub/misc.h>
++#include <grub/types.h>
++#include <grub/cpu/linux.h>
++#include <grub/efi/api.h>
++#include <grub/efi/efi.h>
++#include <grub/misc.h>
++
++#include <term.h>
++#include <shared.h>
++#include <graphics.h>
++
++#include "graphics.h"
++#include "xpm.h"
++
++#define dbgdelay(_f, _l) ({\
++	if (debug_graphics) {				\
++  		do {					\
++			grub_efi_stall(1000);		\
++		} while (console_getkey() < 0);		\
++	}						\
++	})
++
++#define dprintf(format, args...) ({			\
++	if (debug_graphics) {				\
++		struct term_entry *_tt = current_term;	\
++		current_term = term_table;		\
++		grub_printf(format, ##args);		\
++		current_term = _tt;			\
++	}						\
++	})
++
++struct grub_pixel_info
++{
++  char depth_bits;
++  char depth_bytes;
++  unsigned char red_size;
++  unsigned char red_pos;
++  unsigned char green_size;
++  unsigned char green_pos;
++  unsigned char blue_size;
++  unsigned char blue_pos;
++  unsigned char reserved_size;
++  unsigned char reserved_pos;
++  int line_length;
++};
++
++typedef struct grub_pixel_info grub_pixel_info_t;
++
++
++static grub_efi_guid_t graphics_output_guid = GRUB_EFI_GRAPHICS_OUTPUT_GUID;
++
++#ifndef MIN
++#define MIN(x,y) ( ((x) < (y)) ? (x) : (y))
++#endif
++#ifndef MAX
++#define MAX(x,y) ( ((x) < (y)) ? (y) : (x))
++#endif
++
++#define pixel_equal(x,y) ((x).bgrr.red == (y).bgrr.red && \
++                          (x).bgrr.green == (y).bgrr.green && \
++                          (x).bgrr.blue == (y).bgrr.blue && \
++                          (x).bgrr.reserved == (y).bgrr.reserved)
++
++struct video_mode {
++    grub_efi_uint32_t number;
++    grub_efi_uintn_t size;
++    grub_efi_graphics_output_mode_information_t *info;
++};
++
++#define MAX_PALETTE 16
++struct eg {
++    struct graphics_backend *backend;
++    grub_efi_graphics_output_t *output_intf;
++    struct video_mode **modes;
++    int max_mode;
++    grub_efi_uint32_t text_mode;
++    grub_efi_uint32_t graphics_mode;
++    grub_pixel_info_t pixel_info;
++    enum { TEXT, GRAPHICS } current_mode;
++
++    position_t screen_size;
++    position_t screen_pos;
++
++    struct bltbuf *background;
++
++    grub_efi_graphics_output_pixel_t palette[MAX_PALETTE + 1];
++};
++
++#define RGB(r,g,b) { .bgrr.red = r, .bgrr.green = g, .bgrr.blue = b }
++
++static grub_efi_graphics_output_pixel_t cga_colors[] = {
++    RGB(0x00,0x00,0x00), //  0 Black
++    RGB(0x7f,0x00,0x00), //  1 Dark Red
++    RGB(0x00,0x7f,0x00), //  2 Dark Green
++    RGB(0x7f,0x7f,0x00), //  3 Dark Yellow
++    RGB(0x00,0x00,0x7f), //  4 Dark Blue
++    RGB(0x7f,0x00,0x7f), //  5 Dark Magenta
++    RGB(0x00,0x7f,0x7f), //  6 Dark Cyan
++    RGB(0xc0,0xc0,0xc0), //  7 Light Grey
++    RGB(0x7f,0x7f,0x7f), //  8 Dark Grey
++    RGB(0xff,0x00,0x00), //  9 Red
++    RGB(0x00,0xff,0x00), // 10 Green
++    RGB(0xff,0xff,0x00), // 11 Yellow
++    RGB(0x00,0x00,0xff), // 12 Blue
++    RGB(0xff,0x00,0xff), // 13 Magenta
++    RGB(0x00,0xff,0xff), // 14 Cyan
++    RGB(0xff,0xff,0xff), // 15 White
++    RGB(0xff,0xff,0xff), // 16 Also white ;)
++};
++
++static const int n_cga_colors = sizeof (cga_colors) / sizeof (cga_colors[0]);
++
++static void
++find_bits (unsigned long mask, unsigned char *first,
++	   unsigned char* len)
++{
++  unsigned char bit_pos = 0, bit_len = 0;
++  *first =0;
++  *len = 0;
++  if (mask == 0)
++    return;
++  while (! (mask & 0x1)) {
++    mask = mask >> 1;
++    bit_pos++;
++  }
++  while (mask & 0x1) {
++    mask = mask >> 1;
++    bit_len++;
++  }
++  *first = bit_pos;
++  *len = bit_len;
++}
++
++static grub_efi_graphics_output_mode_information_t *
++get_graphics_mode_info_for_mode(struct eg *eg, int mode)
++{
++	int i;
++
++	for (i = 0; i < eg->max_mode; i++) {
++		if (eg->modes[i] == NULL)
++			continue;
++		if (eg->modes[i]->number == mode)
++			return eg->modes[i]->info;
++	}
++	return NULL;
++}
++
++static grub_efi_graphics_output_mode_information_t *
++get_graphics_mode_info(struct eg *eg)
++{
++	return get_graphics_mode_info_for_mode(eg, eg->graphics_mode);
++}
++
++static void
++print_mode_info(struct video_mode *mode)
++{
++	grub_efi_graphics_output_mode_information_t *info = mode->info;
++	dprintf("mode %d (%dx%d, pitch %d, ",
++		mode->number,
++		info->horizontal_resolution,
++		info->vertical_resolution,
++		info->pixels_per_scan_line);
++	switch(info->pixel_format) {
++		case GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR:
++			dprintf("rgbr 8bpc");
++			break;
++		case GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR:
++			dprintf("bgrr 8bpc");
++			break;
++		case GRUB_EFI_PIXEL_BIT_MASK:
++			dprintf("bitmask color");
++			break;
++		case GRUB_EFI_PIXEL_BLT_ONLY:
++			dprintf("blt only");
++			break;
++	}
++	dprintf(")\n");
++	if (info->pixel_format == GRUB_EFI_PIXEL_BIT_MASK) {
++		dprintf("red: %08x green: %08x blue: %08x res: %08x\n",
++		info->pixel_information.red_mask,
++		info->pixel_information.green_mask,
++		info->pixel_information.blue_mask,
++		info->pixel_information.reserved_mask);
++	}
++}
++
++static void
++set_kernel_params(struct graphics_backend *backend,
++            struct linux_kernel_params *params)
++{
++    struct eg *eg;
++
++    if (!backend || !backend->priv)
++        return;
++
++    eg = backend->priv;
++    grub_efi_graphics_output_t *gop_intf = NULL;
++    grub_efi_graphics_output_mode_t *gop_mode = NULL;
++    grub_efi_status_t efi_status = GRUB_EFI_SUCCESS;
++    grub_efi_graphics_output_mode_information_t *gop_info = NULL;
++    grub_efi_uintn_t size;
++
++    gop_intf = grub_efi_locate_protocol (&graphics_output_guid, NULL);
++    if (gop_intf == NULL)
++        return;
++
++    gop_mode = gop_intf->mode;
++
++    efi_status = Call_Service_4 (gop_intf->query_mode,
++			       gop_intf, gop_mode->mode, &size, &gop_info);
++
++
++    if (efi_status == GRUB_EFI_SUCCESS) {
++        /* No VBE on EFI.  */
++        params->lfb_width = gop_info->horizontal_resolution;
++        params->lfb_height = gop_info->vertical_resolution;
++        params->lfb_base = gop_mode->frame_buffer_base;
++        params->lfb_size = gop_mode->frame_buffer_size;
++        params->lfb_pages = 1;
++        params->vesapm_segment = 0;
++        params->vesapm_offset = 0;
++        params->vesa_attrib = 0;
++        if (gop_info->pixel_format == GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR) {
++            params->lfb_depth = 32;
++            params->red_mask_size = 8;
++            params->red_field_pos = 0;
++            params->green_mask_size = 8;
++            params->green_field_pos = 8;
++            params->blue_mask_size = 8;
++            params->blue_field_pos = 16;
++            params->reserved_mask_size = 8;
++            params->reserved_field_pos = 24;
++            params->lfb_line_len = gop_info->pixels_per_scan_line * 4;
++        } else if (gop_info->pixel_format ==
++                GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR) {
++            params->lfb_depth = 32;
++            params->red_mask_size = 8;
++            params->red_field_pos = 16;
++            params->green_mask_size = 8;
++            params->green_field_pos = 8;
++            params->blue_mask_size = 8;
++            params->blue_field_pos = 0;
++            params->reserved_mask_size = 8;
++            params->reserved_field_pos = 24;
++	    params->lfb_line_len = gop_info->pixels_per_scan_line * 4;
++        } else if (gop_info->pixel_format == GRUB_EFI_PIXEL_BIT_MASK) {
++            find_bits (gop_info->pixel_information.red_mask,
++      		 &params->red_field_pos, &params->red_mask_size);
++            find_bits (gop_info->pixel_information.green_mask,
++      		 &params->green_field_pos, &params->green_mask_size);
++            find_bits (gop_info->pixel_information.blue_mask,
++      		 &params->blue_field_pos, &params->blue_mask_size);
++            find_bits (gop_info->pixel_information.reserved_mask,
++      		 &params->reserved_field_pos, &params->reserved_mask_size);
++            params->lfb_depth = params->red_mask_size
++                                + params->green_mask_size
++                                + params->blue_mask_size
++                                + params->reserved_mask_size;
++            params->lfb_line_len =
++                (gop_info->pixels_per_scan_line * params->lfb_depth) / 8;
++        } else  {
++            params->lfb_depth = 4;
++            params->red_mask_size = 0;
++            params->red_field_pos = 0;
++            params->green_mask_size = 0;
++            params->green_field_pos = 0;
++            params->blue_mask_size = 0;
++            params->blue_field_pos = 0;
++            params->reserved_mask_size = 0;
++            params->reserved_field_pos = 0;
++            params->lfb_line_len = params->lfb_width / 2;
++        }
++#if 0
++        params->video_cursor_x = 0;
++        params->video_cursor_y = 0;
++        params->video_page = 0;
++        params->video_mode = 0;
++        params->video_width = 0;
++        params->video_ega_bx = 0;
++        params->video_height = 0;
++        params->have_vga = 0x70;
++        params->font_size = 0;
++#else
++        params->video_cursor_x = grub_efi_system_table->con_out->mode->cursor_column;
++        params->video_cursor_y = grub_efi_system_table->con_out->mode->cursor_row;
++        params->video_page = 0; /* ??? */
++        params->video_mode = grub_efi_system_table->con_out->mode->mode;
++        params->video_width = (grub_console_getwh () >> 8);
++        params->video_ega_bx = 0;
++        params->video_height = (grub_console_getwh () & 0xff);
++        params->have_vga = VIDEO_TYPE_EFI;
++        params->font_size = 16; /* XXX */
++#endif
++    }
++}
++
++static void
++pixel_to_rgb(grub_efi_graphics_output_pixel_t *pixel,
++             int *red, int *green, int *blue)
++{
++    *red = pixel->bgrr.red;
++    *green = pixel->bgrr.green;
++    *blue = pixel->bgrr.blue;
++}
++
++static void
++rgb_to_pixel(int red, int green, int blue,
++             grub_efi_graphics_output_pixel_t *pixel)
++{
++    pixel->bgrr.red = red;
++    pixel->bgrr.green = green;
++    pixel->bgrr.blue = blue;
++}
++
++static void
++position_to_phys(struct eg *eg, position_t *virt, position_t *phys)
++{
++    phys->x = virt->x + eg->screen_pos.x;
++    phys->y = virt->y + eg->screen_pos.y;
++}
++
++static int
++abs_paddr(struct eg *eg, position_t *virt)
++{
++    position_t phys;
++    position_to_phys(eg, virt, &phys);
++    return phys.x + phys.y * eg->screen_size.x;
++}
++
++struct bltbuf {
++    grub_efi_uintn_t width;
++    grub_efi_uintn_t height;
++    grub_efi_graphics_output_pixel_t pixbuf[];
++};
++
++static struct bltbuf *alloc_bltbuf(grub_efi_uintn_t width,
++					   grub_efi_uintn_t height)
++{
++	struct bltbuf *buf = NULL;
++	grub_efi_uintn_t pixbuf_size = width * height *
++		sizeof (grub_efi_graphics_output_pixel_t);
++
++	if (!(buf = grub_malloc(sizeof(buf->width) + sizeof(buf->height) +
++				pixbuf_size)))
++		return NULL;
++
++	buf->width = width;
++	buf->height = height;
++	grub_memset(buf->pixbuf, '\0', pixbuf_size);
++	return buf;
++}
++
++
++static void
++hw_blt_pos_to_screen_pos(struct eg *eg, struct bltbuf *bltbuf,
++                      position_t *bltpos, position_t *bltsz, position_t *pos)
++{
++    position_t phys;
++
++    position_to_phys(eg, pos, &phys);
++
++    Call_Service_10(eg->output_intf->blt, eg->output_intf, (void *)bltbuf->pixbuf,
++                    GRUB_EFI_BLT_BUFFER_TO_VIDEO,
++                    bltpos->x, bltpos->y,
++                    phys.x, phys.y,
++                    bltsz->x, bltsz->y,
++                    0);
++}
++
++static void
++blt_pos_to_screen_pos(struct eg *eg, struct bltbuf *bltbuf,
++        position_t *bltpos, position_t *bltsz, position_t *pos)
++{
++    grub_efi_graphics_output_mode_information_t *info = get_graphics_mode_info(eg);
++    grub_efi_graphics_output_pixel_t *pixel;
++    position_t phys;
++    const int pxlstride = info->pixels_per_scan_line;
++    const int bytestride = pxlstride * sizeof (*pixel);
++
++    position_to_phys(eg, pos, &phys);
++
++    if (info->pixel_format == GRUB_EFI_PIXEL_BLT_ONLY || 1) {
++        hw_blt_pos_to_screen_pos(eg, bltbuf, bltpos, bltsz, pos);
++#if 0
++    } else if (info->pixel_format == GRUB_EFI_PIXEL_BIT_MASK) {
++        int y;
++        grub_pixel_info_t *pinfo = &eg->pixel_info;
++        const int maxpixels =
++            MIN(info->horizontal_resolution - pos->x, bltsz->x);
++
++        for (y = bltpos->y; y < bltpos->y + bltsz->y; y++, phys.y++) {
++            char raw_pixels[maxpixels * pinfo->depth_bytes];
++            char *fb = (char *)(unsigned long)eg->output_intf->mode->frame_buffer_base;
++            int x;
++
++            pixel = (void *)&bltbuf->pixbuf[y * bltbuf->width + bltpos->x];
++            fb += phys.y * pinfo->line_length + phys.x * pinfo->depth_bytes;
++
++            for (x = 0; x < maxpixels; x++) {
++                char depth_bytes = pinfo->depth_bytes;
++                char *raw_pixel = raw_pixels + x * depth_bytes;
++
++                int red, green, blue, color;
++                char *colorp;
++
++#if 0
++                red = pixel[x].bgrr.red & 0x3f;
++                green = pixel[x].bgrr.green & 0x3f;
++                blue = pixel[x].bgrr.blue & 0x3f;
++                red = red * ((1 << pinfo->red_size) - 1) / 0x3f;
++                green = green * ((1 << pinfo->green_size) - 1) / 0x3f;
++                blue = blue * ((1 << pinfo->blue_size) - 1) / 0x3f;
++#else
++                red = pixel[x].bgrr.red;
++                green = pixel[x].bgrr.green;
++                blue = pixel[x].bgrr.blue;
++
++                red >>= 8 - pinfo->red_size;
++                green >>= 8 - pinfo->green_size;
++                blue >>= 8 - pinfo->blue_size;
++#endif
++
++                color = (red << pinfo->red_pos) |
++                        (green << pinfo->green_pos) |
++                        (blue << pinfo->blue_pos);
++                colorp = (void *)&color;
++                while (depth_bytes--)
++                    *raw_pixel++ = *colorp++;
++            }
++            memmove(fb, raw_pixels, maxpixels * pinfo->depth_bytes);
++        }
++#endif
++    } else {
++        int y;
++        grub_pixel_info_t *pinfo = &eg->pixel_info;
++        const int maxpixels =
++            MIN(info->horizontal_resolution - pos->x, bltsz->x);
++
++	//char *line = &fb[phys.y * bytestride + phys.x * sizeof(*pixel)];
++        for (y = bltpos->y; y < bltpos->y + bltsz->y; y++, phys.y++) {
++	    char raw_pixels[maxpixels * sizeof(*pixel)];
++            char *fb = (char *)(unsigned long)eg->output_intf->mode->frame_buffer_base;
++            int x;
++
++            pixel = (void *)&bltbuf->pixbuf[y * bltbuf->width + bltpos->x];
++            fb += phys.y * pinfo->line_length + phys.x * pinfo->depth_bytes;
++
++            if (info->pixel_format == GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR) {
++                memmove(raw_pixels, pixel, maxpixels * sizeof (*pixel));
++                continue;
++            } else if (info->pixel_format==GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR) {
++                grub_efi_graphics_output_pixel_t shadow[maxpixels];
++                for (x = 0; x < maxpixels; x++) {
++                    shadow[x].rgbr.red = pixel[x].bgrr.red;
++                    shadow[x].rgbr.green = pixel[x].bgrr.green;
++                    shadow[x].rgbr.blue = pixel[x].bgrr.blue;
++                }
++
++                memmove(raw_pixels, shadow, maxpixels * sizeof (*pixel));
++            } else if (info->pixel_format == GRUB_EFI_PIXEL_BIT_MASK) {
++                for (x = 0; x < maxpixels; x++) {
++                    char depth_bytes = pinfo->depth_bytes;
++                    char *raw_pixel = raw_pixels + x * depth_bytes;
++
++                    int red, green, blue, color;
++                    char *colorp;
++
++#if 0
++                    red = pixel[x].bgrr.red & 0x3f;
++                    green = pixel[x].bgrr.green & 0x3f;
++                    blue = pixel[x].bgrr.blue & 0x3f;
++                    red = red * ((1 << pinfo->red_size) - 1) / 0x3f;
++                    green = green * ((1 << pinfo->green_size) - 1) / 0x3f;
++                    blue = blue * ((1 << pinfo->blue_size) - 1) / 0x3f;
++#else
++                    red = pixel[x].bgrr.red;
++                    green = pixel[x].bgrr.green;
++                    blue = pixel[x].bgrr.blue;
++
++                    red >>= 8 - pinfo->red_size;
++                    green >>= 8 - pinfo->green_size;
++                    blue >>= 8 - pinfo->blue_size;
++#endif
++
++                    color = (red << pinfo->red_pos) |
++                            (green << pinfo->green_pos) |
++                            (blue << pinfo->blue_pos);
++                    colorp = (void *)&color;
++                    while (depth_bytes--)
++                        *raw_pixel++ = *colorp++;
++                }
++	    }
++	    memmove(fb, raw_pixels, maxpixels * pinfo->depth_bytes);
++        }
++    }
++}
++
++static void
++blt_to_screen(struct eg *eg, struct bltbuf *bltbuf)
++{
++#if 0
++    position_t addr = {0, 0};
++
++    position_to_phys(eg, &addr, &addr);
++
++    Call_Service_10(eg->output_intf->blt, eg->output_intf, bltbuf->pixbuf,
++                    GRUB_EFI_BLT_BUFFER_TO_VIDEO,
++                    0, 0,
++                    addr.x, addr.y,
++                    bltbuf->width, bltbuf->height,
++                    0);
++#else
++    const int pxlstride = eg->output_intf->mode->info->pixels_per_scan_line;
++    position_t bltsz, bltpos = { 0, 0 }, pos = { 0, 0 };
++    bltsz.x = MIN(bltbuf->width, pxlstride);
++    bltsz.y = MIN(bltbuf->height, eg->output_intf->mode->info->vertical_resolution);
++
++    blt_pos_to_screen_pos(eg, bltbuf, &bltpos, &bltsz, &pos);
++#endif
++}
++
++static void
++blt_to_screen_pos(struct eg *eg, struct bltbuf *bltbuf, position_t *pos)
++{
++    position_t bltpos = {0, 0};
++    position_t bltsz = { bltbuf->width, bltbuf->height };
++    blt_pos_to_screen_pos(eg, bltbuf, &bltpos, &bltsz, pos);
++}
++
++static int
++save_video_mode(struct eg *eg, struct video_mode *mode)
++{
++	grub_efi_status_t status;
++
++
++
++	status = Call_Service_4(eg->output_intf->query_mode, eg->output_intf,
++                                mode->number, &mode->size, &mode->info);
++	return status == GRUB_EFI_SUCCESS;
++}
++
++static void
++get_screen_size(struct graphics_backend *backend, position_t *size)
++{
++    struct eg *eg = backend->priv;
++    grub_efi_graphics_output_mode_information_t *info;
++
++    info = get_graphics_mode_info(eg);
++
++    size->x = info->horizontal_resolution;
++    size->y = info->vertical_resolution;
++}
++
++static void
++bltbuf_set_pixel(struct bltbuf *bltbuf, position_t *pos,
++                             grub_efi_graphics_output_pixel_t *pixel)
++{
++    if (pos->x < 0 || pos->x >= bltbuf->width)
++        return;
++    if (pos->x < 0 || pos->y >= bltbuf->height)
++        return;
++    grub_memmove(&bltbuf->pixbuf[pos->x + pos->y * bltbuf->width], pixel,
++            sizeof *pixel);
++}
++
++static void
++bltbuf_get_pixel(struct bltbuf *bltbuf, position_t *pos,
++                 grub_efi_graphics_output_pixel_t *pixel)
++{
++    if (bltbuf && pos->x < bltbuf->width && pos->y < bltbuf->height) {
++    	grub_memmove(pixel, &bltbuf->pixbuf[pos->x + pos->y * bltbuf->width],
++            sizeof *pixel);
++    } else {
++	pixel->bgrr.red = 0x00;
++	pixel->bgrr.green = 0x00;
++	pixel->bgrr.blue = 0x00;
++    }
++}
++
++static void
++bltbuf_set_pixel_rgb(struct bltbuf *bltbuf, position_t *pos,
++                     int red, int green, int blue)
++{
++    grub_efi_graphics_output_pixel_t pixel;
++    rgb_to_pixel(red, green, blue, &pixel);
++    bltbuf_set_pixel(bltbuf, pos, &pixel);
++}
++
++static void
++bltbuf_set_pixel_idx(struct eg *eg, struct bltbuf *bltbuf,
++                     position_t *pos, int idx)
++{
++    bltbuf_set_pixel(bltbuf, pos, &eg->palette[idx]);
++}
++
++static void
++bltbuf_get_pixel_idx(struct bltbuf *bltbuf, position_t *pos, int *idx)
++{
++    grub_efi_graphics_output_pixel_t pixel;
++
++    rgb_to_pixel(0, 0, 0, &pixel);
++    bltbuf_get_pixel(bltbuf, pos, &pixel);
++    for (*idx = 0; *idx < 16; (*idx)++) {
++        if (pixel_equal(cga_colors[*idx], pixel))
++            break;
++    }
++}
++
++static struct bltbuf *
++xpm_to_bltbuf(struct xpm *xpm)
++{
++    struct bltbuf *bltbuf = NULL;
++    position_t pos;
++
++    if (!(bltbuf = alloc_bltbuf(xpm->width, xpm->height)))
++        return NULL;
++
++    for (pos.y = 0; pos.y < xpm->height; pos.y++) {
++        for (pos.x = 0; pos.x < xpm->width; pos.x++) {
++            xpm_pixel_t xpl;
++            unsigned char idx;
++
++            idx = xpm_get_pixel_idx(xpm, pos.x, pos.y);
++            xpm_get_idx(xpm, idx, &xpl);
++
++            bltbuf_set_pixel_rgb(bltbuf, &pos, xpl.red, xpl.green, xpl.blue);
++        }
++    }
++
++    return bltbuf;
++}
++
++static void
++cursor(struct graphics_backend *backend, int set)
++{
++    struct eg *eg;
++    int ch, invert;
++    unsigned short *text;
++    position_t fpos, screensz;
++    int offset;
++
++    eg = backend->priv;
++
++    if (set && !graphics_get_scroll())
++        return;
++
++    text = graphics_get_text_buf();
++    graphics_get_font_position(&fpos);
++    graphics_get_screen_rowscols(&screensz);
++
++    offset = fpos.y * screensz.x + fpos.x;
++
++    if (set)
++        text[offset] |= 0x0200;
++
++    graphics_clbl(fpos.x, fpos.y, 1, 1, 1);
++
++    if (set)
++        text[offset] &= 0xfdff;
++}
++
++static void blank(struct graphics_backend *backend);
++
++static void
++reset_screen_geometry(struct graphics_backend *backend)
++{
++    struct eg *eg = backend->priv;
++    struct xpm *xpm = graphics_get_splash_xpm();
++    grub_efi_graphics_output_mode_information_t *info;
++    position_t screensz;
++
++    info = get_graphics_mode_info(eg);
++
++    if (xpm) {
++        eg->screen_pos.x =
++            (info->horizontal_resolution - xpm->width) / 2;
++        eg->screen_pos.y =
++            (info->vertical_resolution - xpm->height) / 2;
++    } else {
++        eg->screen_pos.x = 0;
++        eg->screen_pos.y = 0;
++    }
++
++    blank(backend);
++    graphics_get_screen_rowscols(&screensz);
++    graphics_clbl(0, 0, screensz.x, screensz.y, 0);
++    graphics_clbl(0, 0, screensz.x, screensz.y, 1);
++}
++
++static void
++setxy(struct graphics_backend *backend, position_t *pos)
++{
++    position_t fpos;
++
++    fpos.x = pos->x;
++    fpos.y = pos->y;
++    graphics_set_font_position(&fpos);
++}
++
++static void
++eg_getxy(struct graphics_backend *backend, position_t *pos)
++{
++    graphics_get_font_position(pos);
++}
++
++static void
++draw_pixel(struct graphics_backend *backend, position_t *pos, pixel_t *pixel)
++{
++    struct bltbuf *bltbuf = NULL;
++    grub_efi_graphics_output_pixel_t *eup = (grub_efi_graphics_output_pixel_t *)pixel;
++
++    bltbuf = alloc_bltbuf(1,1);
++    if (!bltbuf)
++        return;
++
++    grub_memmove(&bltbuf->pixbuf[0], eup, sizeof (*eup));
++
++    blt_to_screen_pos(backend->priv, bltbuf, pos);
++
++    grub_free(bltbuf);
++}
++
++static pixel_t *
++get_pixel_idx(struct graphics_backend *backend, int idx)
++{
++    static grub_efi_graphics_output_pixel_t pixel;
++    struct eg *eg = backend->priv;
++    if (idx < 0 || idx > MAX_PALETTE)
++        return NULL;
++    pixel.bgrr.red = eg->palette[idx].bgrr.red;
++    pixel.bgrr.green = eg->palette[idx].bgrr.green;
++    pixel.bgrr.blue = eg->palette[idx].bgrr.blue;
++    return (pixel_t *)&pixel;
++}
++
++static pixel_t *
++get_pixel_rgb(struct graphics_backend *backend, int red, int green, int blue)
++{
++    static grub_efi_graphics_output_pixel_t pixel;
++    rgb_to_pixel(red, green, blue, &pixel);
++    return &pixel;
++}
++
++static void
++set_palette(struct graphics_backend *backend, int idx,
++            int red, int green, int blue)
++{
++    grub_efi_graphics_output_pixel_t pixel;
++    struct eg *eg = backend->priv;
++
++    if (idx > MAX_PALETTE)
++        return;
++    rgb_to_pixel(red, green, blue, &pixel);
++    grub_memmove(&eg->palette[idx], &pixel, sizeof pixel);
++}
++
++static void
++blank(struct graphics_backend *backend)
++{
++    struct eg *eg = backend->priv;
++    struct bltbuf *bltbuf;
++    position_t pos = {0, 0};
++    grub_efi_graphics_output_mode_information_t *info;
++    grub_efi_uintn_t x, y, i, j;
++    unsigned char r = 0 ,g = 0;
++
++    info = get_graphics_mode_info(eg);
++    x = info->horizontal_resolution;
++    y = info->vertical_resolution;
++
++    if (x == 0 || y == 0)
++        return;
++
++    bltbuf = alloc_bltbuf(x, y);
++    for (j = 0; j < y; j++) {
++        if (debug_graphics && j % 16 == 0) {
++            g = g == 0 ? 7 : 0;
++            r = g == 0 ? 7 : 0;
++        }
++        for (i = 0; i < x; i++) {
++            if (debug_graphics && i % 16 == 0) {
++                g = g == 0 ? 7 : 0;
++                r = g == 0 ? 7 : 0;
++            }
++            pos.x = i;
++            pos.y = j;
++            bltbuf_set_pixel_rgb(bltbuf, &pos, r * 16, g * 16, 0x0);
++        }
++    }
++
++    blt_to_screen(eg, bltbuf);
++
++    grub_free(bltbuf);
++}
++
++
++static void
++draw_white_box(struct graphics_backend *backend)
++{
++    struct eg *eg = backend->priv;
++    struct bltbuf *bltbuf;
++    position_t pos = {0, 0}, bltpos = {0, 0}, bltsz = {100,100};
++
++    bltbuf = alloc_bltbuf(bltsz.x, bltsz.y);
++    for (pos.y = 0; pos.y < bltsz.y; pos.y++) {
++        for (pos.x = 0; pos.x < bltsz.x; pos.x++) {
++            bltbuf_set_pixel_rgb(bltbuf, &pos, 0xff, 0xff, 0xff);
++        }
++    }
++
++    blt_pos_to_screen_pos(eg, bltbuf, &bltpos, &bltsz, &pos);
++
++#if 0
++    Call_Service_10(eg->output_intf->blt, eg->output_intf, bltbuf->pixbuf,
++        GRUB_EFI_BLT_BUFFER_TO_VIDEO, 0, 0, 100, 100, x, y, 0);
++#endif
++
++    grub_free(bltbuf);
++}
++
++static void
++bltbuf_cp_bl(struct bltbuf *d, position_t dpos,
++             struct bltbuf *s, position_t spos)
++{
++    grub_efi_graphics_output_pixel_t *dp, *sp;
++
++    const int xavail = MAX(0, s ? s->width - spos.x : 0);
++    const int xtotal = MAX(0, d->width - dpos.x);
++    const int xcp = MAX(0, MIN(xtotal, xavail));
++    const int xcl = MAX(0, xtotal - xcp);
++
++    const int yavail = MAX(0, s ? s->height - spos.y : 0);
++    const int ytotal = MAX(0, d->height - dpos.y);
++    const int ycp = MAX(0, MIN(ytotal, yavail));
++    const int ycl = MAX(0, ytotal - ycp);
++
++    int y, x;
++
++    for (y = 0; y < ytotal; y++) {
++        dp = &d->pixbuf[(dpos.y + y) * d->width + dpos.x];
++
++        if (y < yavail) {
++            sp = &s->pixbuf[(spos.y + y) * s->width + spos.x];
++            memmove(dp, sp, xcp * sizeof (*dp));
++            dp = &d->pixbuf[(dpos.y + y) * d->width + dpos.x + xcp];
++            memset(dp, '\0', xcl * sizeof (*dp));
++        } else {
++            memset(dp, '\0', xtotal * sizeof (*dp));
++        }
++    }
++}
++
++/* copy a region the size of bltbuf from the background into bltbuf,
++ * starting at offset bgpos
++ */
++static void
++bltbuf_draw_bg(struct graphics_backend *backend, struct bltbuf *bltbuf,
++        position_t bgpos)
++{
++    struct eg *eg = backend->priv;
++    position_t blpos = { 0, 0 };
++
++    bltbuf_cp_bl(bltbuf, blpos, eg->background, bgpos);
++}
++
++static void
++dbg_dump_palette(struct graphics_backend *backend)
++{
++    struct eg *eg;
++    int i;
++    if (!backend || !backend->priv)
++        return;
++    eg = backend->priv;
++    if (!eg->palette)
++        return;
++}
++
++static int
++is_shadow_pixel(position_t screensz, position_t textpos, position_t bitpos,
++                position_t fontsz)
++{
++    unsigned short *text = graphics_get_text_buf();
++    const unsigned char *glyph;
++    position_t glyphpos = { textpos.x, textpos.y };
++    position_t glyphbit = { bitpos.x, bitpos.y };
++    unsigned short ch;
++
++    if (glyphbit.x == 0) {
++        glyphbit.x = fontsz.x;
++        glyphpos.x--;
++    }
++    if (glyphbit.y == 0) {
++        glyphbit.y = fontsz.y;
++        glyphpos.y--;
++    }
++    glyphbit.x--;
++    glyphbit.y--;
++
++    if (glyphpos.x < 0 || glyphpos.y < 0)
++        return 0;
++
++    ch = text[glyphpos.y * screensz.x + glyphpos.x] & 0xff;
++    glyph = font8x16 + (ch << 4);
++    return glyph[glyphbit.y] & (1 << ((fontsz.x-1) - glyphbit.x));
++}
++
++static void
++bltbuf_draw_character(struct graphics_backend *backend,
++        struct bltbuf *bltbuf,  /* the bltbuf to draw into */
++        position_t target,      /* the position in the bltbuf to draw to */
++        position_t fontsz,      /* the size of the font, in pixels */
++        position_t charpos,     /* the position of the character in the text
++                                   screen buffer */
++        position_t screensz,    /* the size of the screen in characters */
++        unsigned short ch       /* the character to draw, plus flags */
++    )
++{
++    struct eg *eg = backend->priv;
++    position_t blpos;
++    position_t glyphpos;
++
++    blpos.y = target.y;
++    for (glyphpos.y = 0; glyphpos.y < fontsz.y; glyphpos.y++, blpos.y++) {
++        blpos.x = target.x;
++        for (glyphpos.x = 0; glyphpos.x < fontsz.x; glyphpos.x++, blpos.x++) {
++            int invert = (ch & 0x0100) != 0;
++            int set = (ch & 0x0200) != 0;
++            const unsigned char *glyph = font8x16 + ((ch & 0xff) << 4);
++            int bit = glyph[glyphpos.y] & (1 << ((fontsz.x-1) - glyphpos.x));
++            int idx = -1;
++
++            if (!set) {
++                if (invert)
++                    idx = bit ? 0 : 15;
++                else if (bit)
++                    idx = 15;
++
++                if (idx == -1) {
++                    if (is_shadow_pixel(screensz, charpos, glyphpos, fontsz) ||
++                            !eg->background)
++                        idx = invert ? 15 : 0;
++                }
++            } else {
++                idx = bit ? 0 : 15;
++            }
++
++            if (idx != -1)
++                bltbuf_set_pixel_idx(eg, bltbuf, &blpos, idx);
++        }
++    }
++}
++
++static void
++bltbuf_draw_text(struct graphics_backend *backend,
++        struct bltbuf *bltbuf,  /* the buffer to draw into */
++        position_t screensz,    /* the size of the screen in characters */
++        position_t fontsz,      /* the size of the font in pixels */
++        position_t txtpos,      /* the position of the text on the screen
++                                   (in characters) */
++        position_t txtsz        /* the size of the block to fill in
++                                   (in characters) */
++    )
++{
++    struct eg *eg = backend->priv;
++    unsigned short *text = graphics_get_text_buf();
++    position_t charpos;
++
++    for (charpos.y = txtpos.y; charpos.y < txtpos.y + txtsz.y; charpos.y++) {
++        for (charpos.x = txtpos.x; charpos.x < txtpos.x + txtsz.x; charpos.x++){
++            int offset = charpos.y * screensz.x + charpos.x;
++            position_t blpos = { (charpos.x-txtpos.x)*fontsz.x,
++                                 (charpos.y-txtpos.y)*fontsz.y };
++
++            bltbuf_draw_character(backend, bltbuf, blpos, fontsz, charpos,
++                    screensz, text[offset]);
++        }
++    }
++}
++
++static void
++clbl(struct graphics_backend *backend, int col, int row, int width, int height,
++        int draw_text)
++{
++    struct eg *eg = backend->priv;
++    struct xpm *xpm;
++
++    struct bltbuf *bltbuf;
++    position_t fontsz, blpos, blsz, screensz;
++    unsigned short *text;
++
++//    blank(backend);
++//
++    xpm = graphics_get_splash_xpm();
++    if (xpm && !eg->background)
++        eg->background = xpm_to_bltbuf(xpm);
++
++    graphics_get_screen_rowscols(&screensz);
++    width = MIN(width, screensz.x - col);
++    height = MIN(height, screensz.y - row);
++    graphics_get_font_size(&fontsz);
++
++    blsz.x = width * fontsz.x;
++    blsz.y = height * fontsz.y;
++
++    bltbuf = alloc_bltbuf(blsz.x, blsz.y);
++    if (!bltbuf)
++        return;
++
++    blsz.x = col * fontsz.x;
++    blsz.y = row * fontsz.y;
++
++    text = graphics_get_text_buf();
++    bltbuf_draw_bg(backend, bltbuf, blsz);
++
++    if (draw_text) {
++        blsz.x = width;
++        blsz.y = height;
++        blpos.x = col;
++        blpos.y = row;
++
++        bltbuf_draw_text(backend, bltbuf, screensz, fontsz, blpos, blsz);
++    }
++
++    blpos.x = col * fontsz.x;
++    blpos.y = row * fontsz.y;
++
++    blt_to_screen_pos(eg, bltbuf, &blpos);
++}
++
++static void
++setup_cga_palette(struct eg *eg)
++{
++    rgb_to_pixel(0x00,0x00,0x00, &eg->palette[0]); //  0 Black
++    rgb_to_pixel(0x7f,0x00,0x00, &eg->palette[1]); //  1 Dark Red
++    rgb_to_pixel(0x00,0x7f,0x00, &eg->palette[2]); //  2 Dark Green
++    rgb_to_pixel(0x7f,0x7f,0x00, &eg->palette[3]); //  3 Dark Yellow
++    rgb_to_pixel(0x00,0x00,0x7f, &eg->palette[4]); //  4 Dark Blue
++    rgb_to_pixel(0x7f,0x00,0x7f, &eg->palette[5]); //  5 Dark Magenta
++    rgb_to_pixel(0x00,0x7f,0x7f, &eg->palette[6]); //  6 Dark Cyan
++    rgb_to_pixel(0xc0,0xc0,0xc0, &eg->palette[7]); //  7 Light Grey
++    rgb_to_pixel(0x7f,0x7f,0x7f, &eg->palette[8]); //  8 Dark Grey
++    rgb_to_pixel(0xff,0x00,0x00, &eg->palette[9]); //  9 Red
++    rgb_to_pixel(0x00,0xff,0x00, &eg->palette[10]); // 10 Green
++    rgb_to_pixel(0xff,0xff,0x00, &eg->palette[11]); // 11 Yellow
++    rgb_to_pixel(0x00,0x00,0xff, &eg->palette[12]); // 12 Blue
++    rgb_to_pixel(0xff,0x00,0xff, &eg->palette[13]); // 13 Magenta
++    rgb_to_pixel(0x00,0xff,0xff, &eg->palette[14]); // 14 Cyan
++    rgb_to_pixel(0xff,0xff,0xff, &eg->palette[15]); // 15 White
++    rgb_to_pixel(0xff,0xff,0xff, &eg->palette[16]); // 16 Also white ;)
++}
++
++static grub_efi_status_t
++set_video_mode(struct eg *eg, int mode)
++{
++	grub_efi_status_t efi_status;
++	efi_status = Call_Service_2(eg->output_intf->set_mode, eg->output_intf, mode);
++	return efi_status;
++}
++
++static void disable(struct graphics_backend *backend)
++{
++    struct eg *eg;
++
++    if (!backend)
++        return;
++
++    eg = backend->priv;
++    if (!eg || eg->current_mode != GRAPHICS)
++        return;
++
++#if 0
++    blank(backend);
++
++    set_video_mode(eg, eg->text_mode);
++    grub_efi_set_text_mode(1);
++#endif
++    eg->current_mode = TEXT;
++}
++
++static int
++fill_pixel_info (grub_pixel_info_t *pixel_info,
++		 grub_efi_graphics_output_mode_information_t *mode_info)
++{
++  if (mode_info->pixel_format == GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR)
++    {
++      pixel_info->depth_bits = 32;
++      pixel_info->depth_bytes = 4;
++      pixel_info->red_size = 8;
++      pixel_info->red_pos = 0;
++      pixel_info->green_size = 8;
++      pixel_info->green_pos = 8;
++      pixel_info->blue_size = 8;
++      pixel_info->blue_pos = 16;
++      pixel_info->reserved_size = 8;
++      pixel_info->reserved_pos = 24;
++      pixel_info->line_length = mode_info->pixels_per_scan_line * 4;
++    }
++  else if (mode_info->pixel_format == GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR)
++    {
++      pixel_info->depth_bits = 32;
++      pixel_info->depth_bytes = 4;
++      pixel_info->red_size = 8;
++      pixel_info->red_pos = 16;
++      pixel_info->green_size = 8;
++      pixel_info->green_pos = 8;
++      pixel_info->blue_size = 8;
++      pixel_info->blue_pos = 0;
++      pixel_info->reserved_size = 8;
++      pixel_info->reserved_pos = 24;
++      pixel_info->line_length = mode_info->pixels_per_scan_line * 4;
++    }
++  else if (mode_info->pixel_format == GRUB_EFI_PIXEL_BIT_MASK)
++    {
++      find_bits (mode_info->pixel_information.red_mask,
++		 &pixel_info->red_pos, &pixel_info->red_size);
++      find_bits (mode_info->pixel_information.green_mask,
++		 &pixel_info->green_pos, &pixel_info->green_size);
++      find_bits (mode_info->pixel_information.blue_mask,
++		 &pixel_info->blue_pos, &pixel_info->blue_size);
++      find_bits (mode_info->pixel_information.reserved_mask,
++		 &pixel_info->reserved_pos, &pixel_info->reserved_size);
++      pixel_info->depth_bits = pixel_info->red_size + pixel_info->green_size +
++	pixel_info->blue_size + pixel_info->reserved_size;
++      pixel_info->depth_bytes = (pixel_info->depth_bits + 7) / 8;
++      pixel_info->line_length = mode_info->pixels_per_scan_line *
++	pixel_info->depth_bytes;
++    }
++  else
++    return 0;
++  return 1;
++}
++
++/* 1 = prefer a
++ * 0 = prefer neither
++ * -1 = prefer b
++ */
++static int
++modecmp_helper(struct eg *eg, struct video_mode *amode, struct video_mode *bmode)
++{
++        grub_efi_graphics_output_mode_information_t *a = amode->info;
++        grub_efi_graphics_output_mode_information_t *b = bmode->info;
++
++        if (a != NULL && b == NULL)
++                return 1;
++        if (a == NULL && b == NULL)
++                return 0;
++        if (a == NULL && b != NULL)
++                return -1;
++
++#if 0
++	if (amode->number == eg->graphics_mode && bmode->number != eg->graphics_mode)
++		return 1;
++	if (amode->number == eg->graphics_mode && bmode->number == eg->graphics_mode)
++		return 0;
++	if (amode->number != eg->graphics_mode && bmode->number == eg->graphics_mode)
++		return -1;
++#endif
++
++
++	/* kernel doesn't deal with blt only modes, so prefer against them. */
++        if (a->pixel_format != GRUB_EFI_PIXEL_BLT_ONLY &&
++                        b->pixel_format == GRUB_EFI_PIXEL_BLT_ONLY)
++                return 1;
++        if (b->pixel_format != GRUB_EFI_PIXEL_BLT_ONLY &&
++                        a->pixel_format == GRUB_EFI_PIXEL_BLT_ONLY)
++                return -1;
++
++	/* XXX PJFIX there's something wrong with what we're passing to the
++	 * kernel for stride in the bgrr/rgbr modes, and I haven't figured out
++	 * just what yet, so for now, prefer bitmask modes.
++	 */
++	if (a->pixel_format == GRUB_EFI_PIXEL_BIT_MASK &&
++			b->pixel_format != GRUB_EFI_PIXEL_BIT_MASK)
++		return 1;
++	if (a->pixel_format != GRUB_EFI_PIXEL_BIT_MASK &&
++			b->pixel_format == GRUB_EFI_PIXEL_BIT_MASK)
++		return -1;
++
++        if (a->pixel_format == GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR &&
++			b->pixel_format != GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR)
++		return 1;
++        if (a->pixel_format != GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR &&
++			b->pixel_format == GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR)
++		return -1;
++
++        if (a->pixel_format == GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR &&
++			b->pixel_format != GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR)
++		return 1;
++        if (a->pixel_format != GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR &&
++			b->pixel_format == GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR)
++		return -1;
++
++        if (a->horizontal_resolution > b->horizontal_resolution &&
++                        a->vertical_resolution > b->vertical_resolution)
++                return 1;
++        if (a->horizontal_resolution < b->horizontal_resolution &&
++                        a->vertical_resolution < b->vertical_resolution)
++                return -1;
++        return 0;
++}
++
++static int
++modecmp(struct eg *eg, struct video_mode *amode, struct video_mode *bmode)
++{
++        int rc;
++#if 0
++        grub_efi_graphics_output_mode_information_t *a = amode->info;
++        grub_efi_graphics_output_mode_information_t *b = bmode->info;
++#endif
++        rc = modecmp_helper(eg, amode, bmode);
++#if 0
++        grub_printf("comparing nodes:\n");
++        print_mode_info(amode);
++        print_mode_info(bmode);
++        if (rc > 0)
++                grub_printf("result: a > b\n");
++        else if (rc < 0)
++                grub_printf("result: a < b\n");
++        else
++                grub_printf("result: a == b\n");
++
++        //dbgdelay(__FILE__, __LINE__);
++#endif
++        return rc;
++}
++
++static void
++modeswap(struct video_mode *amode, struct video_mode *bmode)
++{
++        struct video_mode tmp;
++
++        memcpy(&tmp, amode, sizeof (tmp));
++        memcpy(amode, bmode, sizeof (tmp));
++        memcpy(bmode, &tmp, sizeof(tmp));
++}
++
++static void
++sort_modes(struct eg *eg, int p, int r)
++{
++	struct video_mode **modes = eg->modes;
++
++        int i, j;
++	for (i = 0; i < eg->max_mode; i++) {
++		for (j = i + 1; j < eg->max_mode; j++) {
++			if (modecmp(eg, modes[j], modes[i]) < 0)
++				modeswap(modes[j], modes[i]);
++		}
++	}
++}
++
++static int
++try_enable(struct graphics_backend *backend)
++{
++    struct eg *eg = backend->priv;
++    grub_efi_status_t efi_status;
++    int i;
++
++    if (eg->text_mode == 0xffffffff) {
++        grub_efi_set_text_mode(1);
++        eg->text_mode = eg->output_intf->mode->mode;
++    }
++
++    if (eg->graphics_mode == 0xffffffff) {
++        grub_efi_graphics_output_mode_information_t *info;
++
++        if (!graphics_alloc_text_buf())
++            return 0;
++
++        grub_efi_set_text_mode(0);
++        eg->graphics_mode = eg->output_intf->mode->mode;
++        grub_efi_set_text_mode(1);
++#if 0
++	dprintf("graphics mode is %d\n", eg->graphics_mode);
++	/* this is okay here because we haven't sorted yet.*/
++	print_mode_info(eg->modes[eg->graphics_mode]);
++	dprintf("text mode is %d\n", eg->text_mode);
++	print_mode_info(eg->modes[eg->text_mode]);
++#endif
++
++        sort_modes(eg, 0, eg->max_mode-1);
++
++#if 0
++        for (i = eg->max_mode - 1; i >= 0; i--)
++            print_mode_info(eg->modes[i]);
++	dbgdelay(__FILE__, __LINE__);
++#endif
++
++	efi_status = GRUB_EFI_UNSUPPORTED;
++
++        for (i = eg->max_mode - 1; i >= 0; i--) {
++            if (!eg->modes[i])
++                continue;
++
++            info = eg->modes[i]->info;
++
++#if 0
++            if (info->pixel_format != GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR &&
++                 info->pixel_format != GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR &&
++                 info->pixel_format != GRUB_EFI_PIXEL_BIT_MASK) {
++                continue;
++            }
++#endif
++
++            grub_efi_set_text_mode(0);
++            efi_status = set_video_mode(eg, eg->modes[i]->number);
++            if (efi_status == GRUB_EFI_SUCCESS) {
++#if 0
++                grub_efi_set_text_mode(1);
++	        dprintf("switched to mode %d successfully\n",
++		        eg->modes[i]->number);
++	        dbgdelay(__FILE__,__LINE__);
++                grub_efi_set_text_mode(0);
++#endif
++                eg->graphics_mode = eg->modes[i]->number;
++	        fill_pixel_info(&eg->pixel_info, info);
++                break;
++            } else {
++#if 0
++                set_video_mode(eg, eg->text_mode);
++                grub_efi_set_text_mode(1);
++		dprintf("return code was %d\n", efi_status);
++#endif
++            }
++        }
++        if (efi_status != GRUB_EFI_SUCCESS) {
++#if 1
++            grub_efi_set_text_mode(1);
++            set_video_mode(eg, eg->text_mode);
++#endif
++            return 0;
++        }
++
++    }
++
++    eg->current_mode = GRAPHICS;
++    return 1;
++}
++
++static int
++enable(struct graphics_backend *backend)
++{
++    struct eg *eg = backend->priv;
++    int i;
++
++    if (eg) {
++        if (eg->current_mode == GRAPHICS) {
++            return 1;
++        }
++    } else {
++        grub_efi_status_t efi_status;
++
++        if (!(eg = grub_malloc(sizeof (*eg))))
++            return 0;
++
++        grub_memset(eg, '\0', sizeof (*eg));
++
++        eg->backend = backend;
++        eg->current_mode = TEXT;
++        eg->output_intf = grub_efi_locate_protocol(&graphics_output_guid, NULL);
++        if (!eg->output_intf)
++            goto fail;
++
++        eg->text_mode = eg->graphics_mode = 0xffffffff;
++
++        eg->max_mode = eg->output_intf->mode->max_mode;
++        eg->modes = grub_malloc(eg->max_mode * sizeof (void *));
++        if (!eg->modes)
++            goto fail;
++        memset(eg->modes, '\0', eg->max_mode * sizeof (void *));
++
++        for (i = 0; i < eg->max_mode; i++) {
++            eg->modes[i] = grub_malloc(sizeof eg->modes[0]);
++            if (!eg->modes[i])
++                goto fail;
++            memset(eg->modes[i], '\0', sizeof (eg->modes[0]));
++            eg->modes[i]->number = i;
++
++            efi_status = Call_Service_4(eg->output_intf->query_mode,
++                    eg->output_intf, i, &eg->modes[i]->size,
++                    &eg->modes[i]->info);
++	    if (efi_status == GRUB_EFI_NOT_STARTED) {
++		/* The firmware didn't turn on GRAPHICS_OUTPUT_PROTOCOL, so
++		 * try to do so ourselves. Thanks, Intel. */
++		set_video_mode(eg, eg->output_intf->mode->mode);
++            	efi_status = Call_Service_4(eg->output_intf->query_mode,
++                    eg->output_intf, i, &eg->modes[i]->size,
++                    &eg->modes[i]->info);
++	    }
++            if (efi_status != GRUB_EFI_SUCCESS) {
++                grub_free(eg->modes[i]);
++                eg->modes[i] = NULL;
++                //eg->max_mode = i;
++                break;
++            }
++        }
++
++        backend->priv = eg;
++        setup_cga_palette(eg);
++        for (i = 0; i < n_cga_colors; i++) {
++            eg->palette[i].bgrr.red = cga_colors[i].bgrr.red;
++            eg->palette[i].bgrr.green = cga_colors[i].bgrr.green;
++            eg->palette[i].bgrr.blue = cga_colors[i].bgrr.blue;
++        }
++    }
++
++    if (try_enable(backend)) {
++        reset_screen_geometry(backend);
++        return 1;
++    }
++
++fail:
++    backend->priv = NULL;
++    if (eg->modes) {
++        for (i = 0; i < eg->max_mode; i++) {
++            if (eg->modes[i])
++                grub_free(eg->modes[i]);
++        }
++        grub_free(eg->modes);
++    }
++    grub_free(eg);
++    return 0;
++}
++
++struct graphics_backend eg_backend = {
++    .name = "eg",
++    .enable = enable,
++    .disable = disable,
++    .set_kernel_params = set_kernel_params,
++    .clbl = clbl,
++    .set_palette = set_palette,
++    .get_pixel_idx = get_pixel_idx,
++    .get_pixel_rgb = get_pixel_rgb,
++    .draw_pixel = draw_pixel,
++    .reset_screen_geometry = reset_screen_geometry,
++    .get_screen_size = get_screen_size,
++    .getxy = eg_getxy,
++    .setxy = setxy,
++    .gotoxy = NULL,
++    .cursor = cursor,
++};
++
++#endif /* SUPPORT_GRAPHICS */
+diff --git a/efi/efimain.c b/efi/efimain.c
+new file mode 100644
+index 0000000..e1a1e66
+--- /dev/null
++++ b/efi/efimain.c
+@@ -0,0 +1,129 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2007 Intel Corp.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
++ *  MA  02110-1301, USA.
++ */
++
++#include <grub/efi/efi.h>
++#include <grub/efi/api.h>
++#include <grub/efi/misc.h>
++#include <grub/misc.h>
++
++#include <shared.h>
++#include <efistubs.h>
++
++#include "pxe.h"
++
++#define GRUB_SCRATCH_MEM_PAGES  (GRUB_SCRATCH_MEM_SIZE >> 12)
++
++/* Emulation requirements. */
++void *grub_scratch_mem = NULL;
++
++#define LOW_STACK_SIZE  0x100000
++#define LOW_STACK_PAGES (LOW_STACK_SIZE >> 12)
++static void *low_stack, *real_stack;
++
++extern int grub_test_pxe(grub_efi_loaded_image_t *loaded_image);
++
++static void
++real_main (void)
++{
++  grub_efi_loaded_image_t *loaded_image;
++  char *path_name = NULL;
++
++  loaded_image = grub_efi_get_loaded_image (grub_efi_image_handle);
++
++  path_name = grub_efi_pxe_get_config_path(loaded_image);
++
++  if (path_name) {
++    network_ready = 1;
++
++    grub_set_config_file (path_name);
++    grub_free (path_name);
++  } else {
++      grub_get_drive_partition_from_bdev_handle (loaded_image->device_handle,
++						 &boot_drive,
++						 &install_partition);
++      path_name = grub_efi_file_path_to_path_name (loaded_image->file_path);
++
++    if (path_name)
++      {
++        grub_set_config_file (path_name);
++        grub_free (path_name);
++      }
++
++    grub_load_saved_default (loaded_image->device_handle);
++  }
++
++  init_bios_info ();
++  while (console_getkey() < 0)
++    grub_efi_stall(1000);
++}
++
++grub_efi_status_t
++efi_main (grub_efi_handle_t image_handle, grub_efi_system_table_t *sys_tab)
++{
++  grub_efi_image_handle = image_handle;
++  grub_efi_system_table = sys_tab;
++  grub_efi_init ();
++
++  grub_scratch_mem = grub_efi_allocate_pages (0, GRUB_SCRATCH_MEM_PAGES);
++  if (! grub_scratch_mem)
++    {
++      grub_printf ("Failed to allocate scratch mem!\n");
++      return GRUB_EFI_OUT_OF_RESOURCES;
++    }
++
++  /* If current stack reside in memory region > 2G, switch stack to a
++     memory region < 2G */
++  if ((unsigned long)&image_handle >= 0x80000000UL)
++    {
++      low_stack = grub_efi_allocate_pages (0, LOW_STACK_PAGES);
++      if (! low_stack)
++	{
++	  grub_printf("Failed to allocate low memory stack!\n");
++	  return GRUB_EFI_OUT_OF_RESOURCES;
++	}
++
++#ifdef __x86_64__
++      asm volatile ("movq %%rsp, %0\n\tmovq %1, %%rsp\n"
++		    : "=&r" (real_stack) : "r" (low_stack+LOW_STACK_SIZE));
++#else
++      asm volatile ("movl %%esp, %0\n\tmovl %1, %%esp\n"
++		    : "=&r" (real_stack) : "r" (low_stack+LOW_STACK_SIZE));
++#endif
++    }
++
++  real_main ();
++
++  if (real_stack) {
++#ifdef __x86_64__
++    asm volatile ("movq %0, %%rsp\n" : : "r" (real_stack));
++#else
++    asm volatile ("movl %0, %%esp\n" : : "r" (real_stack));
++#endif
++
++    grub_efi_free_pages ((grub_efi_physical_address_t)(unsigned long) low_stack,
++			 LOW_STACK_PAGES);
++  }
++
++  grub_efi_free_pages ((grub_efi_physical_address_t)(unsigned long)grub_scratch_mem,
++		       GRUB_SCRATCH_MEM_PAGES);
++  grub_efi_fini ();
++
++  return GRUB_EFI_SUCCESS;
++}
+diff --git a/efi/efimisc.c b/efi/efimisc.c
+new file mode 100644
+index 0000000..480ba25
+--- /dev/null
++++ b/efi/efimisc.c
+@@ -0,0 +1,665 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2006  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
++ *  MA  02110-1301, USA.
++ */
++
++#include <config.h>
++#include <grub/efi/efi.h>
++#include <grub/efi/time.h>
++#include <grub/efi/misc.h>
++#include <grub/misc.h>
++
++#include <shared.h>
++
++unsigned long install_partition = 0x20000;
++unsigned long boot_drive = 0x80;
++int saved_entryno = 0;
++char version_string[] = VERSION;
++char config_file[128] = "/boot/grub/menu.lst";
++unsigned short io_map[IO_MAP_SIZE];
++struct apm_info apm_bios_info;
++/* The key map.  */
++unsigned short bios_key_map[KEY_MAP_SIZE + 1];
++unsigned short ascii_key_map[KEY_MAP_SIZE + 1];
++
++void
++grub_efi_init (void)
++{
++  /* First of all, initialize the console so that GRUB can display
++     messages.  */
++  grub_console_init ();
++  /* Initialize the memory management system.  */
++  grub_efi_mm_init ();
++  grub_efidisk_init ();
++}
++
++void
++grub_efi_fini (void)
++{
++  grub_efidisk_fini ();
++  grub_efi_mm_fini ();
++  grub_console_fini ();
++}
++
++void *
++grub_malloc (grub_size_t size)
++{
++  return grub_efi_allocate_pool (size);
++}
++
++void
++grub_free (void *p)
++{
++  grub_efi_free_pool (p);
++}
++
++char *
++grub_stpcpy (char *dest, const char *src)
++{
++  char *d = dest;
++  const char *s = src;
++
++  do
++    *d++ = *s;
++  while (*s++ != '\0');
++
++  return d - 1;
++}
++
++void
++grub_fatal (const char *fmt, ...)
++{
++  va_list ap;
++
++  va_start (ap, fmt);
++  grub_vsprintf (NULL, fmt, ap);
++  va_end (ap);
++
++  grub_exit ();
++}
++
++void
++grub_real_dprintf (const char *file, const int line, const char *condition,
++		   const char *fmt, ...)
++{
++  va_list args;
++
++  if (! debug)
++    return;
++
++  grub_printf ("%s:%d: ", file, line);
++  va_start (args, fmt);
++  grub_vsprintf (0, fmt, args);
++  va_end (args);
++}
++
++grub_size_t
++grub_utf8_char_len(grub_uint8_t ch)
++{
++  return ((0xe5000000 >> ((ch >> 3) & 0x1e)) & 3) + 1;
++}
++
++#define UTF8_SHIFT_AND_MASK(unicode, byte)  (unicode)<<=6; (unicode) |= (0x3f & (byte))
++
++/* convert utf8 to utf32 */
++grub_uint32_t
++grub_utf8_to_utf32(const grub_uint8_t *src, grub_size_t length)
++{
++  grub_uint32_t unicode;
++
++  switch (length)
++    {
++    case 1:
++      return src[0];
++    case 2:
++      unicode = src[0] & 0x1f;
++      UTF8_SHIFT_AND_MASK(unicode, src[1]);
++      return unicode;
++    case 3:
++      unicode = src[0] & 0x0f;
++      UTF8_SHIFT_AND_MASK(unicode, src[1]);
++      UTF8_SHIFT_AND_MASK(unicode, src[2]);
++      return unicode;
++    case 4:
++      unicode = src[0] & 0x07;
++      UTF8_SHIFT_AND_MASK(unicode, src[1]);
++      UTF8_SHIFT_AND_MASK(unicode, src[2]);
++      UTF8_SHIFT_AND_MASK(unicode, src[3]);
++      return unicode;
++    default:
++      return 0xffff;
++    }
++}
++
++/* convert utf8 to utf16 */
++void
++grub_utf8_to_utf16(const grub_uint8_t *src, grub_size_t srclen,
++		   grub_uint16_t *dst, grub_size_t dstlen)
++{
++  const grub_uint8_t *end = src + srclen;
++  grub_efi_char16_t *dstend = dst + dstlen;
++
++  while (src < end && dst < dstend)
++    {
++      grub_size_t len = grub_utf8_char_len(*src);
++      /* get the utf32 codepoint */
++      grub_uint32_t codepoint = grub_utf8_to_utf32(src, len);
++
++      /* convert that codepoint to utf16 codepoints */
++      if (codepoint <= 0xffff)
++	{
++	  /* it's a single utf16 character */
++	  *dst++ = (grub_efi_char16_t) codepoint;
++	}
++      else
++	{
++	  /* it's multiple utf16 characters, with surrogate pairs */
++	  codepoint = codepoint - 0x10000;
++	  *dst++ = (grub_efi_char16_t) ((codepoint >> 10) + 0xd800);
++	  *dst++ = (grub_efi_char16_t) ((codepoint & 0x3ff) + 0xdc00);
++	}
++
++	src += len;
++    }
++
++  if (dst < dstend)
++    *dst = 0;
++}
++
++/* Convert UTF-16 to UTF-8.  */
++grub_uint8_t *
++grub_utf16_to_utf8 (grub_uint8_t *dest, grub_uint16_t *src,
++		    grub_size_t size)
++{
++  grub_uint32_t code_high = 0;
++
++  while (size--)
++    {
++      grub_uint32_t code = *src++;
++
++      if (code_high)
++	{
++	  if (code >= 0xDC00 && code <= 0xDFFF)
++	    {
++	      /* Surrogate pair.  */
++	      code = ((code_high - 0xD800) << 12) + (code - 0xDC00) + 0x10000;
++
++	      *dest++ = (code >> 18) | 0xF0;
++	      *dest++ = ((code >> 12) & 0x3F) | 0x80;
++	      *dest++ = ((code >> 6) & 0x3F) | 0x80;
++	      *dest++ = (code & 0x3F) | 0x80;
++	    }
++	  else
++	    {
++	      /* Error...  */
++	      *dest++ = '?';
++	    }
++
++	  code_high = 0;
++	}
++      else
++	{
++	  if (code <= 0x007F)
++	    *dest++ = code;
++	  else if (code <= 0x07FF)
++	    {
++	      *dest++ = (code >> 6) | 0xC0;
++	      *dest++ = (code & 0x3F) | 0x80;
++	    }
++	  else if (code >= 0xD800 && code <= 0xDBFF)
++	    {
++	      code_high = code;
++	      continue;
++	    }
++	  else if (code >= 0xDC00 && code <= 0xDFFF)
++	    {
++	      /* Error... */
++	      *dest++ = '?';
++	    }
++	  else
++	    {
++	      *dest++ = (code >> 16) | 0xE0;
++	      *dest++ = ((code >> 12) & 0x3F) | 0x80;
++	      *dest++ = (code & 0x3F) | 0x80;
++	    }
++	}
++    }
++
++  return dest;
++}
++
++/* low-level timing info */
++int
++getrtsecs (void)
++{
++  return grub_get_rtc() / GRUB_TICKS_PER_SECOND;
++}
++
++void
++grub_reboot (void)
++{
++  grub_efi_runtime_services_t *r;
++
++  r = grub_efi_system_table->runtime_services;
++  Call_Service_4 (r->reset_system, GRUB_EFI_RESET_COLD,
++		  GRUB_EFI_SUCCESS, 0, NULL);
++  for (;;);
++}
++
++void
++grub_halt (int no_apm)
++{
++  grub_efi_runtime_services_t *r;
++
++  r = grub_efi_system_table->runtime_services;
++  Call_Service_4 (r->reset_system, GRUB_EFI_RESET_SHUTDOWN,
++		  GRUB_EFI_SUCCESS, 0, NULL);
++  for (;;);
++}
++
++void
++stop (void)
++{
++  grub_exit ();
++}
++
++/* booting a multiboot executable */
++void
++multi_boot (int start, int mb_info)
++{
++  stop ();
++}
++
++/* sets it to linear or wired A20 operation */
++void
++gateA20 (int linear)
++{
++}
++
++/* Set up the int15 handler.  */
++void
++set_int15_handler (void)
++{
++}
++
++/* Restore the original int15 handler.  */
++void
++unset_int15_handler (void)
++{
++}
++
++/* Copy MAP to the drive map and set up the int13 handler.  */
++void
++set_int13_handler (unsigned short *map)
++{
++}
++
++/* Get the ROM configuration table.  */
++unsigned long
++get_rom_config_table (void)
++{
++  return 0;
++}
++
++/* Get APM BIOS information.  */
++void
++get_apm_info (void)
++{
++  /* Nothing to do in the simulator.  */
++}
++
++void
++stop_floppy (void)
++{
++  /* NOTUSED */
++}
++
++char *
++grub_strndup (const char *s, int n)
++{
++  int l = grub_strnlen(s, n);
++  char *new = grub_malloc(l + 1);
++
++  if (new == NULL)
++    return NULL;
++
++  new[l] = '\0';
++  return grub_strncpy(new, s, l);
++}
++
++int
++safe_parse_maxulong (char **str_ptr, unsigned long *myulong_ptr)
++{
++  char *ptr = *str_ptr;
++  unsigned long myulong = 0;
++  unsigned int mult = 10, found = 0;
++
++  /*
++   *  Is this a hex number?
++   */
++  if (*ptr == '0' && tolower (*(ptr + 1)) == 'x')
++    {
++      ptr += 2;
++      mult = 16;
++    }
++
++  while (1)
++    {
++      /* A bit tricky. This below makes use of the equivalence:
++	 (A >= B && A <= C) <=> ((A - B) <= (C - B))
++	 when C > B and A is unsigned.  */
++      unsigned int digit;
++
++      digit = tolower (*ptr) - '0';
++      if (digit > 9)
++	{
++	  digit -= 'a' - '0';
++	  if (mult == 10 || digit > 5)
++	    break;
++	  digit += 10;
++	}
++
++      found = 1;
++      if (myulong > ((~0UL - digit) / mult))
++	{
++	  errnum = ERR_NUMBER_OVERFLOW;
++	  return 0;
++	}
++      myulong = (myulong * mult) + digit;
++      ptr++;
++    }
++
++  if (!found)
++    {
++      errnum = ERR_NUMBER_PARSING;
++      return 0;
++    }
++
++  *str_ptr = ptr;
++  *myulong_ptr = myulong;
++
++  return 1;
++}
++
++int
++currticks (void)
++{
++  return grub_get_rtc ();
++}
++
++static char *
++fix_path_name (char *path_name)
++{
++  char *p1, *p2;
++
++  p1 = path_name;
++  p2 = p1 + 1;
++  if (*p1 == '\\')
++    *p1 = '/';
++  while (*p1)
++    {
++      switch (*p2)
++	{
++	case '\0':
++	  *++p1 = *p2;
++	  break;
++	case '.':
++	  if (*p1 == '/' && *(p2+1) == '\\')
++	    p2 += 2;
++	  else
++	    *++p1=*p2++;
++	  break;
++	case '\\':
++	  if (*p1 == '/')
++	    p2++;
++	  else
++	    *++p1 = '/';
++	  break;
++	default:
++	  *++p1=*p2++;
++	  break;
++	}
++    }
++  return path_name;
++}
++
++char *
++grub_efi_file_path_to_path_name (grub_efi_device_path_t *file_path)
++{
++  char *str;
++  grub_efi_uint32_t str_len = 16;
++  grub_efi_uint32_t str_pos = 0;
++
++  str = grub_malloc (str_len);
++  if (! str)
++    return NULL;
++  str[0] = '\0';
++
++  while (1)
++    {
++      grub_efi_uint8_t type = GRUB_EFI_DEVICE_PATH_TYPE (file_path);
++      grub_efi_uint8_t subtype = GRUB_EFI_DEVICE_PATH_SUBTYPE (file_path);
++      grub_efi_uint16_t len = GRUB_EFI_DEVICE_PATH_LENGTH (file_path);
++
++      switch (type)
++	{
++	case GRUB_EFI_MEDIA_DEVICE_PATH_TYPE:
++	  switch (subtype)
++	    {
++	    case GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE:
++	      {
++		grub_efi_file_path_device_path_t *fp;
++		grub_uint8_t buf[(len - 4) * 2 + 2];
++		grub_uint32_t path_name_len;
++		char *tmp_str;
++
++		fp = (grub_efi_file_path_device_path_t *) file_path;
++		*grub_utf16_to_utf8 (buf, fp->path_name,
++				     (len - 4) / sizeof (grub_efi_char16_t))
++		  = '\0';
++		path_name_len = strlen ((char *)buf) + 1;
++		if ((str_len - str_pos) <= path_name_len)
++		  {
++		    do
++		      str_len *= 2;
++		    while ((str_len - str_pos) <= path_name_len);
++		    tmp_str = grub_malloc (str_len);
++		    if (tmp_str == NULL)
++		      goto fail;
++		    grub_memmove (tmp_str, str, str_pos);
++		    grub_free (str);
++		    str = tmp_str;
++		  }
++		str[str_pos] = '\\';
++		strcpy (str + str_pos + 1, (char *)buf);
++		str_pos += path_name_len;
++	      }
++	      break;
++	    default:
++	      break;
++	    }
++	  break;
++	default:
++	  break;
++	}
++
++      if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (file_path))
++	break;
++
++      file_path = (grub_efi_device_path_t *) ((char *) file_path + len);
++    }
++  return fix_path_name (str);
++
++ fail:
++  grub_free (str);
++  return NULL;
++}
++
++#define DEFAULT_SAVED_DEFAULT_FILE_NAME		"grub.default"
++#define DEFAULT_CONFIG_FILE_NAME		"grub.conf"
++
++static char saved_default_file[128] = "/boot/grub/grub.default";
++
++void
++grub_set_config_file (char *path_name)
++{
++  char *dir_end;
++  grub_uint32_t path_name_len;
++
++  path_name_len = strlen (path_name);
++  if (path_name_len > 4
++      && path_name[path_name_len - 4] == '.'
++      && grub_tolower (path_name[path_name_len - 3]) == 'e'
++      && grub_tolower (path_name[path_name_len - 2]) == 'f'
++      && grub_tolower (path_name[path_name_len - 1]) == 'i')
++    {
++      /* Bigger than buffer of config_file */
++      if (path_name_len + 1 > 127)
++	return;
++      grub_memmove (config_file, path_name, path_name_len - 4);
++      grub_strcpy (config_file + path_name_len - 4, ".conf");
++      /* Bigger than buffer of default file */
++      if (path_name_len + 4 > 127)
++	return;
++      grub_memmove (saved_default_file, path_name, path_name_len - 4);
++      grub_strcpy (saved_default_file + path_name_len - 4, ".default");
++      return;
++    }
++  dir_end = grub_strrchr (path_name, '/');
++  if (! dir_end)
++    {
++      grub_strcpy (config_file, DEFAULT_CONFIG_FILE_NAME);
++      grub_strcpy (saved_default_file, DEFAULT_SAVED_DEFAULT_FILE_NAME);
++      return;
++    }
++  if (strlen(dir_end) == 1) {
++    path_name_len = dir_end + 1 - path_name;
++    if (path_name_len + sizeof (DEFAULT_CONFIG_FILE_NAME) > 128)
++      return;
++    grub_memmove (config_file, path_name, path_name_len);
++    grub_strcpy (config_file + path_name_len, DEFAULT_CONFIG_FILE_NAME);
++  } else {
++    grub_memmove (config_file, path_name, path_name_len+1);
++  }
++  if (path_name_len + sizeof (DEFAULT_SAVED_DEFAULT_FILE_NAME) > 128)
++    return;
++  path_name_len = dir_end + 1 - path_name;
++  grub_memmove (saved_default_file, path_name, path_name_len);
++  grub_strcpy (saved_default_file + path_name_len,
++	       DEFAULT_SAVED_DEFAULT_FILE_NAME);
++}
++
++grub_efi_guid_t simple_file_system_guid = GRUB_EFI_SIMPLE_FILE_SYSTEM_GUID;
++
++static grub_efi_file_t *
++simple_open_file(grub_efi_handle_t dev_handle,
++		 char *file_name,
++		 int for_write)
++{
++  grub_efi_simple_file_system_t *file_system;
++  grub_efi_file_t *root;
++  grub_efi_file_t *file = NULL;
++  grub_efi_status_t status;
++  grub_efi_char16_t *file_name_w = NULL;
++  grub_efi_char16_t *chp_w;
++  grub_efi_uint64_t open_mode;
++
++  file_system = grub_efi_open_protocol (dev_handle,
++					&simple_file_system_guid,
++					GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
++  if (! file_system)
++    return NULL;
++  status = Call_Service_2 (file_system->open_volume, file_system, &root);
++  if (status != GRUB_EFI_SUCCESS)
++    return NULL;
++  file_name_w = grub_malloc (2 * strlen(file_name) + 2);
++  if (! file_name_w)
++    goto done;
++  for (chp_w = file_name_w; *file_name; chp_w++, file_name++)
++    if (*file_name == '/')
++      *chp_w = '\\';
++    else
++      *chp_w = *file_name;
++  *chp_w = '\0';
++  open_mode = for_write ? GRUB_EFI_FILE_MODE_READ | GRUB_EFI_FILE_MODE_WRITE \
++    | GRUB_EFI_FILE_MODE_CREATE : GRUB_EFI_FILE_MODE_READ;
++  status = Call_Service_5 (root->open, root, &file, file_name_w,
++			   open_mode, 0);
++ done:
++  if (file_name_w)
++    grub_free (file_name_w);
++  Call_Service_1 (root->close, root);
++  return file;
++}
++
++void
++grub_load_saved_default (grub_efi_handle_t dev_handle)
++{
++  grub_efi_file_t *file;
++  char buf[16];
++  char *ptr = buf;
++  grub_efi_status_t status;
++  int val;
++  grub_efi_uintn_t buf_size = sizeof(buf);
++
++  file = simple_open_file (dev_handle, saved_default_file, 0);
++  if (! file)
++    return;
++  status = Call_Service_3 (file->read, file, &buf_size, buf);
++  if (status != GRUB_EFI_SUCCESS)
++    goto done;
++  if (buf_size >= sizeof(buf))
++    buf_size = sizeof(buf) - 1;
++  buf[buf_size] = '\0';
++  if (safe_parse_maxint (&ptr, &val))
++    saved_entryno = val;
++ done:
++  Call_Service_1 (file->close, file);
++}
++
++int
++grub_save_saved_default (int new_default)
++{
++  grub_efi_loaded_image_t *loaded_image;
++  grub_efi_file_t *file;
++  char buf[16];
++  grub_efi_status_t status;
++  grub_efi_uintn_t buf_size;
++  int ret = 0;
++
++  loaded_image = grub_efi_get_loaded_image (grub_efi_image_handle);
++  file = simple_open_file (loaded_image->device_handle,
++			   saved_default_file, 1);
++  if (! file)
++    {
++      errnum = ERR_FILE_NOT_FOUND;
++      return 1;
++    }
++  sprintf (buf, "%d", new_default);
++  buf_size = strlen (buf);
++  status = Call_Service_3 (file->write, file, &buf_size, buf);
++  if (status != GRUB_EFI_SUCCESS)
++    {
++      errnum = ERR_WRITE;
++      ret = 1;
++      goto done;
++    }
++ done:
++  Call_Service_1 (file->close, file);
++  return ret;
++}
+diff --git a/efi/efimm.c b/efi/efimm.c
+new file mode 100644
+index 0000000..c3cbfc4
+--- /dev/null
++++ b/efi/efimm.c
+@@ -0,0 +1,512 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2006  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
++ *  MA  02110-1301, USA.
++ */
++
++#include <config.h>
++#include <grub/misc.h>
++#include <grub/efi/api.h>
++#include <grub/efi/efi.h>
++#include <grub/efi/misc.h>
++
++#include <shared.h>
++
++#define NEXT_MEMORY_DESCRIPTOR(desc, size)	\
++  ((grub_efi_memory_descriptor_t *) ((char *) (desc) + (size)))
++
++#define BYTES_TO_PAGES(bytes)	((bytes) >> 12)
++#define PAGES_TO_BYTES(pages)	((pages) << 12)
++
++/* Global variables used to store memory map, its size, and the number of
++ * pages allocated for the buffer. */
++void *mmap_buf;
++grub_efi_uintn_t mmap_size;
++grub_efi_uintn_t mmap_pages;
++
++/* Maintain the list of allocated pages.  */
++struct allocated_page
++{
++  grub_efi_physical_address_t addr;
++  grub_efi_uint64_t num_pages;
++};
++
++#define ALLOCATED_PAGES_SIZE	0x1000
++#define MAX_ALLOCATED_PAGES	\
++  (ALLOCATED_PAGES_SIZE / sizeof (struct allocated_page))
++
++static struct allocated_page *allocated_pages = 0;
++
++/* The minimum and maximum heap size for GRUB itself.  */
++#define MIN_HEAP_SIZE	0x100000
++#define MAX_HEAP_SIZE	(16 * 0x100000)
++
++
++void *
++grub_efi_allocate_pool (grub_efi_uintn_t size)
++{
++  grub_efi_status_t status;
++  void *p;
++  grub_efi_boot_services_t *b;
++
++  b = grub_efi_system_table->boot_services;
++  status = Call_Service_3(b->allocate_pool, GRUB_EFI_LOADER_DATA, size, &p);
++  if (status != GRUB_EFI_SUCCESS)
++    return NULL;
++
++  return p;
++}
++
++void
++grub_efi_free_pool (void *buffer)
++{
++  grub_efi_boot_services_t *b;
++
++  b = grub_efi_system_table->boot_services;
++  Call_Service_1(b->free_pool, buffer);
++}
++
++void *
++grub_efi_allocate_anypages(grub_efi_uintn_t pages)
++{
++  grub_efi_boot_services_t *b;
++  grub_efi_status_t status;
++  grub_efi_physical_address_t address;
++
++  b = grub_efi_system_table->boot_services;
++  status = Call_Service_4 (b->allocate_pages,
++			    GRUB_EFI_ALLOCATE_ANY_PAGES,
++			    GRUB_EFI_LOADER_DATA,
++			    pages,
++			    &address);
++  if (status != GRUB_EFI_SUCCESS)
++  	return 0;
++
++  if (allocated_pages)
++     {
++       unsigned i;
++ 
++       for (i = 0; i < MAX_ALLOCATED_PAGES; i++)
++ 	if (allocated_pages[i].addr == 0)
++        {
++              allocated_pages[i].addr = address;
++              allocated_pages[i].num_pages = pages;
++              break;
++        }
++ 
++       if (i == MAX_ALLOCATED_PAGES)
++        {
++           grub_printf ("too many page allocations");
++           return NULL;
++        }
++     }
++ 
++  return (void *) ((grub_addr_t) address);
++
++}
++
++/* Allocate pages. Return the pointer to the first of allocated pages.  */
++void *
++grub_efi_allocate_pages (grub_efi_physical_address_t address,
++			 grub_efi_uintn_t pages)
++{
++  grub_efi_allocate_type_t type;
++  grub_efi_status_t status;
++  grub_efi_boot_services_t *b;
++
++  /* Limit the memory access to less than 2GB to avoid 64bit
++   * compatible problem of grub  */
++  if (address > 0x7fffffff)
++    return 0;
++
++  if (address == 0)
++    {
++      type = GRUB_EFI_ALLOCATE_MAX_ADDRESS;
++      address = 0x7fffffff;
++    }
++  else
++    type = GRUB_EFI_ALLOCATE_ADDRESS;
++
++  b = grub_efi_system_table->boot_services;
++  status = Call_Service_4 (b->allocate_pages, type,
++			   GRUB_EFI_LOADER_DATA, pages, &address);
++  if (status != GRUB_EFI_SUCCESS)
++    return 0;
++
++  if (address == 0)
++    {
++      /* Uggh, the address 0 was allocated... This is too annoying,
++	 so reallocate another one.  */
++      address = 0x7fffffff;
++      status = Call_Service_4 (b->allocate_pages,
++				type, GRUB_EFI_LOADER_DATA, pages, &address);
++      grub_efi_free_pages (0, pages);
++      if (status != GRUB_EFI_SUCCESS)
++	return 0;
++    }
++
++  if (allocated_pages)
++    {
++      unsigned i;
++
++      for (i = 0; i < MAX_ALLOCATED_PAGES; i++)
++	if (allocated_pages[i].addr == 0)
++	  {
++	    allocated_pages[i].addr = address;
++	    allocated_pages[i].num_pages = pages;
++	    break;
++	  }
++
++      if (i == MAX_ALLOCATED_PAGES)
++	{
++	  grub_printf ("too many page allocations");
++	  return NULL;
++	}
++    }
++
++  return (void *) ((grub_addr_t) address);
++}
++
++/* Free pages starting from ADDRESS.  */
++void
++grub_efi_free_pages (grub_efi_physical_address_t address,
++		     grub_efi_uintn_t pages)
++{
++  grub_efi_boot_services_t *b;
++
++  if (allocated_pages
++      && ((grub_efi_physical_address_t) ((grub_addr_t) allocated_pages)
++	  != address))
++    {
++      unsigned i;
++
++      for (i = 0; i < MAX_ALLOCATED_PAGES; i++)
++	if (allocated_pages[i].addr == address)
++	  {
++	    allocated_pages[i].addr = 0;
++	    break;
++	  }
++    }
++
++  b = grub_efi_system_table->boot_services;
++  Call_Service_2 (b->free_pages ,address, pages);
++}
++
++/* Get the memory map as defined in the EFI spec. Return 1 if successful,
++   return 0 if partial, or return -1 if an error occurs.
++
++   This function will allocate memory for (global) mmap_buf if there isn't
++   already a buffer allocated, and will free & reallocate if it needs to
++   be larger. */
++
++int
++grub_efi_get_memory_map (grub_efi_uintn_t *map_key,
++			 grub_efi_uintn_t *descriptor_size,
++			 grub_efi_uint32_t *descriptor_version)
++{
++  grub_efi_status_t status;
++  grub_efi_boot_services_t *b;
++  grub_efi_uintn_t key;
++  grub_efi_uint32_t version;
++  grub_efi_uintn_t tmp_mmap_size;
++
++  /* Allow some parameters to be missing.  */
++  if (! map_key)
++    map_key = &key;
++  if (! descriptor_version)
++    descriptor_version = &version;
++
++  while (1)
++    {
++      b = grub_efi_system_table->boot_services;
++      tmp_mmap_size = PAGES_TO_BYTES(mmap_pages);
++      status = Call_Service_5 (b->get_memory_map,
++			      &tmp_mmap_size, mmap_buf, map_key,
++			      descriptor_size, descriptor_version);
++      if (status == GRUB_EFI_SUCCESS)
++        {
++          mmap_size = tmp_mmap_size;
++          return 1;
++        }
++      else if (status != GRUB_EFI_BUFFER_TOO_SMALL)
++        return -1;
++
++      /* we need a larger buffer */
++      if (mmap_buf)
++        grub_efi_free_pages ((grub_addr_t) mmap_buf, mmap_pages);
++
++      /* get 1 more page than we need, just in case */
++      mmap_pages = BYTES_TO_PAGES(tmp_mmap_size + 4095) + 1;
++      mmap_buf = grub_efi_allocate_pages (0, mmap_pages);
++      if (! mmap_buf)
++        {
++          mmap_pages = 0;
++          grub_printf ("cannot allocate memory for memory map");
++          return -1;
++        }
++    }
++}
++
++#define MMAR_DESC_LENGTH	20
++
++/*
++ * Add a memory region to the kernel e820 map.
++ *
++ * Convert EFI memory map to E820 map for the operating system
++ * This code is based on a Linux kernel patch submitted by Edgar Hucek 
++ */
++static void
++add_memory_region (struct e820_entry *e820_map,
++		   int *e820_nr_map,
++		   unsigned long long start,
++		   unsigned long long size,
++		   unsigned int type)
++{
++  int x = *e820_nr_map;
++  static unsigned long long estart = 0ULL;
++  static unsigned long esize = 0L;
++  static unsigned int etype = -1;
++  static int merge = 0;
++
++  /* merge adjacent regions of same type */
++  if ((x > 0) && e820_map[x-1].addr + e820_map[x-1].size == start
++      && e820_map[x-1].type == type)
++    {
++      e820_map[x-1].size += size;
++      estart = e820_map[x-1].addr;
++      esize  = e820_map[x-1].size;
++      etype  = e820_map[x-1].type;
++      merge++;
++      return;
++    }
++
++    /* fill up to E820_MAX */
++    if ( x < E820_MAX )
++    {
++      e820_map[x].addr = start;
++      e820_map[x].size = size;
++      e820_map[x].type = type;
++      (*e820_nr_map)++;
++      merge=0;
++      return;
++    }
++
++    /* different type means another region didn't fit */
++    /* or same type, but there's a hole */
++    if (etype != type || (estart + esize) != start)
++    {
++      merge = 0;
++      estart = start;
++      esize = size;
++      etype = type;
++      return;
++    }
++
++    /* same type and no hole, merge it */
++    estart += esize;
++    esize += size;
++    merge++;
++}
++
++/*
++ * Make a e820 memory map
++ */
++void
++e820_map_from_efi_map (struct e820_entry *e820_map,
++		       int *e820_nr_map,
++		       grub_efi_memory_descriptor_t *memory_map,
++		       grub_efi_uintn_t desc_size,
++		       grub_efi_uintn_t memory_map_size)
++{
++  grub_efi_memory_descriptor_t *desc;
++  unsigned long long start = 0;
++  unsigned long long end = 0;
++  unsigned long long size = 0;
++  grub_efi_memory_descriptor_t *memory_map_end;
++
++  memory_map_end = NEXT_MEMORY_DESCRIPTOR (memory_map, memory_map_size);
++  *e820_nr_map = 0;
++  for (desc = memory_map;
++       desc < memory_map_end;
++       desc = NEXT_MEMORY_DESCRIPTOR (desc, desc_size))
++    {
++      switch (desc->type)
++	{
++	case GRUB_EFI_ACPI_RECLAIM_MEMORY:
++	  add_memory_region (e820_map, e820_nr_map,
++			     desc->physical_start, desc->num_pages << 12,
++			     E820_ACPI);
++	  break;
++	case GRUB_EFI_RUNTIME_SERVICES_CODE:
++	case GRUB_EFI_RUNTIME_SERVICES_DATA:
++	case GRUB_EFI_RESERVED_MEMORY_TYPE:
++	case GRUB_EFI_MEMORY_MAPPED_IO:
++	case GRUB_EFI_MEMORY_MAPPED_IO_PORT_SPACE:
++	case GRUB_EFI_UNUSABLE_MEMORY:
++	case GRUB_EFI_PAL_CODE:
++	  add_memory_region (e820_map, e820_nr_map,
++			     desc->physical_start, desc->num_pages << 12,
++			     E820_RESERVED);
++	  break;
++	case GRUB_EFI_LOADER_CODE:
++	case GRUB_EFI_LOADER_DATA:
++	case GRUB_EFI_BOOT_SERVICES_CODE:
++	case GRUB_EFI_BOOT_SERVICES_DATA:
++	case GRUB_EFI_CONVENTIONAL_MEMORY:
++	  start = desc->physical_start;
++	  size = desc->num_pages << 12;
++	  end = start + size;
++	  if (start < 0x100000ULL && end > 0xA0000ULL)
++	    {
++	      if (start < 0xA0000ULL)
++		add_memory_region (e820_map, e820_nr_map,
++				   start, 0xA0000ULL-start,
++				   E820_RAM);
++	      if (end <= 0x100000ULL)
++		continue;
++	      start = 0x100000ULL;
++	      size = end - start;
++	    }
++	  add_memory_region (e820_map, e820_nr_map,
++			     start, size, E820_RAM);
++	  break;
++	case GRUB_EFI_ACPI_MEMORY_NVS:
++	  add_memory_region (e820_map, e820_nr_map,
++			     desc->physical_start, desc->num_pages << 12,
++			     E820_NVS);
++	  break;
++	}
++    }
++}
++
++static void
++update_e820_map (struct e820_entry *e820_map,
++		 int *e820_nr_map)
++{
++  grub_efi_uintn_t desc_size;
++
++  if (grub_efi_get_memory_map (0, &desc_size, 0) < 0)
++    {
++      grub_printf ("cannot get memory map");
++      return;
++    }
++
++  e820_map_from_efi_map (e820_map, e820_nr_map,
++			 mmap_buf, desc_size, mmap_size);
++}
++
++/* Simulated memory sizes. */
++#define EXTENDED_MEMSIZE (3 * 1024 * 1024)	/* 3MB */
++#define CONVENTIONAL_MEMSIZE (640 * 1024)	/* 640kB */
++
++int
++get_code_end (void)
++{
++  /* Just return a little area for simulation. */
++  return BOOTSEC_LOCATION + (60 * 1024);
++}
++
++/* memory probe routines */
++int
++get_memsize (int type)
++{
++  if (! type)
++    return CONVENTIONAL_MEMSIZE >> 10;
++  else
++    return EXTENDED_MEMSIZE >> 10;
++}
++
++/* get_eisamemsize() :  return packed EISA memory map, lower 16 bits is
++ *		memory between 1M and 16M in 1K parts, upper 16 bits is
++ *		memory above 16M in 64K parts.  If error, return -1.
++ */
++int
++get_eisamemsize (void)
++{
++  return (EXTENDED_MEMSIZE >> 10);
++}
++
++static int grub_e820_nr_map;
++static struct e820_entry grub_e820_map[E820_MAX];
++
++/* Fetch the next entry in the memory map and return the continuation
++   value.  DESC is a pointer to the descriptor buffer, and CONT is the
++   previous continuation value (0 to get the first entry in the
++   map).  */
++int
++get_mmap_entry (struct mmar_desc *desc, int cont)
++{
++  if (cont < 0 || cont >= grub_e820_nr_map)
++    {
++      /* Should not happen.  */
++      desc->desc_len = 0;
++    }
++  else
++    {
++      struct e820_entry *entry;
++      /* Copy the entry.  */
++      desc->desc_len = MMAR_DESC_LENGTH;
++      entry = &grub_e820_map[cont++];
++      desc->addr = entry->addr;
++      desc->length = entry->size;
++      desc->type = entry->type;
++
++      /* If the next entry exists, return the index.  */
++      if (cont < grub_e820_nr_map)
++	return cont;
++    }
++
++  return 0;
++}
++
++void
++grub_efi_mm_init (void)
++{
++  /* First of all, allocate pages to maintain allocations.  */
++  allocated_pages
++    = grub_efi_allocate_pages (0, BYTES_TO_PAGES (ALLOCATED_PAGES_SIZE));
++  if (! allocated_pages)
++    {
++      grub_printf ("cannot allocate memory");
++      return;
++    }
++
++  grub_memset (allocated_pages, 0, ALLOCATED_PAGES_SIZE);
++
++  update_e820_map (grub_e820_map, &grub_e820_nr_map);
++}
++
++void
++grub_efi_mm_fini (void)
++{
++  if (allocated_pages)
++    {
++      unsigned i;
++
++      for (i = 0; i < MAX_ALLOCATED_PAGES; i++)
++	{
++	  struct allocated_page *p;
++
++	  p = allocated_pages + i;
++	  if (p->addr != 0)
++	    grub_efi_free_pages ((grub_addr_t) p->addr, p->num_pages);
++	}
++
++      grub_efi_free_pages ((grub_addr_t) allocated_pages,
++			   BYTES_TO_PAGES (ALLOCATED_PAGES_SIZE));
++    }
++}
+diff --git a/efi/efinic.c b/efi/efinic.c
+new file mode 100644
+index 0000000..e69de29
+diff --git a/efi/efiserial.c b/efi/efiserial.c
+new file mode 100644
+index 0000000..32898a9
+--- /dev/null
++++ b/efi/efiserial.c
+@@ -0,0 +1,265 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2007 Intel Corp.
++ *
++ *  GRUB is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with GRUB; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifdef SUPPORT_SERIAL
++
++#include <grub/types.h>
++#include <grub/misc.h>
++#include <grub/efi/api.h>
++#include <grub/efi/efi.h>
++#include <grub/efi/misc.h>
++
++#include <shared.h>
++#include <serial.h>
++#include <term.h>
++
++struct grub_efiserial_data
++{
++  grub_efi_handle_t handle;
++  grub_efi_serial_io_t *serial_io;
++  struct grub_efiserial_data *next;
++};
++
++/* GUIDs.  */
++static grub_efi_guid_t serial_io_guid = GRUB_EFI_SERIAL_IO_GUID;
++
++static grub_efi_serial_io_t *serial_device = NULL;
++
++static struct grub_efiserial_data *
++make_devices (void)
++{
++  grub_efi_uintn_t num_handles;
++  grub_efi_handle_t *handles;
++  grub_efi_handle_t *handle;
++  struct grub_efiserial_data *devices = 0;
++
++  /* Find handles which support the serial io interface.  */
++  handles = grub_efi_locate_handle (GRUB_EFI_BY_PROTOCOL, &serial_io_guid,
++				    0, &num_handles);
++  if (! handles)
++    return 0;
++
++  /* Make a linked list of devices.  */
++  for (handle = handles; num_handles--; handle++)
++    {
++      struct grub_efiserial_data *s;
++      grub_efi_serial_io_t *sio;
++
++      sio = grub_efi_open_protocol (*handle, &serial_io_guid,
++				    GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
++      if (! sio)
++	/* This should not happen... Why?  */
++	continue;
++
++      s = grub_malloc (sizeof (*s));
++      if (! s)
++	{
++	  /* Uggh.  */
++	  grub_free (handles);
++	  return 0;
++	}
++
++      s->handle = *handle;
++      s->serial_io = sio;
++      s->next = devices;
++      devices = s;
++    }
++
++  grub_free (handles);
++
++  return devices;
++}
++
++static void
++free_devices (struct grub_efiserial_data *devices)
++{
++  struct grub_efiserial_data *p, *q;
++
++  for (p = devices; p; p = q)
++    {
++      q = p->next;
++      grub_free (p);
++    }
++}
++
++static struct grub_efiserial_data *
++get_device (struct grub_efiserial_data *devices, int num)
++{
++  struct grub_efiserial_data *s;
++
++  for (s = devices; s && num; s = s->next, num--)
++    ;
++
++  if (num == 0)
++    return s;
++
++  return 0;
++}
++
++/* Fetch a key from a serial device.  */
++int
++serial_hw_fetch (void)
++{
++  grub_efi_status_t status;
++  char buf[1];
++  grub_efi_uintn_t buf_siz = sizeof (buf);
++  grub_efi_uint32_t control;
++
++  if (! serial_device)
++    return -1;
++
++  status = Call_Service_2 (serial_device->get_control_bits, serial_device, &control);
++  if (status != GRUB_EFI_SUCCESS)
++    return -1;
++  if (control & GRUB_EFI_SERIAL_INPUT_BUFFER_EMPTY)
++    return -1;
++  status = Call_Service_3 (serial_device->read, serial_device, &buf_siz, buf);
++  if (status != GRUB_EFI_SUCCESS)
++    return -1;
++
++  return buf[0];
++}
++
++/* Put a character to a serial device.  */
++void
++serial_hw_put (int c)
++{
++  grub_efi_status_t status;
++  char ch = c;
++  grub_efi_uintn_t buf_size = sizeof (ch);
++
++  if (! serial_device)
++    return;
++
++  status = Call_Service_3 (serial_device->write, serial_device, &buf_size, &ch);
++}
++
++void
++serial_hw_delay (void)
++{
++}
++
++/* Get the port number of the unit UNIT, the port number is same as
++   serial port unit number in EFI. */
++unsigned short
++serial_hw_get_port (int unit)
++{
++  return unit;
++}
++
++static inline grub_efi_uint8_t
++efi_data_bits_from_8250_LCR (int word_len)
++{
++  switch (word_len & 0x3)
++    {
++    case 0:
++      return 5;
++    case 1:
++      return 6;
++    case 2:
++      return 7;
++    case 3:
++      return 8;
++    default:
++      return 0;
++    }
++}
++
++static inline grub_efi_stop_bits_t
++efi_stop_bits_from_8250_LCR (int stop_bit_len)
++{
++  switch (stop_bit_len & 0x4)
++    {
++    case 0x0:
++      return GRUB_EFI_ONE_STOP_BIT;
++    case 0x4:
++      return GRUB_EFI_TWO_STOP_BITS;
++    default:
++      return GRUB_EFI_DEFAULT_STOP_BITS;
++    }
++}
++
++static inline grub_efi_parity_t
++efi_parity_from_8250_LCR (int parity_8250)
++{
++  if (! (parity_8250 & 0x8))
++    return GRUB_EFI_NO_PARITY;
++
++  switch (parity_8250 & 0x30)
++    {
++    case 0x00:
++      return GRUB_EFI_ODD_PARITY;
++    case 0x10:
++      return GRUB_EFI_EVEN_PARITY;
++    case 0x20:
++      return GRUB_EFI_MARK_PARITY;
++    case 0x30:
++      return GRUB_EFI_SPACE_PARITY;
++    default:
++      return GRUB_EFI_DEFAULT_PARITY;
++    }
++}
++
++/* Initialize a serial device. In EFI, PORT is used to assign
++   serial port unit number.  */
++int
++serial_hw_init (unsigned short port, unsigned int speed,
++		int word_len, int parity, int stop_bit_len)
++{
++  grub_efi_serial_io_t *sio;
++  struct grub_efiserial_data *devices, *s;
++  grub_efi_parity_t efi_parity;
++  grub_efi_stop_bits_t efi_stop_bits;
++  grub_efi_uint8_t efi_data_bits;
++  grub_efi_status_t status;
++  int i;
++
++  devices = make_devices ();
++  s = get_device (devices, port);
++  if (!s)
++    return 0;
++  sio = s->serial_io;
++  free_devices (devices);
++
++  efi_data_bits = efi_data_bits_from_8250_LCR (word_len);
++  efi_parity = efi_parity_from_8250_LCR (parity);
++  efi_stop_bits = efi_stop_bits_from_8250_LCR (stop_bit_len);
++
++  status = Call_Service_1 (sio->reset, sio);
++  if (status != GRUB_EFI_SUCCESS)
++    return 0;
++
++  status = Call_Service_7 (sio->set_attributes, sio, speed, 0, 0,
++			   efi_parity, efi_data_bits, efi_stop_bits);
++  if (status != GRUB_EFI_SUCCESS)
++    return 0;
++
++  serial_device = sio;
++  /* Get rid of TERM_NEED_INIT from the serial terminal.  */
++  for (i = 0; term_table[i].name; i++)
++    if (grub_strcmp (term_table[i].name, "serial") == 0)
++      {
++	term_table[i].flags &= ~TERM_NEED_INIT;
++	break;
++      }
++
++  return 1;
++}
++
++#endif /* SUPPORT_SERIAL */
+diff --git a/efi/efitftp.c b/efi/efitftp.c
+new file mode 100644
+index 0000000..ba6918f
+--- /dev/null
++++ b/efi/efitftp.c
+@@ -0,0 +1,228 @@
++#include <grub/efi/efi.h>
++#include <grub/efi/api.h>
++#include <grub/efi/misc.h>
++#include <grub/misc.h>
++
++#include <shared.h>
++#include <filesys.h>
++#include "pxe.h"
++
++struct tftp_info tftp_info = {
++	.LoadedImage = NULL,
++	.Pxe = NULL,
++	.ServerIp = NULL,
++	.BasePath = NULL
++};
++
++/*
++ * CLIENT MAC ADDR: 00 15 17 4C E6 74
++ * CLIENT IP: 10.16.52.158  MASK: 255.255.255.0  DHCP IP: 10.16.52.16
++ * GATEWAY IP: 10.16.52.254
++ *
++ * TSize.Running LoadFile()
++ *
++ * TFTP.status: 5
++ * got to grub_efi_pxe_get_config_path
++ * SiAddr: 10.16.52.16
++ * BootpHwAddr: 00:15:17:4c:e6:74:00:00:00:00:00:00:00:00:00:00
++ * BootpSrvName:
++ * BootpBootFile: X86PC/UNDI/pxelinux/bootx64.efi
++ */
++
++static grub_efi_status_t tftp_get_file_size_defective_buffer_fallback(
++	char *Filename,
++	grub_efi_uintn_t *Size)
++{
++	EFI_PXE_BASE_CODE_TFTP_OPCODE OpCode = EFI_PXE_BASE_CODE_TFTP_READ_FILE;
++	char *Buffer = NULL;
++	grub_efi_boolean_t Overwrite = 0;
++	grub_efi_boolean_t DontUseBuffer = 0;
++	grub_efi_uint64_t BufferSize = 4096;
++	grub_efi_uintn_t BlockSize = 512;
++	grub_efi_status_t rc = GRUB_EFI_BUFFER_TOO_SMALL;
++	char *FullPath = NULL;
++
++	while (rc == GRUB_EFI_BUFFER_TOO_SMALL) {
++		char *NewBuffer;
++
++		if (Buffer) {
++			grub_free(Buffer);
++			Buffer = NULL;
++		}
++		BufferSize *= 2;
++		NewBuffer = grub_malloc(BufferSize);
++		if (!NewBuffer)
++			return GRUB_EFI_OUT_OF_RESOURCES;
++		Buffer = NewBuffer;
++
++		if (tftp_info.BasePath) {
++			int PathSize = 0;
++			PathSize = strlen(tftp_info.BasePath) + 2 +
++				   strlen(Filename);
++			FullPath = grub_malloc(PathSize);
++			grub_sprintf(FullPath, "%s/%s", tftp_info.BasePath,
++				     Filename);
++		} else {
++			FullPath = grub_malloc(strlen(Filename));
++			strcpy(FullPath, Filename);
++		}
++
++		rc = Call_Service_10(tftp_info.Pxe->Mtftp, tftp_info.Pxe,
++			OpCode, Buffer, Overwrite, &BufferSize, &BlockSize,
++			tftp_info.ServerIp, FullPath, NULL, DontUseBuffer);
++		if (rc == GRUB_EFI_SUCCESS || rc == GRUB_EFI_BUFFER_TOO_SMALL)
++			*Size = BufferSize;
++	}
++	grub_free(FullPath);
++	grub_free(Buffer);
++	return rc;
++}
++
++grub_efi_status_t tftp_get_file_size(
++	char *Filename,
++	grub_efi_uintn_t *Size)
++{
++	EFI_PXE_BASE_CODE_TFTP_OPCODE OpCode = EFI_PXE_BASE_CODE_TFTP_GET_FILE_SIZE;
++	char Buffer[8192];
++	grub_efi_boolean_t Overwrite = 0;
++	grub_efi_boolean_t DontUseBuffer = 0;
++	grub_efi_uint64_t BufferSize = 8192;
++	grub_efi_uintn_t BlockSize = 512;
++	grub_efi_status_t rc;
++	char *FullPath = NULL;
++
++	if (tftp_info.BasePath) {
++		int PathSize = 0;
++		PathSize = strlen(tftp_info.BasePath) + 2 + strlen(Filename);
++		FullPath = grub_malloc(PathSize);
++		grub_sprintf(FullPath, "%s/%s", tftp_info.BasePath, Filename);
++	} else {
++		FullPath = grub_malloc(strlen(Filename));
++		strcpy(FullPath, Filename);
++	}
++
++	rc = Call_Service_10(tftp_info.Pxe->Mtftp, tftp_info.Pxe, OpCode,
++		Buffer, Overwrite, &BufferSize, &BlockSize, tftp_info.ServerIp,
++		FullPath, NULL, DontUseBuffer);
++	if (rc == GRUB_EFI_BUFFER_TOO_SMALL)
++		rc = tftp_get_file_size_defective_buffer_fallback(Filename, Size);
++	if (rc == GRUB_EFI_SUCCESS)
++		*Size = BufferSize;
++	grub_free(FullPath);
++	return rc;
++}
++
++static grub_efi_status_t tftp_read_file(
++	char *Filename,
++	char *Buffer,
++	grub_efi_uint64_t BufferSize)
++{
++	EFI_PXE_BASE_CODE_TFTP_OPCODE OpCode = EFI_PXE_BASE_CODE_TFTP_READ_FILE;
++	grub_efi_boolean_t Overwrite = 0;
++	grub_efi_boolean_t DontUseBuffer = 0;
++	grub_efi_uintn_t BlockSize = 512;
++	grub_efi_status_t rc;
++	char *FullPath = NULL;
++
++	if (tftp_info.BasePath) {
++		int PathSize = 0;
++		PathSize = strlen(tftp_info.BasePath) + 2 + strlen(Filename);
++		FullPath = grub_malloc(PathSize);
++		grub_sprintf(FullPath, "%s/%s", tftp_info.BasePath, Filename);
++	} else {
++		FullPath = grub_malloc(strlen(Filename));
++		strcpy(FullPath, Filename);
++	}
++
++	rc = Call_Service_10(tftp_info.Pxe->Mtftp, tftp_info.Pxe, OpCode,
++		Buffer, Overwrite, &BufferSize, &BlockSize, tftp_info.ServerIp,
++		FullPath, NULL, DontUseBuffer);
++	grub_free(FullPath);
++	return rc;
++}
++
++int
++efi_tftp_mount (void)
++{
++	if (current_drive != NETWORK_DRIVE) {
++		return 0;
++	}
++	return 1;
++}
++
++int
++efi_tftp_read (char *addr, int size)
++{
++	int rc;
++
++	if (tftp_info.LastPath == NULL) {
++		grub_printf(" = 0 (no path known)\n");
++		return 0;
++	}
++	if (tftp_info.Buffer == NULL) {
++		grub_printf(" = 0 (no file open)\n");
++		return 0;
++	}
++	if (filemax == -1) {
++		grub_printf(" = 0 (file not found)\n");
++		return 0;
++	}
++	if (filepos == 0) {
++		rc = tftp_read_file(tftp_info.LastPath, tftp_info.Buffer,
++				    filemax);
++	}
++
++	grub_memmove(addr, tftp_info.Buffer+filepos, size);
++	filepos += size;
++
++	return size;
++}
++
++int
++efi_tftp_dir (char *dirname)
++{
++	int rc;
++	int ch;
++	grub_efi_uintn_t size;
++	int len;
++	char *name;
++
++	ch = nul_terminate(dirname);
++	len = strlen(dirname);
++
++	name = grub_malloc(len + 1);
++	grub_memmove(name, dirname, len);
++	name[len] = '\0';
++	dirname[len] = ch;
++
++#if 0
++	if (print_possibilities)
++		return 1;
++#endif
++
++	filemax = -1;
++
++	rc = tftp_get_file_size(name, &size);
++	if (rc == GRUB_EFI_SUCCESS) {
++		tftp_info.LastPath = grub_malloc(strlen(name) + 1);
++		sprintf(tftp_info.LastPath, "%s", name);
++		filemax = size;
++		filepos = 0;
++
++		tftp_info.Buffer = grub_malloc(filemax);
++
++		return 1;
++	}
++	return 0;
++}
++
++void
++efi_tftp_close (void)
++{
++	filepos = 0;
++	filemax = -1;
++	grub_free(tftp_info.LastPath);
++	tftp_info.LastPath = NULL;
++	grub_free(tftp_info.Buffer);
++	tftp_info.Buffer = NULL;
++}
+diff --git a/efi/efiuga.c b/efi/efiuga.c
+new file mode 100644
+index 0000000..b762eb8
+--- /dev/null
++++ b/efi/efiuga.c
+@@ -0,0 +1,946 @@
++/* efiuga.c - "univeral graphics adapter" support for GRUB/EFI */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright 2007 Red Hat, Inc.
++ *  Copyright (C) 2007 Intel Corp.
++ *  Copyright (C) 2001,2002  Red Hat, Inc.
++ *  Portions copyright (C) 2000  Conectiva, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifdef SUPPORT_GRAPHICS
++
++#include <grub/misc.h>
++#include <grub/types.h>
++#include <grub/cpu/linux.h>
++#include <grub/efi/api.h>
++#include <grub/efi/efi.h>
++#include <grub/misc.h>
++
++#include <term.h>
++#include <shared.h>
++#include <graphics.h>
++
++#include "graphics.h"
++#include "xpm.h"
++
++static grub_efi_guid_t draw_guid = GRUB_EFI_UGA_DRAW_GUID;
++
++#if 0
++#define UGA
++#include "ugadebug.h"
++#endif
++
++#ifndef MIN
++#define MIN(x,y) ( ((x) < (y)) ? (x) : (y))
++#endif
++#ifndef MAX
++#define MAX(x,y) ( ((x) < (y)) ? (y) : (x))
++#endif
++
++#define pixel_equal(x,y) ((x).red == (y).red && \
++                          (x).green == (y).green && \
++                          (x).blue == (y).blue)
++
++struct video_mode {
++    grub_efi_uint32_t horizontal_resolution;
++    grub_efi_uint32_t vertical_resolution;
++    grub_efi_uint32_t color_depth;
++    grub_efi_uint32_t refresh_rate;
++};
++
++static void
++xpnd_6_to_8(grub_efi_uga_pixel_t *pixel)
++{
++    if (!((pixel->red | pixel->green | pixel->blue) & 0xc0)) {
++        pixel->red <<= 2;
++        pixel->red |= ((pixel->red & 0xc0) >> 6);
++        pixel->red &= 0xff;
++        pixel->green <<= 2;
++        pixel->green |= ((pixel->green & 0xc0) >> 6);
++        pixel->green &= 0xff;
++        pixel->blue <<= 2;
++        pixel->blue |= ((pixel->blue & 0xc0) >> 6);
++        pixel->blue &= 0xff;
++    }
++}
++
++
++
++#define MAX_PALETTE 16
++struct uga {
++    grub_efi_uga_draw_t *draw_intf;
++    struct video_mode graphics_mode;
++    struct video_mode text_mode;
++    enum { TEXT, GRAPHICS } current_mode;
++
++    position_t screen_size;
++    position_t screen_pos;
++
++    struct bltbuf *background;
++
++    grub_efi_uga_pixel_t palette[MAX_PALETTE + 1];
++};
++
++#define RGB(r,g,b) { .red = r, .green = g, .blue = b }
++
++static grub_efi_uga_pixel_t cga_colors[] = {
++    RGB(0x00,0x00,0x00), //  0 Black
++    RGB(0x7f,0x00,0x00), //  1 Dark Red
++    RGB(0x00,0x7f,0x00), //  2 Dark Green
++    RGB(0x7f,0x7f,0x00), //  3 Dark Yellow
++    RGB(0x00,0x00,0x7f), //  4 Dark Blue
++    RGB(0x7f,0x00,0x7f), //  5 Dark Magenta
++    RGB(0x00,0x7f,0x7f), //  6 Dark Cyan
++    RGB(0xc0,0xc0,0xc0), //  7 Light Grey
++    RGB(0x7f,0x7f,0x7f), //  8 Dark Grey
++    RGB(0xff,0x00,0x00), //  9 Red
++    RGB(0x00,0xff,0x00), // 10 Green
++    RGB(0xff,0xff,0x00), // 11 Yellow
++    RGB(0x00,0x00,0xff), // 12 Blue
++    RGB(0xff,0x00,0xff), // 13 Magenta
++    RGB(0x00,0xff,0xff), // 14 Cyan
++    RGB(0xff,0xff,0xff), // 15 White
++    RGB(0xff,0xff,0xff), // 16 Also white ;)
++};
++
++static const int n_cga_colors = sizeof (cga_colors) / sizeof (cga_colors[0]);
++
++static void
++set_kernel_params(struct graphics_backend *backend,
++            struct linux_kernel_params *params)
++{
++    struct uga *uga;
++    
++    if (!backend || !backend->priv)
++        return;
++
++    uga = backend->priv;
++
++    params->lfb_width = uga->graphics_mode.horizontal_resolution;
++    params->lfb_height = uga->graphics_mode.vertical_resolution;
++    params->lfb_depth = 32;
++    params->red_mask_size = 8;
++    params->red_field_pos = 16;
++    params->green_mask_size = 8;
++    params->green_field_pos = 8;
++    params->blue_mask_size = 8;
++    params->blue_field_pos = 0;
++    params->reserved_mask_size = 8;
++    params->reserved_field_pos = 24;
++    params->have_vga = VIDEO_TYPE_EFI;
++}
++
++static void
++pixel_to_rgb(grub_efi_uga_pixel_t *pixel, int *red, int *green, int *blue)
++{
++    *red = pixel->red;
++    *green = pixel->green;
++    *blue = pixel->blue;
++}
++
++static void
++rgb_to_pixel(int red, int green, int blue, grub_efi_uga_pixel_t *pixel)
++{
++    pixel->red = red;
++    pixel->green = green;
++    pixel->blue = blue;
++}
++
++static void
++position_to_phys(struct uga *uga, position_t *virt, position_t *phys)
++{
++    phys->x = virt->x + uga->screen_pos.x;
++    phys->y = virt->y + uga->screen_pos.y;
++}
++
++static int
++abs_paddr(struct uga *uga, position_t *virt)
++{
++    position_t phys;
++    position_to_phys(uga, virt, &phys);
++    return phys.x + phys.y * uga->screen_size.x;
++}
++
++struct bltbuf {
++    grub_efi_uintn_t width;
++    grub_efi_uintn_t height;
++    grub_efi_uga_pixel_t pixbuf[];
++};
++
++static struct bltbuf *alloc_bltbuf(grub_efi_uintn_t width,
++					   grub_efi_uintn_t height)
++{
++	struct bltbuf *buf = NULL;
++	grub_efi_uintn_t pixbuf_size = width * height *
++		sizeof (grub_efi_uga_pixel_t);
++
++	if (!(buf = grub_malloc(sizeof(buf->width) + sizeof(buf->height) +
++				pixbuf_size)))
++		return NULL;
++
++	buf->width = width;
++	buf->height = height;
++	grub_memset(buf->pixbuf, '\0', pixbuf_size);
++	return buf;
++}
++
++static void
++blt_to_screen(struct uga *uga, struct bltbuf *bltbuf)
++{
++    position_t addr = {0, 0};
++
++    position_to_phys(uga, &addr, &addr);
++
++    Call_Service_10(uga->draw_intf->blt, uga->draw_intf, bltbuf->pixbuf,
++    		    EfiUgaBltBufferToVideo,
++                    0, 0,
++                    addr.x, addr.y,
++                    bltbuf->width, bltbuf->height,
++                    0);
++}
++
++static void
++blt_pos_to_screen_pos(struct uga *uga, struct bltbuf *bltbuf,
++                      position_t *bltpos, position_t *bltsz, position_t *pos)
++{
++    position_t phys;
++
++    position_to_phys(uga, pos, &phys);
++
++    Call_Service_10(uga->draw_intf->blt, uga->draw_intf, bltbuf->pixbuf,
++                    EfiUgaBltBufferToVideo,
++                    bltpos->x, bltpos->y,
++                    phys.x, phys.y,
++                    bltsz->x, bltsz->y,
++                    0);
++}
++
++static void
++blt_to_screen_pos(struct uga *uga, struct bltbuf *bltbuf, position_t *pos)
++{
++    position_t bltpos = {0, 0};
++    position_t bltsz = { bltbuf->width, bltbuf->height };
++    blt_pos_to_screen_pos(uga, bltbuf, &bltpos, &bltsz, pos);
++}
++
++static int
++blt_from_screen_pos(struct uga *uga, struct bltbuf **retbuf,
++    position_t *pos, position_t *size)
++{
++    struct bltbuf *bltbuf = NULL;
++    position_t phys;
++
++    if (!retbuf)
++        return 0;
++
++    if (*retbuf)
++        grub_free(*retbuf);
++
++    bltbuf = alloc_bltbuf(size->x, size->y);
++    if (!bltbuf)
++        return 0;
++
++    position_to_phys(uga, pos, &phys);
++
++    Call_Service_10(uga->draw_intf->blt, uga->draw_intf, bltbuf->pixbuf,
++            EfiUgaVideoToBltBuffer,
++            phys.x, phys.y,
++            0, 0,
++            size->x, size->y, 0);
++    *retbuf = bltbuf;
++    return 1;
++}
++
++static int
++save_video_mode(struct uga *uga, struct video_mode *mode)
++{
++	grub_efi_status_t status;
++
++	status = Call_Service_5(uga->draw_intf->get_mode, uga->draw_intf,
++		&mode->horizontal_resolution, &mode->vertical_resolution,
++		&mode->color_depth, &mode->refresh_rate);
++	return status == GRUB_EFI_SUCCESS;
++}
++
++static grub_efi_status_t
++set_video_mode(struct uga *uga, struct video_mode *mode)
++{
++    grub_efi_status_t status;
++
++    status = Call_Service_5(uga->draw_intf->set_mode, uga->draw_intf,
++                            mode->horizontal_resolution,
++                            mode->vertical_resolution,
++                            mode->color_depth,
++                            mode->refresh_rate);
++    return status;
++}
++
++static int
++cmp_video_modes(struct video_mode *vm0, struct video_mode *vm1)
++{
++    if (vm0->horizontal_resolution == vm1->horizontal_resolution &&
++            vm0->vertical_resolution == vm1->vertical_resolution)
++        return 0;
++    if (vm0->horizontal_resolution >= vm1->horizontal_resolution &&
++            vm0->vertical_resolution >= vm1->vertical_resolution)
++        return 1;
++    return -1;
++}
++
++static int
++blt_from_screen(struct uga *uga, struct bltbuf **retbuf)
++{
++    struct bltbuf *bltbuf = NULL;
++    position_t pos = {0 ,0};
++    position_t size = {
++            .x = uga->graphics_mode.horizontal_resolution,
++            .y = uga->graphics_mode.vertical_resolution
++        };
++
++    return blt_from_screen_pos(uga, retbuf, &pos, &size);
++}
++
++static void 
++bltbuf_set_pixel(struct bltbuf *bltbuf, position_t *pos,
++                             grub_efi_uga_pixel_t *pixel)
++{
++    if (pos->x < 0 || pos->x >= bltbuf->width)
++        return;
++    if (pos->x < 0 || pos->y >= bltbuf->height)
++        return;
++    grub_memmove(&bltbuf->pixbuf[pos->x + pos->y * bltbuf->width], pixel,
++            sizeof *pixel);
++}
++
++static void
++bltbuf_get_pixel(struct bltbuf *bltbuf, position_t *pos,
++                 grub_efi_uga_pixel_t *pixel)
++{
++    if (bltbuf && pos->x < bltbuf->width && pos->y < bltbuf->height) {
++    	grub_memmove(pixel, &bltbuf->pixbuf[pos->x + pos->y * bltbuf->width],
++            sizeof *pixel);
++    } else {
++	pixel->red = 0x00;
++	pixel->green = 0x00;
++	pixel->blue = 0x00;
++    }
++}
++
++static void
++bltbuf_set_pixel_rgb(struct bltbuf *bltbuf, position_t *pos,
++                     int red, int green, int blue)
++{
++    grub_efi_uga_pixel_t pixel;
++    rgb_to_pixel(red, green, blue, &pixel);
++    bltbuf_set_pixel(bltbuf, pos, &pixel);
++}
++
++static void
++bltbuf_set_pixel_idx(struct uga *uga, struct bltbuf *bltbuf,
++                     position_t *pos, int idx)
++{
++    bltbuf_set_pixel(bltbuf, pos, &uga->palette[idx]);
++}
++
++static void
++bltbuf_get_pixel_idx(struct bltbuf *bltbuf, position_t *pos, int *idx)
++{
++    grub_efi_uga_pixel_t pixel;
++    
++    rgb_to_pixel(0, 0, 0, &pixel);
++    bltbuf_get_pixel(bltbuf, pos, &pixel);
++    for (*idx = 0; *idx < 16; (*idx)++) {
++        if (pixel_equal(cga_colors[*idx], pixel))
++            break;
++    }
++}
++
++static struct bltbuf *
++xpm_to_bltbuf(struct xpm *xpm)
++{
++    struct bltbuf *bltbuf = NULL;
++    position_t pos;
++
++    if (!(bltbuf = alloc_bltbuf(xpm->width, xpm->height)))
++        return NULL;
++
++    for (pos.y = 0; pos.y < xpm->height; pos.y++) {
++        for (pos.x = 0; pos.x < xpm->width; pos.x++) {
++            xpm_pixel_t xpl;
++            unsigned char idx;
++        
++            idx = xpm_get_pixel_idx(xpm, pos.x, pos.y);
++            xpm_get_idx(xpm, idx, &xpl);
++
++            bltbuf_set_pixel_rgb(bltbuf, &pos, xpl.red, xpl.green, xpl.blue);
++        }
++    }
++
++    return bltbuf;
++}
++
++static void
++cursor(struct graphics_backend *backend, int set)
++{
++    struct uga *uga;
++    int ch, invert;
++    unsigned short *text;
++    position_t fpos, screensz;
++    int offset;
++    
++    uga = backend->priv;
++    
++    if (set && !graphics_get_scroll())
++        return;
++
++    text = graphics_get_text_buf();
++    graphics_get_font_position(&fpos);
++    graphics_get_screen_rowscols(&screensz);
++
++    offset = fpos.y * screensz.x + fpos.x;
++
++    if (set)
++        text[offset] |= 0x200;
++
++    graphics_clbl(fpos.x, fpos.y, 1, 1, 1);
++
++    if (set)
++        text[offset] &= 0xfdff;
++}
++
++static void blank(struct graphics_backend *backend);
++
++static void
++reset_screen_geometry(struct graphics_backend *backend)
++{
++    struct uga *uga = backend->priv;
++    struct xpm *xpm = graphics_get_splash_xpm();
++    position_t screensz = { .x = 640, .y = 480 };
++
++    if (xpm) {
++        screensz.x = xpm->width;
++        screensz.y = xpm->height;
++    }
++
++    uga->screen_pos.x =
++        (uga->graphics_mode.horizontal_resolution - screensz.x) / 2;
++    uga->screen_pos.y =
++        (uga->graphics_mode.vertical_resolution - screensz.y) / 2;
++
++    blank(backend);
++    graphics_get_screen_rowscols(&screensz);
++    graphics_clbl(0, 0, screensz.x, screensz.y, 0);
++    graphics_clbl(0, 0, screensz.x, screensz.y, 1);
++}
++
++static void
++get_screen_size(struct graphics_backend *backend, position_t *size)
++{
++    struct uga *uga = backend->priv;
++    size->x = uga->graphics_mode.horizontal_resolution;
++    size->y = uga->graphics_mode.vertical_resolution;
++}
++
++static void
++setxy(struct graphics_backend *backend, position_t *pos)
++{
++    position_t fpos;
++
++    fpos.x = pos->x;
++    fpos.y = pos->y;
++    graphics_set_font_position(&fpos);
++}
++
++static void
++uga_getxy(struct graphics_backend *backend, position_t *pos)
++{
++    graphics_get_font_position(pos);
++}
++
++static void
++draw_pixel(struct graphics_backend *backend, position_t *pos, pixel_t *pixel)
++{
++    struct bltbuf *bltbuf = NULL;
++    grub_efi_uga_pixel_t *eup = (grub_efi_uga_pixel_t *)pixel;
++
++    bltbuf = alloc_bltbuf(1,1);
++    if (!bltbuf)
++        return;
++
++    grub_memmove(&bltbuf->pixbuf[0], eup, sizeof (*eup));
++
++    blt_to_screen_pos(backend->priv, bltbuf, pos);
++
++    grub_free(bltbuf);
++}
++
++static pixel_t *
++get_pixel_idx(struct graphics_backend *backend, int idx)
++{
++    static grub_efi_uga_pixel_t pixel;
++    struct uga *uga = backend->priv;
++    if (idx < 0 || idx > MAX_PALETTE)
++        return NULL;
++    pixel.red = uga->palette[idx].red;
++    pixel.green = uga->palette[idx].green;
++    pixel.blue = uga->palette[idx].blue;
++    return (pixel_t *)&pixel;
++}
++
++static pixel_t *
++get_pixel_rgb(struct graphics_backend *backend, int red, int green, int blue)
++{
++    static grub_efi_uga_pixel_t pixel;
++    rgb_to_pixel(red, green, blue, &pixel);
++    return &pixel;
++}
++
++static void
++set_palette(struct graphics_backend *backend, int idx,
++            int red, int green, int blue)
++{
++    grub_efi_uga_pixel_t pixel;
++    struct uga *uga = backend->priv;
++
++    if (idx > MAX_PALETTE)
++        return;
++    rgb_to_pixel(red, green, blue, &pixel);
++    grub_memmove(&uga->palette[idx], &pixel, sizeof pixel);
++}
++
++static void
++blank(struct graphics_backend *backend)
++{
++    struct uga *uga = backend->priv;
++    struct bltbuf *bltbuf;
++    position_t pos = {0, 0};
++    grub_efi_uintn_t x, y, i, j;
++    unsigned char r = 0 ,g = 0;
++
++    x = uga->graphics_mode.horizontal_resolution;
++    y = uga->graphics_mode.vertical_resolution;
++
++    if (x == 0 || y == 0)
++        return;
++
++    bltbuf = alloc_bltbuf(x, y);
++    for (j = 0; j < y; j++) {
++        if (debug_graphics && j % 16 == 0) {
++            g = g == 0 ? 7 : 0;
++            r = g == 0 ? 7 : 0;
++        }
++        for (i = 0; i < x; i++) {
++            if (debug_graphics && i % 16 == 0) {
++                g = g == 0 ? 7 : 0;
++                r = g == 0 ? 7 : 0;
++            }
++            pos.x = i;
++            pos.y = j;
++            bltbuf_set_pixel_rgb(bltbuf, &pos, r * 16, g * 16, 0x0);
++        }
++    }
++
++    Call_Service_10(uga->draw_intf->blt, uga->draw_intf, bltbuf->pixbuf,
++        EfiUgaBltBufferToVideo, 0, 0, 0, 0, x, y, 0);
++
++    grub_free(bltbuf);
++}
++
++static void
++bltbuf_cp_bl(struct bltbuf *d, position_t dpos,
++             struct bltbuf *s, position_t spos)
++{
++    grub_efi_uga_pixel_t *dp, *sp;
++
++    const int xavail = MAX(0, s ? s->width - spos.x : 0);
++    const int xtotal = MAX(0, d->width - dpos.x);
++    const int xcp = MAX(0, MIN(xtotal, xavail));
++    const int xcl = MAX(0, xtotal - xcp);
++
++    const int yavail = MAX(0, s ? s->height - spos.y : 0);
++    const int ytotal = MAX(0, d->height - dpos.y);
++    const int ycp = MAX(0, MIN(ytotal, yavail));
++    const int ycl = MAX(0, ytotal - ycp);
++
++    int y, x;
++
++    for (y = 0; y < ytotal; y++) {
++        dp = &d->pixbuf[(dpos.y + y) * d->width + dpos.x];
++
++        if (y < yavail) {
++            sp = &s->pixbuf[(spos.y + y) * s->width + spos.x];
++            memmove(dp, sp, xcp * sizeof (*dp));
++            dp = &d->pixbuf[(dpos.y + y) * d->width + dpos.x + xcp];
++            memset(dp, '\0', xcl * sizeof (*dp));
++        } else {
++            memset(dp, '\0', xtotal * sizeof (*dp));
++        }
++    }
++}
++
++/* copy a region the size of bltbuf from the background into bltbuf,
++ * starting at offset bgpos
++ */
++static void
++bltbuf_draw_bg(struct graphics_backend *backend, struct bltbuf *bltbuf,
++        position_t bgpos)
++{
++    struct uga *uga = backend->priv;
++    position_t blpos = { 0, 0 };
++
++    bltbuf_cp_bl(bltbuf, blpos, uga->background, bgpos);
++}
++
++static void
++dbg_dump_palette(struct graphics_backend *backend)
++{
++    struct uga *uga;
++    int i;
++    if (!backend || !backend->priv)
++        return;
++    uga = backend->priv;
++    if (!uga->palette)
++        return;
++}
++
++static int
++is_shadow_pixel(position_t screensz, position_t textpos, position_t bitpos,
++                position_t fontsz)
++{
++    unsigned short *text = graphics_get_text_buf();
++    const unsigned char *glyph;
++    position_t glyphpos = { textpos.x, textpos.y };
++    position_t glyphbit = { bitpos.x, bitpos.y };
++    unsigned short ch;
++
++    if (glyphbit.x == 0) {
++        glyphbit.x = fontsz.x;
++        glyphpos.x--;
++    }
++    if (glyphbit.y == 0) {
++        glyphbit.y = fontsz.y;
++        glyphpos.y--;
++    }
++    glyphbit.x--;
++    glyphbit.y--;
++
++    if (glyphpos.x < 0 || glyphpos.y < 0)
++        return 0;
++        
++    ch = text[glyphpos.y * screensz.x + glyphpos.x] & 0xff;
++    glyph = font8x16 + (ch << 4);
++    return glyph[glyphbit.y] & (1 << ((fontsz.x-1) - glyphbit.x));
++}
++
++static void
++bltbuf_draw_character(struct graphics_backend *backend,
++        struct bltbuf *bltbuf,  /* the bltbuf to draw into */
++        position_t target,      /* the position in the bltbuf to draw to */
++        position_t fontsz,      /* the size of the font, in pixels */
++        position_t charpos,     /* the position of the character in the text
++                                   screen buffer */
++        position_t screensz,    /* the size of the screen in characters */
++        unsigned short ch       /* the character to draw, plus flags */
++    )
++{
++    struct uga *uga = backend->priv;
++    position_t blpos;
++    position_t glyphpos;
++
++    blpos.y = target.y;
++    for (glyphpos.y = 0; glyphpos.y < fontsz.y; glyphpos.y++, blpos.y++) {
++        blpos.x = target.x;
++        for (glyphpos.x = 0; glyphpos.x < fontsz.x; glyphpos.x++, blpos.x++) {
++            int invert = (ch & 0x0100) != 0;
++            int set = (ch & 0x0200) != 0;
++            const unsigned char *glyph = font8x16 + ((ch & 0xff) << 4);
++            int bit = glyph[glyphpos.y] & (1 << ((fontsz.x-1) - glyphpos.x));
++            int idx = -1;
++
++            if (!set) {
++                if (invert)
++                    idx = bit ? 0 : 15;
++                else if (bit)
++                    idx = 15;
++
++                if (idx == -1) {
++                    if (is_shadow_pixel(screensz, charpos, glyphpos, fontsz) ||
++                            !uga->background)
++                        idx = invert ? 15 : 0;
++                }
++            } else {
++                idx = bit ? 0 : 15;
++            }
++
++            if (idx != -1)
++                bltbuf_set_pixel_idx(uga, bltbuf, &blpos, idx);
++        }
++    }
++}
++
++static void
++bltbuf_draw_text(struct graphics_backend *backend,
++        struct bltbuf *bltbuf,  /* the buffer to draw into */
++        position_t screensz,    /* the size of the screen in characters */
++        position_t fontsz,      /* the size of the font in pixels */
++        position_t txtpos,      /* the position of the text on the screen
++                                   (in characters) */
++        position_t txtsz        /* the size of the block to fill in
++                                   (in characters) */
++    )
++{
++    struct uga *uga = backend->priv;
++    unsigned short *text = graphics_get_text_buf();
++    position_t charpos;
++
++    for (charpos.y = txtpos.y; charpos.y < txtpos.y + txtsz.y; charpos.y++) {
++        for (charpos.x = txtpos.x; charpos.x < txtpos.x + txtsz.x; charpos.x++){
++            int offset = charpos.y * screensz.x + charpos.x;
++            position_t blpos = { (charpos.x-txtpos.x)*fontsz.x,
++                                 (charpos.y-txtpos.y)*fontsz.y };
++
++            bltbuf_draw_character(backend, bltbuf, blpos, fontsz, charpos,
++                    screensz, text[offset]);
++        }
++    }
++}
++
++static void
++clbl(struct graphics_backend *backend, int col, int row, int width, int height,
++        int draw_text)
++{
++    struct uga *uga = backend->priv;
++    struct xpm *xpm;
++
++    struct bltbuf *bltbuf;
++    position_t fontsz, blpos, blsz, screensz;
++    unsigned short *text;
++
++//    blank(backend);
++//
++    xpm = graphics_get_splash_xpm();
++    if (xpm && !uga->background)
++        uga->background = xpm_to_bltbuf(xpm);
++
++    graphics_get_screen_rowscols(&screensz);
++    width = MIN(width, screensz.x - col);
++    height = MIN(height, screensz.y - row);
++    graphics_get_font_size(&fontsz);
++ 
++    blsz.x = width * fontsz.x;
++    blsz.y = height * fontsz.y;
++   
++    bltbuf = alloc_bltbuf(blsz.x, blsz.y);
++    if (!bltbuf)
++        return;
++
++    blsz.x = col * fontsz.x;
++    blsz.y = row * fontsz.y;
++
++    text = graphics_get_text_buf();
++    bltbuf_draw_bg(backend, bltbuf, blsz);
++
++    if (draw_text) {
++        blsz.x = width;
++        blsz.y = height;
++        blpos.x = col;
++        blpos.y = row;
++
++        bltbuf_draw_text(backend, bltbuf, screensz, fontsz, blpos, blsz);
++    }
++
++    blpos.x = col * fontsz.x;
++    blpos.y = row * fontsz.y;
++
++    blt_to_screen_pos(uga, bltbuf, &blpos);
++}
++
++static void
++setup_cga_palette(void)
++{
++/*
++ * Nov 27 15:53:19 <pjones> ping?
++ * Nov 27 15:54:13 <ajax> pong?
++ * Nov 27 15:54:16 <pjones> say I've got a color channel in 6 bits, and it's
++ *                          stored in an 8-bit value.  let's call it white.
++ *                          now let's say I've got hardware with 8 bits per
++ *                          channel that I'm blitting to.  What's the right
++ *                          way to expand 0x3f to 0xff?
++ * Nov 27 15:55:17 <pjones> (my naive idea, which I haven't tried yet, is
++ *                          "x <<= 2; if (x) x |= 3;")
++ * Nov 27 15:55:35 <ajax> no.
++ * Nov 27 15:55:43 <pjones> yeah, figured I'd ask instead of doing that.
++ * Nov 27 15:56:15 <ajax>  x <<= 2; x |= ((x & 0xc0) >> 6);
++ */
++    int i;
++    for (i = 0; i < n_cga_colors; i++) {
++        grub_efi_uga_pixel_t *pixel = &cga_colors[i];
++
++        if ((pixel->red | pixel->green | pixel->blue) & 0xc0)
++            continue;
++        pixel->red <<= 2;
++        pixel->red |= ((pixel->red & 0xc0) >> 6);
++        pixel->red &= 0xff;
++        pixel->green <<= 2;
++        pixel->green |= ((pixel->green & 0xc0) >> 6);
++        pixel->green &= 0xff;
++        pixel->blue <<= 2;
++        pixel->blue |= ((pixel->blue & 0xc0) >> 6);
++        pixel->blue &= 0xff;
++    }
++}
++
++static int
++try_enable(struct graphics_backend *backend)
++{
++    struct uga *uga = backend->priv;
++    struct video_mode modes[] = {
++        { 1440, 900, 32, 60 },
++        { 640, 480, 32, 60 },
++        { 800, 600, 32, 60 },
++        { 640, 480, 16, 60 },
++        { 800, 600, 16, 60 },
++        { 640, 480, 8, 60 },
++        { 800, 600, 8, 60 }
++    };
++    struct video_mode mode;
++    position_t font_size;
++    int i;
++
++    if (uga->text_mode.horizontal_resolution == 0) {
++        grub_efi_set_text_mode(1);
++        save_video_mode(uga, &uga->text_mode);
++    }
++
++    if (uga->graphics_mode.horizontal_resolution == 0) {
++        grub_efi_set_text_mode(0);
++        save_video_mode(uga, &uga->graphics_mode);
++
++        if (cmp_video_modes(&uga->graphics_mode, &modes[0]) >= 0) {
++            uga->current_mode = GRAPHICS;
++            graphics_alloc_text_buf();
++            return 1;
++        }
++        for (i = 0; i < sizeof (modes) / sizeof (modes[0]); i++) {
++            set_video_mode(uga, &modes[i]);
++            save_video_mode(uga, &mode);
++            if (!cmp_video_modes(&modes[i], &mode)) {
++                grub_memmove(&uga->graphics_mode, &mode, sizeof (mode));
++                uga->current_mode = GRAPHICS;
++                graphics_alloc_text_buf();
++                return 1;
++            }
++        }
++        set_video_mode(uga, &uga->graphics_mode);
++        save_video_mode(uga, &mode);
++        if (!cmp_video_modes(&uga->graphics_mode, &mode)) {
++            uga->current_mode = GRAPHICS;
++            graphics_alloc_text_buf();
++            return 1;
++        }
++        grub_efi_set_text_mode(1);
++        return 0;
++    }
++    set_video_mode(uga, &uga->graphics_mode);
++
++    uga->current_mode = GRAPHICS;
++    return 1;
++}
++
++static int
++enable(struct graphics_backend *backend)
++{
++    struct uga *uga = backend->priv;
++    int i;
++
++    if (uga) {
++        if (uga->current_mode == GRAPHICS) {
++            return 1;
++        }
++    } else {
++        if (!(uga = grub_malloc(sizeof (*uga)))) {
++            return 0;
++        }
++	grub_memset(uga, '\0', sizeof (*uga));
++
++        uga->current_mode = TEXT;
++	uga->draw_intf = grub_efi_locate_protocol(&draw_guid, NULL);
++        if (!uga->draw_intf) {
++            grub_free(uga);
++            return 0;
++        }
++        grub_memset(&uga->graphics_mode, '\0', sizeof (uga->graphics_mode));
++        grub_memset(&uga->text_mode, '\0', sizeof (uga->text_mode));
++        backend->priv = uga;
++
++        setup_cga_palette();
++        for (i = 0; i < n_cga_colors; i++) {
++            uga->palette[i].red = cga_colors[i].red;
++            uga->palette[i].green = cga_colors[i].green;
++            uga->palette[i].blue = cga_colors[i].blue;
++        }
++    }
++
++    if (try_enable(backend)) {
++        reset_screen_geometry(backend);
++        return 1;
++    }
++    
++    backend->priv = NULL;
++    grub_free(uga);
++    return 0;
++}
++
++static void disable(struct graphics_backend *backend)
++{
++    struct uga *uga;
++    
++    if (!backend)
++        return;
++    
++    uga = backend->priv;
++    if (!uga || uga->current_mode != GRAPHICS)
++        return;
++
++#if 0
++    blank(backend);
++
++    set_video_mode(uga, &uga->text_mode);
++    grub_efi_set_text_mode(1);
++#endif
++    uga->current_mode = TEXT;
++}
++
++struct graphics_backend uga_backend = {
++    .name = "uga",
++    .enable = enable,
++    .disable = disable,
++    .set_kernel_params = set_kernel_params,
++    .clbl = clbl,
++    .set_palette = set_palette,
++    .get_pixel_idx = get_pixel_idx,
++    .get_pixel_rgb = get_pixel_rgb,
++    .draw_pixel = draw_pixel,
++    .reset_screen_geometry = reset_screen_geometry,
++    .get_screen_size = get_screen_size,
++    .getxy = uga_getxy,
++    .setxy = setxy,
++    .gotoxy = NULL,
++    .cursor = cursor,
++};
++
++#endif /* SUPPORT_GRAPHICS */
+diff --git a/efi/font_8x16.c b/efi/font_8x16.c
+new file mode 100644
+index 0000000..94829ec
+--- /dev/null
++++ b/efi/font_8x16.c
+@@ -0,0 +1,4638 @@
++/* font_8x16.c - 8x16 font for GRUB/EFI */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copied from Linux kernel drivers/video/console/font_8x16.c,
++ *    which is generated by cpi2fnt.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifdef SUPPORT_GRAPHICS
++
++#define FONTDATAMAX 4096
++
++const unsigned char font8x16[FONTDATAMAX] = {
++
++	/* 0 0x00 '^@' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 1 0x01 '^A' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x7e, /* 01111110 */
++	0x81, /* 10000001 */
++	0xa5, /* 10100101 */
++	0x81, /* 10000001 */
++	0x81, /* 10000001 */
++	0xbd, /* 10111101 */
++	0x99, /* 10011001 */
++	0x81, /* 10000001 */
++	0x81, /* 10000001 */
++	0x7e, /* 01111110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 2 0x02 '^B' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x7e, /* 01111110 */
++	0xff, /* 11111111 */
++	0xdb, /* 11011011 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xc3, /* 11000011 */
++	0xe7, /* 11100111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0x7e, /* 01111110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 3 0x03 '^C' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x6c, /* 01101100 */
++	0xfe, /* 11111110 */
++	0xfe, /* 11111110 */
++	0xfe, /* 11111110 */
++	0xfe, /* 11111110 */
++	0x7c, /* 01111100 */
++	0x38, /* 00111000 */
++	0x10, /* 00010000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 4 0x04 '^D' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x10, /* 00010000 */
++	0x38, /* 00111000 */
++	0x7c, /* 01111100 */
++	0xfe, /* 11111110 */
++	0x7c, /* 01111100 */
++	0x38, /* 00111000 */
++	0x10, /* 00010000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 5 0x05 '^E' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x3c, /* 00111100 */
++	0x3c, /* 00111100 */
++	0xe7, /* 11100111 */
++	0xe7, /* 11100111 */
++	0xe7, /* 11100111 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x3c, /* 00111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 6 0x06 '^F' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x3c, /* 00111100 */
++	0x7e, /* 01111110 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0x7e, /* 01111110 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x3c, /* 00111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 7 0x07 '^G' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x3c, /* 00111100 */
++	0x3c, /* 00111100 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 8 0x08 '^H' */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xe7, /* 11100111 */
++	0xc3, /* 11000011 */
++	0xc3, /* 11000011 */
++	0xe7, /* 11100111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++
++	/* 9 0x09 '^I' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x3c, /* 00111100 */
++	0x66, /* 01100110 */
++	0x42, /* 01000010 */
++	0x42, /* 01000010 */
++	0x66, /* 01100110 */
++	0x3c, /* 00111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 10 0x0a '^J' */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xc3, /* 11000011 */
++	0x99, /* 10011001 */
++	0xbd, /* 10111101 */
++	0xbd, /* 10111101 */
++	0x99, /* 10011001 */
++	0xc3, /* 11000011 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++
++	/* 11 0x0b '^K' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x1e, /* 00011110 */
++	0x0e, /* 00001110 */
++	0x1a, /* 00011010 */
++	0x32, /* 00110010 */
++	0x78, /* 01111000 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0x78, /* 01111000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 12 0x0c '^L' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x3c, /* 00111100 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x3c, /* 00111100 */
++	0x18, /* 00011000 */
++	0x7e, /* 01111110 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 13 0x0d '^M' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x3f, /* 00111111 */
++	0x33, /* 00110011 */
++	0x3f, /* 00111111 */
++	0x30, /* 00110000 */
++	0x30, /* 00110000 */
++	0x30, /* 00110000 */
++	0x30, /* 00110000 */
++	0x70, /* 01110000 */
++	0xf0, /* 11110000 */
++	0xe0, /* 11100000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 14 0x0e '^N' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x7f, /* 01111111 */
++	0x63, /* 01100011 */
++	0x7f, /* 01111111 */
++	0x63, /* 01100011 */
++	0x63, /* 01100011 */
++	0x63, /* 01100011 */
++	0x63, /* 01100011 */
++	0x67, /* 01100111 */
++	0xe7, /* 11100111 */
++	0xe6, /* 11100110 */
++	0xc0, /* 11000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 15 0x0f '^O' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0xdb, /* 11011011 */
++	0x3c, /* 00111100 */
++	0xe7, /* 11100111 */
++	0x3c, /* 00111100 */
++	0xdb, /* 11011011 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 16 0x10 '^P' */
++	0x00, /* 00000000 */
++	0x80, /* 10000000 */
++	0xc0, /* 11000000 */
++	0xe0, /* 11100000 */
++	0xf0, /* 11110000 */
++	0xf8, /* 11111000 */
++	0xfe, /* 11111110 */
++	0xf8, /* 11111000 */
++	0xf0, /* 11110000 */
++	0xe0, /* 11100000 */
++	0xc0, /* 11000000 */
++	0x80, /* 10000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 17 0x11 '^Q' */
++	0x00, /* 00000000 */
++	0x02, /* 00000010 */
++	0x06, /* 00000110 */
++	0x0e, /* 00001110 */
++	0x1e, /* 00011110 */
++	0x3e, /* 00111110 */
++	0xfe, /* 11111110 */
++	0x3e, /* 00111110 */
++	0x1e, /* 00011110 */
++	0x0e, /* 00001110 */
++	0x06, /* 00000110 */
++	0x02, /* 00000010 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 18 0x12 '^R' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x3c, /* 00111100 */
++	0x7e, /* 01111110 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x7e, /* 01111110 */
++	0x3c, /* 00111100 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 19 0x13 '^S' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x00, /* 00000000 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 20 0x14 '^T' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x7f, /* 01111111 */
++	0xdb, /* 11011011 */
++	0xdb, /* 11011011 */
++	0xdb, /* 11011011 */
++	0x7b, /* 01111011 */
++	0x1b, /* 00011011 */
++	0x1b, /* 00011011 */
++	0x1b, /* 00011011 */
++	0x1b, /* 00011011 */
++	0x1b, /* 00011011 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 21 0x15 '^U' */
++	0x00, /* 00000000 */
++	0x7c, /* 01111100 */
++	0xc6, /* 11000110 */
++	0x60, /* 01100000 */
++	0x38, /* 00111000 */
++	0x6c, /* 01101100 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x6c, /* 01101100 */
++	0x38, /* 00111000 */
++	0x0c, /* 00001100 */
++	0xc6, /* 11000110 */
++	0x7c, /* 01111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 22 0x16 '^V' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xfe, /* 11111110 */
++	0xfe, /* 11111110 */
++	0xfe, /* 11111110 */
++	0xfe, /* 11111110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 23 0x17 '^W' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x3c, /* 00111100 */
++	0x7e, /* 01111110 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x7e, /* 01111110 */
++	0x3c, /* 00111100 */
++	0x18, /* 00011000 */
++	0x7e, /* 01111110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 24 0x18 '^X' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x3c, /* 00111100 */
++	0x7e, /* 01111110 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 25 0x19 '^Y' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x7e, /* 01111110 */
++	0x3c, /* 00111100 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 26 0x1a '^Z' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x0c, /* 00001100 */
++	0xfe, /* 11111110 */
++	0x0c, /* 00001100 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 27 0x1b '^[' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x30, /* 00110000 */
++	0x60, /* 01100000 */
++	0xfe, /* 11111110 */
++	0x60, /* 01100000 */
++	0x30, /* 00110000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 28 0x1c '^\' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xc0, /* 11000000 */
++	0xc0, /* 11000000 */
++	0xc0, /* 11000000 */
++	0xfe, /* 11111110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 29 0x1d '^]' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x28, /* 00101000 */
++	0x6c, /* 01101100 */
++	0xfe, /* 11111110 */
++	0x6c, /* 01101100 */
++	0x28, /* 00101000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 30 0x1e '^^' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x10, /* 00010000 */
++	0x38, /* 00111000 */
++	0x38, /* 00111000 */
++	0x7c, /* 01111100 */
++	0x7c, /* 01111100 */
++	0xfe, /* 11111110 */
++	0xfe, /* 11111110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 31 0x1f '^_' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xfe, /* 11111110 */
++	0xfe, /* 11111110 */
++	0x7c, /* 01111100 */
++	0x7c, /* 01111100 */
++	0x38, /* 00111000 */
++	0x38, /* 00111000 */
++	0x10, /* 00010000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 32 0x20 ' ' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 33 0x21 '!' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x3c, /* 00111100 */
++	0x3c, /* 00111100 */
++	0x3c, /* 00111100 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 34 0x22 '"' */
++	0x00, /* 00000000 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x24, /* 00100100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 35 0x23 '#' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x6c, /* 01101100 */
++	0x6c, /* 01101100 */
++	0xfe, /* 11111110 */
++	0x6c, /* 01101100 */
++	0x6c, /* 01101100 */
++	0x6c, /* 01101100 */
++	0xfe, /* 11111110 */
++	0x6c, /* 01101100 */
++	0x6c, /* 01101100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 36 0x24 '$' */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x7c, /* 01111100 */
++	0xc6, /* 11000110 */
++	0xc2, /* 11000010 */
++	0xc0, /* 11000000 */
++	0x7c, /* 01111100 */
++	0x06, /* 00000110 */
++	0x06, /* 00000110 */
++	0x86, /* 10000110 */
++	0xc6, /* 11000110 */
++	0x7c, /* 01111100 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 37 0x25 '%' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xc2, /* 11000010 */
++	0xc6, /* 11000110 */
++	0x0c, /* 00001100 */
++	0x18, /* 00011000 */
++	0x30, /* 00110000 */
++	0x60, /* 01100000 */
++	0xc6, /* 11000110 */
++	0x86, /* 10000110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 38 0x26 '&' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x38, /* 00111000 */
++	0x6c, /* 01101100 */
++	0x6c, /* 01101100 */
++	0x38, /* 00111000 */
++	0x76, /* 01110110 */
++	0xdc, /* 11011100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0x76, /* 01110110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 39 0x27 ''' */
++	0x00, /* 00000000 */
++	0x30, /* 00110000 */
++	0x30, /* 00110000 */
++	0x30, /* 00110000 */
++	0x60, /* 01100000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 40 0x28 '(' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x0c, /* 00001100 */
++	0x18, /* 00011000 */
++	0x30, /* 00110000 */
++	0x30, /* 00110000 */
++	0x30, /* 00110000 */
++	0x30, /* 00110000 */
++	0x30, /* 00110000 */
++	0x30, /* 00110000 */
++	0x18, /* 00011000 */
++	0x0c, /* 00001100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 41 0x29 ')' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x30, /* 00110000 */
++	0x18, /* 00011000 */
++	0x0c, /* 00001100 */
++	0x0c, /* 00001100 */
++	0x0c, /* 00001100 */
++	0x0c, /* 00001100 */
++	0x0c, /* 00001100 */
++	0x0c, /* 00001100 */
++	0x18, /* 00011000 */
++	0x30, /* 00110000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 42 0x2a '*' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x66, /* 01100110 */
++	0x3c, /* 00111100 */
++	0xff, /* 11111111 */
++	0x3c, /* 00111100 */
++	0x66, /* 01100110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 43 0x2b '+' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x7e, /* 01111110 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 44 0x2c ',' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x30, /* 00110000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 45 0x2d '-' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xfe, /* 11111110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 46 0x2e '.' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 47 0x2f '/' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x02, /* 00000010 */
++	0x06, /* 00000110 */
++	0x0c, /* 00001100 */
++	0x18, /* 00011000 */
++	0x30, /* 00110000 */
++	0x60, /* 01100000 */
++	0xc0, /* 11000000 */
++	0x80, /* 10000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 48 0x30 '0' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x38, /* 00111000 */
++	0x6c, /* 01101100 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xd6, /* 11010110 */
++	0xd6, /* 11010110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x6c, /* 01101100 */
++	0x38, /* 00111000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 49 0x31 '1' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x38, /* 00111000 */
++	0x78, /* 01111000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x7e, /* 01111110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 50 0x32 '2' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x7c, /* 01111100 */
++	0xc6, /* 11000110 */
++	0x06, /* 00000110 */
++	0x0c, /* 00001100 */
++	0x18, /* 00011000 */
++	0x30, /* 00110000 */
++	0x60, /* 01100000 */
++	0xc0, /* 11000000 */
++	0xc6, /* 11000110 */
++	0xfe, /* 11111110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 51 0x33 '3' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x7c, /* 01111100 */
++	0xc6, /* 11000110 */
++	0x06, /* 00000110 */
++	0x06, /* 00000110 */
++	0x3c, /* 00111100 */
++	0x06, /* 00000110 */
++	0x06, /* 00000110 */
++	0x06, /* 00000110 */
++	0xc6, /* 11000110 */
++	0x7c, /* 01111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 52 0x34 '4' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x0c, /* 00001100 */
++	0x1c, /* 00011100 */
++	0x3c, /* 00111100 */
++	0x6c, /* 01101100 */
++	0xcc, /* 11001100 */
++	0xfe, /* 11111110 */
++	0x0c, /* 00001100 */
++	0x0c, /* 00001100 */
++	0x0c, /* 00001100 */
++	0x1e, /* 00011110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 53 0x35 '5' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xfe, /* 11111110 */
++	0xc0, /* 11000000 */
++	0xc0, /* 11000000 */
++	0xc0, /* 11000000 */
++	0xfc, /* 11111100 */
++	0x06, /* 00000110 */
++	0x06, /* 00000110 */
++	0x06, /* 00000110 */
++	0xc6, /* 11000110 */
++	0x7c, /* 01111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 54 0x36 '6' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x38, /* 00111000 */
++	0x60, /* 01100000 */
++	0xc0, /* 11000000 */
++	0xc0, /* 11000000 */
++	0xfc, /* 11111100 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x7c, /* 01111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 55 0x37 '7' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xfe, /* 11111110 */
++	0xc6, /* 11000110 */
++	0x06, /* 00000110 */
++	0x06, /* 00000110 */
++	0x0c, /* 00001100 */
++	0x18, /* 00011000 */
++	0x30, /* 00110000 */
++	0x30, /* 00110000 */
++	0x30, /* 00110000 */
++	0x30, /* 00110000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 56 0x38 '8' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x7c, /* 01111100 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x7c, /* 01111100 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x7c, /* 01111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 57 0x39 '9' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x7c, /* 01111100 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x7e, /* 01111110 */
++	0x06, /* 00000110 */
++	0x06, /* 00000110 */
++	0x06, /* 00000110 */
++	0x0c, /* 00001100 */
++	0x78, /* 01111000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 58 0x3a ':' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 59 0x3b ';' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x30, /* 00110000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 60 0x3c '<' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x06, /* 00000110 */
++	0x0c, /* 00001100 */
++	0x18, /* 00011000 */
++	0x30, /* 00110000 */
++	0x60, /* 01100000 */
++	0x30, /* 00110000 */
++	0x18, /* 00011000 */
++	0x0c, /* 00001100 */
++	0x06, /* 00000110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 61 0x3d '=' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x7e, /* 01111110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x7e, /* 01111110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 62 0x3e '>' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x60, /* 01100000 */
++	0x30, /* 00110000 */
++	0x18, /* 00011000 */
++	0x0c, /* 00001100 */
++	0x06, /* 00000110 */
++	0x0c, /* 00001100 */
++	0x18, /* 00011000 */
++	0x30, /* 00110000 */
++	0x60, /* 01100000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 63 0x3f '?' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x7c, /* 01111100 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x0c, /* 00001100 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 64 0x40 '@' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x7c, /* 01111100 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xde, /* 11011110 */
++	0xde, /* 11011110 */
++	0xde, /* 11011110 */
++	0xdc, /* 11011100 */
++	0xc0, /* 11000000 */
++	0x7c, /* 01111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 65 0x41 'A' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x10, /* 00010000 */
++	0x38, /* 00111000 */
++	0x6c, /* 01101100 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xfe, /* 11111110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 66 0x42 'B' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xfc, /* 11111100 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x7c, /* 01111100 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0xfc, /* 11111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 67 0x43 'C' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x3c, /* 00111100 */
++	0x66, /* 01100110 */
++	0xc2, /* 11000010 */
++	0xc0, /* 11000000 */
++	0xc0, /* 11000000 */
++	0xc0, /* 11000000 */
++	0xc0, /* 11000000 */
++	0xc2, /* 11000010 */
++	0x66, /* 01100110 */
++	0x3c, /* 00111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 68 0x44 'D' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xf8, /* 11111000 */
++	0x6c, /* 01101100 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x6c, /* 01101100 */
++	0xf8, /* 11111000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 69 0x45 'E' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xfe, /* 11111110 */
++	0x66, /* 01100110 */
++	0x62, /* 01100010 */
++	0x68, /* 01101000 */
++	0x78, /* 01111000 */
++	0x68, /* 01101000 */
++	0x60, /* 01100000 */
++	0x62, /* 01100010 */
++	0x66, /* 01100110 */
++	0xfe, /* 11111110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 70 0x46 'F' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xfe, /* 11111110 */
++	0x66, /* 01100110 */
++	0x62, /* 01100010 */
++	0x68, /* 01101000 */
++	0x78, /* 01111000 */
++	0x68, /* 01101000 */
++	0x60, /* 01100000 */
++	0x60, /* 01100000 */
++	0x60, /* 01100000 */
++	0xf0, /* 11110000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 71 0x47 'G' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x3c, /* 00111100 */
++	0x66, /* 01100110 */
++	0xc2, /* 11000010 */
++	0xc0, /* 11000000 */
++	0xc0, /* 11000000 */
++	0xde, /* 11011110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x66, /* 01100110 */
++	0x3a, /* 00111010 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 72 0x48 'H' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xfe, /* 11111110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 73 0x49 'I' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x3c, /* 00111100 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x3c, /* 00111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 74 0x4a 'J' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x1e, /* 00011110 */
++	0x0c, /* 00001100 */
++	0x0c, /* 00001100 */
++	0x0c, /* 00001100 */
++	0x0c, /* 00001100 */
++	0x0c, /* 00001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0x78, /* 01111000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 75 0x4b 'K' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xe6, /* 11100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x6c, /* 01101100 */
++	0x78, /* 01111000 */
++	0x78, /* 01111000 */
++	0x6c, /* 01101100 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0xe6, /* 11100110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 76 0x4c 'L' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xf0, /* 11110000 */
++	0x60, /* 01100000 */
++	0x60, /* 01100000 */
++	0x60, /* 01100000 */
++	0x60, /* 01100000 */
++	0x60, /* 01100000 */
++	0x60, /* 01100000 */
++	0x62, /* 01100010 */
++	0x66, /* 01100110 */
++	0xfe, /* 11111110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 77 0x4d 'M' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xc6, /* 11000110 */
++	0xee, /* 11101110 */
++	0xfe, /* 11111110 */
++	0xfe, /* 11111110 */
++	0xd6, /* 11010110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 78 0x4e 'N' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xc6, /* 11000110 */
++	0xe6, /* 11100110 */
++	0xf6, /* 11110110 */
++	0xfe, /* 11111110 */
++	0xde, /* 11011110 */
++	0xce, /* 11001110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 79 0x4f 'O' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x7c, /* 01111100 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x7c, /* 01111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 80 0x50 'P' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xfc, /* 11111100 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x7c, /* 01111100 */
++	0x60, /* 01100000 */
++	0x60, /* 01100000 */
++	0x60, /* 01100000 */
++	0x60, /* 01100000 */
++	0xf0, /* 11110000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 81 0x51 'Q' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x7c, /* 01111100 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xd6, /* 11010110 */
++	0xde, /* 11011110 */
++	0x7c, /* 01111100 */
++	0x0c, /* 00001100 */
++	0x0e, /* 00001110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 82 0x52 'R' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xfc, /* 11111100 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x7c, /* 01111100 */
++	0x6c, /* 01101100 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0xe6, /* 11100110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 83 0x53 'S' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x7c, /* 01111100 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x60, /* 01100000 */
++	0x38, /* 00111000 */
++	0x0c, /* 00001100 */
++	0x06, /* 00000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x7c, /* 01111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 84 0x54 'T' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x7e, /* 01111110 */
++	0x7e, /* 01111110 */
++	0x5a, /* 01011010 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x3c, /* 00111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 85 0x55 'U' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x7c, /* 01111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 86 0x56 'V' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x6c, /* 01101100 */
++	0x38, /* 00111000 */
++	0x10, /* 00010000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 87 0x57 'W' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xd6, /* 11010110 */
++	0xd6, /* 11010110 */
++	0xd6, /* 11010110 */
++	0xfe, /* 11111110 */
++	0xee, /* 11101110 */
++	0x6c, /* 01101100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 88 0x58 'X' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x6c, /* 01101100 */
++	0x7c, /* 01111100 */
++	0x38, /* 00111000 */
++	0x38, /* 00111000 */
++	0x7c, /* 01111100 */
++	0x6c, /* 01101100 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 89 0x59 'Y' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x3c, /* 00111100 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x3c, /* 00111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 90 0x5a 'Z' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xfe, /* 11111110 */
++	0xc6, /* 11000110 */
++	0x86, /* 10000110 */
++	0x0c, /* 00001100 */
++	0x18, /* 00011000 */
++	0x30, /* 00110000 */
++	0x60, /* 01100000 */
++	0xc2, /* 11000010 */
++	0xc6, /* 11000110 */
++	0xfe, /* 11111110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 91 0x5b '[' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x3c, /* 00111100 */
++	0x30, /* 00110000 */
++	0x30, /* 00110000 */
++	0x30, /* 00110000 */
++	0x30, /* 00110000 */
++	0x30, /* 00110000 */
++	0x30, /* 00110000 */
++	0x30, /* 00110000 */
++	0x30, /* 00110000 */
++	0x3c, /* 00111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 92 0x5c '\' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x80, /* 10000000 */
++	0xc0, /* 11000000 */
++	0xe0, /* 11100000 */
++	0x70, /* 01110000 */
++	0x38, /* 00111000 */
++	0x1c, /* 00011100 */
++	0x0e, /* 00001110 */
++	0x06, /* 00000110 */
++	0x02, /* 00000010 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 93 0x5d ']' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x3c, /* 00111100 */
++	0x0c, /* 00001100 */
++	0x0c, /* 00001100 */
++	0x0c, /* 00001100 */
++	0x0c, /* 00001100 */
++	0x0c, /* 00001100 */
++	0x0c, /* 00001100 */
++	0x0c, /* 00001100 */
++	0x0c, /* 00001100 */
++	0x3c, /* 00111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 94 0x5e '^' */
++	0x10, /* 00010000 */
++	0x38, /* 00111000 */
++	0x6c, /* 01101100 */
++	0xc6, /* 11000110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 95 0x5f '_' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xff, /* 11111111 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 96 0x60 '`' */
++	0x00, /* 00000000 */
++	0x30, /* 00110000 */
++	0x18, /* 00011000 */
++	0x0c, /* 00001100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 97 0x61 'a' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x78, /* 01111000 */
++	0x0c, /* 00001100 */
++	0x7c, /* 01111100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0x76, /* 01110110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 98 0x62 'b' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xe0, /* 11100000 */
++	0x60, /* 01100000 */
++	0x60, /* 01100000 */
++	0x78, /* 01111000 */
++	0x6c, /* 01101100 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x7c, /* 01111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 99 0x63 'c' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x7c, /* 01111100 */
++	0xc6, /* 11000110 */
++	0xc0, /* 11000000 */
++	0xc0, /* 11000000 */
++	0xc0, /* 11000000 */
++	0xc6, /* 11000110 */
++	0x7c, /* 01111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 100 0x64 'd' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x1c, /* 00011100 */
++	0x0c, /* 00001100 */
++	0x0c, /* 00001100 */
++	0x3c, /* 00111100 */
++	0x6c, /* 01101100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0x76, /* 01110110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 101 0x65 'e' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x7c, /* 01111100 */
++	0xc6, /* 11000110 */
++	0xfe, /* 11111110 */
++	0xc0, /* 11000000 */
++	0xc0, /* 11000000 */
++	0xc6, /* 11000110 */
++	0x7c, /* 01111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 102 0x66 'f' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x1c, /* 00011100 */
++	0x36, /* 00110110 */
++	0x32, /* 00110010 */
++	0x30, /* 00110000 */
++	0x78, /* 01111000 */
++	0x30, /* 00110000 */
++	0x30, /* 00110000 */
++	0x30, /* 00110000 */
++	0x30, /* 00110000 */
++	0x78, /* 01111000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 103 0x67 'g' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x76, /* 01110110 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0x7c, /* 01111100 */
++	0x0c, /* 00001100 */
++	0xcc, /* 11001100 */
++	0x78, /* 01111000 */
++	0x00, /* 00000000 */
++
++	/* 104 0x68 'h' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xe0, /* 11100000 */
++	0x60, /* 01100000 */
++	0x60, /* 01100000 */
++	0x6c, /* 01101100 */
++	0x76, /* 01110110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0xe6, /* 11100110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 105 0x69 'i' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x38, /* 00111000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x3c, /* 00111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 106 0x6a 'j' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x06, /* 00000110 */
++	0x06, /* 00000110 */
++	0x00, /* 00000000 */
++	0x0e, /* 00001110 */
++	0x06, /* 00000110 */
++	0x06, /* 00000110 */
++	0x06, /* 00000110 */
++	0x06, /* 00000110 */
++	0x06, /* 00000110 */
++	0x06, /* 00000110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x3c, /* 00111100 */
++	0x00, /* 00000000 */
++
++	/* 107 0x6b 'k' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xe0, /* 11100000 */
++	0x60, /* 01100000 */
++	0x60, /* 01100000 */
++	0x66, /* 01100110 */
++	0x6c, /* 01101100 */
++	0x78, /* 01111000 */
++	0x78, /* 01111000 */
++	0x6c, /* 01101100 */
++	0x66, /* 01100110 */
++	0xe6, /* 11100110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 108 0x6c 'l' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x38, /* 00111000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x3c, /* 00111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 109 0x6d 'm' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xec, /* 11101100 */
++	0xfe, /* 11111110 */
++	0xd6, /* 11010110 */
++	0xd6, /* 11010110 */
++	0xd6, /* 11010110 */
++	0xd6, /* 11010110 */
++	0xc6, /* 11000110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 110 0x6e 'n' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xdc, /* 11011100 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 111 0x6f 'o' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x7c, /* 01111100 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x7c, /* 01111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 112 0x70 'p' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xdc, /* 11011100 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x7c, /* 01111100 */
++	0x60, /* 01100000 */
++	0x60, /* 01100000 */
++	0xf0, /* 11110000 */
++	0x00, /* 00000000 */
++
++	/* 113 0x71 'q' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x76, /* 01110110 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0x7c, /* 01111100 */
++	0x0c, /* 00001100 */
++	0x0c, /* 00001100 */
++	0x1e, /* 00011110 */
++	0x00, /* 00000000 */
++
++	/* 114 0x72 'r' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xdc, /* 11011100 */
++	0x76, /* 01110110 */
++	0x66, /* 01100110 */
++	0x60, /* 01100000 */
++	0x60, /* 01100000 */
++	0x60, /* 01100000 */
++	0xf0, /* 11110000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 115 0x73 's' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x7c, /* 01111100 */
++	0xc6, /* 11000110 */
++	0x60, /* 01100000 */
++	0x38, /* 00111000 */
++	0x0c, /* 00001100 */
++	0xc6, /* 11000110 */
++	0x7c, /* 01111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 116 0x74 't' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x10, /* 00010000 */
++	0x30, /* 00110000 */
++	0x30, /* 00110000 */
++	0xfc, /* 11111100 */
++	0x30, /* 00110000 */
++	0x30, /* 00110000 */
++	0x30, /* 00110000 */
++	0x30, /* 00110000 */
++	0x36, /* 00110110 */
++	0x1c, /* 00011100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 117 0x75 'u' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0x76, /* 01110110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 118 0x76 'v' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x6c, /* 01101100 */
++	0x38, /* 00111000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 119 0x77 'w' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xd6, /* 11010110 */
++	0xd6, /* 11010110 */
++	0xd6, /* 11010110 */
++	0xfe, /* 11111110 */
++	0x6c, /* 01101100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 120 0x78 'x' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xc6, /* 11000110 */
++	0x6c, /* 01101100 */
++	0x38, /* 00111000 */
++	0x38, /* 00111000 */
++	0x38, /* 00111000 */
++	0x6c, /* 01101100 */
++	0xc6, /* 11000110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 121 0x79 'y' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x7e, /* 01111110 */
++	0x06, /* 00000110 */
++	0x0c, /* 00001100 */
++	0xf8, /* 11111000 */
++	0x00, /* 00000000 */
++
++	/* 122 0x7a 'z' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xfe, /* 11111110 */
++	0xcc, /* 11001100 */
++	0x18, /* 00011000 */
++	0x30, /* 00110000 */
++	0x60, /* 01100000 */
++	0xc6, /* 11000110 */
++	0xfe, /* 11111110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 123 0x7b '{' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x0e, /* 00001110 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x70, /* 01110000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x0e, /* 00001110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 124 0x7c '|' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 125 0x7d '}' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x70, /* 01110000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x0e, /* 00001110 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x70, /* 01110000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 126 0x7e '~' */
++	0x00, /* 00000000 */
++	0x76, /* 01110110 */
++	0xdc, /* 11011100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 127 0x7f '' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x10, /* 00010000 */
++	0x38, /* 00111000 */
++	0x6c, /* 01101100 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xfe, /* 11111110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 128 0x80 '€' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x3c, /* 00111100 */
++	0x66, /* 01100110 */
++	0xc2, /* 11000010 */
++	0xc0, /* 11000000 */
++	0xc0, /* 11000000 */
++	0xc0, /* 11000000 */
++	0xc0, /* 11000000 */
++	0xc2, /* 11000010 */
++	0x66, /* 01100110 */
++	0x3c, /* 00111100 */
++	0x18, /* 00011000 */
++	0x70, /* 01110000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 129 0x81 '' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xcc, /* 11001100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0x76, /* 01110110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 130 0x82 '‚' */
++	0x00, /* 00000000 */
++	0x0c, /* 00001100 */
++	0x18, /* 00011000 */
++	0x30, /* 00110000 */
++	0x00, /* 00000000 */
++	0x7c, /* 01111100 */
++	0xc6, /* 11000110 */
++	0xfe, /* 11111110 */
++	0xc0, /* 11000000 */
++	0xc0, /* 11000000 */
++	0xc6, /* 11000110 */
++	0x7c, /* 01111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 131 0x83 'ƒ' */
++	0x00, /* 00000000 */
++	0x10, /* 00010000 */
++	0x38, /* 00111000 */
++	0x6c, /* 01101100 */
++	0x00, /* 00000000 */
++	0x78, /* 01111000 */
++	0x0c, /* 00001100 */
++	0x7c, /* 01111100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0x76, /* 01110110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 132 0x84 '„' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xcc, /* 11001100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x78, /* 01111000 */
++	0x0c, /* 00001100 */
++	0x7c, /* 01111100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0x76, /* 01110110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 133 0x85 '…' */
++	0x00, /* 00000000 */
++	0x60, /* 01100000 */
++	0x30, /* 00110000 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x78, /* 01111000 */
++	0x0c, /* 00001100 */
++	0x7c, /* 01111100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0x76, /* 01110110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 134 0x86 '†' */
++	0x00, /* 00000000 */
++	0x38, /* 00111000 */
++	0x6c, /* 01101100 */
++	0x38, /* 00111000 */
++	0x00, /* 00000000 */
++	0x78, /* 01111000 */
++	0x0c, /* 00001100 */
++	0x7c, /* 01111100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0x76, /* 01110110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 135 0x87 '‡' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x7c, /* 01111100 */
++	0xc6, /* 11000110 */
++	0xc0, /* 11000000 */
++	0xc0, /* 11000000 */
++	0xc0, /* 11000000 */
++	0xc6, /* 11000110 */
++	0x7c, /* 01111100 */
++	0x18, /* 00011000 */
++	0x70, /* 01110000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 136 0x88 'ˆ' */
++	0x00, /* 00000000 */
++	0x10, /* 00010000 */
++	0x38, /* 00111000 */
++	0x6c, /* 01101100 */
++	0x00, /* 00000000 */
++	0x7c, /* 01111100 */
++	0xc6, /* 11000110 */
++	0xfe, /* 11111110 */
++	0xc0, /* 11000000 */
++	0xc0, /* 11000000 */
++	0xc6, /* 11000110 */
++	0x7c, /* 01111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 137 0x89 '‰' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xc6, /* 11000110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x7c, /* 01111100 */
++	0xc6, /* 11000110 */
++	0xfe, /* 11111110 */
++	0xc0, /* 11000000 */
++	0xc0, /* 11000000 */
++	0xc6, /* 11000110 */
++	0x7c, /* 01111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 138 0x8a 'Š' */
++	0x00, /* 00000000 */
++	0x60, /* 01100000 */
++	0x30, /* 00110000 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x7c, /* 01111100 */
++	0xc6, /* 11000110 */
++	0xfe, /* 11111110 */
++	0xc0, /* 11000000 */
++	0xc0, /* 11000000 */
++	0xc6, /* 11000110 */
++	0x7c, /* 01111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 139 0x8b '‹' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x66, /* 01100110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x38, /* 00111000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x3c, /* 00111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 140 0x8c 'Œ' */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x3c, /* 00111100 */
++	0x66, /* 01100110 */
++	0x00, /* 00000000 */
++	0x38, /* 00111000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x3c, /* 00111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 141 0x8d '' */
++	0x00, /* 00000000 */
++	0x60, /* 01100000 */
++	0x30, /* 00110000 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x38, /* 00111000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x3c, /* 00111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 142 0x8e 'Ž' */
++	0x00, /* 00000000 */
++	0xc6, /* 11000110 */
++	0x00, /* 00000000 */
++	0x10, /* 00010000 */
++	0x38, /* 00111000 */
++	0x6c, /* 01101100 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xfe, /* 11111110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 143 0x8f '' */
++	0x38, /* 00111000 */
++	0x6c, /* 01101100 */
++	0x38, /* 00111000 */
++	0x10, /* 00010000 */
++	0x38, /* 00111000 */
++	0x6c, /* 01101100 */
++	0xc6, /* 11000110 */
++	0xfe, /* 11111110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 144 0x90 '' */
++	0x0c, /* 00001100 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0xfe, /* 11111110 */
++	0x66, /* 01100110 */
++	0x62, /* 01100010 */
++	0x68, /* 01101000 */
++	0x78, /* 01111000 */
++	0x68, /* 01101000 */
++	0x62, /* 01100010 */
++	0x66, /* 01100110 */
++	0xfe, /* 11111110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 145 0x91 '‘' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xec, /* 11101100 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x7e, /* 01111110 */
++	0xd8, /* 11011000 */
++	0xd8, /* 11011000 */
++	0x6e, /* 01101110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 146 0x92 '’' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x3e, /* 00111110 */
++	0x6c, /* 01101100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xfe, /* 11111110 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xce, /* 11001110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 147 0x93 '“' */
++	0x00, /* 00000000 */
++	0x10, /* 00010000 */
++	0x38, /* 00111000 */
++	0x6c, /* 01101100 */
++	0x00, /* 00000000 */
++	0x7c, /* 01111100 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x7c, /* 01111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 148 0x94 '”' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xc6, /* 11000110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x7c, /* 01111100 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x7c, /* 01111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 149 0x95 '•' */
++	0x00, /* 00000000 */
++	0x60, /* 01100000 */
++	0x30, /* 00110000 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x7c, /* 01111100 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x7c, /* 01111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 150 0x96 '–' */
++	0x00, /* 00000000 */
++	0x30, /* 00110000 */
++	0x78, /* 01111000 */
++	0xcc, /* 11001100 */
++	0x00, /* 00000000 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0x76, /* 01110110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 151 0x97 '—' */
++	0x00, /* 00000000 */
++	0x60, /* 01100000 */
++	0x30, /* 00110000 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0x76, /* 01110110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 152 0x98 '˜' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xc6, /* 11000110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x7e, /* 01111110 */
++	0x06, /* 00000110 */
++	0x0c, /* 00001100 */
++	0x78, /* 01111000 */
++	0x00, /* 00000000 */
++
++	/* 153 0x99 '™' */
++	0x00, /* 00000000 */
++	0xc6, /* 11000110 */
++	0x00, /* 00000000 */
++	0x7c, /* 01111100 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x7c, /* 01111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 154 0x9a 'š' */
++	0x00, /* 00000000 */
++	0xc6, /* 11000110 */
++	0x00, /* 00000000 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x7c, /* 01111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 155 0x9b '›' */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x7c, /* 01111100 */
++	0xc6, /* 11000110 */
++	0xc0, /* 11000000 */
++	0xc0, /* 11000000 */
++	0xc0, /* 11000000 */
++	0xc6, /* 11000110 */
++	0x7c, /* 01111100 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 156 0x9c 'œ' */
++	0x00, /* 00000000 */
++	0x38, /* 00111000 */
++	0x6c, /* 01101100 */
++	0x64, /* 01100100 */
++	0x60, /* 01100000 */
++	0xf0, /* 11110000 */
++	0x60, /* 01100000 */
++	0x60, /* 01100000 */
++	0x60, /* 01100000 */
++	0x60, /* 01100000 */
++	0xe6, /* 11100110 */
++	0xfc, /* 11111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 157 0x9d '' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x3c, /* 00111100 */
++	0x18, /* 00011000 */
++	0x7e, /* 01111110 */
++	0x18, /* 00011000 */
++	0x7e, /* 01111110 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 158 0x9e 'ž' */
++	0x00, /* 00000000 */
++	0xf8, /* 11111000 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xf8, /* 11111000 */
++	0xc4, /* 11000100 */
++	0xcc, /* 11001100 */
++	0xde, /* 11011110 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xc6, /* 11000110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 159 0x9f 'Ÿ' */
++	0x00, /* 00000000 */
++	0x0e, /* 00001110 */
++	0x1b, /* 00011011 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x7e, /* 01111110 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0xd8, /* 11011000 */
++	0x70, /* 01110000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 160 0xa0 ' ' */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x30, /* 00110000 */
++	0x60, /* 01100000 */
++	0x00, /* 00000000 */
++	0x78, /* 01111000 */
++	0x0c, /* 00001100 */
++	0x7c, /* 01111100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0x76, /* 01110110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 161 0xa1 '¡' */
++	0x00, /* 00000000 */
++	0x0c, /* 00001100 */
++	0x18, /* 00011000 */
++	0x30, /* 00110000 */
++	0x00, /* 00000000 */
++	0x38, /* 00111000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x3c, /* 00111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 162 0xa2 '¢' */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x30, /* 00110000 */
++	0x60, /* 01100000 */
++	0x00, /* 00000000 */
++	0x7c, /* 01111100 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x7c, /* 01111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 163 0xa3 '£' */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x30, /* 00110000 */
++	0x60, /* 01100000 */
++	0x00, /* 00000000 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0x76, /* 01110110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 164 0xa4 '¤' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x76, /* 01110110 */
++	0xdc, /* 11011100 */
++	0x00, /* 00000000 */
++	0xdc, /* 11011100 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 165 0xa5 '¥' */
++	0x76, /* 01110110 */
++	0xdc, /* 11011100 */
++	0x00, /* 00000000 */
++	0xc6, /* 11000110 */
++	0xe6, /* 11100110 */
++	0xf6, /* 11110110 */
++	0xfe, /* 11111110 */
++	0xde, /* 11011110 */
++	0xce, /* 11001110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 166 0xa6 '¦' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x3c, /* 00111100 */
++	0x6c, /* 01101100 */
++	0x6c, /* 01101100 */
++	0x3e, /* 00111110 */
++	0x00, /* 00000000 */
++	0x7e, /* 01111110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 167 0xa7 '§' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x38, /* 00111000 */
++	0x6c, /* 01101100 */
++	0x6c, /* 01101100 */
++	0x38, /* 00111000 */
++	0x00, /* 00000000 */
++	0x7c, /* 01111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 168 0xa8 '¨' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x30, /* 00110000 */
++	0x30, /* 00110000 */
++	0x00, /* 00000000 */
++	0x30, /* 00110000 */
++	0x30, /* 00110000 */
++	0x60, /* 01100000 */
++	0xc0, /* 11000000 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x7c, /* 01111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 169 0xa9 '©' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xfe, /* 11111110 */
++	0xc0, /* 11000000 */
++	0xc0, /* 11000000 */
++	0xc0, /* 11000000 */
++	0xc0, /* 11000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 170 0xaa 'ª' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xfe, /* 11111110 */
++	0x06, /* 00000110 */
++	0x06, /* 00000110 */
++	0x06, /* 00000110 */
++	0x06, /* 00000110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 171 0xab '«' */
++	0x00, /* 00000000 */
++	0x60, /* 01100000 */
++	0xe0, /* 11100000 */
++	0x62, /* 01100010 */
++	0x66, /* 01100110 */
++	0x6c, /* 01101100 */
++	0x18, /* 00011000 */
++	0x30, /* 00110000 */
++	0x60, /* 01100000 */
++	0xdc, /* 11011100 */
++	0x86, /* 10000110 */
++	0x0c, /* 00001100 */
++	0x18, /* 00011000 */
++	0x3e, /* 00111110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 172 0xac '¬' */
++	0x00, /* 00000000 */
++	0x60, /* 01100000 */
++	0xe0, /* 11100000 */
++	0x62, /* 01100010 */
++	0x66, /* 01100110 */
++	0x6c, /* 01101100 */
++	0x18, /* 00011000 */
++	0x30, /* 00110000 */
++	0x66, /* 01100110 */
++	0xce, /* 11001110 */
++	0x9a, /* 10011010 */
++	0x3f, /* 00111111 */
++	0x06, /* 00000110 */
++	0x06, /* 00000110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 173 0xad '­' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x3c, /* 00111100 */
++	0x3c, /* 00111100 */
++	0x3c, /* 00111100 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 174 0xae '®' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x36, /* 00110110 */
++	0x6c, /* 01101100 */
++	0xd8, /* 11011000 */
++	0x6c, /* 01101100 */
++	0x36, /* 00110110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 175 0xaf '¯' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xd8, /* 11011000 */
++	0x6c, /* 01101100 */
++	0x36, /* 00110110 */
++	0x6c, /* 01101100 */
++	0xd8, /* 11011000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 176 0xb0 '°' */
++	0x11, /* 00010001 */
++	0x44, /* 01000100 */
++	0x11, /* 00010001 */
++	0x44, /* 01000100 */
++	0x11, /* 00010001 */
++	0x44, /* 01000100 */
++	0x11, /* 00010001 */
++	0x44, /* 01000100 */
++	0x11, /* 00010001 */
++	0x44, /* 01000100 */
++	0x11, /* 00010001 */
++	0x44, /* 01000100 */
++	0x11, /* 00010001 */
++	0x44, /* 01000100 */
++	0x11, /* 00010001 */
++	0x44, /* 01000100 */
++
++	/* 177 0xb1 '±' */
++	0x55, /* 01010101 */
++	0xaa, /* 10101010 */
++	0x55, /* 01010101 */
++	0xaa, /* 10101010 */
++	0x55, /* 01010101 */
++	0xaa, /* 10101010 */
++	0x55, /* 01010101 */
++	0xaa, /* 10101010 */
++	0x55, /* 01010101 */
++	0xaa, /* 10101010 */
++	0x55, /* 01010101 */
++	0xaa, /* 10101010 */
++	0x55, /* 01010101 */
++	0xaa, /* 10101010 */
++	0x55, /* 01010101 */
++	0xaa, /* 10101010 */
++
++	/* 178 0xb2 '²' */
++	0xdd, /* 11011101 */
++	0x77, /* 01110111 */
++	0xdd, /* 11011101 */
++	0x77, /* 01110111 */
++	0xdd, /* 11011101 */
++	0x77, /* 01110111 */
++	0xdd, /* 11011101 */
++	0x77, /* 01110111 */
++	0xdd, /* 11011101 */
++	0x77, /* 01110111 */
++	0xdd, /* 11011101 */
++	0x77, /* 01110111 */
++	0xdd, /* 11011101 */
++	0x77, /* 01110111 */
++	0xdd, /* 11011101 */
++	0x77, /* 01110111 */
++
++	/* 179 0xb3 '³' */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++
++	/* 180 0xb4 '´' */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0xf8, /* 11111000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++
++	/* 181 0xb5 'µ' */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0xf8, /* 11111000 */
++	0x18, /* 00011000 */
++	0xf8, /* 11111000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++
++	/* 182 0xb6 '¶' */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0xf6, /* 11110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++
++	/* 183 0xb7 '·' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xfe, /* 11111110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++
++	/* 184 0xb8 '¸' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xf8, /* 11111000 */
++	0x18, /* 00011000 */
++	0xf8, /* 11111000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++
++	/* 185 0xb9 '¹' */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0xf6, /* 11110110 */
++	0x06, /* 00000110 */
++	0xf6, /* 11110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++
++	/* 186 0xba 'º' */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++
++	/* 187 0xbb '»' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xfe, /* 11111110 */
++	0x06, /* 00000110 */
++	0xf6, /* 11110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++
++	/* 188 0xbc '¼' */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0xf6, /* 11110110 */
++	0x06, /* 00000110 */
++	0xfe, /* 11111110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 189 0xbd '½' */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0xfe, /* 11111110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 190 0xbe '¾' */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0xf8, /* 11111000 */
++	0x18, /* 00011000 */
++	0xf8, /* 11111000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 191 0xbf '¿' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xf8, /* 11111000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++
++	/* 192 0xc0 'À' */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x1f, /* 00011111 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 193 0xc1 'Á' */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0xff, /* 11111111 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 194 0xc2 'Â' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xff, /* 11111111 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++
++	/* 195 0xc3 'Ã' */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x1f, /* 00011111 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++
++	/* 196 0xc4 'Ä' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xff, /* 11111111 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 197 0xc5 'Å' */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0xff, /* 11111111 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++
++	/* 198 0xc6 'Æ' */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x1f, /* 00011111 */
++	0x18, /* 00011000 */
++	0x1f, /* 00011111 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++
++	/* 199 0xc7 'Ç' */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x37, /* 00110111 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++
++	/* 200 0xc8 'È' */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x37, /* 00110111 */
++	0x30, /* 00110000 */
++	0x3f, /* 00111111 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 201 0xc9 'É' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x3f, /* 00111111 */
++	0x30, /* 00110000 */
++	0x37, /* 00110111 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++
++	/* 202 0xca 'Ê' */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0xf7, /* 11110111 */
++	0x00, /* 00000000 */
++	0xff, /* 11111111 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 203 0xcb 'Ë' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xff, /* 11111111 */
++	0x00, /* 00000000 */
++	0xf7, /* 11110111 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++
++	/* 204 0xcc 'Ì' */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x37, /* 00110111 */
++	0x30, /* 00110000 */
++	0x37, /* 00110111 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++
++	/* 205 0xcd 'Í' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xff, /* 11111111 */
++	0x00, /* 00000000 */
++	0xff, /* 11111111 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 206 0xce 'Î' */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0xf7, /* 11110111 */
++	0x00, /* 00000000 */
++	0xf7, /* 11110111 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++
++	/* 207 0xcf 'Ï' */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0xff, /* 11111111 */
++	0x00, /* 00000000 */
++	0xff, /* 11111111 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 208 0xd0 'Ð' */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0xff, /* 11111111 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 209 0xd1 'Ñ' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xff, /* 11111111 */
++	0x00, /* 00000000 */
++	0xff, /* 11111111 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++
++	/* 210 0xd2 'Ò' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xff, /* 11111111 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++
++	/* 211 0xd3 'Ó' */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x3f, /* 00111111 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 212 0xd4 'Ô' */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x1f, /* 00011111 */
++	0x18, /* 00011000 */
++	0x1f, /* 00011111 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 213 0xd5 'Õ' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x1f, /* 00011111 */
++	0x18, /* 00011000 */
++	0x1f, /* 00011111 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++
++	/* 214 0xd6 'Ö' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x3f, /* 00111111 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++
++	/* 215 0xd7 '×' */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0xff, /* 11111111 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++
++	/* 216 0xd8 'Ø' */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0xff, /* 11111111 */
++	0x18, /* 00011000 */
++	0xff, /* 11111111 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++
++	/* 217 0xd9 'Ù' */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0xf8, /* 11111000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 218 0xda 'Ú' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x1f, /* 00011111 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++
++	/* 219 0xdb 'Û' */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++
++	/* 220 0xdc 'Ü' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++
++	/* 221 0xdd 'Ý' */
++	0xf0, /* 11110000 */
++	0xf0, /* 11110000 */
++	0xf0, /* 11110000 */
++	0xf0, /* 11110000 */
++	0xf0, /* 11110000 */
++	0xf0, /* 11110000 */
++	0xf0, /* 11110000 */
++	0xf0, /* 11110000 */
++	0xf0, /* 11110000 */
++	0xf0, /* 11110000 */
++	0xf0, /* 11110000 */
++	0xf0, /* 11110000 */
++	0xf0, /* 11110000 */
++	0xf0, /* 11110000 */
++	0xf0, /* 11110000 */
++	0xf0, /* 11110000 */
++
++	/* 222 0xde 'Þ' */
++	0x0f, /* 00001111 */
++	0x0f, /* 00001111 */
++	0x0f, /* 00001111 */
++	0x0f, /* 00001111 */
++	0x0f, /* 00001111 */
++	0x0f, /* 00001111 */
++	0x0f, /* 00001111 */
++	0x0f, /* 00001111 */
++	0x0f, /* 00001111 */
++	0x0f, /* 00001111 */
++	0x0f, /* 00001111 */
++	0x0f, /* 00001111 */
++	0x0f, /* 00001111 */
++	0x0f, /* 00001111 */
++	0x0f, /* 00001111 */
++	0x0f, /* 00001111 */
++
++	/* 223 0xdf 'ß' */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0xff, /* 11111111 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 224 0xe0 'à' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x76, /* 01110110 */
++	0xdc, /* 11011100 */
++	0xd8, /* 11011000 */
++	0xd8, /* 11011000 */
++	0xd8, /* 11011000 */
++	0xdc, /* 11011100 */
++	0x76, /* 01110110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 225 0xe1 'á' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x78, /* 01111000 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xcc, /* 11001100 */
++	0xd8, /* 11011000 */
++	0xcc, /* 11001100 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xcc, /* 11001100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 226 0xe2 'â' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xfe, /* 11111110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc0, /* 11000000 */
++	0xc0, /* 11000000 */
++	0xc0, /* 11000000 */
++	0xc0, /* 11000000 */
++	0xc0, /* 11000000 */
++	0xc0, /* 11000000 */
++	0xc0, /* 11000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 227 0xe3 'ã' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xfe, /* 11111110 */
++	0x6c, /* 01101100 */
++	0x6c, /* 01101100 */
++	0x6c, /* 01101100 */
++	0x6c, /* 01101100 */
++	0x6c, /* 01101100 */
++	0x6c, /* 01101100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 228 0xe4 'ä' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xfe, /* 11111110 */
++	0xc6, /* 11000110 */
++	0x60, /* 01100000 */
++	0x30, /* 00110000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x30, /* 00110000 */
++	0x60, /* 01100000 */
++	0xc6, /* 11000110 */
++	0xfe, /* 11111110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 229 0xe5 'å' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x7e, /* 01111110 */
++	0xd8, /* 11011000 */
++	0xd8, /* 11011000 */
++	0xd8, /* 11011000 */
++	0xd8, /* 11011000 */
++	0xd8, /* 11011000 */
++	0x70, /* 01110000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 230 0xe6 'æ' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x7c, /* 01111100 */
++	0x60, /* 01100000 */
++	0x60, /* 01100000 */
++	0xc0, /* 11000000 */
++	0x00, /* 00000000 */
++
++	/* 231 0xe7 'ç' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x76, /* 01110110 */
++	0xdc, /* 11011100 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 232 0xe8 'è' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x7e, /* 01111110 */
++	0x18, /* 00011000 */
++	0x3c, /* 00111100 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x3c, /* 00111100 */
++	0x18, /* 00011000 */
++	0x7e, /* 01111110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 233 0xe9 'é' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x38, /* 00111000 */
++	0x6c, /* 01101100 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xfe, /* 11111110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x6c, /* 01101100 */
++	0x38, /* 00111000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 234 0xea 'ê' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x38, /* 00111000 */
++	0x6c, /* 01101100 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x6c, /* 01101100 */
++	0x6c, /* 01101100 */
++	0x6c, /* 01101100 */
++	0x6c, /* 01101100 */
++	0xee, /* 11101110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 235 0xeb 'ë' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x1e, /* 00011110 */
++	0x30, /* 00110000 */
++	0x18, /* 00011000 */
++	0x0c, /* 00001100 */
++	0x3e, /* 00111110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x66, /* 01100110 */
++	0x3c, /* 00111100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 236 0xec 'ì' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x7e, /* 01111110 */
++	0xdb, /* 11011011 */
++	0xdb, /* 11011011 */
++	0xdb, /* 11011011 */
++	0x7e, /* 01111110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 237 0xed 'í' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x03, /* 00000011 */
++	0x06, /* 00000110 */
++	0x7e, /* 01111110 */
++	0xdb, /* 11011011 */
++	0xdb, /* 11011011 */
++	0xf3, /* 11110011 */
++	0x7e, /* 01111110 */
++	0x60, /* 01100000 */
++	0xc0, /* 11000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 238 0xee 'î' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x1c, /* 00011100 */
++	0x30, /* 00110000 */
++	0x60, /* 01100000 */
++	0x60, /* 01100000 */
++	0x7c, /* 01111100 */
++	0x60, /* 01100000 */
++	0x60, /* 01100000 */
++	0x60, /* 01100000 */
++	0x30, /* 00110000 */
++	0x1c, /* 00011100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 239 0xef 'ï' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x7c, /* 01111100 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0xc6, /* 11000110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 240 0xf0 'ð' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xfe, /* 11111110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xfe, /* 11111110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0xfe, /* 11111110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 241 0xf1 'ñ' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x7e, /* 01111110 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x7e, /* 01111110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 242 0xf2 'ò' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x30, /* 00110000 */
++	0x18, /* 00011000 */
++	0x0c, /* 00001100 */
++	0x06, /* 00000110 */
++	0x0c, /* 00001100 */
++	0x18, /* 00011000 */
++	0x30, /* 00110000 */
++	0x00, /* 00000000 */
++	0x7e, /* 01111110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 243 0xf3 'ó' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x0c, /* 00001100 */
++	0x18, /* 00011000 */
++	0x30, /* 00110000 */
++	0x60, /* 01100000 */
++	0x30, /* 00110000 */
++	0x18, /* 00011000 */
++	0x0c, /* 00001100 */
++	0x00, /* 00000000 */
++	0x7e, /* 01111110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 244 0xf4 'ô' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x0e, /* 00001110 */
++	0x1b, /* 00011011 */
++	0x1b, /* 00011011 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++
++	/* 245 0xf5 'õ' */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0xd8, /* 11011000 */
++	0xd8, /* 11011000 */
++	0xd8, /* 11011000 */
++	0x70, /* 01110000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 246 0xf6 'ö' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x7e, /* 01111110 */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 247 0xf7 '÷' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x76, /* 01110110 */
++	0xdc, /* 11011100 */
++	0x00, /* 00000000 */
++	0x76, /* 01110110 */
++	0xdc, /* 11011100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 248 0xf8 'ø' */
++	0x00, /* 00000000 */
++	0x38, /* 00111000 */
++	0x6c, /* 01101100 */
++	0x6c, /* 01101100 */
++	0x38, /* 00111000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 249 0xf9 'ù' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 250 0xfa 'ú' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x18, /* 00011000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 251 0xfb 'û' */
++	0x00, /* 00000000 */
++	0x0f, /* 00001111 */
++	0x0c, /* 00001100 */
++	0x0c, /* 00001100 */
++	0x0c, /* 00001100 */
++	0x0c, /* 00001100 */
++	0x0c, /* 00001100 */
++	0xec, /* 11101100 */
++	0x6c, /* 01101100 */
++	0x6c, /* 01101100 */
++	0x3c, /* 00111100 */
++	0x1c, /* 00011100 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 252 0xfc 'ü' */
++	0x00, /* 00000000 */
++	0x6c, /* 01101100 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x36, /* 00110110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 253 0xfd 'ý' */
++	0x00, /* 00000000 */
++	0x3c, /* 00111100 */
++	0x66, /* 01100110 */
++	0x0c, /* 00001100 */
++	0x18, /* 00011000 */
++	0x32, /* 00110010 */
++	0x7e, /* 01111110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 254 0xfe 'þ' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x7e, /* 01111110 */
++	0x7e, /* 01111110 */
++	0x7e, /* 01111110 */
++	0x7e, /* 01111110 */
++	0x7e, /* 01111110 */
++	0x7e, /* 01111110 */
++	0x7e, /* 01111110 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++	/* 255 0xff 'ÿ' */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++	0x00, /* 00000000 */
++
++};
++
++#endif
+diff --git a/efi/graphics.c b/efi/graphics.c
+new file mode 100644
+index 0000000..5e91810
+--- /dev/null
++++ b/efi/graphics.c
+@@ -0,0 +1,568 @@
++#ifdef SUPPORT_GRAPHICS
++
++#include <grub/misc.h>
++#include <grub/types.h>
++#include <grub/cpu/linux.h>
++#include <grub/efi/api.h>
++#include <grub/efi/efi.h>
++#include <grub/misc.h>
++
++#include <term.h>
++#include <shared.h>
++#include <graphics.h>
++
++#include "graphics.h"
++
++#if 0
++#include "ugadebug.h"
++#endif
++
++int foreground = 0x00ffffff, background = 0; 
++int graphics_inited = 0;
++
++/* Convert a character which is a hex digit to the appropriate integer */
++int
++hex (int v)
++{
++  if (v >= 'A' && v <= 'F')
++    return (v - 'A' + 10);
++  if (v >= 'a' && v <= 'f')
++    return (v - 'a' + 10);
++  return (v - '0');
++}
++
++grub_uint16_t
++grub_console_getwh (void)
++{
++  grub_efi_simple_text_output_interface_t *o;
++  grub_efi_uintn_t columns, rows;
++
++  o = grub_efi_system_table->con_out;
++  if (Call_Service_4 (o->query_mode , o, o->mode->mode, &columns, &rows)
++      != GRUB_EFI_SUCCESS)
++    {
++      /* Why does this fail?  */
++      columns = 80;
++      rows = 25;
++    }
++
++  return ((columns << 8) | rows);
++}
++
++extern struct graphics_backend uga_backend;
++extern struct graphics_backend eg_backend;
++
++static struct graphics_backend *backends[] = {
++    &eg_backend,
++    &uga_backend,
++    NULL
++};
++static struct graphics_backend *backend;
++
++struct graphics {
++    int scroll;
++    int fontx;
++    int fonty;
++
++    int standard_color;
++    int normal_color;
++    int highlight_color;
++    int current_color;
++    color_state color_state;
++
++    char splashpath[64];
++    struct xpm *splashimage;
++
++    unsigned short *text;
++};
++
++void
++graphics_set_kernel_params(struct linux_kernel_params *params)
++{
++    params->video_cursor_x = grub_efi_system_table->con_out->mode->cursor_column;
++    params->video_cursor_y = grub_efi_system_table->con_out->mode->cursor_row;
++    params->video_page = 0; /* ??? */
++    params->video_mode = grub_efi_system_table->con_out->mode->mode;
++    params->video_width = (grub_console_getwh () >> 8);
++    params->video_ega_bx = 0;
++    params->video_height = (grub_console_getwh () & 0xff);
++    params->have_vga = 0;
++    params->font_size = 16; /* XXX */
++
++    /* No VBE.  */
++    params->lfb_width = 0;
++    params->lfb_height = 0;
++    params->lfb_depth = 0;
++    params->lfb_base = 0;
++    params->lfb_size = 0;
++    params->lfb_line_len = 0;
++    params->red_mask_size = 0;
++    params->red_field_pos = 0;
++    params->green_mask_size = 0;
++    params->green_field_pos = 0;
++    params->blue_mask_size = 0;
++    params->blue_field_pos = 0;
++    params->reserved_mask_size = 0;
++    params->reserved_field_pos = 0;
++    params->vesapm_segment = 0;
++    params->vesapm_offset = 0;
++    params->lfb_pages = 0;
++    params->vesa_attrib = 0;
++
++    if (backend && backend->set_kernel_params)
++        backend->set_kernel_params(backend, params);
++}
++
++int
++graphics_alloc_text_buf(void)
++{
++    if (backend) {
++        struct graphics *graphics = backend->graphics;
++        position_t screen_size;
++
++        if (graphics->text) {
++            grub_free(graphics->text);
++            graphics->text = NULL;
++        }
++        graphics_get_screen_rowscols(&screen_size);
++        graphics->text = grub_malloc(screen_size.x
++                                     * screen_size.y
++                                     * sizeof (graphics->text[0]));
++        if (graphics->text) {
++            int x, y;
++            for (y = 0; y < screen_size.y; y++)
++                for (x = 0; x < screen_size.x; x++)
++                    graphics->text[y * screen_size.x + x] = ' ';
++            return 1;
++        }
++    }
++    return 0;
++}
++
++unsigned short *
++graphics_get_text_buf(void)
++{
++    return backend ? backend->graphics->text : NULL;
++    return NULL;
++}
++
++int
++graphics_get_screen_rowscols(position_t *size)
++{
++#if 0
++    if (backend && backend->get_screen_size) {
++        backend->get_screen_size(backend, size);
++        size->x >>= 3;
++        size->y >>= 4;
++        return 1;
++    }
++    size->x = -1;
++    size->y = -1;
++    return 0;
++#else
++    size->x = 80;
++    size->y = 30;
++    return 1;
++#endif
++}
++
++int
++graphics_get_scroll(void)
++{
++    return backend ? backend->graphics->scroll : 1;
++}
++
++void
++graphics_set_palette(int idx, int red, int green, int blue)
++{
++    if (backend && backend->set_palette) {
++        backend->set_palette(backend, idx, red, green, blue);
++	backend->set_palette(backend, 0, 0x00, 0x00, 0x00);
++	backend->set_palette(backend, 15, 0xff, 0xff, 0xff);
++	backend->set_palette(backend, 16, 0x00, 0x00, 0x00);
++    }
++}
++
++static char splashpath[64] = "";
++
++static void
++graphics_set_splash_helper(void)
++{
++    if (backend) {
++        struct xpm *xpm = NULL;
++
++        if (backend->graphics->splashimage)
++            xpm_free(backend->graphics->splashimage);
++
++        if (splashpath[0])
++            xpm = xpm_open(splashpath);
++
++        if (xpm) {
++            backend->graphics->splashimage = xpm;
++	    grub_strcpy(backend->graphics->splashpath, splashpath);
++        } else {
++            backend->graphics->splashimage = NULL;
++            backend->graphics->splashpath[0] = '\0';
++        }
++        backend->reset_screen_geometry(backend);
++    }
++}
++
++void
++graphics_set_splash(char *s)
++{
++    if (s && s[0] != '\0')
++        grub_strcpy(splashpath, s);
++    else
++        splashpath[0] = '\0';
++    graphics_set_splash_helper();
++}
++
++char *
++graphics_get_splash(void)
++{
++    if (backend)
++        return backend->graphics->splashpath;
++    if (splashpath[0] != '\0')
++        return splashpath;
++    return NULL;
++}
++
++struct xpm *
++graphics_get_splash_xpm(void)
++{
++    if (backend)
++        return backend->graphics->splashimage;
++    return NULL;
++}
++
++void
++graphics_putchar(int ch)
++{
++    struct graphics *graphics;
++    position_t screensz;
++    int offset;
++
++    void *old_term = current_term;
++
++    if (!backend)
++        return;
++
++    graphics = backend->graphics;
++    graphics_get_screen_rowscols(&screensz);
++
++    ch &= 0xff;
++
++    graphics_cursor(0);
++
++    if (ch == '\n') {
++        if (graphics->fonty + 1 < screensz.y) {
++            graphics_setxy(graphics->fontx, graphics->fonty + 1);
++        } else
++            graphics_scroll();
++        graphics_cursor(1);
++        return;
++    } else if (ch == '\r') {
++        graphics_setxy(0, graphics->fonty);
++        graphics_cursor(1);
++        return;
++    }
++
++    graphics_cursor(0);
++
++    offset = graphics->fontx + graphics->fonty * screensz.x;
++    graphics->text[offset] = ch;
++    graphics->text[offset] &= 0x00ff;
++    if (graphics->current_color & 0xf0)
++        graphics->text[offset] |= 0x100;
++
++    graphics_cursor(0);
++
++    if ((graphics->fontx + 1) >= screensz.x) {
++        graphics_setxy(0, graphics->fonty);
++        if (graphics->fonty + 1 < screensz.y)
++            graphics_setxy(0, graphics->fonty + 1);
++        else
++            graphics_scroll();
++    } else {
++        graphics_setxy(graphics->fontx + 1, graphics->fonty);
++    }
++
++    graphics_cursor(1);
++}
++
++void
++graphics_set_font_position(position_t *pos)
++{
++    if (backend) {
++        backend->graphics->fontx = pos->x;
++        backend->graphics->fonty = pos->y;
++    }
++}
++
++void
++graphics_get_font_position(position_t *pos)
++{
++    if (backend) {
++        pos->x = backend->graphics->fontx;
++        pos->y = backend->graphics->fonty;
++        return;
++    }
++    pos->x = -1;
++    pos->y = -1;
++}
++
++void
++graphics_get_font_size(position_t *size)
++{
++    size->x = 8;
++    size->y = 16;
++}
++
++void
++graphics_setxy(int x, int y)
++{
++    if (!backend)
++        return;
++
++    if (backend->setxy) {
++        position_t pos = {x, y};
++        backend->setxy(backend, &pos);
++        return;
++    }
++}
++
++int
++graphics_getxy(void)
++{
++    int ret = 0;
++    if (backend) {
++        if (backend->getxy) {
++            position_t pos;
++            backend->getxy(backend, &pos);
++            ret = ((pos.x & 0xff) << 8) | (pos.y & 0xff);
++        } else {
++            ret = ((backend->graphics->fontx & 0xff) << 8) | (backend->graphics->fonty & 0xff);
++        }
++    }
++    return ret;
++}
++
++void
++graphics_scroll (void)
++{
++    struct graphics *graphics;
++    position_t screensz;
++    int i;
++    unsigned short *text;
++    int linesz;
++
++    if (!backend)
++        return;
++
++    graphics = backend->graphics;
++
++    /* we don't want to scroll recursively... that would be bad */
++    if (!graphics->scroll)
++        return;
++    graphics->scroll = 0;
++    graphics_get_screen_rowscols(&screensz);
++
++    text = graphics_get_text_buf();
++    linesz = screensz.x * sizeof (text[0]);
++    for (i = 1; i < screensz.y; i++) {
++        unsigned short *prev = &text[(i-1) * screensz.x];
++        unsigned short *this = prev + screensz.x;
++
++        memmove(prev, this, linesz);
++        prev = this;
++        this += screensz.x;
++    }
++    graphics_setxy(0, screensz.y - 1);
++    for (i = 0; i < screensz.x; i++) {
++        graphics_putchar(' ');
++        //text[(screensz.y-1) + i] = ' ';
++    }
++
++    graphics_clbl(0, 0, screensz.x, screensz.y, 1);
++    graphics_setxy(0, screensz.y - 1);
++    graphics->scroll = 1;
++}
++
++void
++graphics_cursor(int set)
++{
++    if (backend && backend->cursor)
++        backend->cursor(backend, set);
++}
++
++void
++graphics_gotoxy(int x, int y)
++{
++    position_t pos = {x,y};
++    if (backend) {
++        if (backend->gotoxy) {
++            backend->gotoxy(backend, &pos);
++        } else {
++            graphics_cursor(0);
++            graphics_setxy(x, y);
++            graphics_cursor(1);
++        }
++    }
++}
++
++void
++graphics_cls(void)
++{
++    int x = 0, y = 0, xy;
++    unsigned short *text;
++    position_t screensz;
++
++    graphics_get_screen_rowscols(&screensz);
++    text = graphics_get_text_buf();
++    for (y = 0; y < screensz.y; y++)
++            for (x = 0; x < screensz.x; x++)
++                text[x + y * screensz.x] = ' ';
++
++    if (backend) {
++        //int xy = graphics_getxy();
++
++        graphics_clbl(0, 0, screensz.x, screensz.y, 0);
++        //graphics_gotoxy(xy & 0xf0 >> 8, xy & 0xf);
++        graphics_gotoxy(0, 0);
++    }
++}
++
++void
++graphics_clbl(int col, int row, int width, int height, int draw_text)
++{
++    if (backend) {
++        int x = 0, y = 0, xy;
++        unsigned short *text;
++        position_t screensz;
++
++        graphics_get_screen_rowscols(&screensz);
++
++#if 0
++        xy = graphics_getxy();
++#endif
++        if (backend->clbl) {
++            backend->clbl(backend, col, row, width, height, draw_text);
++        } else {
++            for (y = 0; y < screensz.y; y++) {
++                for (x = 0; x < screensz.x; x++) {
++                    graphics_setxy(x, y);
++                    graphics_cursor(0);
++                }
++            }
++        }
++#if 0
++        graphics_gotoxy(xy >> 8, xy & 0xf);
++#endif
++    }
++}
++
++void
++graphics_setcolorstate (color_state state)
++{
++    struct graphics *graphics;
++    if (!backend)
++        return;
++
++    graphics = backend->graphics;
++    
++    switch (state) {
++        case COLOR_STATE_STANDARD:
++            graphics->current_color = graphics->standard_color;
++            break;
++        case COLOR_STATE_NORMAL:
++            graphics->current_color = graphics->normal_color;
++            break;
++        case COLOR_STATE_HIGHLIGHT:
++            graphics->current_color = graphics->highlight_color;
++            break;
++        default:
++            graphics->current_color = graphics->standard_color;
++            break;
++    }
++
++    graphics->color_state = state;
++}
++
++void
++graphics_setcolor (int normal_color, int highlight_color)
++{
++    backend->graphics->normal_color = normal_color;
++    backend->graphics->highlight_color = highlight_color;
++
++    graphics_setcolorstate (backend->graphics->color_state);
++}
++
++int 
++graphics_setcursor(int on)
++{
++    /* FIXME: we don't have a cursor in graphics */
++    return 0;
++}
++
++int
++graphics_init(void)
++{
++    struct graphics *graphics;
++    int i;
++
++    if (graphics_inited)
++        return 1;
++
++    if (backend) {
++        if (backend->enable(backend)) {
++            graphics_inited = 1;
++            graphics_set_splash_helper();
++            return 1;
++        }
++        return 0;
++    }
++
++    graphics = grub_malloc(sizeof (*graphics));
++    if (!graphics)
++        return 0;
++
++    grub_memset(graphics, '\0', sizeof (*graphics));
++
++    graphics->scroll = 1;
++    graphics->fontx = 0;
++    graphics->fonty = 0;
++
++    graphics->standard_color = A_NORMAL;
++    graphics->normal_color = A_NORMAL;
++    graphics->highlight_color = A_REVERSE;
++    graphics->current_color = A_NORMAL;
++    graphics->color_state = COLOR_STATE_STANDARD;
++
++    grub_memset(graphics->splashpath, '\0', sizeof (graphics->splashpath));
++
++    for(i = 0; backends[i] != NULL; i++) {
++        backend = backends[i];
++        backend->graphics = graphics;
++        if (backend->enable(backend)) {
++            graphics_inited = 1;
++            graphics_set_splash_helper();
++            return 1;
++        }
++        backend->graphics = NULL;
++    }
++    grub_free(graphics->text);
++    grub_free(graphics);
++    return 0;
++}
++
++void
++graphics_end(void)
++{
++    if (backend && graphics_inited) {
++        graphics_inited = 0;
++        backend->disable(backend);
++    }
++}
++
++#endif /* SUPPORT_GRAPHICS */
+diff --git a/efi/graphics.h b/efi/graphics.h
+new file mode 100644
+index 0000000..7bdd647
+--- /dev/null
++++ b/efi/graphics.h
+@@ -0,0 +1,79 @@
++#ifndef GRUB_EFI_GRAPHICS_H
++#define GRUB_EFI_GRAPHICS_H
++
++#ifdef SUPPORT_GRAPHICS
++
++#include <term.h>
++#include "xpm.h"
++
++#define VIDEO_TYPE_EFI 0x70
++
++typedef void pixel_t;
++struct graphics;
++
++struct position {
++    int x;
++    int y;
++};
++typedef struct position position_t;
++
++extern grub_uint16_t grub_console_getwh (void);
++extern void graphics_set_kernel_params(struct linux_kernel_params *params);
++extern void graphics_set_font_position(position_t *pos);
++extern void graphics_get_font_position(position_t *pos);
++extern void graphics_get_font_size(position_t *size);
++extern int graphics_get_screen_rowscols(position_t *size);
++extern int graphics_alloc_text_buf(void);
++extern unsigned short *graphics_get_text_buf(void);
++
++extern int graphics_get_scroll(void);
++
++extern char *graphics_get_splash(void);
++extern void graphics_setxy(int x, int y);
++extern void graphics_cls(void);
++extern void graphics_clbl(int x, int y, int width, int height, int draw_text);
++extern void graphics_setcolorstate (color_state state);
++extern void graphics_setcolor (int normal_color, int highlight_color);
++extern int graphics_setcursor(int on);
++extern int graphics_init(void);
++extern void graphics_end(void);
++extern struct xpm *graphics_get_splash_xpm(void);
++extern void graphics_cursor(int set);
++extern void graphics_scroll(void);
++
++struct graphics_backend {
++    char *name;
++    struct graphics *graphics;
++    void *priv;
++
++    int (*enable)(struct graphics_backend *backend);
++    void (*disable)(struct graphics_backend *backend);
++
++    void (*set_kernel_params)(struct graphics_backend *backend,
++            struct linux_kernel_params *params);
++
++    void (*clbl)(struct graphics_backend *backend, int col, int row,
++    						   int width, int height,
++                                                   int draw_text);
++
++    void (*set_palette)(struct graphics_backend *backend,
++                        int idx, int red, int green, int blue);
++    pixel_t *(*get_pixel_idx)(struct graphics_backend *backend, int idx);
++    pixel_t *(*get_pixel_rgb)(struct graphics_backend *backend,
++                              int red, int green, int blue);
++    void (*draw_pixel)(struct graphics_backend *backend,
++                       position_t *pos, pixel_t *pixel);
++
++    void (*reset_screen_geometry)(struct graphics_backend *backend);
++    void (*get_screen_size)(struct graphics_backend *backend, position_t *size);
++    void (*getxy)(struct graphics_backend *backend, position_t *pos);
++    void (*setxy)(struct graphics_backend *backend, position_t *pos);
++    void (*gotoxy)(struct graphics_backend *backend, position_t *pos);
++    void (*cursor)(struct graphics_backend *backend, int set);
++//    void (*putchar)(struct graphics_backend *backend, int ch);
++};
++
++extern const unsigned char font8x16[];
++
++#endif /* SUPPORT_GRAPHCIS */
++#endif /* GRUB_EFI_GRAPHICS_H */
+diff --git a/efi/grub/.gitignore b/efi/grub/.gitignore
+new file mode 100644
+index 0000000..40a991e
+--- /dev/null
++++ b/efi/grub/.gitignore
+@@ -0,0 +1 @@
++cpu
+diff --git a/efi/grub/efi/api.h b/efi/grub/efi/api.h
+new file mode 100644
+index 0000000..8f75a68
+--- /dev/null
++++ b/efi/grub/efi/api.h
+@@ -0,0 +1,1471 @@
++/* efi.h - declare EFI types and functions */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2006  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifndef GRUB_EFI_API_HEADER
++#define GRUB_EFI_API_HEADER	1
++
++#include <grub/types.h>
++#include <grub/efi/eficall.h>
++
++/* For consistency and safety, we name the EFI-defined types differently.
++   All names are transformed into lower case, _t appended, and
++   grub_efi_ prepended.  */
++
++/* Constants.  */
++#define GRUB_EFI_EVT_TIMER				0x80000000
++#define GRUB_EFI_EVT_RUNTIME				0x40000000
++#define GRUB_EFI_EVT_RUNTIME_CONTEXT			0x20000000
++#define GRUB_EFI_EVT_NOTIFY_WAIT			0x00000100
++#define GRUB_EFI_EVT_NOTIFY_SIGNAL			0x00000200
++#define GRUB_EFI_EVT_SIGNAL_EXIT_BOOT_SERVICES		0x00000201
++#define GRUB_EFI_EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE	0x60000202
++
++#define GRUB_EFI_TPL_APPLICATION	4
++#define GRUB_EFI_TPL_CALLBACK		8
++#define GRUB_EFI_TPL_NOTIFY		16
++#define GRUB_EFI_TPL_HIGH_LEVEL		31
++
++#define GRUB_EFI_MEMORY_UC	0x0000000000000001
++#define GRUB_EFI_MEMORY_WC	0x0000000000000002
++#define GRUB_EFI_MEMORY_WT	0x0000000000000004
++#define GRUB_EFI_MEMORY_WB	0x0000000000000008
++#define GRUB_EFI_MEMORY_UCE	0x0000000000000010
++#define GRUB_EFI_MEMORY_WP	0x0000000000001000
++#define GRUB_EFI_MEMORY_RP	0x0000000000002000
++#define GRUB_EFI_MEMORY_XP	0x0000000000004000
++#define GRUB_EFI_MEMORY_RUNTIME	0x8000000000000000
++
++#define GRUB_EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL	0x00000001
++#define GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL		0x00000002
++#define GRUB_EFI_OPEN_PROTOCOL_TEST_PROTOCOL		0x00000004
++#define GRUB_EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER	0x00000008
++#define GRUB_EFI_OPEN_PROTOCOL_BY_DRIVER		0x00000010
++#define GRUB_EFI_OPEN_PROTOCOL_BY_EXCLUSIVE		0x00000020
++
++#define GRUB_EFI_VARIABLE_NON_VOLATILE		0x0000000000000001
++#define GRUB_EFI_VARIABLE_BOOTSERVICE_ACCESS	0x0000000000000002
++#define GRUB_EFI_VARIABLE_RUNTIME_ACCESS	0x0000000000000004
++
++#define GRUB_EFI_TIME_ADJUST_DAYLIGHT	0x01
++#define GRUB_EFI_TIME_IN_DAYLIGHT	0x02
++
++#define GRUB_EFI_UNSPECIFIED_TIMEZONE	0x07FF
++
++#define GRUB_EFI_OPTIONAL_PTR	0x00000001
++
++#define GRUB_EFI_LOADED_IMAGE_GUID	\
++  { 0x5b1b31a1, 0x9562, 0x11d2, \
++    { 0x8e, 0x3f, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \
++  }
++
++#define GRUB_EFI_DISK_IO_GUID	\
++  { 0xce345171, 0xba0b, 0x11d2, \
++    { 0x8e, 0x4f, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \
++  }
++
++#define GRUB_EFI_BLOCK_IO_GUID	\
++  { 0x964e5b21, 0x6459, 0x11d2, \
++    { 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \
++  }
++
++#define GRUB_EFI_DEVICE_PATH_GUID	\
++  { 0x09576e91, 0x6d3f, 0x11d2, \
++    { 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \
++  }
++
++#define GRUB_EFI_DEVICE_PATH_FROM_TEXT_GUID	\
++  { 0x05c99a21, 0xc70f, 0x4ad2, \
++    { 0x8a, 0x5f, 0x35, 0xdf, 0x33, 0x43, 0xf5, 0x1e } \
++  }
++
++#define GRUB_EFI_GRAPHICS_OUTPUT_GUID	\
++  { 0x9042a9de, 0x23dc, 0x4a38, \
++    { 0x96, 0xfb, 0x7a, 0xde, 0xd0, 0x80, 0x51, 0x6a } \
++  }
++
++#define GRUB_EFI_UGA_DRAW_GUID \
++  { 0x982c298b, 0xf4fa, 0x41cb, \
++    { 0xb8, 0x38, 0x77, 0xaa, 0x68, 0x8f, 0xb8, 0x39 } \
++  }
++
++#define GRUB_EFI_UGA_IO_GUID \
++  { 0x61a4d49e, 0x6f68, 0x4f1b, \
++    { 0xb9, 0x22, 0xa8, 0x6e, 0xed, 0xb, 0x7, 0xa2 } \
++  }
++
++#define GRUB_EFI_SIMPLE_FILE_SYSTEM_GUID	\
++  { 0x964e5b22, 0x6459, 0x11d2, \
++    { 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \
++  }
++
++#define GRUB_EFI_SERIAL_IO_GUID		\
++  { 0xbb25cf6f, 0xf1d4, 0x11d2, \
++    { 0x9a, 0x0c, 0x00, 0x90, 0x27, 0x3F, 0xc1, 0xfd } \
++  }
++
++/* Enumerations.  */
++enum grub_efi_timer_delay
++{
++  GRUB_EFI_TIMER_CANCEL,
++  GRUB_EFI_TIMER_PERIODIC,
++  GRUB_EFI_TIMER_RELATIVE
++};
++typedef enum grub_efi_timer_delay grub_efi_timer_delay_t;
++
++enum grub_efi_allocate_type
++{
++  GRUB_EFI_ALLOCATE_ANY_PAGES,
++  GRUB_EFI_ALLOCATE_MAX_ADDRESS,
++  GRUB_EFI_ALLOCATE_ADDRESS,
++  GRUB_EFI_MAX_ALLOCATION_TYPE
++};
++typedef enum grub_efi_allocate_type grub_efi_allocate_type_t;
++
++enum grub_efi_memory_type
++{
++  GRUB_EFI_RESERVED_MEMORY_TYPE,
++  GRUB_EFI_LOADER_CODE,
++  GRUB_EFI_LOADER_DATA,
++  GRUB_EFI_BOOT_SERVICES_CODE,
++  GRUB_EFI_BOOT_SERVICES_DATA,
++  GRUB_EFI_RUNTIME_SERVICES_CODE,
++  GRUB_EFI_RUNTIME_SERVICES_DATA,
++  GRUB_EFI_CONVENTIONAL_MEMORY,
++  GRUB_EFI_UNUSABLE_MEMORY,
++  GRUB_EFI_ACPI_RECLAIM_MEMORY,
++  GRUB_EFI_ACPI_MEMORY_NVS,
++  GRUB_EFI_MEMORY_MAPPED_IO,
++  GRUB_EFI_MEMORY_MAPPED_IO_PORT_SPACE,
++  GRUB_EFI_PAL_CODE,
++  GRUB_EFI_MAX_MEMORY_TYPE
++};
++typedef enum grub_efi_memory_type grub_efi_memory_type_t;
++
++enum grub_efi_interface_type
++{
++  GRUB_EFI_NATIVE_INTERFACE
++};
++typedef enum grub_efi_interface_type grub_efi_interface_type_t;
++
++enum grub_efi_locate_search_type
++{
++  GRUB_EFI_ALL_HANDLES,
++  GRUB_EFI_BY_REGISTER_NOTIFY,
++  GRUB_EFI_BY_PROTOCOL
++};
++typedef enum grub_efi_locate_search_type grub_efi_locate_search_type_t;
++
++enum grub_efi_reset_type
++{
++  GRUB_EFI_RESET_COLD,
++  GRUB_EFI_RESET_WARM,
++  GRUB_EFI_RESET_SHUTDOWN
++};
++typedef enum grub_efi_reset_type grub_efi_reset_type_t;
++
++/* Types.  */
++typedef char grub_efi_boolean_t;
++typedef long grub_efi_intn_t;
++typedef unsigned long grub_efi_uintn_t;
++typedef grub_int8_t grub_efi_int8_t;
++typedef grub_uint8_t grub_efi_uint8_t;
++typedef grub_int16_t grub_efi_int16_t;
++typedef grub_uint16_t grub_efi_uint16_t;
++typedef grub_int32_t grub_efi_int32_t;
++typedef grub_uint32_t grub_efi_uint32_t;
++typedef grub_int64_t grub_efi_int64_t;
++typedef grub_uint64_t grub_efi_uint64_t;
++typedef grub_uint8_t grub_efi_char8_t;
++typedef grub_uint16_t grub_efi_char16_t;
++
++typedef grub_efi_intn_t grub_efi_status_t;
++
++#define GRUB_EFI_ERROR_CODE(value)	\
++  ((1L << (sizeof (grub_efi_status_t) * 8 - 1)) | (value))
++
++#define GRUB_EFI_WARNING_CODE(value)	(value)
++
++#define GRUB_EFI_SUCCESS		0
++
++#define GRUB_EFI_LOAD_ERROR		GRUB_EFI_ERROR_CODE (1)
++#define GRUB_EFI_INVALID_PARAMETER	GRUB_EFI_ERROR_CODE (2)
++#define GRUB_EFI_UNSUPPORTED		GRUB_EFI_ERROR_CODE (3)
++#define GRUB_EFI_BAD_BUFFER_SIZE	GRUB_EFI_ERROR_CODE (4)
++#define GRUB_EFI_BUFFER_TOO_SMALL	GRUB_EFI_ERROR_CODE (5)
++#define GRUB_EFI_NOT_READY		GRUB_EFI_ERROR_CODE (6)
++#define GRUB_EFI_DEVICE_ERROR		GRUB_EFI_ERROR_CODE (7)
++#define GRUB_EFI_WRITE_PROTECTED	GRUB_EFI_ERROR_CODE (8)
++#define GRUB_EFI_OUT_OF_RESOURCES	GRUB_EFI_ERROR_CODE (9)
++#define GRUB_EFI_VOLUME_CORRUPTED	GRUB_EFI_ERROR_CODE (10)
++#define GRUB_EFI_VOLUME_FULL		GRUB_EFI_ERROR_CODE (11)
++#define GRUB_EFI_NO_MEDIA		GRUB_EFI_ERROR_CODE (12)
++#define GRUB_EFI_MEDIA_CHANGED		GRUB_EFI_ERROR_CODE (13)
++#define GRUB_EFI_NOT_FOUND		GRUB_EFI_ERROR_CODE (14)
++#define GRUB_EFI_ACCESS_DENIED		GRUB_EFI_ERROR_CODE (15)
++#define GRUB_EFI_NO_RESPONSE		GRUB_EFI_ERROR_CODE (16)
++#define GRUB_EFI_NO_MAPPING		GRUB_EFI_ERROR_CODE (17)
++#define GRUB_EFI_TIMEOUT		GRUB_EFI_ERROR_CODE (18)
++#define GRUB_EFI_NOT_STARTED		GRUB_EFI_ERROR_CODE (19)
++#define GRUB_EFI_ALREADY_STARTED	GRUB_EFI_ERROR_CODE (20)
++#define GRUB_EFI_ABORTED		GRUB_EFI_ERROR_CODE (21)
++#define GRUB_EFI_ICMP_ERROR		GRUB_EFI_ERROR_CODE (22)
++#define GRUB_EFI_TFTP_ERROR		GRUB_EFI_ERROR_CODE (23)
++#define GRUB_EFI_PROTOCOL_ERROR		GRUB_EFI_ERROR_CODE (24)
++#define GRUB_EFI_INCOMPATIBLE_VERSION	GRUB_EFI_ERROR_CODE (25)
++#define GRUB_EFI_SECURITY_VIOLATION	GRUB_EFI_ERROR_CODE (26)
++#define GRUB_EFI_CRC_ERROR		GRUB_EFI_ERROR_CODE (27)
++
++#define GRUB_EFI_WARN_UNKNOWN_GLYPH	GRUB_EFI_WARNING_CODE (1)
++#define GRUB_EFI_WARN_DELETE_FAILURE	GRUB_EFI_WARNING_CODE (2)
++#define GRUB_EFI_WARN_WRITE_FAILURE	GRUB_EFI_WARNING_CODE (3)
++#define GRUB_EFI_WARN_BUFFER_TOO_SMALL	GRUB_EFI_WARNING_CODE (4)
++
++typedef void *grub_efi_handle_t;
++typedef void *grub_efi_event_t;
++typedef grub_efi_uint64_t grub_efi_lba_t;
++typedef grub_efi_uintn_t grub_efi_tpl_t;
++typedef grub_uint8_t grub_efi_mac_address_t[32];
++typedef grub_uint8_t grub_efi_ipv4_address_t[4];
++typedef grub_uint16_t grub_efi_ipv6_address_t[8];
++typedef grub_uint8_t grub_efi_ip_address_t[8] __attribute__ ((aligned (4)));
++typedef grub_efi_uint64_t grub_efi_physical_address_t;
++typedef grub_efi_uint64_t grub_efi_virtual_address_t;
++
++struct grub_efi_guid
++{
++  grub_uint32_t data1;
++  grub_uint16_t data2;
++  grub_uint16_t data3;
++  grub_uint8_t data4[8];
++} __attribute__ ((aligned (8)));
++typedef struct grub_efi_guid grub_efi_guid_t;
++
++/* XXX although the spec does not specify the padding, this actually
++   must have the padding!  */
++struct grub_efi_memory_descriptor
++{
++  grub_efi_uint32_t type;
++  grub_efi_uint32_t padding;
++  grub_efi_physical_address_t physical_start;
++  grub_efi_virtual_address_t virtual_start;
++  grub_efi_uint64_t num_pages;
++  grub_efi_uint64_t attribute;
++};
++typedef struct grub_efi_memory_descriptor grub_efi_memory_descriptor_t;
++
++/* Device Path definitions.  */
++struct grub_efi_device_path
++{
++  grub_efi_uint8_t type;
++  grub_efi_uint8_t subtype;
++  grub_efi_uint8_t length[2];
++};
++typedef struct grub_efi_device_path grub_efi_device_path_t;
++/* XXX EFI does not define EFI_DEVICE_PATH_PROTOCOL but uses it.
++   It seems to be identical to EFI_DEVICE_PATH.  */
++typedef struct grub_efi_device_path grub_efi_device_path_protocol_t;
++
++#define GRUB_EFI_DEVICE_PATH_TYPE(dp)		((dp)->type & 0x7f)
++#define GRUB_EFI_DEVICE_PATH_SUBTYPE(dp)	((dp)->subtype)
++#define GRUB_EFI_DEVICE_PATH_LENGTH(dp)		\
++  ((dp)->length[0] | ((grub_efi_uint16_t) ((dp)->length[1]) << 8))
++
++/* The End of Device Path nodes.  */
++#define GRUB_EFI_END_DEVICE_PATH_TYPE			(0xff & 0x7f)
++
++#define GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE		0xff
++#define GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE		0x01
++
++#define GRUB_EFI_END_ENTIRE_DEVICE_PATH(dp)	\
++  (GRUB_EFI_DEVICE_PATH_TYPE (dp) == GRUB_EFI_END_DEVICE_PATH_TYPE \
++   && (GRUB_EFI_DEVICE_PATH_SUBTYPE (dp) \
++       == GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE))
++
++#define GRUB_EFI_NEXT_DEVICE_PATH(dp)	\
++  ((grub_efi_device_path_t *) ((char *) (dp) \
++                               + GRUB_EFI_DEVICE_PATH_LENGTH (dp)))
++
++/* Hardware Device Path.  */
++#define GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE		1
++
++#define GRUB_EFI_PCI_DEVICE_PATH_SUBTYPE		1
++
++struct grub_efi_pci_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint8_t function;
++  grub_efi_uint8_t device;
++};
++typedef struct grub_efi_pci_device_path grub_efi_pci_device_path_t;
++
++#define GRUB_EFI_PCCARD_DEVICE_PATH_SUBTYPE		2
++
++struct grub_efi_pccard_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint8_t function;
++};
++typedef struct grub_efi_pccard_device_path grub_efi_pccard_device_path_t;
++
++#define GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE	3
++
++struct grub_efi_memory_mapped_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_memory_type_t memory_type;
++  grub_efi_physical_address_t start_address;
++  grub_efi_physical_address_t end_address;
++};
++typedef struct grub_efi_memory_mapped_device_path
++  grub_efi_memory_mapped_device_path_t;
++
++#define GRUB_EFI_VENDOR_DEVICE_PATH_SUBTYPE		4
++
++struct grub_efi_vendor_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_guid_t vendor_guid;
++  grub_efi_uint8_t vendor_defined_data[0];
++};
++typedef struct grub_efi_vendor_device_path grub_efi_vendor_device_path_t;
++
++#define GRUB_EFI_CONTROLLER_DEVICE_PATH_SUBTYPE		5
++
++struct grub_efi_controller_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint32_t controller_number;
++};
++typedef struct grub_efi_controller_device_path
++  grub_efi_controller_device_path_t;
++
++/* ACPI Device Path.  */
++#define GRUB_EFI_ACPI_DEVICE_PATH_TYPE			2
++
++#define GRUB_EFI_ACPI_DEVICE_PATH_SUBTYPE		1
++
++struct grub_efi_acpi_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint32_t hid;
++  grub_efi_uint32_t uid;
++};
++typedef struct grub_efi_acpi_device_path grub_efi_acpi_device_path_t;
++
++#define GRUB_EFI_EXPANDED_ACPI_DEVICE_PATH_SUBTYPE	2
++
++struct grub_efi_expanded_acpi_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint32_t hid;
++  grub_efi_uint32_t uid;
++  grub_efi_uint32_t cid;
++  char hidstr[1];
++};
++typedef struct grub_efi_expanded_acpi_device_path
++  grub_efi_expanded_acpi_device_path_t;
++
++#define GRUB_EFI_EXPANDED_ACPI_HIDSTR(dp)	\
++  (((grub_efi_expanded_acpi_device_path_t *) dp)->hidstr)
++#define GRUB_EFI_EXPANDED_ACPI_UIDSTR(dp)	\
++  (GRUB_EFI_EXPANDED_ACPI_HIDSTR(dp) \
++   + grub_strlen (GRUB_EFI_EXPANDED_ACPI_HIDSTR(dp)) + 1)
++#define GRUB_EFI_EXPANDED_ACPI_CIDSTR(dp)	\
++  (GRUB_EFI_EXPANDED_ACPI_UIDSTR(dp) \
++   + grub_strlen (GRUB_EFI_EXPANDED_ACPI_UIDSTR(dp)) + 1)
++
++/* Messaging Device Path.  */
++#define GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE		3
++
++#define GRUB_EFI_ATAPI_DEVICE_PATH_SUBTYPE		1
++
++struct grub_efi_atapi_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint8_t primary_secondary;
++  grub_efi_uint8_t slave_master;
++  grub_efi_uint16_t lun;
++};
++typedef struct grub_efi_atapi_device_path grub_efi_atapi_device_path_t;
++
++#define GRUB_EFI_SCSI_DEVICE_PATH_SUBTYPE		2
++
++struct grub_efi_scsi_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint16_t pun;
++  grub_efi_uint16_t lun;
++};
++typedef struct grub_efi_scsi_device_path grub_efi_scsi_device_path_t;
++
++#define GRUB_EFI_FIBRE_CHANNEL_DEVICE_PATH_SUBTYPE	3
++
++struct grub_efi_fibre_channel_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint32_t reserved;
++  grub_efi_uint64_t wwn;
++  grub_efi_uint64_t lun;
++};
++typedef struct grub_efi_fibre_channel_device_path
++  grub_efi_fibre_channel_device_path_t;
++
++#define GRUB_EFI_1394_DEVICE_PATH_SUBTYPE		4
++
++struct grub_efi_1394_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint32_t reserved;
++  grub_efi_uint64_t guid;
++};
++typedef struct grub_efi_1394_device_path grub_efi_1394_device_path_t;
++
++#define GRUB_EFI_USB_DEVICE_PATH_SUBTYPE		5
++
++struct grub_efi_usb_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint8_t parent_port_number;
++  grub_efi_uint8_t interface;
++};
++typedef struct grub_efi_usb_device_path grub_efi_usb_device_path_t;
++
++#define GRUB_EFI_USB_CLASS_DEVICE_PATH_SUBTYPE		15
++
++struct grub_efi_usb_class_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint16_t vendor_id;
++  grub_efi_uint16_t product_id;
++  grub_efi_uint8_t device_class;
++  grub_efi_uint8_t device_subclass;
++  grub_efi_uint8_t device_protocol;
++};
++typedef struct grub_efi_usb_class_device_path
++  grub_efi_usb_class_device_path_t;
++
++#define GRUB_EFI_I2O_DEVICE_PATH_SUBTYPE		6
++
++struct grub_efi_i2o_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint32_t tid;
++};
++typedef struct grub_efi_i2o_device_path grub_efi_i2o_device_path_t;
++
++#define GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE	11
++
++struct grub_efi_mac_address_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_mac_address_t mac_address;
++  grub_efi_uint8_t if_type;
++};
++typedef struct grub_efi_mac_address_device_path
++  grub_efi_mac_address_device_path_t;
++
++#define GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE		12
++
++struct grub_efi_ipv4_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_ipv4_address_t local_ip_address;
++  grub_efi_ipv4_address_t remote_ip_address;
++  grub_efi_uint16_t local_port;
++  grub_efi_uint16_t remote_port;
++  grub_efi_uint16_t protocol;
++  grub_efi_uint8_t static_ip_address;
++};
++typedef struct grub_efi_ipv4_device_path grub_efi_ipv4_device_path_t;
++
++#define GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE		13
++
++struct grub_efi_ipv6_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_ipv6_address_t local_ip_address;
++  grub_efi_ipv6_address_t remote_ip_address;
++  grub_efi_uint16_t local_port;
++  grub_efi_uint16_t remote_port;
++  grub_efi_uint16_t protocol;
++  grub_efi_uint8_t static_ip_address;
++};
++typedef struct grub_efi_ipv6_device_path grub_efi_ipv6_device_path_t;
++
++#define GRUB_EFI_INFINIBAND_DEVICE_PATH_SUBTYPE		9
++
++struct grub_efi_infiniband_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint32_t resource_flags;
++  grub_efi_uint8_t port_gid[16];
++  grub_efi_uint64_t remote_id;
++  grub_efi_uint64_t target_port_id;
++  grub_efi_uint64_t device_id;
++};
++typedef struct grub_efi_infiniband_device_path
++  grub_efi_infiniband_device_path_t;
++
++#define GRUB_EFI_UART_DEVICE_PATH_SUBTYPE		14
++
++struct grub_efi_uart_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint32_t reserved;
++  grub_efi_uint64_t baud_rate;
++  grub_efi_uint8_t data_bits;
++  grub_efi_uint8_t parity;
++  grub_efi_uint8_t stop_bits;
++};
++typedef struct grub_efi_uart_device_path grub_efi_uart_device_path_t;
++
++#define GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE	10
++
++struct grub_efi_vendor_messaging_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_guid_t vendor_guid;
++  grub_efi_uint8_t vendor_defined_data[0];
++};
++typedef struct grub_efi_vendor_messaging_device_path
++  grub_efi_vendor_messaging_device_path_t;
++
++/* Media Device Path.  */
++#define GRUB_EFI_MEDIA_DEVICE_PATH_TYPE			4
++
++#define GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE		1
++
++struct grub_efi_hard_drive_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint32_t partition_number;
++  grub_efi_lba_t partition_start;
++  grub_efi_lba_t partition_size;
++  grub_efi_uint8_t partition_signature[16];
++  grub_efi_uint8_t mbr_type;
++  grub_efi_uint8_t signature_type;
++};
++typedef struct grub_efi_hard_drive_device_path
++  grub_efi_hard_drive_device_path_t;
++
++#define GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE		2
++
++struct grub_efi_cdrom_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint32_t boot_entry;
++  grub_efi_lba_t partition_start;
++  grub_efi_lba_t partition_size;
++};
++typedef struct grub_efi_cdrom_device_path grub_efi_cdrom_device_path_t;
++
++#define GRUB_EFI_VENDOR_MEDIA_DEVICE_PATH_SUBTYPE	3
++
++struct grub_efi_vendor_media_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_guid_t vendor_guid;
++  grub_efi_uint8_t vendor_defined_data[0];
++};
++typedef struct grub_efi_vendor_media_device_path
++  grub_efi_vendor_media_device_path_t;
++
++#define GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE		4
++
++struct grub_efi_file_path_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_char16_t path_name[0];
++};
++typedef struct grub_efi_file_path_device_path
++  grub_efi_file_path_device_path_t;
++
++#define GRUB_EFI_PROTOCOL_DEVICE_PATH_SUBTYPE		5
++
++struct grub_efi_protocol_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_guid_t guid;
++};
++typedef struct grub_efi_protocol_device_path grub_efi_protocol_device_path_t;
++
++/* BIOS Boot Specification Device Path.  */
++#define GRUB_EFI_BIOS_DEVICE_PATH_TYPE			5
++
++#define GRUB_EFI_BIOS_DEVICE_PATH_SUBTYPE		1
++
++struct grub_efi_bios_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint16_t device_type;
++  grub_efi_uint16_t status_flags;
++  char description[0];
++};
++typedef struct grub_efi_bios_device_path grub_efi_bios_device_path_t;
++
++struct grub_efi_device_path_from_text
++{
++  grub_efi_device_path_t * (*convert_text_to_device_node) (const grub_efi_char16_t *text_device_node);
++  grub_efi_device_path_t * (*convert_text_to_device_path) (const grub_efi_char16_t *text_device_path);
++};
++typedef struct grub_efi_device_path_from_text grub_efi_device_path_from_text_t;
++
++struct grub_efi_open_protocol_information_entry
++{
++  grub_efi_handle_t agent_handle;
++  grub_efi_handle_t controller_handle;
++  grub_efi_uint32_t attributes;
++  grub_efi_uint32_t open_count;
++};
++typedef struct grub_efi_open_protocol_information_entry
++  grub_efi_open_protocol_information_entry_t;
++
++struct grub_efi_time
++{
++  grub_efi_uint16_t year;
++  grub_efi_uint8_t month;
++  grub_efi_uint8_t day;
++  grub_efi_uint8_t hour;
++  grub_efi_uint8_t minute;
++  grub_efi_uint8_t second;
++  grub_efi_uint8_t pad1;
++  grub_efi_uint32_t nanosecond;
++  grub_efi_int16_t time_zone;
++  grub_efi_uint8_t daylight;
++  grub_efi_uint8_t pad2;
++};
++typedef struct grub_efi_time grub_efi_time_t;
++
++struct grub_efi_time_capabilities
++{
++  grub_efi_uint32_t resolution;
++  grub_efi_uint32_t accuracy;
++  grub_efi_boolean_t sets_to_zero;
++};
++typedef struct grub_efi_time_capabilities grub_efi_time_capabilities_t;
++
++struct grub_efi_input_key
++{
++  grub_efi_uint16_t scan_code;
++  grub_efi_char16_t unicode_char;
++};
++typedef struct grub_efi_input_key grub_efi_input_key_t;
++
++struct grub_efi_simple_text_output_mode
++{
++  grub_efi_int32_t max_mode;
++  grub_efi_int32_t mode;
++  grub_efi_int32_t attribute;
++  grub_efi_int32_t cursor_column;
++  grub_efi_int32_t cursor_row;
++  grub_efi_boolean_t cursor_visible;
++};
++typedef struct grub_efi_simple_text_output_mode
++  grub_efi_simple_text_output_mode_t;
++
++/* Tables.  */
++struct grub_efi_table_header
++{
++  grub_efi_uint64_t signature;
++  grub_efi_uint32_t revision;
++  grub_efi_uint32_t header_size;
++  grub_efi_uint32_t crc32;
++  grub_efi_uint32_t reserved;
++};
++typedef struct grub_efi_table_header grub_efi_table_header_t;
++
++struct grub_efi_boot_services
++{
++  grub_efi_table_header_t hdr;
++
++    grub_efi_tpl_t (*raise_tpl) (grub_efi_tpl_t new_tpl);
++
++  void (*restore_tpl) (grub_efi_tpl_t old_tpl);
++
++    grub_efi_status_t
++    (*allocate_pages) (grub_efi_allocate_type_t type,
++		       grub_efi_memory_type_t memory_type,
++		       grub_efi_uintn_t pages,
++		       grub_efi_physical_address_t * memory);
++
++    grub_efi_status_t
++    (*free_pages) (grub_efi_physical_address_t memory,
++		   grub_efi_uintn_t pages);
++
++    grub_efi_status_t
++    (*get_memory_map) (grub_efi_uintn_t * memory_map_size,
++		       grub_efi_memory_descriptor_t * memory_map,
++		       grub_efi_uintn_t * map_key,
++		       grub_efi_uintn_t * descriptor_size,
++		       grub_efi_uint32_t * descriptor_version);
++
++    grub_efi_status_t
++    (*allocate_pool) (grub_efi_memory_type_t pool_type,
++		      grub_efi_uintn_t size, void **buffer);
++
++    grub_efi_status_t (*free_pool) (void *buffer);
++
++    grub_efi_status_t
++    (*create_event) (grub_efi_uint32_t type,
++		     grub_efi_tpl_t notify_tpl,
++		     void (*notify_function) (grub_efi_event_t event,
++					      void *context),
++		     void *notify_context, grub_efi_event_t * event);
++
++    grub_efi_status_t
++    (*set_timer) (grub_efi_event_t event,
++		  grub_efi_timer_delay_t type,
++		  grub_efi_uint64_t trigger_time);
++
++    grub_efi_status_t
++    (*wait_for_event) (grub_efi_uintn_t num_events,
++		       grub_efi_event_t * event, grub_efi_uintn_t * index);
++
++    grub_efi_status_t (*signal_event) (grub_efi_event_t event);
++
++    grub_efi_status_t (*close_event) (grub_efi_event_t event);
++
++    grub_efi_status_t (*check_event) (grub_efi_event_t event);
++
++    grub_efi_status_t
++    (*install_protocol_interface) (grub_efi_handle_t * handle,
++				   grub_efi_guid_t * protocol,
++				   grub_efi_interface_type_t interface_type,
++				   void *interface);
++
++    grub_efi_status_t
++    (*reinstall_protocol_interface) (grub_efi_handle_t handle,
++				     grub_efi_guid_t * protocol,
++				     void *old_interface, void *new_inteface);
++
++    grub_efi_status_t
++    (*uninstall_protocol_interface) (grub_efi_handle_t handle,
++				     grub_efi_guid_t * protocol,
++				     void *interface);
++
++    grub_efi_status_t
++    (*handle_protocol) (grub_efi_handle_t handle,
++			grub_efi_guid_t * protocol, void **interface);
++
++  void *reserved;
++
++    grub_efi_status_t
++    (*register_protocol_notify) (grub_efi_guid_t * protocol,
++				 grub_efi_event_t event, void **registration);
++
++    grub_efi_status_t
++    (*locate_handle) (grub_efi_locate_search_type_t search_type,
++		      grub_efi_guid_t * protocol,
++		      void *search_key,
++		      grub_efi_uintn_t * buffer_size,
++		      grub_efi_handle_t * buffer);
++
++    grub_efi_status_t
++    (*locate_device_path) (grub_efi_guid_t * protocol,
++			   grub_efi_device_path_t ** device_path,
++			   grub_efi_handle_t * device);
++
++    grub_efi_status_t
++    (*install_configuration_table) (grub_efi_guid_t * guid, void *table);
++
++    grub_efi_status_t
++    (*load_image) (grub_efi_boolean_t boot_policy,
++		   grub_efi_handle_t parent_image_handle,
++		   grub_efi_device_path_t * file_path,
++		   void *source_buffer,
++		   grub_efi_uintn_t source_size,
++		   grub_efi_handle_t * image_handle);
++
++    grub_efi_status_t
++    (*start_image) (grub_efi_handle_t image_handle,
++		    grub_efi_uintn_t * exit_data_size,
++		    grub_efi_char16_t ** exit_data);
++
++    grub_efi_status_t
++    (*exit) (grub_efi_handle_t image_handle,
++	     grub_efi_status_t exit_status,
++	     grub_efi_uintn_t exit_data_size,
++	     grub_efi_char16_t * exit_data) __attribute__ ((noreturn));
++
++    grub_efi_status_t (*unload_image) (grub_efi_handle_t image_handle);
++
++    grub_efi_status_t
++    (*exit_boot_services) (grub_efi_handle_t image_handle,
++			   grub_efi_uintn_t map_key);
++
++    grub_efi_status_t (*get_next_monotonic_count) (grub_efi_uint64_t * count);
++
++    grub_efi_status_t (*stall) (grub_efi_uintn_t microseconds);
++
++    grub_efi_status_t
++    (*set_watchdog_timer) (grub_efi_uintn_t timeout,
++			   grub_efi_uint64_t watchdog_code,
++			   grub_efi_uintn_t data_size,
++			   grub_efi_char16_t * watchdog_data);
++
++    grub_efi_status_t
++    (*connect_controller) (grub_efi_handle_t controller_handle,
++			   grub_efi_handle_t * driver_image_handle,
++			   grub_efi_device_path_protocol_t *
++			   remaining_device_path,
++			   grub_efi_boolean_t recursive);
++
++    grub_efi_status_t
++    (*disconnect_controller) (grub_efi_handle_t controller_handle,
++			      grub_efi_handle_t driver_image_handle,
++			      grub_efi_handle_t child_handle);
++
++    grub_efi_status_t
++    (*open_protocol) (grub_efi_handle_t handle,
++		      grub_efi_guid_t * protocol,
++		      void **interface,
++		      grub_efi_handle_t agent_handle,
++		      grub_efi_handle_t controller_handle,
++		      grub_efi_uint32_t attributes);
++
++    grub_efi_status_t
++    (*close_protocol) (grub_efi_handle_t handle,
++		       grub_efi_guid_t * protocol,
++		       grub_efi_handle_t agent_handle,
++		       grub_efi_handle_t controller_handle);
++
++    grub_efi_status_t
++    (*open_protocol_information) (grub_efi_handle_t handle,
++				  grub_efi_guid_t * protocol,
++				  grub_efi_open_protocol_information_entry_t
++				  ** entry_buffer,
++				  grub_efi_uintn_t * entry_count);
++
++    grub_efi_status_t
++    (*protocols_per_handle) (grub_efi_handle_t handle,
++			     grub_efi_guid_t *** protocol_buffer,
++			     grub_efi_uintn_t * protocol_buffer_count);
++
++    grub_efi_status_t
++    (*locate_handle_buffer) (grub_efi_locate_search_type_t search_type,
++			     grub_efi_guid_t * protocol,
++			     void *search_key,
++			     grub_efi_uintn_t * no_handles,
++			     grub_efi_handle_t ** buffer);
++
++    grub_efi_status_t
++    (*locate_protocol) (grub_efi_guid_t * protocol,
++			void *registration, void **interface);
++
++    grub_efi_status_t
++    (*install_multiple_protocol_interfaces) (grub_efi_handle_t * handle, ...);
++
++    grub_efi_status_t
++    (*uninstall_multiple_protocol_interfaces) (grub_efi_handle_t handle, ...);
++
++    grub_efi_status_t
++    (*calculate_crc32) (void *data,
++			grub_efi_uintn_t data_size,
++			grub_efi_uint32_t * crc32);
++
++  void (*copy_mem) (void *destination, void *source, grub_efi_uintn_t length);
++
++  void
++    (*set_mem) (void *buffer, grub_efi_uintn_t size, grub_efi_uint8_t value);
++};
++typedef struct grub_efi_boot_services grub_efi_boot_services_t;
++
++struct grub_efi_runtime_services
++{
++  grub_efi_table_header_t hdr;
++
++    grub_efi_status_t
++    (*get_time) (grub_efi_time_t * time,
++		 grub_efi_time_capabilities_t * capabilities);
++
++    grub_efi_status_t (*set_time) (grub_efi_time_t * time);
++
++    grub_efi_status_t
++    (*get_wakeup_time) (grub_efi_boolean_t * enabled,
++			grub_efi_boolean_t * pending, grub_efi_time_t * time);
++
++    grub_efi_status_t
++    (*set_wakeup_time) (grub_efi_boolean_t enabled, grub_efi_time_t * time);
++
++    grub_efi_status_t
++    (*set_virtual_address_map) (grub_efi_uintn_t memory_map_size,
++				grub_efi_uintn_t descriptor_size,
++				grub_efi_uint32_t descriptor_version,
++				grub_efi_memory_descriptor_t * virtual_map);
++
++    grub_efi_status_t
++    (*convert_pointer) (grub_efi_uintn_t debug_disposition, void **address);
++
++    grub_efi_status_t
++    (*get_variable) (grub_efi_char16_t * variable_name,
++		     grub_efi_guid_t * vendor_guid,
++		     grub_efi_uint32_t * attributes,
++		     grub_efi_uintn_t * data_size, void *data);
++
++    grub_efi_status_t
++    (*get_next_variable_name) (grub_efi_uintn_t * variable_name_size,
++			       grub_efi_char16_t * variable_name,
++			       grub_efi_guid_t * vendor_guid);
++
++    grub_efi_status_t
++    (*set_variable) (grub_efi_char16_t * variable_name,
++		     grub_efi_guid_t * vendor_guid,
++		     grub_efi_uint32_t attributes,
++		     grub_efi_uintn_t data_size, void *data);
++
++    grub_efi_status_t
++    (*get_next_high_monotonic_count) (grub_efi_uint32_t * high_count);
++
++  void
++    (*reset_system) (grub_efi_reset_type_t reset_type,
++		     grub_efi_status_t reset_status,
++		     grub_efi_uintn_t data_size,
++		     grub_efi_char16_t * reset_data);
++};
++typedef struct grub_efi_runtime_services grub_efi_runtime_services_t;
++
++struct grub_efi_configuration_table
++{
++  grub_efi_guid_t vendor_guid;
++  void *vendor_table;
++};
++typedef struct grub_efi_configuration_table grub_efi_configuration_table_t;
++
++struct grub_efi_simple_input_interface
++{
++  grub_efi_status_t
++    (*reset) (struct grub_efi_simple_input_interface * this,
++	      grub_efi_boolean_t extended_verification);
++
++  grub_efi_status_t
++    (*read_key_stroke) (struct grub_efi_simple_input_interface * this,
++			grub_efi_input_key_t * key);
++
++  grub_efi_event_t wait_for_key;
++};
++typedef struct grub_efi_simple_input_interface
++  grub_efi_simple_input_interface_t;
++
++struct grub_efi_simple_text_output_interface
++{
++  grub_efi_status_t
++    (*reset) (struct grub_efi_simple_text_output_interface * this,
++	      grub_efi_boolean_t extended_verification);
++
++  grub_efi_status_t
++    (*output_string) (struct grub_efi_simple_text_output_interface * this,
++		      grub_efi_char16_t * string);
++
++  grub_efi_status_t
++    (*test_string) (struct grub_efi_simple_text_output_interface * this,
++		    grub_efi_char16_t * string);
++
++  grub_efi_status_t
++    (*query_mode) (struct grub_efi_simple_text_output_interface * this,
++		   grub_efi_uintn_t mode_number,
++		   grub_efi_uintn_t * columns, grub_efi_uintn_t * rows);
++
++  grub_efi_status_t
++    (*set_mode) (struct grub_efi_simple_text_output_interface * this,
++		 grub_efi_uintn_t mode_number);
++
++  grub_efi_status_t
++    (*set_attributes) (struct grub_efi_simple_text_output_interface * this,
++		       grub_efi_uintn_t attribute);
++
++  grub_efi_status_t
++    (*clear_screen) (struct grub_efi_simple_text_output_interface * this);
++
++  grub_efi_status_t
++    (*set_cursor_position) (struct grub_efi_simple_text_output_interface *
++			    this, grub_efi_uintn_t column,
++			    grub_efi_uintn_t row);
++
++  grub_efi_status_t
++    (*enable_cursor) (struct grub_efi_simple_text_output_interface * this,
++		      grub_efi_boolean_t visible);
++
++  grub_efi_simple_text_output_mode_t *mode;
++};
++typedef struct grub_efi_simple_text_output_interface
++  grub_efi_simple_text_output_interface_t;
++
++#define GRUB_EFI_BLACK		0x00
++#define GRUB_EFI_BLUE		0x01
++#define GRUB_EFI_GREEN		0x02
++#define GRUB_EFI_CYAN		0x03
++#define GRUB_EFI_RED		0x04
++#define GRUB_EFI_MAGENTA	0x05
++#define GRUB_EFI_BROWN		0x06
++#define GRUB_EFI_LIGHTGRAY	0x07
++#define GRUB_EFI_BRIGHT		0x08
++#define GRUB_EFI_DARKGRAY	0x08
++#define GRUB_EFI_LIGHTBLUE	0x09
++#define GRUB_EFI_LIGHTGREEN	0x0A
++#define GRUB_EFI_LIGHTCYAN	0x0B
++#define GRUB_EFI_LIGHTRED	0x0C
++#define GRUB_EFI_LIGHTMAGENTA	0x0D
++#define GRUB_EFI_YELLOW		0x0E
++#define GRUB_EFI_WHITE		0x0F
++
++#define GRUB_EFI_BACKGROUND_BLACK	0x00
++#define GRUB_EFI_BACKGROUND_BLUE	0x10
++#define GRUB_EFI_BACKGROUND_GREEN	0x20
++#define GRUB_EFI_BACKGROUND_CYAN	0x30
++#define GRUB_EFI_BACKGROUND_RED		0x40
++#define GRUB_EFI_BACKGROUND_MAGENTA	0x50
++#define GRUB_EFI_BACKGROUND_BROWN	0x60
++#define GRUB_EFI_BACKGROUND_LIGHTGRAY	0x70
++
++#define GRUB_EFI_TEXT_ATTR(fg, bg)	((fg) | ((bg)))
++
++struct grub_efi_system_table
++{
++  grub_efi_table_header_t hdr;
++  grub_efi_char16_t *firmware_vendor;
++  grub_efi_uint32_t firmware_revision;
++  grub_efi_handle_t console_in_handler;
++  grub_efi_simple_input_interface_t *con_in;
++  grub_efi_handle_t console_out_handler;
++  grub_efi_simple_text_output_interface_t *con_out;
++  grub_efi_handle_t standard_error_handle;
++  grub_efi_simple_text_output_interface_t *std_err;
++  grub_efi_runtime_services_t *runtime_services;
++  grub_efi_boot_services_t *boot_services;
++  grub_efi_uintn_t num_table_entries;
++  grub_efi_configuration_table_t *configuration_table;
++};
++typedef struct grub_efi_system_table grub_efi_system_table_t;
++
++struct grub_efi_loaded_image
++{
++  grub_efi_uint32_t revision;
++  grub_efi_handle_t parent_handle;
++  grub_efi_system_table_t *system_table;
++
++  grub_efi_handle_t device_handle;
++  grub_efi_device_path_t *file_path;
++  void *reserved;
++
++  grub_efi_uint32_t load_options_size;
++  void *load_options;
++
++  void *image_base;
++  grub_efi_uint64_t image_size;
++  grub_efi_memory_type_t image_code_type;
++  grub_efi_memory_type_t image_data_type;
++
++    grub_efi_status_t (*unload) (grub_efi_handle_t image_handle);
++};
++typedef struct grub_efi_loaded_image grub_efi_loaded_image_t;
++
++struct grub_efi_disk_io
++{
++  grub_efi_uint64_t revision;
++    grub_efi_status_t (*read) (struct grub_efi_disk_io * this,
++			       grub_efi_uint32_t media_id,
++			       grub_efi_uint64_t offset,
++			       grub_efi_uintn_t buffer_size, void *buffer);
++    grub_efi_status_t (*write) (struct grub_efi_disk_io * this,
++				grub_efi_uint32_t media_id,
++				grub_efi_uint64_t offset,
++				grub_efi_uintn_t buffer_size, void *buffer);
++};
++typedef struct grub_efi_disk_io grub_efi_disk_io_t;
++
++struct grub_efi_block_io_media
++{
++  grub_efi_uint32_t media_id;
++  grub_efi_boolean_t removable_media;
++  grub_efi_boolean_t media_present;
++  grub_efi_boolean_t logical_partition;
++  grub_efi_boolean_t read_only;
++  grub_efi_boolean_t write_caching;
++  grub_efi_uint8_t pad[3];
++  grub_efi_uint32_t block_size;
++  grub_efi_uint32_t io_align;
++  grub_efi_uint8_t pad2[4];
++  grub_efi_lba_t last_block;
++};
++typedef struct grub_efi_block_io_media grub_efi_block_io_media_t;
++
++struct grub_efi_block_io
++{
++  grub_efi_uint64_t revision;
++  grub_efi_block_io_media_t *media;
++    grub_efi_status_t (*reset) (struct grub_efi_block_io * this,
++				grub_efi_boolean_t extended_verification);
++    grub_efi_status_t (*read_blocks) (struct grub_efi_block_io * this,
++				      grub_efi_uint32_t media_id,
++				      grub_efi_lba_t lba,
++				      grub_efi_uintn_t buffer_size,
++				      void *buffer);
++    grub_efi_status_t (*write_blocks) (struct grub_efi_block_io * this,
++				       grub_efi_uint32_t media_id,
++				       grub_efi_lba_t lba,
++				       grub_efi_uintn_t buffer_size,
++				       void *buffer);
++    grub_efi_status_t (*flush_blocks) (struct grub_efi_block_io * this);
++};
++typedef struct grub_efi_block_io grub_efi_block_io_t;
++
++struct grub_efi_pixel_bitmask
++{
++  grub_efi_uint32_t red_mask;
++  grub_efi_uint32_t green_mask;
++  grub_efi_uint32_t blue_mask;
++  grub_efi_uint32_t reserved_mask;
++};
++typedef struct grub_efi_pixel_bitmask grub_efi_pixel_bitmask_t;
++
++enum grub_efi_graphics_pixel_format
++{
++  GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR,
++  GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR,
++  GRUB_EFI_PIXEL_BIT_MASK,
++  GRUB_EFI_PIXEL_BLT_ONLY,
++};
++typedef enum grub_efi_graphics_pixel_format grub_efi_graphics_pixel_format_t;
++
++struct grub_efi_graphics_output_mode_information
++{
++  grub_efi_uint32_t version;
++  grub_efi_uint32_t horizontal_resolution;
++  grub_efi_uint32_t vertical_resolution;
++  grub_efi_graphics_pixel_format_t pixel_format;
++  grub_efi_pixel_bitmask_t pixel_information;
++  grub_efi_uint32_t pixels_per_scan_line;
++};
++typedef struct grub_efi_graphics_output_mode_information
++  grub_efi_graphics_output_mode_information_t;
++
++struct grub_efi_graphics_output_bgrr_pixel
++{
++  grub_efi_uint8_t blue;
++  grub_efi_uint8_t green;
++  grub_efi_uint8_t red;
++  grub_efi_uint8_t reserved;
++};
++typedef struct grub_efi_graphics_output_bgrr_pixel
++  grub_efi_graphics_output_bgrr_pixel_t;
++typedef struct grub_efi_graphics_output_bgrr_pixel
++  grub_efi_graphics_output_blt_pixel_t;
++typedef struct grub_efi_graphics_output_bgrr_pixel
++  grub_efi_uga_pixel_t;
++
++struct grub_efi_graphics_output_rgbr_pixel
++{
++  grub_efi_uint8_t red;
++  grub_efi_uint8_t green;
++  grub_efi_uint8_t blue;
++  grub_efi_uint8_t reserved;
++};
++typedef struct grub_efi_graphics_output_rgbr_pixel
++  grub_efi_graphics_output_rgbr_pixel_t;
++
++union grub_efi_graphics_output_pixel
++{
++  grub_efi_graphics_output_rgbr_pixel_t rgbr;
++  grub_efi_graphics_output_bgrr_pixel_t bgrr;
++  grub_efi_uint32_t raw;
++};
++typedef union grub_efi_graphics_output_pixel
++  grub_efi_graphics_output_pixel_t;
++
++enum grub_efi_graphics_output_blt_operation
++{
++  GRUB_EFI_BLT_VIDEO_FILL,
++  GRUB_EFI_BLT_VIDEO_TO_BLT_BUFFER,
++  GRUB_EFI_BLT_BUFFER_TO_VIDEO,
++  GRUB_EFI_BLT_VIDEO_TO_VIDEO,
++};
++typedef enum grub_efi_graphics_output_blt_operation
++  grub_efi_graphics_output_blt_operation_t;
++
++struct grub_efi_graphics_output_mode
++{
++  grub_efi_uint32_t max_mode;
++  grub_efi_uint32_t mode;
++  grub_efi_graphics_output_mode_information_t *info;
++  grub_efi_uintn_t size_of_info;
++  grub_efi_physical_address_t frame_buffer_base;
++  grub_efi_uintn_t frame_buffer_size;
++};
++typedef struct grub_efi_graphics_output_mode grub_efi_graphics_output_mode_t;
++
++struct grub_efi_graphics_output
++{
++  grub_efi_status_t (*query_mode) (struct grub_efi_graphics_output * this,
++				   grub_efi_uint32_t mode_number,
++				   grub_efi_uintn_t * size_of_info,
++				   grub_efi_graphics_output_mode_information_t
++				   ** info);
++  grub_efi_status_t (*set_mode) (struct grub_efi_graphics_output * this,
++				 grub_efi_uint32_t mode_number);
++
++  grub_efi_status_t (*blt) (struct grub_efi_graphics_output * this,
++			    grub_efi_graphics_output_blt_pixel_t * blt_buffer,
++			    grub_efi_graphics_output_blt_operation_t
++			    blt_operation, grub_efi_uintn_t src_x,
++			    grub_efi_uintn_t src_y, grub_efi_uintn_t dest_x,
++			    grub_efi_uintn_t dest_y, grub_efi_uintn_t width,
++			    grub_efi_uintn_t height, grub_efi_uintn_t delta);
++  grub_efi_graphics_output_mode_t *mode;
++};
++typedef struct grub_efi_graphics_output grub_efi_graphics_output_t;
++
++typedef enum {
++  EfiUgaVideoFill,
++  EfiUgaVideoToBltBuffer,
++  EfiUgaBltBufferToVideo,
++  EfiUgaVideoToVideo,
++  EfiUgaBltMax
++} grub_efi_uga_blt_operation_t;
++
++struct grub_efi_uga_draw
++{
++  grub_efi_status_t (*get_mode) (struct grub_efi_uga_draw * this,
++                                 grub_efi_uint32_t *horizontal_resolution,
++                                 grub_efi_uint32_t *vertical_resolution,
++                                 grub_efi_uint32_t *color_depth,
++                                 grub_efi_uint32_t *refresh_rate);
++  grub_efi_status_t (*set_mode) (struct grub_efi_uga_draw * this,
++                                 grub_efi_uint32_t horizontal_resolution,
++                                 grub_efi_uint32_t vertical_resolution,
++                                 grub_efi_uint32_t color_depth,
++                                 grub_efi_uint32_t refresh_rate);
++  grub_efi_status_t (*blt) (struct grub_efi_uga_draw * this,
++                            grub_efi_uga_pixel_t *blt_buffer,
++                            grub_efi_uga_blt_operation_t blt_operation,
++                            grub_efi_uintn_t source_x,
++                            grub_efi_uintn_t source_y,
++                            grub_efi_uintn_t destination_x,
++                            grub_efi_uintn_t destination_y,
++                            grub_efi_uintn_t width,
++                            grub_efi_uintn_t height,
++                            grub_efi_uintn_t delta);
++};
++typedef struct grub_efi_uga_draw grub_efi_uga_draw_t;
++
++typedef grub_uint32_t grub_uga_status_t;
++
++typedef enum {
++  UgaDtParentBus = 1,
++  UgaDtGraphicsController,
++  UgaDtOutputController,
++  UgaDtOutputPort,
++  UgaDtOther
++} grub_uga_device_type_t;
++
++typedef grub_efi_uint32_t grub_uga_device_id_t;
++
++struct grub_uga_device_data {
++  grub_uga_device_type_t device_type;
++  grub_uga_device_id_t device_id;
++  grub_efi_uint32_t device_context_size;
++  grub_efi_uint32_t shared_context_size;
++};
++typedef struct grub_uga_device_data grub_uga_device_data_t;
++
++struct grub_uga_device {
++  void *device_context;
++  void *shared_context;
++  void *runtime_context;
++  struct grub_uga_device *parent_device;
++  void *bus_io_services;
++  void *stdio_services;
++  grub_uga_device_data_t device_data;
++};
++typedef struct grub_uga_device grub_uga_device_t;
++
++typedef enum {
++  UgaIoGetVersion = 1,
++  UgaIoGetChildDevice,
++  UgaIoStartDevice,
++  UgaIoStopDevice,
++  UgaIoFlushDevice,
++  UgaIoResetDevice,
++  UgaIoGetDeviceState,
++  UgaIoSetDeviceState,
++  UgaIoSetPowerState,
++  UgaIoGetMemoryConfiguration,
++  UgaIoSetVideoMode,
++  UgaIoCopyRectangle,
++  UgaIoGetEdidSegment,
++  UgaIoDeviceChannelOpen,
++  UgaIoDeviceChannelClose,
++  UgaIoDeviceChannelRead,
++  UgaIoDeviceChannelWrite,
++  UgaIoGetPersistentDataSize,
++  UgaIoGetPersistentData,
++  UgaIoSetPersistentData,
++  UgaIoGetDevicePropertySize,
++  UgaIoGetDeviceProperty,
++  UgaIoBtPrivateInterface
++} grub_uga_io_request_code_t;
++
++struct grub_uga_io_request {
++  grub_uga_io_request_code_t io_request_code;
++  void *in_buffer;
++  grub_efi_uint64_t in_buffer_size;
++  grub_efi_uint64_t bytes_returned;
++};
++typedef struct grub_uga_io_request grub_uga_io_request_t;
++
++struct grub_efi_uga_io
++{
++  grub_efi_status_t (*create_device) (struct grub_efi_uga_io * this,
++                                      grub_uga_device_t *parent_device,
++                                      grub_uga_device_data_t *device_data,
++                                      void *runtime_context,
++                                      grub_uga_device_t **device);
++  grub_efi_status_t (*delete_device) (struct grub_efi_uga_io * this,
++                                      grub_uga_device_t *device);
++  grub_uga_status_t (*dispatch_service) (grub_uga_device_t *device,
++                                         grub_uga_io_request_t *io_request);
++};
++typedef struct grub_efi_uga_io grub_efi_uga_io_t;
++
++/* XXX PJFIX add uga driver handoff stuff */
++
++// File Open Modes
++#define GRUB_EFI_FILE_MODE_READ		0x0000000000000001ULL
++#define GRUB_EFI_FILE_MODE_WRITE	0x0000000000000002ULL
++#define GRUB_EFI_FILE_MODE_CREATE	0x8000000000000000ULL
++
++// File Attributes
++#define GRUB_EFI_FILE_READ_ONLY		0x0000000000000001ULL
++#define GRUB_EFI_FILE_HIDDEN		0x0000000000000002ULL
++#define GRUB_EFI_FILE_SYSTEM		0x0000000000000004ULL
++#define GRUB_EFI_FILE_RESERVED		0x0000000000000008ULL
++#define GRUB_EFI_FILE_DIRECTORY		0x0000000000000010ULL
++#define GRUB_EFI_FILE_ARCHIVE		0x0000000000000020ULL
++#define GRUB_EFI_FILE_VALID_ATTR	0x0000000000000037ULL
++
++struct grub_efi_file
++{
++  grub_efi_uint64_t revision;
++  grub_efi_status_t (*open) (struct grub_efi_file * this,
++			     struct grub_efi_file ** new_handle,
++			     grub_efi_char16_t * file_name,
++			     grub_efi_uint64_t open_mode,
++			     grub_efi_uint64_t attributes);
++  grub_efi_status_t (*close) (struct grub_efi_file * this);
++  grub_efi_status_t (*delete) (struct grub_efi_file * this);
++  grub_efi_status_t (*read) (struct grub_efi_file * this,
++			     grub_efi_uintn_t * buffer_size,
++			     void * buffer);
++  grub_efi_status_t (*write) (struct grub_efi_file * this,
++			      grub_efi_uintn_t * buffer_size,
++			      void * buffer);
++  grub_efi_status_t (*set_position) (struct grub_efi_file * this,
++				     grub_efi_uint64_t position);
++  grub_efi_status_t (*get_position) (struct grub_efi_file * this,
++				     grub_efi_uint64_t * position);
++  grub_efi_status_t (*get_info) (struct grub_efi_file * this,
++				 grub_efi_guid_t * information_type,
++				 grub_efi_uintn_t * buffer_size,
++				 void * buffer);
++  grub_efi_status_t (*set_info) (struct grub_efi_file * this,
++				 grub_efi_guid_t * information_type,
++				 grub_efi_uintn_t buffer_size,
++				 void * buffer);
++  grub_efi_status_t (*flush) (struct grub_efi_file * this);
++};
++typedef struct grub_efi_file grub_efi_file_t;
++
++struct grub_efi_simple_file_system
++{
++  grub_efi_uint64_t revision;
++  grub_efi_status_t (*open_volume) (struct grub_efi_simple_file_system * this,
++				    grub_efi_file_t ** root);
++};
++typedef struct grub_efi_simple_file_system grub_efi_simple_file_system_t;
++
++struct grub_efi_serial_io_mode
++{
++  grub_efi_uint32_t control_mask;
++  grub_efi_uint32_t timeout;
++  grub_efi_uint64_t baud_rate;
++  grub_efi_uint32_t receive_fifo_depth;
++  grub_efi_uint32_t data_bits;
++  grub_efi_uint32_t parity;
++  grub_efi_uint32_t stop_bits;
++};
++typedef struct grub_efi_serial_io_mode grub_efi_serial_io_mode_t;
++
++enum grub_efi_parity
++{
++  GRUB_EFI_DEFAULT_PARITY,
++  GRUB_EFI_NO_PARITY,
++  GRUB_EFI_EVEN_PARITY,
++  GRUB_EFI_ODD_PARITY,
++  GRUB_EFI_MARK_PARITY,
++  GRUB_EFI_SPACE_PARITY
++};
++typedef enum grub_efi_parity grub_efi_parity_t;
++
++enum grub_efi_stop_bits
++{
++  GRUB_EFI_DEFAULT_STOP_BITS,
++  GRUB_EFI_ONE_STOP_BIT,
++  GRUB_EFI_ONE_FIVE_STOP_BITS,
++  GRUB_EFI_TWO_STOP_BITS
++};
++typedef enum grub_efi_stop_bits grub_efi_stop_bits_t;
++
++#define GRUB_EFI_SERIAL_CLEAR_TO_SEND			0x0010
++#define GRUB_EFI_SERIAL_DATA_SET_READY			0x0020
++#define GRUB_EFI_SERIAL_RING_INDICATE			0x0040
++#define GRUB_EFI_SERIAL_CARRIER_DETECT			0x0080
++#define GRUB_EFI_SERIAL_REQUEST_TO_SEND			0x0002
++#define GRUB_EFI_SERIAL_DATA_TERMINAL_READY		0x0001
++#define GRUB_EFI_SERIAL_INPUT_BUFFER_EMPTY		0x0100
++#define GRUB_EFI_SERIAL_OUTPUT_BUFFER_EMPTY		0x0200
++#define GRUB_EFI_SERIAL_HARDWARE_LOOPBACK_ENABLE	0x1000
++#define GRUB_EFI_SERIAL_SOFTWARE_LOOPBACK_ENABLE	0x2000
++#define GRUB_EFI_SERIAL_HARDWARE_FLOW_CONTROL_ENABLE	0x4000
++
++struct grub_efi_serial_io
++{
++  grub_efi_uint32_t revision;
++  grub_efi_status_t (*reset) (struct grub_efi_serial_io * this);
++  grub_efi_status_t (*set_attributes) (struct grub_efi_serial_io * this,
++				       grub_efi_uint64_t baud_rate,
++				       grub_efi_uint32_t receive_fifo_depth,
++				       grub_efi_uint32_t timeout,
++				       grub_efi_parity_t parity,
++				       grub_efi_uint8_t data_bits,
++				       grub_efi_stop_bits_t stop_bits);
++  grub_efi_status_t (*set_control_bits) (struct grub_efi_serial_io * this,
++					 grub_efi_uint32_t control);
++  grub_efi_status_t (*get_control_bits) (struct grub_efi_serial_io * this,
++					 grub_efi_uint32_t * control);
++  grub_efi_status_t (*write) (struct grub_efi_serial_io * this,
++			      grub_efi_uintn_t * buffer_size,
++			      void * buffer);
++  grub_efi_status_t (*read) (struct grub_efi_serial_io * this,
++			     grub_efi_uintn_t * buffer_size,
++			     void * buffer);
++  grub_efi_serial_io_mode_t *mode;
++};
++typedef struct grub_efi_serial_io grub_efi_serial_io_t;
++
++#endif /* ! GRUB_EFI_API_HEADER */
+diff --git a/efi/grub/efi/console_control.h b/efi/grub/efi/console_control.h
+new file mode 100644
+index 0000000..ffc4305
+--- /dev/null
++++ b/efi/grub/efi/console_control.h
+@@ -0,0 +1,59 @@
++/* console_control.h - definitions of the console control protocol */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2006  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++/* The console control protocol is not a part of the EFI spec,
++   but defined in Intel's Sample Implementation.  */
++
++#ifndef GRUB_EFI_CONSOLE_CONTROL_HEADER
++#define GRUB_EFI_CONSOLE_CONTROL_HEADER	1
++
++#define GRUB_EFI_CONSOLE_CONTROL_GUID	\
++  { 0xf42f7782, 0x12e, 0x4c12, \
++    { 0x99, 0x56, 0x49, 0xf9, 0x43, 0x4, 0xf7, 0x21 } \
++  }
++
++enum grub_efi_screen_mode
++{
++  GRUB_EFI_SCREEN_TEXT,
++  GRUB_EFI_SCREEN_GRAPHICS,
++  GRUB_EFI_SCREEN_TEXT_MAX_VALUE
++};
++typedef enum grub_efi_screen_mode grub_efi_screen_mode_t;
++
++struct grub_efi_console_control_protocol
++{
++  grub_efi_status_t
++    (*get_mode) (struct grub_efi_console_control_protocol * this,
++		 grub_efi_screen_mode_t * mode,
++		 grub_efi_boolean_t * uga_exists,
++		 grub_efi_boolean_t * std_in_locked);
++
++  grub_efi_status_t
++    (*set_mode) (struct grub_efi_console_control_protocol * this,
++		 grub_efi_screen_mode_t mode);
++
++  grub_efi_status_t
++    (*lock_std_in) (struct grub_efi_console_control_protocol * this,
++		    grub_efi_char16_t * password);
++};
++typedef struct grub_efi_console_control_protocol
++  grub_efi_console_control_protocol_t;
++
++#endif /* ! GRUB_EFI_CONSOLE_CONTROL_HEADER */
+diff --git a/efi/grub/efi/efi.h b/efi/grub/efi/efi.h
+new file mode 100644
+index 0000000..936759b
+--- /dev/null
++++ b/efi/grub/efi/efi.h
+@@ -0,0 +1,79 @@
++/* efi.h - declare variables and functions for EFI support */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2006  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifndef GRUB_EFI_EFI_HEADER
++#define GRUB_EFI_EFI_HEADER	1
++
++#include <grub/types.h>
++#include <grub/efi/api.h>
++
++/* Functions.  */
++grub_efi_status_t
++grub_efi_locate_handle_buffer (grub_efi_locate_search_type_t search_type,
++				grub_efi_guid_t *protocol,
++				void *search_key,
++				grub_efi_uintn_t *no_handles,
++				grub_efi_handle_t **buffer);
++void *grub_efi_locate_protocol (grub_efi_guid_t * protocol,
++				void *registration);
++grub_efi_handle_t *grub_efi_locate_handle (grub_efi_locate_search_type_t
++					   search_type,
++					   grub_efi_guid_t * protocol,
++					   void *search_key,
++					   grub_efi_uintn_t * num_handles);
++void *grub_efi_open_protocol (grub_efi_handle_t handle,
++			      grub_efi_guid_t * protocol,
++			      grub_efi_uint32_t attributes);
++int grub_efi_set_text_mode (int on);
++void grub_efi_stall (grub_efi_uintn_t microseconds);
++void *grub_efi_allocate_pool (grub_efi_uintn_t size);
++void grub_efi_free_pool (void *buffer);
++void *grub_efi_allocate_anypages (grub_efi_uintn_t pages);
++void *grub_efi_allocate_pages (grub_efi_physical_address_t address,
++			       grub_efi_uintn_t pages);
++void
++grub_efi_free_pages (grub_efi_physical_address_t address,
++		     grub_efi_uintn_t pages);
++int
++grub_efi_get_memory_map (grub_efi_uintn_t * map_key,
++			 grub_efi_uintn_t * descriptor_size,
++			 grub_efi_uint32_t * descriptor_version);
++grub_efi_loaded_image_t *grub_efi_get_loaded_image (grub_efi_handle_t
++						    image_handle);
++void grub_efi_print_device_path (grub_efi_device_path_t * dp);
++char *grub_efi_get_filename (grub_efi_device_path_t * dp);
++grub_efi_device_path_t *grub_efi_get_device_path (grub_efi_handle_t handle);
++int grub_efi_exit_boot_services (grub_efi_uintn_t map_key);
++
++void grub_efi_mm_init (void);
++void grub_efi_mm_fini (void);
++void grub_efi_init (void);
++void grub_efi_fini (void);
++void grub_efi_set_prefix (void);
++
++/* Variables.  */
++extern void *mmap_buf;
++extern grub_efi_uintn_t mmap_size;
++extern grub_efi_uintn_t mmap_pages;
++
++extern grub_efi_system_table_t *grub_efi_system_table;
++extern grub_efi_handle_t grub_efi_image_handle;
++
++#endif /* ! GRUB_EFI_EFI_HEADER */
+diff --git a/efi/grub/efi/eficall.h b/efi/grub/efi/eficall.h
+new file mode 100644
+index 0000000..2e79e04
+--- /dev/null
++++ b/efi/grub/efi/eficall.h
+@@ -0,0 +1,162 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2006  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifndef _EFI_CALL_INCLUDE_
++#define _EFI_CALL_INCLUDE_ 1
++
++#include <grub/types.h>
++
++#ifndef __x86_64__
++#ifdef EFI_FUNCTION_WRAPPER
++#undef EFI_FUNCTION_WRAPPER
++#endif
++#endif
++
++#ifdef  EFI_FUNCTION_WRAPPER
++typedef long EFI_STATUS;
++
++EFI_STATUS x64_call0 (unsigned long func);
++EFI_STATUS x64_call1 (unsigned long func, unsigned long a);
++EFI_STATUS x64_call2 (unsigned long func, unsigned long a, unsigned long b);
++EFI_STATUS x64_call3 (unsigned long func, unsigned long a,
++		      unsigned long b, unsigned long c);
++EFI_STATUS x64_call4 (unsigned long func, unsigned long a,
++		      unsigned long b, unsigned long c, unsigned long d);
++EFI_STATUS x64_call5 (unsigned long func, unsigned long a,
++		      unsigned long b, unsigned long c,
++		      unsigned long d, unsigned long e);
++EFI_STATUS x64_call6 (unsigned long func, unsigned long a,
++		      unsigned long b, unsigned long c,
++		      unsigned long d, unsigned long e, unsigned long f);
++EFI_STATUS x64_call7 (unsigned long func, unsigned long a,
++		      unsigned long b, unsigned long c,
++		      unsigned long d, unsigned long e,
++		      unsigned long f, unsigned long g);
++EFI_STATUS x64_call8 (unsigned long func, unsigned long a,
++		      unsigned long b, unsigned long c,
++		      unsigned long d, unsigned long e,
++		      unsigned long f, unsigned long g,
++		      unsigned long h);
++EFI_STATUS x64_call9 (unsigned long func, unsigned long a,
++		      unsigned long b, unsigned long c,
++		      unsigned long d, unsigned long e,
++		      unsigned long f, unsigned long g,
++		      unsigned long h, unsigned long i);
++EFI_STATUS x64_call10(unsigned long func, unsigned long a,
++		      unsigned long b, unsigned long c,
++		      unsigned long d, unsigned long e,
++		      unsigned long f, unsigned long g,
++		      unsigned long h, unsigned long i,
++		      unsigned long j);
++
++#define Call_Service(func)                      x64_call0((unsigned long)func)
++
++#define Call_Service_1(func,a)                  x64_call1((unsigned long)func, \
++							  (unsigned long)a)
++
++#define Call_Service_2(func,a,b)                x64_call2((unsigned long)func, \
++							  (unsigned long)a,    \
++							  (unsigned long)b)
++
++#define Call_Service_3(func,a,b,c)              x64_call3((unsigned long)func, \
++							  (unsigned long)a,    \
++							  (unsigned long)b,    \
++							  (unsigned long)c)
++
++#define Call_Service_4(func,a,b,c,d)            x64_call4((unsigned long)func, \
++							  (unsigned long)a,    \
++							  (unsigned long)b,    \
++							  (unsigned long)c,    \
++							  (unsigned long)d)
++
++#define Call_Service_5(func,a,b,c,d,e)          x64_call5((unsigned long)func, \
++							  (unsigned long)a,    \
++							  (unsigned long)b,    \
++							  (unsigned long)c,    \
++							  (unsigned long)d,    \
++							  (unsigned long)e)
++
++#define Call_Service_6(func,a,b,c,d,e,f)        x64_call6((unsigned long)func, \
++							  (unsigned long)a,    \
++							  (unsigned long)b,    \
++							  (unsigned long)c,    \
++							  (unsigned long)d,    \
++							  (unsigned long)e,    \
++							  (unsigned long)f)
++
++#define Call_Service_7(func,a,b,c,d,e,f,g)      x64_call7((unsigned long)func, \
++							  (unsigned long)a,    \
++							  (unsigned long)b,    \
++							  (unsigned long)c,    \
++							  (unsigned long)d,    \
++							  (unsigned long)e,    \
++							  (unsigned long)f,    \
++							  (unsigned long)g)
++
++#define Call_Service_8(func,a,b,c,d,e,f,g,h)    x64_call8((unsigned long)func, \
++							  (unsigned long)a,    \
++							  (unsigned long)b,    \
++							  (unsigned long)c,    \
++							  (unsigned long)d,    \
++							  (unsigned long)e,    \
++							  (unsigned long)f,    \
++							  (unsigned long)g,    \
++							  (unsigned long)h)
++
++#define Call_Service_9(func,a,b,c,d,e,f,g,h,i)  x64_call9((unsigned long)func, \
++							  (unsigned long)a,    \
++							  (unsigned long)b,    \
++							  (unsigned long)c,    \
++							  (unsigned long)d,    \
++							  (unsigned long)e,    \
++							  (unsigned long)f,    \
++							  (unsigned long)g,    \
++							  (unsigned long)h,    \
++							  (unsigned long)i)
++
++#define Call_Service_10(func,a,b,c,d,e,f,g,h,i,j) \
++					       x64_call10((unsigned long)func, \
++							  (unsigned long)a,    \
++							  (unsigned long)b,    \
++							  (unsigned long)c,    \
++							  (unsigned long)d,    \
++							  (unsigned long)e,    \
++							  (unsigned long)f,    \
++							  (unsigned long)g,    \
++							  (unsigned long)h,    \
++							  (unsigned long)i,    \
++							  (unsigned long)j)
++
++#else
++
++typedef long EFI_STATUS;
++#define Call_Service(func)                      func()
++#define Call_Service_1(func,a)                  func(a)
++#define Call_Service_2(func,a,b)                func(a,b)
++#define Call_Service_3(func,a,b,c)              func(a,b,c)
++#define Call_Service_4(func,a,b,c,d)            func(a,b,c,d)
++#define Call_Service_5(func,a,b,c,d,e)          func(a,b,c,d,e)
++#define Call_Service_6(func,a,b,c,d,e,f)        func(a,b,c,d,e,f)
++#define Call_Service_7(func,a,b,c,d,e,f,g)      func(a,b,c,d,e,f,g)
++#define Call_Service_8(func,a,b,c,d,e,f,g,h)    func(a,b,c,d,e,f,g,h)
++#define Call_Service_9(func,a,b,c,d,e,f,g,h,i)  func(a,b,c,d,e,f,g,h,i)
++#define Call_Service_10(func,a,b,c,d,e,f,g,h,i,j)  func(a,b,c,d,e,f,g,h,i,j)
++#endif
++
++#endif
+diff --git a/efi/grub/efi/misc.h b/efi/grub/efi/misc.h
+new file mode 100644
+index 0000000..7dc34e7
+--- /dev/null
++++ b/efi/grub/efi/misc.h
+@@ -0,0 +1,58 @@
++/* misc.h - prototypes for misc EFI functions */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2002,2003,2005,2006  Free Software Foundation, Inc.
++ *
++ *  GRUB is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with GRUB; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifndef GRUB_EFI_MISC_HEADER
++#define GRUB_EFI_MISC_HEADER	1
++
++struct e820_entry;
++void e820_map_from_efi_map (struct e820_entry *e820_map,
++			    int *e820_nr_map,
++			    grub_efi_memory_descriptor_t *memory_map,
++			    grub_efi_uintn_t desc_size,
++			    grub_efi_uintn_t memory_map_size);
++
++/* Initialize the console system.  */
++void grub_console_init (void);
++/* Finish the console system.  */
++void grub_console_fini (void);
++
++void grub_efidisk_init (void);
++void grub_efidisk_fini (void);
++grub_efi_handle_t grub_efidisk_get_current_bdev_handle (void);
++int grub_get_drive_partition_from_bdev_handle (grub_efi_handle_t handle,
++					       unsigned long *drive,
++					       unsigned long *partition);
++
++char *grub_efi_file_path_to_path_name (grub_efi_device_path_t *file_path);
++void grub_load_saved_default (grub_efi_handle_t dev_handle);
++
++grub_efi_device_path_t *
++find_last_device_path (const grub_efi_device_path_t *dp);
++grub_efi_device_path_t *
++duplicate_device_path (const grub_efi_device_path_t *dp);
++int
++compare_device_paths (const grub_efi_device_path_t *dp1,
++		      const grub_efi_device_path_t *dp2);
++grub_efi_device_path_t *
++device_path_from_utf8 (const char *device);
++
++extern grub_efi_guid_t simple_file_system_guid;
++
++#endif /* ! GRUB_EFI_MISC_HEADER */
+diff --git a/efi/grub/efi/net.h b/efi/grub/efi/net.h
+new file mode 100644
+index 0000000..e69de29
+diff --git a/efi/grub/efi/time.h b/efi/grub/efi/time.h
+new file mode 100644
+index 0000000..55bfe68
+--- /dev/null
++++ b/efi/grub/efi/time.h
+@@ -0,0 +1,31 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2006  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
++ *  MA  02110-1301, USA.
++ */
++
++#ifndef GRUB_EFI_TIME_HEADER
++#define GRUB_EFI_TIME_HEADER	1
++
++#include <grub/symbol.h>
++
++#define GRUB_TICKS_PER_SECOND	18
++
++/* Return the real time in ticks.  */
++grub_uint32_t grub_get_rtc (void);
++
++#endif /* ! GRUB_EFI_TIME_HEADER */
+diff --git a/efi/grub/i386/linux.h b/efi/grub/i386/linux.h
+new file mode 100644
+index 0000000..1545a7a
+--- /dev/null
++++ b/efi/grub/i386/linux.h
+@@ -0,0 +1,226 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 1999,2000,2001,2002,2003,2004  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifndef GRUB_LINUX_MACHINE_HEADER
++#define GRUB_LINUX_MACHINE_HEADER	1
++
++#define GRUB_LINUX_MAGIC_SIGNATURE	0x53726448	/* "HdrS" */
++#define GRUB_LINUX_DEFAULT_SETUP_SECTS	4
++#define GRUB_LINUX_FLAG_CAN_USE_HEAP	0x80
++#define GRUB_LINUX_INITRD_MAX_ADDRESS	0x37FFFFFF
++#define GRUB_LINUX_MAX_SETUP_SECTS	64
++#define GRUB_LINUX_BOOT_LOADER_TYPE	0x72
++#define GRUB_LINUX_HEAP_END_OFFSET	(0x9000 - 0x200)
++
++#define GRUB_LINUX_BZIMAGE_ADDR		0x100000
++#define GRUB_LINUX_ZIMAGE_ADDR		0x10000
++#define GRUB_LINUX_OLD_REAL_MODE_ADDR	0x90000
++#define GRUB_LINUX_SETUP_STACK		0x9000
++
++#define GRUB_LINUX_FLAG_BIG_KERNEL	0x1
++
++/* Linux's video mode selection support. Actually I hate it!  */
++#define GRUB_LINUX_VID_MODE_NORMAL	0xFFFF
++#define GRUB_LINUX_VID_MODE_EXTENDED	0xFFFE
++#define GRUB_LINUX_VID_MODE_ASK		0xFFFD
++
++#define GRUB_LINUX_CL_OFFSET		0x9000
++#define GRUB_LINUX_CL_END_OFFSET	0x90FF
++#define GRUB_LINUX_SETUP_MOVE_SIZE	0x9100
++#define GRUB_LINUX_CL_MAGIC		0xA33F
++
++#if 0 
++#define GRUB_LINUX_EFI_SIGNATURE_X64	\
++  ('4' << 24 | '6' << 16 | 'L' << 8 | 'E')
++#else
++#define GRUB_LINUX_EFI_SIGNATURE_X64	\
++  ('L' << 24 | 'I' << 16 | 'F' << 8 | 'E')
++#endif
++
++#ifndef ASM_FILE
++
++/* For the Linux/i386 boot protocol version 2.07.  */
++struct grub_linux_kernel_header
++{
++  grub_uint8_t setup_sects;	/* The size of the setup in sectors */
++  grub_uint16_t root_flags;	/* If the root is mounted readonly */
++  grub_uint32_t syssize;	/* obsolete */
++  grub_uint16_t ram_size;	/* obsolete */
++  grub_uint16_t vid_mode;	/* Video mode control */
++  grub_uint16_t root_dev;	/* Default root device number */
++  grub_uint16_t boot_flag;	/* 0xAA55 magic number */
++  grub_uint8_t jump_ins;	/* Jump instruction */
++  grub_uint8_t jump_off;	/* Jump offset */
++  grub_uint32_t header;		/* Magic signature "HdrS" */
++  grub_uint16_t version;	/* Boot protocol version supported */
++  grub_uint32_t realmode_swtch;	/* Boot loader hook */
++  grub_uint16_t start_sys;	/* The load-low segment (obsolete) */
++  grub_uint16_t kernel_version;	/* Points to kernel version string */
++  grub_uint8_t type_of_loader;	/* Boot loader identifier */
++  grub_uint8_t loadflags;	/* Boot protocol option flags */
++  grub_uint16_t setup_move_size;/* Move to high memory size */
++  grub_uint32_t code32_start;	/* Boot loader hook */
++  grub_uint32_t ramdisk_image;	/* initrd load address */
++  grub_uint32_t ramdisk_size;	/* initrd size */
++  grub_uint32_t bootsect_kludge;/* obsolete */
++  grub_uint16_t heap_end_ptr;	/* Free memory after setup end */
++  grub_uint16_t pad1;		/* Unused */
++  grub_uint32_t cmd_line_ptr;	/* Points to the kernel command line */
++  grub_uint32_t initrd_addr_max;/* Highest address for initrd */
++  grub_uint32_t kernel_alignment;
++  grub_uint8_t relocatable_kernel;
++  grub_uint8_t pad2[3];
++  grub_uint32_t hardware_subarch;
++  grub_uint64_t hardware_subarch_data;
++} __attribute__ ((packed));
++
++/* Boot parameters for Linux based on 2.6.12. This is used by the setup
++   sectors of Linux, and must be simulated by GRUB on EFI, because
++   the setup sectors depend on BIOS.  */
++struct linux_kernel_params
++{
++  grub_uint8_t video_cursor_x;	/* 0 */
++  grub_uint8_t video_cursor_y;
++
++  grub_uint16_t ext_mem;	/* 2 */
++
++  grub_uint16_t video_page;	/* 4 */
++  grub_uint8_t video_mode;	/* 6 */
++  grub_uint8_t video_width;	/* 7 */
++
++  grub_uint8_t padding1[0xa - 0x8];
++
++  grub_uint16_t video_ega_bx;	/* a */
++
++  grub_uint8_t padding2[0xe - 0xc];
++
++  grub_uint8_t video_height;	/* e */
++  grub_uint8_t have_vga;	/* f */
++  grub_uint16_t font_size;	/* 10 */
++
++  grub_uint16_t lfb_width;	/* 12 */
++  grub_uint16_t lfb_height;	/* 14 */
++  grub_uint16_t lfb_depth;	/* 16 */
++  grub_uint32_t lfb_base;	/* 18 */
++  grub_uint32_t lfb_size;	/* 1c */
++
++  grub_uint16_t cl_magic;	/* 20 */
++  grub_uint16_t cl_offset;
++
++  grub_uint16_t lfb_line_len;	/* 24 */
++  grub_uint8_t red_mask_size;	/* 26 */
++  grub_uint8_t red_field_pos;
++  grub_uint8_t green_mask_size;
++  grub_uint8_t green_field_pos;
++  grub_uint8_t blue_mask_size;
++  grub_uint8_t blue_field_pos;
++  grub_uint8_t reserved_mask_size;
++  grub_uint8_t reserved_field_pos;
++  grub_uint16_t vesapm_segment;	/* 2e */
++  grub_uint16_t vesapm_offset;	/* 30 */
++  grub_uint16_t lfb_pages;	/* 32 */
++  grub_uint16_t vesa_attrib;	/* 34 */
++
++  grub_uint8_t padding3[0x40 - 0x36];
++
++  grub_uint16_t apm_version;	/* 40 */
++  grub_uint16_t apm_code_segment;	/* 42 */
++  grub_uint32_t apm_entry;	/* 44 */
++  grub_uint16_t apm_16bit_code_segment;	/* 48 */
++  grub_uint16_t apm_data_segment;	/* 4a */
++  grub_uint16_t apm_flags;	/* 4c */
++  grub_uint32_t apm_code_len;	/* 4e */
++  grub_uint16_t apm_data_len;	/* 52 */
++
++  grub_uint8_t padding4[0x60 - 0x54];
++
++  grub_uint32_t ist_signature;	/* 60 */
++  grub_uint32_t ist_command;	/* 64 */
++  grub_uint32_t ist_event;	/* 68 */
++  grub_uint32_t ist_perf_level;	/* 6c */
++
++  grub_uint8_t padding5[0x80 - 0x70];
++
++  grub_uint8_t hd0_drive_info[0x10];	/* 80 */
++  grub_uint8_t hd1_drive_info[0x10];	/* 90 */
++  grub_uint16_t rom_config_len;	/* a0 */
++
++  grub_uint8_t padding6[0x1b8 - 0xa2];
++
++  union {
++    struct {
++      grub_uint32_t padding7_1; /* 0x1b8 */
++      grub_uint32_t padding7_2; /* 0x1bc */
++
++      grub_uint32_t efi_signature;	/* 1c0 */
++      grub_uint32_t efi_system_table;	/* 1c4 */
++      grub_uint32_t efi_mem_desc_size;	/* 1c8 */
++      grub_uint32_t efi_mem_desc_version;	/* 1cc */
++      grub_uint32_t efi_mmap;      /* 1d0 */
++      grub_uint32_t efi_mmap_size;	/* 1d4 */
++      grub_uint32_t efi_system_table_hi;	/* 1d8 */
++      grub_uint32_t efi_mmap_hi;	/* 1dc */
++    } dunno;
++    struct {
++      grub_uint32_t efi_system_table;	/* 1b8 */
++
++      grub_uint32_t padding7_1; /* 0x1bc */
++
++      grub_uint32_t efi_signature;	/* 1c0 */
++      grub_uint32_t efi_mem_desc_size;	/* 1c4 */
++      grub_uint32_t efi_mem_desc_version;	/* 1c8 */
++      grub_uint32_t efi_mmap_size;	/* 1cc */
++      grub_uint32_t efi_mmap; /* 1d0 */
++
++      grub_uint8_t padding7_2[0x1e0 - 0x1d4]; /* 1d4 */
++    } version_0204;
++    struct {
++      grub_uint32_t padding7_1; /* 0x1b8 */
++      grub_uint32_t padding7_2; /* 0x1bc */
++      grub_uint32_t padding7_3; /* 0x1c0 */
++      grub_uint32_t efi_system_table; /* 0x1c4 */
++      grub_uint32_t efi_mem_desc_size; /* 0x1c8 */
++      grub_uint32_t efi_mem_desc_version; /* 0x1cc */
++      grub_uint32_t efi_mmap; /* 0x1d0 */
++      grub_uint32_t efi_mmap_size; /* 0x1d4 */
++      grub_uint8_t padding7_4[0x1e0 - 0x1d8]; /* 0x1d8 */
++    } version_0206;
++  };
++
++  grub_uint32_t alt_mem;	/* 1e0 */
++
++  grub_uint8_t padding8[0x1e8 - 0x1e4];	/* 1e4 */
++
++  grub_uint8_t e820_nr_map;	/* 1e8 */
++  grub_uint8_t eddbuf_entries;	/* 1e9 */
++  grub_uint8_t edd_mbr_sig_buf_entries;	/* 1ea */
++
++  grub_uint8_t padding9[0x1f1 - 0x1eb];
++
++  struct grub_linux_kernel_header hdr;	/* 0x1f1 */
++
++  grub_uint8_t padding10[0x2d0-0x1f1-sizeof(struct grub_linux_kernel_header)];
++
++  grub_uint8_t e820_map[2560];	/* 0x2d0 */
++
++  grub_uint8_t padding11[0x1000 - 0xcd0];
++} __attribute__ ((packed));
++#endif /* ! ASM_FILE */
++
++#endif /* ! GRUB_LINUX_MACHINE_HEADER */
+diff --git a/efi/grub/i386/types.h b/efi/grub/i386/types.h
+new file mode 100644
+index 0000000..ec4174e
+--- /dev/null
++++ b/efi/grub/i386/types.h
+@@ -0,0 +1,32 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2002,2006  Free Software Foundation, Inc.
++ *
++ *  GRUB is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with GRUB; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifndef GRUB_TYPES_CPU_HEADER
++#define GRUB_TYPES_CPU_HEADER	1
++
++/* The size of void *.  */
++#define GRUB_TARGET_SIZEOF_VOID_P	4
++
++/* The size of long.  */
++#define GRUB_TARGET_SIZEOF_LONG		4
++
++/* x64_64 is little-endian.  */
++#undef GRUB_TARGET_WORDS_BIGENDIAN
++
++#endif /* ! GRUB_TYPES_CPU_HEADER */
+diff --git a/efi/grub/misc.h b/efi/grub/misc.h
+new file mode 100644
+index 0000000..5ef2226
+--- /dev/null
++++ b/efi/grub/misc.h
+@@ -0,0 +1,71 @@
++/* misc.h - prototypes for misc functions */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2002,2003,2005,2006  Free Software Foundation, Inc.
++ *
++ *  GRUB is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with GRUB; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifndef GRUB_MISC_HEADER
++#define GRUB_MISC_HEADER	1
++
++#include <stdarg.h>
++#include <grub/types.h>
++
++#define grub_dprintf(condition, fmt, args...) \
++	grub_real_dprintf(__FILE__, __LINE__, condition, fmt, ## args)
++
++char *grub_stpcpy (char *dest, const char *src);
++void grub_real_dprintf (const char *file,
++			const int line,
++			const char *condition,
++			const char *fmt, ...)
++  __attribute__ ((format (printf, 4, 5)));
++void grub_exit (void) __attribute__ ((noreturn));
++void grub_abort (void) __attribute__ ((noreturn));
++void grub_fatal (const char *fmt, ...) __attribute__ ((noreturn));
++grub_size_t grub_utf8_char_len(grub_uint8_t ch);
++grub_uint32_t grub_utf8_to_utf32(const grub_uint8_t *src, grub_size_t length);
++void grub_utf8_to_utf16(const grub_uint8_t *src, grub_size_t srclen,
++			grub_uint16_t *dst, grub_size_t dstlen);
++grub_uint8_t *grub_utf16_to_utf8 (grub_uint8_t * dest,
++				  grub_uint16_t * src, grub_size_t size);
++
++void *grub_malloc (grub_size_t size);
++void grub_free (void *ptr);
++
++char *grub_strndup (const char *s, int n);
++#define strndup grub_strndup
++
++int safe_parse_maxulong (char **str_ptr, unsigned long *myulong_ptr);
++
++#define E820_RAM        1
++#define E820_RESERVED   2
++#define E820_ACPI       3
++#define E820_NVS        4
++#define E820_EXEC_CODE  5
++#define E820_MAX        128
++
++struct e820_entry
++{
++  grub_uint64_t addr;    /* start of memory segment */
++  grub_uint64_t size;    /* size of memory segment */
++  grub_uint32_t type;    /* type of memory segment */
++} __attribute__ ((packed));
++
++int grub_load_linux (char *kernel, char *arg);
++int grub_load_initrd (char *initrd);
++
++#endif /* ! GRUB_MISC_HEADER */
+diff --git a/efi/grub/symbol.h b/efi/grub/symbol.h
+new file mode 100644
+index 0000000..5204c54
+--- /dev/null
++++ b/efi/grub/symbol.h
+@@ -0,0 +1,34 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 1999,2000,2001,2002,2006  Free Software Foundation, Inc.
++ *
++ *  GRUB is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with GRUB; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifndef GRUB_SYMBOL_HEADER
++#define GRUB_SYMBOL_HEADER	1
++
++#include <config.h>
++
++/* Add an underscore to a C symbol in assembler code if needed. */
++#ifdef HAVE_ASM_USCORE
++# define EXT_C(sym)	_ ## sym
++#else
++# define EXT_C(sym)	sym
++#endif
++
++#define FUNCTION(x)	.globl EXT_C(x) ; .type EXT_C(x), "function" ; EXT_C(x):
++
++#endif /* ! GRUB_SYMBOL_HEADER */
+diff --git a/efi/grub/types.h b/efi/grub/types.h
+new file mode 100644
+index 0000000..173adb4
+--- /dev/null
++++ b/efi/grub/types.h
+@@ -0,0 +1,158 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2002,2005,2006  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifndef GRUB_TYPES_HEADER
++#define GRUB_TYPES_HEADER	1
++
++#include <config.h>
++#include <grub/cpu/types.h>
++
++#define UNUSED __attribute__ ((unused))
++
++#ifdef GRUB_UTIL
++# define GRUB_CPU_SIZEOF_VOID_P	SIZEOF_VOID_P
++# define GRUB_CPU_SIZEOF_LONG	SIZEOF_LONG
++# ifdef WORDS_BIGENDIAN
++#  define GRUB_CPU_WORDS_BIGENDIAN	1
++# else
++#  undef GRUB_CPU_WORDS_BIGENDIAN
++# endif
++#else /* ! GRUB_UTIL */
++# define GRUB_CPU_SIZEOF_VOID_P	GRUB_TARGET_SIZEOF_VOID_P
++# define GRUB_CPU_SIZEOF_LONG	GRUB_TARGET_SIZEOF_LONG
++# ifdef GRUB_TARGET_WORDS_BIGENDIAN
++#  define GRUB_CPU_WORDS_BIGENDIAN	1
++# else
++#  undef GRUB_CPU_WORDS_BIGENDIAN
++# endif
++#endif /* ! GRUB_UTIL */
++
++#if GRUB_CPU_SIZEOF_VOID_P != GRUB_CPU_SIZEOF_LONG
++# error "This architecture is not supported because sizeof(void *) != sizeof(long)"
++#endif
++
++#if GRUB_CPU_SIZEOF_VOID_P != 4 && GRUB_CPU_SIZEOF_VOID_P != 8
++# error "This architecture is not supported because sizeof(void *) != 4 and sizeof(void *) != 8"
++#endif
++
++/* Define various wide integers.  */
++typedef signed char		grub_int8_t;
++typedef short			grub_int16_t;
++typedef int			grub_int32_t;
++#if GRUB_CPU_SIZEOF_VOID_P == 8
++typedef long			grub_int64_t;
++#else
++typedef long long		grub_int64_t;
++#endif
++
++typedef unsigned char		grub_uint8_t;
++typedef unsigned short		grub_uint16_t;
++typedef unsigned		grub_uint32_t;
++#if GRUB_CPU_SIZEOF_VOID_P == 8
++typedef unsigned long		grub_uint64_t;
++#else
++typedef unsigned long long	grub_uint64_t;
++#endif
++
++/* Misc types.  */
++#if GRUB_TARGET_SIZEOF_VOID_P == 8
++typedef grub_uint64_t	grub_target_addr_t;
++typedef grub_uint64_t	grub_target_off_t;
++typedef grub_uint64_t	grub_target_size_t;
++typedef grub_int64_t	grub_target_ssize_t;
++#else
++typedef grub_uint32_t	grub_target_addr_t;
++typedef grub_uint32_t	grub_target_off_t;
++typedef grub_uint32_t	grub_target_size_t;
++typedef grub_int32_t	grub_target_ssize_t;
++#endif
++
++typedef unsigned long   grub_addr_t;
++#if GRUB_CPU_SIZEOF_VOID_P == 8
++typedef grub_uint64_t	grub_size_t;
++typedef grub_int64_t	grub_ssize_t;
++#else
++typedef grub_uint32_t	grub_size_t;
++typedef grub_int32_t	grub_ssize_t;
++#endif
++
++/* The type for representing a file offset.  */
++typedef grub_uint64_t	grub_off_t;
++
++/* The type for representing a disk block address.  */
++typedef grub_uint64_t	grub_disk_addr_t;
++
++/* Byte-orders.  */
++#define grub_swap_bytes16(x)	\
++({ \
++   grub_uint16_t _x = (x); \
++   (grub_uint16_t) ((_x << 8) | (_x >> 8)); \
++})
++
++#define grub_swap_bytes32(x)	\
++({ \
++   grub_uint32_t _x = (x); \
++   (grub_uint32_t) ((_x << 24) \
++                    | ((_x & (grub_uint32_t) 0xFF00UL) << 8) \
++                    | ((_x & (grub_uint32_t) 0xFF0000UL) >> 8) \
++                    | (_x >> 24)); \
++})
++
++#define grub_swap_bytes64(x)	\
++({ \
++   grub_uint64_t _x = (x); \
++   (grub_uint64_t) ((_x << 56) \
++                    | ((_x & (grub_uint64_t) 0xFF00ULL) << 40) \
++                    | ((_x & (grub_uint64_t) 0xFF0000ULL) << 24) \
++                    | ((_x & (grub_uint64_t) 0xFF000000ULL) << 8) \
++                    | ((_x & (grub_uint64_t) 0xFF00000000ULL) >> 8) \
++                    | ((_x & (grub_uint64_t) 0xFF0000000000ULL) >> 24) \
++                    | ((_x & (grub_uint64_t) 0xFF000000000000ULL) >> 40) \
++                    | (_x >> 56)); \
++})
++
++#ifdef GRUB_CPU_WORDS_BIGENDIAN
++# define grub_cpu_to_le16(x)	grub_swap_bytes16(x)
++# define grub_cpu_to_le32(x)	grub_swap_bytes32(x)
++# define grub_cpu_to_le64(x)	grub_swap_bytes64(x)
++# define grub_le_to_cpu16(x)	grub_swap_bytes16(x)
++# define grub_le_to_cpu32(x)	grub_swap_bytes32(x)
++# define grub_le_to_cpu64(x)	grub_swap_bytes64(x)
++# define grub_cpu_to_be16(x)	((grub_uint16_t) (x))
++# define grub_cpu_to_be32(x)	((grub_uint32_t) (x))
++# define grub_cpu_to_be64(x)	((grub_uint64_t) (x))
++# define grub_be_to_cpu16(x)	((grub_uint16_t) (x))
++# define grub_be_to_cpu32(x)	((grub_uint32_t) (x))
++# define grub_be_to_cpu64(x)	((grub_uint64_t) (x))
++#else /* ! WORDS_BIGENDIAN */
++# define grub_cpu_to_le16(x)	((grub_uint16_t) (x))
++# define grub_cpu_to_le32(x)	((grub_uint32_t) (x))
++# define grub_cpu_to_le64(x)	((grub_uint64_t) (x))
++# define grub_le_to_cpu16(x)	((grub_uint16_t) (x))
++# define grub_le_to_cpu32(x)	((grub_uint32_t) (x))
++# define grub_le_to_cpu64(x)	((grub_uint64_t) (x))
++# define grub_cpu_to_be16(x)	grub_swap_bytes16(x)
++# define grub_cpu_to_be32(x)	grub_swap_bytes32(x)
++# define grub_cpu_to_be64(x)	grub_swap_bytes64(x)
++# define grub_be_to_cpu16(x)	grub_swap_bytes16(x)
++# define grub_be_to_cpu32(x)	grub_swap_bytes32(x)
++# define grub_be_to_cpu64(x)	grub_swap_bytes64(x)
++#endif /* ! WORDS_BIGENDIAN */
++
++#endif /* ! GRUB_TYPES_HEADER */
+diff --git a/efi/grub/x86_64/linux.h b/efi/grub/x86_64/linux.h
+new file mode 100644
+index 0000000..65af9ee
+--- /dev/null
++++ b/efi/grub/x86_64/linux.h
+@@ -0,0 +1,228 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 1999,2000,2001,2002,2003,2004  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifndef GRUB_LINUX_MACHINE_HEADER
++#define GRUB_LINUX_MACHINE_HEADER	1
++
++#define GRUB_LINUX_MAGIC_SIGNATURE	0x53726448	/* "HdrS" */
++#define GRUB_LINUX_DEFAULT_SETUP_SECTS	4
++#define GRUB_LINUX_FLAG_CAN_USE_HEAP	0x80
++#define GRUB_LINUX_INITRD_MAX_ADDRESS	0x37FFFFFF
++#define GRUB_LINUX_MAX_SETUP_SECTS	64
++#define GRUB_LINUX_BOOT_LOADER_TYPE	0x72
++#define GRUB_LINUX_HEAP_END_OFFSET	(0x9000 - 0x200)
++
++#define GRUB_LINUX_BZIMAGE_ADDR		0x100000
++#define GRUB_LINUX_ZIMAGE_ADDR		0x10000
++#define GRUB_LINUX_OLD_REAL_MODE_ADDR	0x90000
++#define GRUB_LINUX_SETUP_STACK		0x9000
++
++#define GRUB_LINUX_FLAG_BIG_KERNEL	0x1
++
++/* Linux's video mode selection support. Actually I hate it!  */
++#define GRUB_LINUX_VID_MODE_NORMAL	0xFFFF
++#define GRUB_LINUX_VID_MODE_EXTENDED	0xFFFE
++#define GRUB_LINUX_VID_MODE_ASK		0xFFFD
++
++#define GRUB_LINUX_CL_OFFSET		0x9000
++#define GRUB_LINUX_CL_END_OFFSET	0x90FF
++#define GRUB_LINUX_SETUP_MOVE_SIZE	0x9100
++#define GRUB_LINUX_CL_MAGIC		0xA33F
++
++#if 0 
++#define GRUB_LINUX_EFI_SIGNATURE_X64	\
++  ('4' << 24 | '6' << 16 | 'L' << 8 | 'E')
++#else
++#define GRUB_LINUX_EFI_SIGNATURE_X64	\
++  ('L' << 24 | 'I' << 16 | 'F' << 8 | 'E')
++#endif
++
++#ifndef ASM_FILE
++
++/* For the Linux/i386 boot protocol version 2.07.  */
++struct grub_linux_kernel_header
++{
++  grub_uint8_t setup_sects;	/* The size of the setup in sectors */
++  grub_uint16_t root_flags;	/* If the root is mounted readonly */
++  grub_uint32_t syssize;	/* obsolete */
++  grub_uint16_t ram_size;	/* obsolete */
++  grub_uint16_t vid_mode;	/* Video mode control */
++  grub_uint16_t root_dev;	/* Default root device number */
++  grub_uint16_t boot_flag;	/* 0xAA55 magic number */
++  grub_uint8_t jump_ins;	/* Jump instruction */
++  grub_uint8_t jump_off;	/* Jump offset */
++  grub_uint32_t header;		/* Magic signature "HdrS" */
++  grub_uint16_t version;	/* Boot protocol version supported */
++  grub_uint32_t realmode_swtch;	/* Boot loader hook */
++  grub_uint16_t start_sys;	/* The load-low segment (obsolete) */
++  grub_uint16_t kernel_version;	/* Points to kernel version string */
++  grub_uint8_t type_of_loader;	/* Boot loader identifier */
++  grub_uint8_t loadflags;	/* Boot protocol option flags */
++  grub_uint16_t setup_move_size;/* Move to high memory size */
++  grub_uint32_t code32_start;	/* Boot loader hook */
++  grub_uint32_t ramdisk_image;	/* initrd load address */
++  grub_uint32_t ramdisk_size;	/* initrd size */
++  grub_uint32_t bootsect_kludge;/* obsolete */
++  grub_uint16_t heap_end_ptr;	/* Free memory after setup end */
++  grub_uint16_t pad1;		/* Unused */
++  grub_uint32_t cmd_line_ptr;	/* Points to the kernel command line */
++  grub_uint32_t initrd_addr_max;/* Highest address for initrd */
++  grub_uint32_t kernel_alignment;
++  grub_uint8_t relocatable_kernel;
++  grub_uint8_t pad2[3];
++  grub_uint32_t cmdline_size;
++  grub_uint32_t hardware_subarch;
++  grub_uint64_t hardware_subarch_data;
++} __attribute__ ((packed));
++
++/* Boot parameters for Linux based on 2.6.12. This is used by the setup
++   sectors of Linux, and must be simulated by GRUB on EFI, because
++   the setup sectors depend on BIOS.  */
++struct linux_kernel_params
++{
++  grub_uint8_t video_cursor_x;	/* 0 */
++  grub_uint8_t video_cursor_y;
++
++  grub_uint16_t ext_mem;	/* 2 */
++
++  grub_uint16_t video_page;	/* 4 */
++  grub_uint8_t video_mode;	/* 6 */
++  grub_uint8_t video_width;	/* 7 */
++
++  grub_uint8_t padding1[0xa - 0x8];
++
++  grub_uint16_t video_ega_bx;	/* a */
++
++  grub_uint8_t padding2[0xe - 0xc];
++
++  grub_uint8_t video_height;	/* e */
++  grub_uint8_t have_vga;	/* f */
++  grub_uint16_t font_size;	/* 10 */
++
++  grub_uint16_t lfb_width;	/* 12 */
++  grub_uint16_t lfb_height;	/* 14 */
++  grub_uint16_t lfb_depth;	/* 16 */
++  grub_uint32_t lfb_base;	/* 18 */
++  grub_uint32_t lfb_size;	/* 1c */
++
++  grub_uint16_t cl_magic;	/* 20 */
++  grub_uint16_t cl_offset;
++
++  grub_uint16_t lfb_line_len;	/* 24 */
++  grub_uint8_t red_mask_size;	/* 26 */
++  grub_uint8_t red_field_pos;
++  grub_uint8_t green_mask_size;
++  grub_uint8_t green_field_pos;
++  grub_uint8_t blue_mask_size;
++  grub_uint8_t blue_field_pos;
++  grub_uint8_t reserved_mask_size;
++  grub_uint8_t reserved_field_pos;
++  grub_uint16_t vesapm_segment;	/* 2e */
++  grub_uint16_t vesapm_offset;	/* 30 */
++  grub_uint16_t lfb_pages;	/* 32 */
++  grub_uint16_t vesa_attrib;	/* 34 */
++  grub_uint32_t capabilities;   /* 36 */
++
++  grub_uint8_t padding3[0x40 - 0x3a];
++
++  grub_uint16_t apm_version;	/* 40 */
++  grub_uint16_t apm_code_segment;	/* 42 */
++  grub_uint32_t apm_entry;	/* 44 */
++  grub_uint16_t apm_16bit_code_segment;	/* 48 */
++  grub_uint16_t apm_data_segment;	/* 4a */
++  grub_uint16_t apm_flags;	/* 4c */
++  grub_uint32_t apm_code_len;	/* 4e */
++  grub_uint16_t apm_data_len;	/* 52 */
++
++  grub_uint8_t padding4[0x60 - 0x54];
++
++  grub_uint32_t ist_signature;	/* 60 */
++  grub_uint32_t ist_command;	/* 64 */
++  grub_uint32_t ist_event;	/* 68 */
++  grub_uint32_t ist_perf_level;	/* 6c */
++
++  grub_uint8_t padding5[0x80 - 0x70];
++
++  grub_uint8_t hd0_drive_info[0x10];	/* 80 */
++  grub_uint8_t hd1_drive_info[0x10];	/* 90 */
++  grub_uint16_t rom_config_len;	/* a0 */
++
++  grub_uint8_t padding6[0x1b8 - 0xa2];
++
++  union {
++    struct {
++      grub_uint32_t padding7_1; /* 0x1b8 */
++      grub_uint32_t padding7_2; /* 0x1bc */
++
++      grub_uint32_t efi_signature;	/* 1c0 */
++      grub_uint32_t efi_system_table;	/* 1c4 */
++      grub_uint32_t efi_mem_desc_size;	/* 1c8 */
++      grub_uint32_t efi_mem_desc_version;	/* 1cc */
++      grub_uint32_t efi_mmap;      /* 1d0 */
++      grub_uint32_t efi_mmap_size;	/* 1d4 */
++      grub_uint32_t efi_system_table_hi;	/* 1d8 */
++      grub_uint32_t efi_mmap_hi;	/* 1dc */
++    } dunno;
++    struct {
++      grub_uint32_t efi_system_table;	/* 1b8 */
++
++      grub_uint32_t padding7_1; /* 0x1bc */
++
++      grub_uint32_t efi_signature;	/* 1c0 */
++      grub_uint32_t efi_mem_desc_size;	/* 1c4 */
++      grub_uint32_t efi_mem_desc_version;	/* 1c8 */
++      grub_uint32_t efi_mmap_size;	/* 1cc */
++      grub_uint32_t efi_mmap; /* 1d0 */
++
++      grub_uint8_t padding7_2[0x1e0 - 0x1d4]; /* 1d4 */
++    } version_0204;
++    struct {
++      grub_uint32_t padding7_1; /* 0x1b8 */
++      grub_uint32_t padding7_2; /* 0x1bc */
++      grub_uint32_t padding7_3; /* 0x1c0 */
++      grub_uint32_t efi_system_table; /* 0x1c4 */
++      grub_uint32_t efi_mem_desc_size; /* 0x1c8 */
++      grub_uint32_t efi_mem_desc_version; /* 0x1cc */
++      grub_uint32_t efi_mmap; /* 0x1d0 */
++      grub_uint32_t efi_mmap_size; /* 0x1d4 */
++      grub_uint8_t padding7_4[0x1e0 - 0x1d8]; /* 0x1d8 */
++    } version_0206;
++  };
++
++  grub_uint32_t alt_mem;	/* 1e0 */
++
++  grub_uint8_t padding8[0x1e8 - 0x1e4];	/* 1e4 */
++
++  grub_uint8_t e820_nr_map;	/* 1e8 */
++  grub_uint8_t eddbuf_entries;	/* 1e9 */
++  grub_uint8_t edd_mbr_sig_buf_entries;	/* 1ea */
++
++  grub_uint8_t padding9[0x1f1 - 0x1eb];
++
++  struct grub_linux_kernel_header hdr;	/* 0x1f1 */
++
++  grub_uint8_t padding10[0x2d0-0x1f1-sizeof(struct grub_linux_kernel_header)];
++
++  grub_uint8_t e820_map[2560];	/* 0x2d0 */
++
++  grub_uint8_t padding11[0x1000 - 0xcd0];
++} __attribute__ ((packed));
++#endif /* ! ASM_FILE */
++
++#endif /* ! GRUB_LINUX_MACHINE_HEADER */
+diff --git a/efi/grub/x86_64/types.h b/efi/grub/x86_64/types.h
+new file mode 100644
+index 0000000..0c077f6
+--- /dev/null
++++ b/efi/grub/x86_64/types.h
+@@ -0,0 +1,32 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2002,2006  Free Software Foundation, Inc.
++ *
++ *  GRUB is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with GRUB; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifndef GRUB_TYPES_CPU_HEADER
++#define GRUB_TYPES_CPU_HEADER	1
++
++/* The size of void *.  */
++#define GRUB_TARGET_SIZEOF_VOID_P	8
++
++/* The size of long.  */
++#define GRUB_TARGET_SIZEOF_LONG		8
++
++/* x64_64 is little-endian.  */
++#undef GRUB_TARGET_WORDS_BIGENDIAN
++
++#endif /* ! GRUB_TYPES_CPU_HEADER */
+diff --git a/efi/ia32/callwrap.S b/efi/ia32/callwrap.S
+new file mode 100644
+index 0000000..e69de29
+diff --git a/efi/ia32/callwrap.c b/efi/ia32/callwrap.c
+new file mode 100644
+index 0000000..56df899
+--- /dev/null
++++ b/efi/ia32/callwrap.c
+@@ -0,0 +1,131 @@
++
++#define ENTRY(name)		\
++	".globl " #name ";"	\
++	".align 16;"		\
++	#name ":"
++
++asm(
++ENTRY(i386_call0)
++	"pushl	%ebp		\n"
++	"movl	%esp,%ebp	\n"
++	"subl	$8, %esp	\n"
++	"call	*8(%ebp)	\n"
++	"leave			\n"
++	"ret			\n"
++	);
++
++asm(
++ENTRY(i386_call1)
++	"pushl	%ebp		\n"
++	"movl	%esp,%ebp	\n"
++	"subl	$20, %esp	\n"
++	"pushl	12(%ebp)	\n"
++	"call	*8(%ebp)	\n"
++	"leave			\n"
++	"ret			\n"
++	);
++
++asm(
++ENTRY(i386_call2)
++	"pushl	%ebp		\n"
++	"movl	%esp,%ebp	\n"
++	"subl	$16, %esp	\n"
++	"pushl	16(%ebp)	\n"
++	"pushl	12(%ebp)	\n"
++	"call	*8(%ebp)	\n"
++	"leave			\n"
++	"ret			\n"
++	);
++
++asm(
++ENTRY(i386_call3)
++	"pushl	%ebp		\n"
++	"movl	%esp,%ebp	\n"
++	"subl	$12, %esp	\n"
++	"pushl	20(%ebp)	\n"
++	"pushl	16(%ebp)	\n"
++	"pushl	12(%ebp)	\n"
++	"call	*8(%ebp)	\n"
++	"leave			\n"
++	"ret			\n"
++	);
++
++asm(
++ENTRY(i386_call4)
++	"pushl	%ebp		\n"
++	"movl	%esp,%ebp	\n"
++	"subl	$8, %esp	\n"
++	"pushl	24(%ebp)	\n"
++	"pushl	20(%ebp)	\n"
++	"pushl	16(%ebp)	\n"
++	"pushl	12(%ebp)	\n"
++	"call	*8(%ebp)	\n"
++	"leave			\n"
++	"ret			\n"
++	);
++
++asm(
++ENTRY(i386_call5)
++	"pushl	%ebp		\n"
++	"movl	%esp,%ebp	\n"
++	"subl	$20, %esp	\n"
++	"pushl	28(%ebp)	\n"
++	"pushl	24(%ebp)	\n"
++	"pushl	20(%ebp)	\n"
++	"pushl	16(%ebp)	\n"
++	"pushl	12(%ebp)	\n"
++	"call	*8(%ebp)	\n"
++	"leave			\n"
++	"ret			\n"
++	);
++
++asm(
++ENTRY(i386_64_call5)
++	"pushl	%ebp		\n"
++	"movl	%esp,%ebp	\n"
++	"subl	$12, %esp	\n"
++	"pushl	36(%ebp)	\n"
++	"pushl	32(%ebp)	\n"
++	"pushl	28(%ebp)	\n"
++	"pushl	24(%ebp)	\n"
++	"pushl	20(%ebp)	\n"
++	"pushl	16(%ebp)	\n"
++	"pushl	12(%ebp)	\n"
++	"call	*8(%ebp)	\n"
++	"leave			\n"
++	"ret			\n"
++	);
++
++
++asm(
++ENTRY(i386_call6)
++	"pushl	%ebp		\n"
++	"movl	%esp,%ebp	\n"
++	"subl	$16, %esp	\n"
++	"pushl	32(%ebp)	\n"
++	"pushl	28(%ebp)	\n"
++	"pushl	24(%ebp)	\n"
++	"pushl	20(%ebp)	\n"
++	"pushl	16(%ebp)	\n"
++	"pushl	12(%ebp)	\n"
++	"call	*8(%ebp)	\n"
++	"leave			\n"
++	"ret			\n"
++	);
++
++asm(
++ENTRY(i386_call7)
++	"pushl	%ebp		\n"
++	"movl	%esp,%ebp	\n"
++	"subl	$12, %esp	\n"
++	"pushl	36(%ebp)	\n"
++	"pushl	32(%ebp)	\n"
++	"pushl	28(%ebp)	\n"
++	"pushl	24(%ebp)	\n"
++	"pushl	20(%ebp)	\n"
++	"pushl	16(%ebp)	\n"
++	"pushl	12(%ebp)	\n"
++	"call	*8(%ebp)	\n"
++	"leave			\n"
++	"ret			\n"
++	);
+diff --git a/efi/ia32/loader/bin_to_h.c b/efi/ia32/loader/bin_to_h.c
+new file mode 100644
+index 0000000..4cff104
+--- /dev/null
++++ b/efi/ia32/loader/bin_to_h.c
+@@ -0,0 +1,29 @@
++#include <stdio.h>
++#include <stdlib.h>
++
++int
++main (void)
++{
++  unsigned n = 0;
++  int c;
++
++  printf ("unsigned char switch_image[] = {\n");
++
++  while ((c = getchar ()) != EOF)
++    {
++      printf("0x%02x,%s",
++	     c & 0xFF,
++	     (++n & 0x07) ? " " : "\n");
++    }
++
++  if (n & 0x07)
++    {
++      printf("\n");
++    }
++
++  printf("};\n"
++	 "int switch_size = sizeof switch_image;\n");
++
++  return 0;
++}
++
+diff --git a/efi/ia32/loader/linux.c b/efi/ia32/loader/linux.c
+new file mode 100644
+index 0000000..d795d28
+--- /dev/null
++++ b/efi/ia32/loader/linux.c
+@@ -0,0 +1,648 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2006  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#include <grub/misc.h>
++#include <grub/types.h>
++#include <grub/cpu/linux.h>
++#include <grub/efi/api.h>
++#include <grub/efi/efi.h>
++#include <grub/efi/misc.h>
++
++#include "switch.h"
++
++#include <shared.h>
++
++#include "graphics.h"
++
++#define grub_file_size()    filemax
++
++#define NEXT_MEMORY_DESCRIPTOR(desc, size)      \
++  ((grub_efi_memory_descriptor_t *) ((char *) (desc) + (size)))
++
++#define PTR_HI(x) ((grub_uint32_t) ((unsigned long long)((unsigned long)(x)) >> 32))
++
++#ifndef SECTOR_SIZE
++#define SECTOR_SIZE 0x200
++#endif /* defined(SECTOR_SIZE) */
++#ifndef SECTOR_BITS
++#define SECTOR_BITS 9
++#endif /* defined(SECTOR_BITS) */
++
++static unsigned long linux_mem_size;
++static int loaded;
++static void *real_mode_mem;
++static void *prot_mode_mem;
++static void *initrd_mem;
++static grub_efi_uintn_t real_mode_pages;
++static grub_efi_uintn_t prot_mode_pages;
++static grub_efi_uintn_t initrd_pages;
++static grub_efi_guid_t graphics_output_guid = GRUB_EFI_GRAPHICS_OUTPUT_GUID;
++
++static inline grub_size_t
++page_align (grub_size_t size)
++{
++  return (size + (1 << 12) - 1) & (~((1 << 12) - 1));
++}
++
++static void
++free_pages (void)
++{
++  if (real_mode_mem)
++    {
++      grub_efi_free_pages ((grub_addr_t) real_mode_mem, real_mode_pages);
++      real_mode_mem = 0;
++    }
++
++  if (prot_mode_mem)
++    {
++      grub_efi_free_pages ((grub_addr_t) prot_mode_mem, prot_mode_pages);
++      prot_mode_mem = 0;
++    }
++
++  if (initrd_mem)
++    {
++      grub_efi_free_pages ((grub_addr_t) initrd_mem, initrd_pages);
++      initrd_mem = 0;
++    }
++
++  if (mmap_buf)
++    {
++      grub_efi_free_pages ((grub_addr_t) mmap_buf, mmap_pages);
++      mmap_buf = 0;
++    }
++}
++
++/* Allocate pages for the real mode code and the protected mode code
++   for linux as well as a memory map buffer.  */
++static int
++allocate_pages (grub_size_t real_size, grub_size_t prot_size)
++{
++  grub_efi_uintn_t desc_size;
++  grub_efi_memory_descriptor_t *mmap_end;
++  grub_efi_memory_descriptor_t *desc;
++  grub_efi_physical_address_t addr;
++
++  /* Make sure that each size is aligned to a page boundary.  */
++  real_size = page_align (real_size + SECTOR_SIZE);
++  prot_size = page_align (prot_size);
++
++  grub_dprintf ("linux", "real_size = %x, prot_size = %x, mmap_size = %x\n",
++		(unsigned int) real_size, (unsigned int) prot_size,
++		(unsigned int) mmap_size);
++
++  /* Calculate the number of pages; Combine the real mode code with
++     the memory map buffer for simplicity.  */
++  real_mode_pages = (real_size >> 12);
++  prot_mode_pages = (prot_size >> 12);
++
++  /* Initialize the memory pointers with NULL for convenience.  */
++  real_mode_mem = 0;
++  prot_mode_mem = 0;
++
++  if (grub_efi_get_memory_map (0, &desc_size, 0) <= 0)
++    grub_fatal ("cannot get memory map");
++
++  addr = 0;
++  mmap_end = NEXT_MEMORY_DESCRIPTOR (mmap_buf, mmap_size);
++  /* First, find free pages for the real mode code
++     and the memory map buffer.  */
++  for (desc = mmap_buf;
++       desc < mmap_end;
++       desc = NEXT_MEMORY_DESCRIPTOR (desc, desc_size))
++    {
++      if (desc->type == GRUB_EFI_CONVENTIONAL_MEMORY
++	  && desc->num_pages >= real_mode_pages)
++	{
++	  grub_efi_physical_address_t physical_end;
++
++          physical_end = desc->physical_start + (desc->num_pages << 12);
++
++          grub_dprintf ("linux", "physical_start = %x, physical_end = %x\n",
++                        (unsigned) desc->physical_start,
++                        (unsigned) physical_end);
++          addr = physical_end - real_size;
++          if (addr < 0x10000)
++            continue;
++
++          grub_dprintf ("linux", "trying to allocate %u pages at %x\n",
++                        (unsigned) real_mode_pages, (unsigned) addr);
++          real_mode_mem = grub_efi_allocate_pages (addr, real_mode_pages);
++          if (! real_mode_mem)
++            grub_fatal ("cannot allocate pages");
++
++          desc->num_pages -= real_mode_pages;
++          break;
++	}
++    }
++
++  if (! real_mode_mem)
++    {
++      grub_printf ("cannot allocate real mode pages");
++      errnum = ERR_WONT_FIT;
++      goto fail;
++    }
++
++  /* Next, find free pages for the protected mode code.  */
++  /* XXX what happens if anything is using this address?  */
++  prot_mode_mem = grub_efi_allocate_pages (0x100000, prot_mode_pages);
++  if (! prot_mode_mem)
++	grub_fatal("Cannot allocate pages for VMLINUZ");
++
++  return 1;
++
++ fail:
++  free_pages ();
++  return 0;
++}
++
++/* do some funky stuff, then boot linux */
++void
++linux_boot (void)
++{
++  grub_printf ("zImage is not supported under EFI.\n");
++  for (;;);
++}
++
++#ifndef __x86_64__
++struct {
++    unsigned short limit;
++    unsigned int base;
++} __attribute__ ((packed)) 
++  gdt_addr = { 0x800, 0x94000 },
++  idt_addr = { 0, 0 };
++
++unsigned short init_gdt[] = {
++  /* gdt[0]: dummy */
++  0, 0, 0, 0,
++
++  /* gdt[1]: unused */
++  0, 0, 0, 0,
++
++  /* gdt[2]: code */
++  0xFFFF,         /* 4Gb - (0x100000*0x1000 = 4Gb) */
++  0x0000,         /* base address=0 */
++  0x9A00,         /* code read/exec */
++  0x00CF,         /* granularity=4096, 386 (+5th nibble of limit) */
++
++  /* gdt[3]: data */
++  0xFFFF,         /* 4Gb - (0x100000*0x1000 = 4Gb) */
++  0x0000,         /* base address=0 */
++  0x9200,         /* data read/write */
++  0x00CF,         /* granularity=4096, 386 (+5th nibble of limit) */
++};
++#endif
++
++void
++big_linux_boot (void)
++{
++  struct linux_kernel_params *params;
++  struct grub_linux_kernel_header *lh;
++  grub_efi_uintn_t map_key;
++  grub_efi_uintn_t desc_size;
++  grub_efi_uint32_t desc_version;
++  int e820_nr_map;
++  int i;
++
++  params = real_mode_mem;
++
++  graphics_set_kernel_params (params);
++
++  if (grub_efi_get_memory_map (&map_key, &desc_size, &desc_version) <= 0)
++    grub_fatal ("cannot get memory map");
++
++  /* Pass e820 memmap. */
++  e820_map_from_efi_map ((struct e820_entry *) params->e820_map, &e820_nr_map,
++			 mmap_buf, desc_size, mmap_size);
++  params->e820_nr_map = e820_nr_map;
++
++  grub_dprintf(__func__,"got to ExitBootServices...\n");
++  if (! grub_efi_exit_boot_services (map_key))
++    grub_fatal ("cannot exit boot services");
++  /* Note that no boot services are available from here.  */
++
++  lh = &params->hdr;
++  /* Pass EFI parameters.  */
++  if (grub_le_to_cpu16 (lh->version) >= 0x0206) {
++    params->version_0206.efi_mem_desc_size = desc_size;
++    params->version_0206.efi_mem_desc_version = desc_version;
++    params->version_0206.efi_mmap = (grub_uint32_t) (unsigned long) mmap_buf;
++    params->version_0206.efi_mmap_size = mmap_size;
++  } else if (grub_le_to_cpu16 (lh->version) >= 0x0204) {
++    params->version_0204.efi_mem_desc_size = desc_size;
++    params->version_0204.efi_mem_desc_version = desc_version;
++    params->version_0204.efi_mmap = (grub_uint32_t) (unsigned long) mmap_buf;
++    params->version_0204.efi_mmap_size = mmap_size;
++  } else /* dunno */ {
++    params->dunno.efi_mem_desc_size = desc_size;
++    params->dunno.efi_mem_desc_version = desc_version;
++    params->dunno.efi_mmap = (grub_uint32_t) (unsigned long) mmap_buf;
++    params->dunno.efi_mmap_size = mmap_size;
++    params->dunno.efi_mmap_hi = PTR_HI(mmap_buf);
++  }
++
++#ifdef __x86_64__
++  /* copy our real mode transition code to 0x700 */
++  memcpy ((void *) 0x700, switch_image, switch_size);
++  asm volatile ( "mov $0x700, %%rdi" : :);
++
++  /* Pass parameters.  */
++  asm volatile ("mov %0, %%rsi" : : "m" (real_mode_mem));
++  asm volatile ("movl %0, %%ebx" : : "m" (params->hdr.code32_start));
++
++  /* Enter Linux, switch from 64-bit long mode
++   * to 32-bit protect mode, this code end address
++   * must not exceed 0x1000, because linux kernel bootstrap
++   * code will flush this area
++   */
++  asm volatile ( "jmp *%%rdi" : :);
++#else
++
++  asm volatile ( "cli" : : );
++
++  grub_memset((void *)gdt_addr.base, gdt_addr.limit, 0);
++  grub_memcpy((void *)gdt_addr.base, init_gdt, sizeof (init_gdt));
++
++  if (0) {
++    /* copy our real mode transition code to 0x7C00 */
++    memcpy ((void *) 0x7C00, switch_image, switch_size);
++    asm volatile ( "mov $0x7C00, %%ebx" : : );
++    asm volatile ( "jmp *%%ebx" : : );
++  } else {
++
++    /* load descriptor table pointers */
++    // asm volatile ( "lidt %0" : : "m" (idt_addr) );
++    asm volatile ( "lgdt %0" : : "m" (gdt_addr) );
++
++    /*
++     * ebx := 0  (%%TBD - do not know why, yet)
++     * ecx := kernel entry point
++     * esi := address of boot sector and setup data
++     */
++
++    asm volatile ( "movl %0, %%esi" : : "m" (real_mode_mem) );
++    asm volatile ( "movl %0, %%ecx" : : "m" (params->hdr.code32_start) );
++    asm volatile ( "xorl %%ebx, %%ebx" : : );
++
++    /*
++     * Jump to kernel entry point.
++     */
++
++    asm volatile ( "jmp *%%ecx" : : );
++  }
++#endif
++
++  /* Never reach here.  */
++  for (;;);
++}
++
++int
++grub_load_linux (char *kernel, char *arg)
++{
++  struct grub_linux_kernel_header *lh;
++  struct linux_kernel_params *params;
++  static struct linux_kernel_params params_buf;
++  grub_uint8_t setup_sects;
++  grub_size_t real_size, prot_size;
++  grub_ssize_t len;
++  char *dest;
++
++  if (kernel == NULL)
++    {
++      errnum = ERR_BAD_FILENAME;
++      grub_printf ("no kernel specified");
++      goto fail1;
++    }
++
++  if (! grub_open (kernel))
++    goto fail1;
++
++  if (grub_read ((char *) &params_buf, sizeof (params_buf))
++      != sizeof (params_buf))
++    {
++      errnum = ERR_EXEC_FORMAT;
++      grub_close();
++      grub_printf ("cannot read the linux header");
++      goto fail;
++    }
++
++  lh = &params_buf.hdr;
++
++  if (lh->boot_flag != grub_cpu_to_le16 (0xaa55))
++    {
++      errnum = ERR_EXEC_FORMAT;
++      grub_close();
++      grub_printf ("invalid magic number: %x", lh->boot_flag);
++      goto fail;
++    }
++
++  /* EFI support is quite new, so reject old versions.  */
++  if (lh->header != grub_cpu_to_le32 (GRUB_LINUX_MAGIC_SIGNATURE)
++      || grub_le_to_cpu16 (lh->version) < 0x0203)
++    {
++      grub_close();
++      errnum = ERR_EXEC_FORMAT;
++      grub_printf ("too old version");
++      goto fail;
++    }
++
++  /* I'm not sure how to support zImage on EFI.  */
++  if (! (lh->loadflags & GRUB_LINUX_FLAG_BIG_KERNEL))
++    {
++      errnum = ERR_EXEC_FORMAT;
++      grub_printf ("zImage is not supported");
++      goto fail;
++    }
++
++  setup_sects = lh->setup_sects;
++
++  real_size = 0x1000 + grub_strlen(arg);
++  prot_size = grub_file_size () - (setup_sects << SECTOR_BITS) - SECTOR_SIZE;
++
++  if (! allocate_pages (real_size, prot_size))
++    goto fail;
++
++  /* XXX Linux assumes that only elilo can boot Linux on EFI!!!  */
++  lh->type_of_loader = 0x50;
++
++  lh->cmd_line_ptr = (grub_uint32_t) (unsigned long) real_mode_mem + 0x1000;
++
++  lh->heap_end_ptr = LINUX_HEAP_END_OFFSET;
++  lh->loadflags |= LINUX_FLAG_CAN_USE_HEAP;
++
++  lh->ramdisk_image = 0;
++  lh->ramdisk_size = 0;
++
++  grub_memset(real_mode_mem, 0, real_size);
++
++  params = (struct linux_kernel_params *) real_mode_mem;
++
++  grub_memmove(&params->hdr, lh, 0x202 + lh->jump_off - 0x1f1);
++
++  params->cl_magic = GRUB_LINUX_CL_MAGIC;
++  params->cl_offset = 0x1000;
++
++  /* These are not needed to be precise, because Linux uses these values
++     only to raise an error when the decompression code cannot find good
++     space.  */
++  params->ext_mem = ((32 * 0x100000) >> 10);
++  params->alt_mem = ((32 * 0x100000) >> 10);
++
++  /* No APM on EFI.  */
++  params->apm_version = 0;
++  params->apm_code_segment = 0;
++  params->apm_entry = 0;
++  params->apm_16bit_code_segment = 0;
++  params->apm_data_segment = 0;
++  params->apm_flags = 0;
++  params->apm_code_len = 0;
++  params->apm_data_len = 0;
++
++  /* XXX is there any way to use SpeedStep on EFI?  */
++  params->ist_signature = 0;
++  params->ist_command = 0;
++  params->ist_event = 0;
++  params->ist_perf_level = 0;
++
++  /* Let the kernel probe the information.  */
++  grub_memset (params->hd0_drive_info, 0, sizeof (params->hd0_drive_info));
++  grub_memset (params->hd1_drive_info, 0, sizeof (params->hd1_drive_info));
++
++  /* No MCA on EFI.  */
++  params->rom_config_len = 0;
++
++  if (grub_le_to_cpu16 (lh->version) >= 0x0206) {
++    grub_memcpy(&params->version_0204.efi_signature, "EL32", 4);
++    params->version_0206.efi_system_table = \
++                        (grub_uint32_t) (unsigned long) grub_efi_system_table;
++  } else if (grub_le_to_cpu16 (lh->version) >= 0x0204) {
++    grub_memcpy(&params->version_0204.efi_signature, "EFIL", 4);
++    params->version_0204.efi_system_table = \
++                        (grub_uint32_t) (unsigned long) grub_efi_system_table;
++  } else /* dunno */ {
++    params->dunno.efi_signature = GRUB_LINUX_EFI_SIGNATURE_X64;
++    params->dunno.efi_system_table = \
++                        (grub_uint32_t) (unsigned long) grub_efi_system_table;
++    params->dunno.efi_system_table_hi = PTR_HI(grub_efi_system_table);
++  }
++  /* The other EFI parameters are filled when booting.  */
++
++  /* No EDD */
++  params->eddbuf_entries = 0;
++  params->edd_mbr_sig_buf_entries = 0;
++
++  /* XXX there is no way to know if the kernel really supports EFI.  */
++  grub_printf ("[Linux-EFI, setup=0x%x, size=0x%x]\n", (unsigned int)real_size,
++	       (unsigned int)prot_size);
++
++  /* Check the mem= option to limit memory used for initrd.  */
++  {
++    char *mem;
++
++    mem = grub_strstr (arg, "mem=");
++    if (mem)
++      {
++	char *value = mem + 4;
++
++	safe_parse_maxulong (&value, &linux_mem_size);
++	switch (errnum)
++	  {
++	  case ERR_NUMBER_OVERFLOW:
++	    /* If an overflow occurs, use the maximum address for
++	       initrd instead. This is good, because MAXINT is
++	       greater than LINUX_INITRD_MAX_ADDRESS.  */
++	    linux_mem_size = LINUX_INITRD_MAX_ADDRESS;
++	    errnum = ERR_NONE;
++	    break;
++
++	  case ERR_NONE:
++	    {
++	      int shift = 0;
++
++	      switch (grub_tolower (*value))
++		{
++		case 'g':
++		  shift += 10;
++		case 'm':
++		  shift += 10;
++		case 'k':
++		  shift += 10;
++		default:
++		  break;
++		}
++
++	      /* Check an overflow.  */
++	      if (linux_mem_size > (~0UL >> shift))
++		linux_mem_size = 0;
++	      else
++		linux_mem_size <<= shift;
++	    }
++	    break;
++
++	  default:
++	    linux_mem_size = 0;
++	    errnum = ERR_NONE;
++	    break;
++	  }
++      }
++    else
++      linux_mem_size = 0;
++  }
++
++  dest = grub_stpcpy ((char *) real_mode_mem + 0x1000, skip_to(0, arg));
++
++  grub_seek ((setup_sects << SECTOR_BITS) + SECTOR_SIZE);
++  len = prot_size;
++  if (grub_read ((char *) GRUB_LINUX_BZIMAGE_ADDR, len) != len)
++    grub_printf ("Couldn't read file");
++
++  if (errnum == ERR_NONE)
++    {
++      loaded = 1;
++    }
++
++ fail:
++
++  grub_close ();
++
++ fail1:
++
++  if (errnum != ERR_NONE)
++    {
++      loaded = 0;
++    }
++  return errnum ? KERNEL_TYPE_NONE : KERNEL_TYPE_BIG_LINUX;
++}
++
++int
++grub_load_initrd (char *initrd)
++{
++  grub_ssize_t size;
++  grub_addr_t addr_min, addr_max;
++  grub_addr_t addr;
++  grub_efi_uintn_t map_key;
++  grub_efi_memory_descriptor_t *mmap_end;
++  grub_efi_memory_descriptor_t *desc;
++  grub_efi_memory_descriptor_t tdesc;
++  grub_efi_uintn_t desc_size;
++  grub_efi_uint32_t desc_version;
++  struct linux_kernel_params *params;
++
++  if (initrd == NULL)
++    {
++      errnum = ERR_BAD_FILENAME;
++      grub_printf ("No module specified");
++      goto fail1;
++    }
++
++  if (! loaded)
++    {
++      errnum = ERR_UNRECOGNIZED;
++      grub_printf ("You need to load the kernel first.");
++      goto fail1;
++    }
++
++  if (! grub_open (initrd))
++    goto fail1;
++
++  size = grub_file_size ();
++  initrd_pages = (page_align (size) >> 12);
++
++  params = (struct linux_kernel_params *) real_mode_mem;
++  grub_dprintf(__func__, "initrd_pages: %lu\n", initrd_pages);
++
++  addr_max = grub_cpu_to_le32 (params->hdr.initrd_addr_max);
++  if (linux_mem_size != 0 && linux_mem_size < addr_max)
++    addr_max = linux_mem_size;
++  addr_max &= ~((1 << 12)-1);
++
++  /* Linux 2.3.xx has a bug in the memory range check, so avoid
++     the last page.
++     Linux 2.2.xx has a bug in the memory range check, which is
++     worse than that of Linux 2.3.xx, so avoid the last 64kb.  */
++  //addr_max -= 0x10000;
++
++  /* Usually, the compression ratio is about 50%.  */
++  addr_min = (grub_addr_t) prot_mode_mem + ((prot_mode_pages * 3) << 12);
++  grub_dprintf(__func__, "prot_mode_mem=%p prot_mode_pages=%lu\n", prot_mode_mem, prot_mode_pages);
++
++  /* Find the highest address to put the initrd.  */
++  if (grub_efi_get_memory_map (&map_key, &desc_size, &desc_version) <= 0)
++    grub_fatal ("cannot get memory map");
++
++  mmap_end = NEXT_MEMORY_DESCRIPTOR (mmap_buf, mmap_size);
++  addr = 0;
++  for (desc = mmap_buf;
++       desc < mmap_end;
++       desc = NEXT_MEMORY_DESCRIPTOR (desc, desc_size))
++    {
++      if (desc->type != GRUB_EFI_CONVENTIONAL_MEMORY)
++        continue;
++      memcpy(&tdesc, desc, sizeof (tdesc));
++      if (tdesc.physical_start < addr_min
++              && tdesc.num_pages > ((addr_min - tdesc.physical_start) >> 12))
++        {
++          tdesc.num_pages -= ((addr_min - tdesc.physical_start) >> 12);
++          tdesc.physical_start = addr_min;
++        }
++
++      grub_dprintf(__func__, "desc = {type=%d,ps=0x%llx,vs=0x%llx,sz=%llu,attr=%llu}\n", desc->type, (unsigned long long)desc->physical_start, (unsigned long long)desc->virtual_start, (unsigned long long)desc->num_pages, (unsigned long long)desc->attribute);
++      if (tdesc.physical_start >= addr_min
++	  && tdesc.physical_start + page_align (size) <= addr_max
++	  && tdesc.num_pages >= initrd_pages)
++	{
++	  grub_efi_physical_address_t physical_end;
++
++	  physical_end = tdesc.physical_start + (tdesc.num_pages << 12);
++	  if (physical_end > addr_max)
++	    physical_end = addr_max;
++
++	  if (physical_end <= 0x7fffffffUL && physical_end > addr)
++	    addr = physical_end - page_align (size);
++	}
++    }
++
++  if (addr == 0)
++    {
++      errnum = ERR_UNRECOGNIZED;
++      grub_printf ("no free pages available");
++      goto fail;
++    }
++
++  initrd_mem = grub_efi_allocate_pages (addr, initrd_pages);
++  if (! initrd_mem)
++    grub_fatal ("cannot allocate pages: %x@%x", (unsigned)initrd_pages,
++		(unsigned)addr);
++
++  if (grub_read (initrd_mem, size) != size)
++    {
++      grub_printf ("Couldn't read file");
++      goto fail;
++    }
++
++  grub_printf ("   [Initrd, addr=0x%x, size=0x%x]\n", (unsigned int) addr,
++	       (unsigned int) size);
++
++  params->hdr.ramdisk_image = addr;
++  params->hdr.ramdisk_size = size;
++
++ fail:
++  grub_close ();
++ fail1:
++  return !errnum;
++}
+diff --git a/efi/ia32/loader/switch.S b/efi/ia32/loader/switch.S
+new file mode 100644
+index 0000000..14142e9
+--- /dev/null
++++ b/efi/ia32/loader/switch.S
+@@ -0,0 +1,118 @@
++#
++# Switch from protected mode to real mode and jump to setup.S
++# image located at %cx:0.
++#
++# This module must be placed into physical memory at 0:7C00h.
++# EFI has some real mode thunking code at 2000:0h.
++#
++# Processor and non-maskable interrupts should be disabled
++# before control is passed to this module.
++#
++
++.global _start
++
++.code32
++.text
++_start:
++        #
++        # Load identity mapped GDT & real mode IDT.
++        # Add 7C00h to the addresses since this is linked to start
++        # at 0h and it is being placed at 7C00h.
++        #
++
++	lgdt	%cs:gdt_48 + 0x7C00
++	lidt	%cs:idt_48 + 0x7C00
++
++	#
++	# Turn off PG bit in CR0 and set CR3 to zero.
++	#
++
++	movl	%cr0, %eax
++	andl	$0x7FFFFFFF, %eax
++	movl	%eax, %cr0
++
++	xorl	%eax, %eax
++	movl	%eax, %cr3
++
++	#
++	# Reload CS.
++	# Now we add 7B00h because we need to force the segment
++	# address and selector to be the same.
++	#
++
++	.byte	0xEA
++	.long	pm_reload + 0x7B00
++	.word	0x10
++
++pm_reload:
++
++.code16
++
++	#
++	# Reload DS, ES, FS, GS & SS.
++	#
++
++	movw	$0x18, %ax
++	movw	%ax, %ds
++	movw	%ax, %es
++	movw	%ax, %fs
++	movw	%ax, %gs
++	movw	%ax, %ss
++
++	#
++	# Switch to real mode.  Clear PE bit in CR0.
++	#
++
++	movl	%cr0, %eax
++	andl	$0xFFFFFFFE, %eax
++	movl	%eax, %cr0
++
++	#
++	# Reload CS.
++	#
++
++	.byte	0xEA
++	.word	rm_reload + 0x7C00
++	.word	0
++
++rm_reload:
++
++	#
++	# Reload SS & SP.
++	#
++
++	xorw	%ax, %ax
++	movw	%ax, %ss
++	movw	$0x7BFE, %sp
++
++	#
++	# Start running setup.S
++	#
++
++	.byte	0xEA
++	.word	0
++	.word	0x9020
++
++	#
++	# GDT & IDT stuff for switching into real mode.
++	#
++
++gdt:	.word	0, 0, 0, 0		# unused (00h)
++	.word	0, 0, 0, 0		# dummy (08h)
++	.word	0xFFFF, 0x100		# code (10h)
++	.word	0x9A00, 0
++	.word	0xFFFF, 0x180		# data (18h)
++	.word	0x9200, 0
++
++gdt_48:	.word	0x08 * 0x400
++	.long	gdt + 0x7C00
++
++idt_48:	.word	0x400
++	.long	0
++
++	#
++	# Be careful not to exceed 1F0h or the the bootsect.S
++	# parameters will be lost!
++	#
++
++.end
+diff --git a/efi/ia32/loader/switch.h b/efi/ia32/loader/switch.h
+new file mode 100644
+index 0000000..4e18dde
+--- /dev/null
++++ b/efi/ia32/loader/switch.h
+@@ -0,0 +1,19 @@
++unsigned char switch_image[] = {
++0x2e, 0x0f, 0x01, 0x15, 0x6f, 0x7c, 0x00, 0x00,
++0x2e, 0x0f, 0x01, 0x1d, 0x75, 0x7c, 0x00, 0x00,
++0x0f, 0x20, 0xc0, 0x25, 0xff, 0xff, 0xff, 0x7f,
++0x0f, 0x22, 0xc0, 0x31, 0xc0, 0x0f, 0x22, 0xd8,
++0xea, 0x27, 0x7b, 0x00, 0x00, 0x10, 0x00, 0xb8,
++0x18, 0x00, 0x8e, 0xd8, 0x8e, 0xc0, 0x8e, 0xe0,
++0x8e, 0xe8, 0x8e, 0xd0, 0x0f, 0x20, 0xc0, 0x66,
++0x83, 0xe0, 0xfe, 0x0f, 0x22, 0xc0, 0xea, 0x43,
++0x7c, 0x00, 0x00, 0x31, 0xc0, 0x8e, 0xd0, 0xbc,
++0xfe, 0x7b, 0xea, 0x00, 0x00, 0x20, 0x90, 0x00,
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
++0xff, 0x00, 0x01, 0x00, 0x9a, 0x00, 0x00, 0xff,
++0xff, 0x80, 0x01, 0x00, 0x92, 0x00, 0x00, 0x00,
++0x20, 0x4f, 0x7c, 0x00, 0x00, 0x00, 0x04, 0x00,
++0x00, 0x00, 0x00, 
++};
++int switch_size = sizeof switch_image;
+diff --git a/efi/ia32/reloc.c b/efi/ia32/reloc.c
+new file mode 100644
+index 0000000..72db0f6
+--- /dev/null
++++ b/efi/ia32/reloc.c
+@@ -0,0 +1,79 @@
++/* reloc_x86_64.c - position independent x86_64 ELF shared object relocator
++   Copyright (C) 1999 Hewlett-Packard Co.
++	Contributed by David Mosberger <davidm at hpl.hp.com>.
++   Copyright (C) 2005 Intel Co.
++	Contributed by Fenghua Yu <fenghua.yu at intel.com>.
++
++   This file is part of GNU-EFI, the GNU EFI development environment.
++
++   GNU EFI is free software; you can redistribute it and/or modify
++   it under the terms of the GNU General Public License as published by
++   the Free Software Foundation; either version 2, or (at your option)
++   any later version.
++
++   GNU EFI is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU General Public License for more details.
++
++   You should have received a copy of the GNU General Public License
++   along with GNU EFI; see the file COPYING.  If not, write to the Free
++   Software Foundation, 59 Temple Place - Suite 330, Boston, MA
++   02111-1307, USA. */
++
++#include <grub/efi/efi.h>
++#include <grub/efi/api.h>
++#include <link.h>
++
++grub_efi_status_t _relocate (long ldbase, ElfW(Dyn) *dyn,
++			     grub_efi_handle_t image_handle,
++			     grub_efi_system_table_t *sys_tab)
++{
++	//extern EFI_STATUS efi_main (EFI_HANDLE, EFI_SYSTEM_TABLE *);
++	long relsz = 0, relent = 0;
++	ElfW(Rel) *rel = 0;
++	unsigned long *addr;
++	int i;
++
++	for (i = 0; dyn[i].d_tag != DT_NULL; ++i) {
++		switch (dyn[i].d_tag) {
++		      case DT_REL:
++			rel = (ElfW(Rel)*) ((long) dyn[i].d_un.d_ptr + ldbase);
++			break;
++
++		      case DT_RELSZ:
++			relsz = dyn[i].d_un.d_val;
++			break;
++
++		      case DT_RELENT:
++			relent = dyn[i].d_un.d_val;
++			break;
++
++		      default:
++                        continue;
++		}
++	}
++
++ 	if (!rel || relent == 0){
++ 		return GRUB_EFI_LOAD_ERROR;
++	}
++	while (relsz > 0) {
++		/* apply the relocs */
++		switch (ELF64_R_TYPE (rel->r_info)) {
++		      case R_386_NONE:
++			break;
++
++		      case R_386_RELATIVE:
++			 addr = (unsigned long *) (ldbase + rel->r_offset);
++			 *addr += ldbase;
++			 break;
++
++		      default:
++			break;
++		}
++		rel = (ElfW(Rel)*) ((char *) rel + relent);
++		relsz -= relent;
++	}
++	return GRUB_EFI_SUCCESS;
++}
++
+diff --git a/efi/ia32/setjmp.S b/efi/ia32/setjmp.S
+new file mode 100644
+index 0000000..38c33af
+--- /dev/null
++++ b/efi/ia32/setjmp.S
+@@ -0,0 +1,86 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2000 Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++/* This is stolen from libc/x86/setjmp.S in the OSKit */
++/* 
++ * Mach Operating System
++ * Copyright (c) 1991,1990,1989 Carnegie Mellon University
++ * All Rights Reserved.
++ * 
++ * Permission to use, copy, modify and distribute this software and its
++ * documentation is hereby granted, provided that both the copyright
++ * notice and this permission notice appear in all copies of the
++ * software, derivative works or modified versions, and any portions
++ * thereof, and that both notices appear in supporting documentation.
++ * 
++ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
++ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
++ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
++ * 
++ * Carnegie Mellon requests users of this software to return to
++ * 
++ *  Software Distribution Coordinator  or  Software.Distribution at CS.CMU.EDU
++ *  School of Computer Science
++ *  Carnegie Mellon University
++ *  Pittsburgh PA 15213-3890
++ * 
++ * any improvements or extensions that they make and grant Carnegie Mellon
++ * the rights to redistribute these changes.
++ */
++/*
++ * C library -- _setjmp, _longjmp
++ *
++ *      _longjmp(a,v)
++ * will generate a "return(v)" from
++ * the last call to
++ *      _setjmp(a)
++ * by restoring registers from the stack,
++ * The previous signal state is NOT restored.
++ *
++ */
++#include <grub/symbol.h>
++
++	.file	"setjmp.S"
++
++	.text
++	
++FUNCTION(grub_setjmp)
++	movl	4(%esp), %ecx		/* fetch buffer */
++	movl	%ebx, 0(%ecx)
++	movl	%esi, 4(%ecx)
++	movl	%edi, 8(%ecx)
++	movl	%ebp, 12(%ecx)		/* save frame pointer of caller */
++	popl	%edx
++	movl	%esp, 16(%ecx)		/* save stack pointer of caller */
++	movl	%edx, 20(%ecx)		/* save pc of caller */
++	xorl	%eax, %eax
++        jmp     *%edx
++
++FUNCTION(grub_longjmp)
++	movl	8(%esp), %eax		/* return(v) */
++	movl	4(%esp), %ecx		/* fetch buffer */
++	movl	0(%ecx), %ebx
++	movl	4(%ecx), %esi
++	movl	8(%ecx), %edi
++	movl	12(%ecx), %ebp
++	movl	16(%ecx), %esp
++	orl	%eax, %eax
++	jnz	0f
++	incl	%eax
++0:	jmp	*20(%ecx)		/* done, return.... */
+diff --git a/efi/pxe.c b/efi/pxe.c
+new file mode 100644
+index 0000000..1a74315
+--- /dev/null
++++ b/efi/pxe.c
+@@ -0,0 +1,444 @@
++
++#include <grub/efi/efi.h>
++#include <grub/efi/api.h>
++#include <grub/efi/misc.h>
++#include <grub/misc.h>
++
++#include <shared.h>
++#include <stddef.h>
++
++#include "pxe.h"
++#include "dhcp.h"
++
++/* Search path is:
++ *
++ * X86PC/UNDI/pxelinux/pxelinux.cfg/1902dcf5-7190-d811-bbd6-6ef21c690030
++ * X86PC/UNDI/pxelinux/pxelinux.cfg/01-00-30-6e-f2-1c-69
++ * X86PC/UNDI/pxelinux/pxelinux.cfg/0A103437
++ * X86PC/UNDI/pxelinux/pxelinux.cfg/0A10343
++ * X86PC/UNDI/pxelinux/pxelinux.cfg/0A1034
++ * X86PC/UNDI/pxelinux/pxelinux.cfg/0A103
++ * X86PC/UNDI/pxelinux/pxelinux.cfg/0A10
++ * X86PC/UNDI/pxelinux/pxelinux.cfg/0A1
++ * X86PC/UNDI/pxelinux/pxelinux.cfg/0A
++ * X86PC/UNDI/pxelinux/pxelinux.cfg/0
++ * X86PC/UNDI/pxelinux/pxelinux.cfg/default
++ *
++ * The paths we get from uefi are like:
++ * .BootBootFile: X86PC/UNDI/pxelinux/bootx64.efi
++ * .BootCiAddr: 0.0.0.0
++ * .BootYiAddr: 10.16.52.158
++ * .BootSiAddr: 10.16.52.16
++ */
++
++typedef struct {
++	char *options;
++	EFI_DHCP4_PACKET_OPTION *current_option;
++} dhcp_option_parser;
++
++static void dhcp_option_parser_reset(dhcp_option_parser *parser,
++				EFI_PXE_BASE_CODE_PACKET *packet)
++{
++	char *addr;
++
++	addr = (char *)packet;
++	addr += offsetof(EFI_PXE_BASE_CODE_DHCPV4_PACKET, DhcpOptions);
++	parser->current_option = (void *)addr;
++	parser->options = (void *)addr;
++}
++
++static int dhcp_option_parser_next(dhcp_option_parser *parser,
++				EFI_DHCP4_PACKET_OPTION **option)
++{
++	char *current_option;
++	if (parser->current_option->OpCode == 255) {
++		*option = NULL;
++		return 0;
++	}
++	current_option = (char *)parser->current_option;
++	current_option += 2 + parser->current_option->Length;
++	parser->current_option = (EFI_DHCP4_PACKET_OPTION *)current_option;
++
++	*option = parser->current_option;
++	return 1;
++}
++
++#define DHCPMAGIK "\x63\x82\x53\x63"
++
++static int get_dhcp_client_id(EFI_PXE_BASE_CODE_PACKET *packet, uuid_t *uuid)
++{
++	dhcp_option_parser parser;
++	EFI_DHCP4_PACKET_OPTION *option;
++
++	dhcp_option_parser_reset(&parser, packet);
++
++	if (memcmp((char *)&packet->Dhcpv4.DhcpMagik, DHCPMAGIK, 4))
++		return 0;
++
++	while (dhcp_option_parser_next(&parser, &option)) {
++		int i;
++		char data[option->Length];
++
++		if (option->OpCode != 97)
++			continue;
++
++		if (option->Length != 17)
++			continue;
++
++		memcpy(data, option->Data, option->Length);
++		if (data[0] != 0)
++			continue;
++
++		/* 97[17]: 009cfe245ed0c8bd45a79f54ea5fbd3d97
++		 *                               ^^^^^^^^^^^^ uint8_t[]
++		 *                             ^^ uint8_t
++		 *                           ^^ uint8_t
++		 *                       ^^^^ BE uint16_t
++		 *                   ^^^^ BE uint16_t
++		 *           ^^^^^^^^ BE uint32_t
++		 *         ^^ "type".  0 means UUID.
++		 */
++		memcpy(uuid, data+1, 16);
++		uuid->time_low = htonl(uuid->time_low);
++		uuid->time_mid = htons(uuid->time_mid);
++		uuid->time_hi_ver = htons(uuid->time_hi_ver);
++
++		return 1;
++	}
++	return 0;
++}
++
++#if 0
++static void grub_dump_dhcp_options(EFI_PXE_BASE_CODE_PACKET *packet)
++{
++	dhcp_option_parser parser;
++	EFI_DHCP4_PACKET_OPTION *option;
++	char hex[] = "0123456789abcdef";
++	int i;
++	int j = 0;
++
++	dhcp_option_parser_reset(&parser, packet);
++
++	if (memcmp((char *)&packet->Dhcpv4.DhcpMagik, DHCPMAGIK, 4))
++		return;
++
++	/* 54[4]: a0014301
++	 * 51[4]: 00004506
++	 * 1[4]: ffffff00
++	 * 3[4]: a00143ef
++	 * 6[8]: a001ff20a001ff30
++	 * 15[48]: 96e6374716c6c6e226f637e2275646861647e236f6d60226f637e2275646861647e236f6d602275646861647e236f6d6
++	 * 28[4]: a00143ff
++	 * 40[10]: 275646861647e236f6d6
++	 * 41[8]: a001ff20a001ff30
++	 * 58[4]: 0000a203
++	 * 59[4]: 0000944d
++	 * this is the one we want:
++	 * 97[17]: 009cfe245ed0c8bd45a79f54ea5fbd3d97
++	 *                               ^^^^^^^^^^^^ in order
++	 *                             ^^
++	 *                           ^^
++	 *                       ^^^^ out of order
++	 *                   ^^^^ out of order
++	 *           ^^^^^^^^ out of order
++	 *         ^^ "type".  0 means UUID.
++	 * 255[0]:
++	 */
++	while (dhcp_option_parser_next(&parser, &option)) {
++		char data[option->Length + 1];
++
++		memcpy(data, option->Data, option->Length);
++		data[option->Length] = '\0';
++
++		grub_printf("%d[%d]: ", option->OpCode, option->Length);
++		for (i = 0; i < option->Length; i++) {
++			grub_printf("%c%c", hex[data[i] & 0xf],
++					hex[(data[i] & 0xf0) >> 4]);
++		}
++		printf("\n");
++	}
++
++}
++
++void grub_print_dhcp_info(grub_efi_loaded_image_t *loaded_image)
++{
++	EFI_PXE_BASE_CODE *pxe = NULL;
++	EFI_PXE_BASE_CODE_PACKET *packet;
++
++	grub_printf("got to %s\n", __func__);
++
++	pxe = grub_efi_locate_protocol(&PxeBaseCodeProtocol, NULL);
++	if (pxe == NULL)
++		return;
++
++	printf("DhcpDiscover options:\n");
++	packet = (EFI_PXE_BASE_CODE_PACKET *)&pxe->Mode->DhcpDiscover.Dhcpv4;
++	grub_dump_dhcp_options(packet);
++
++	printf("DhcpAck options:\n");
++	packet = (EFI_PXE_BASE_CODE_PACKET *)&pxe->Mode->DhcpAck.Dhcpv4;
++	grub_dump_dhcp_options(packet);
++
++	printf("PxeDiscover options:\n");
++	packet = (EFI_PXE_BASE_CODE_PACKET *)&pxe->Mode->PxeDiscover.Dhcpv4;
++	grub_dump_dhcp_options(packet);
++
++	printf("PxeReply options:\n");
++	packet = (EFI_PXE_BASE_CODE_PACKET *)&pxe->Mode->PxeReply.Dhcpv4;
++	grub_dump_dhcp_options(packet);
++
++#if 0
++	printf("pxe->Mode->DhcpAck.Dhcpv4: \n");
++	printf("\t.BootSrvName: %s\n", pxe->Mode->DhcpAck.Dhcpv4.BootpSrvName);
++	printf("\t.BootBootFile: %s\n", pxe->Mode->DhcpAck.Dhcpv4.BootpBootFile);
++	printf("\t.BootCiAddr: %d.%d.%d.%d\n",
++		pxe->Mode->DhcpAck.Dhcpv4.BootpCiAddr[0],
++		pxe->Mode->DhcpAck.Dhcpv4.BootpCiAddr[1],
++		pxe->Mode->DhcpAck.Dhcpv4.BootpCiAddr[2],
++		pxe->Mode->DhcpAck.Dhcpv4.BootpCiAddr[3]);
++	printf("\t.BootYiAddr: %d.%d.%d.%d\n",
++		pxe->Mode->DhcpAck.Dhcpv4.BootpYiAddr[0],
++		pxe->Mode->DhcpAck.Dhcpv4.BootpYiAddr[1],
++		pxe->Mode->DhcpAck.Dhcpv4.BootpYiAddr[2],
++		pxe->Mode->DhcpAck.Dhcpv4.BootpYiAddr[3]);
++	printf("\t.BootSiAddr: %d.%d.%d.%d\n",
++		pxe->Mode->DhcpAck.Dhcpv4.BootpSiAddr[0],
++		pxe->Mode->DhcpAck.Dhcpv4.BootpSiAddr[1],
++		pxe->Mode->DhcpAck.Dhcpv4.BootpSiAddr[2],
++		pxe->Mode->DhcpAck.Dhcpv4.BootpSiAddr[3]);
++	printf("\t.BootGiAddr: %d.%d.%d.%d\n",
++		pxe->Mode->DhcpAck.Dhcpv4.BootpGiAddr[0],
++		pxe->Mode->DhcpAck.Dhcpv4.BootpGiAddr[1],
++		pxe->Mode->DhcpAck.Dhcpv4.BootpGiAddr[2],
++		pxe->Mode->DhcpAck.Dhcpv4.BootpGiAddr[3]);
++	}
++	printf("\n");
++#endif
++
++
++}
++#endif
++
++static void icmp_print_error(EFI_PXE_BASE_CODE *pxe)
++{
++	EFI_PXE_BASE_CODE_ICMP_ERROR *err = &pxe->Mode->IcmpError;
++	int i;
++	//char hex[] = "0123456789abcdef";
++
++	printf("icmp error\n");
++	printf("type: %d code: %d\n", err->Type, err->Code);
++	printf("data: \n");
++	for(i = 0; i < 464; i+=16) {
++		int x;
++		for (x = i; x < i+4; x++)
++			printf("%02x ", err->Data[x]);
++		printf(" ");
++		for (x = i+4; x < i+8; x++)
++			printf("%02x ", err->Data[x]);
++		printf(" ");
++		printf(" ");
++		for (x = i+8; x < i+12; x++)
++			printf("%02x ", err->Data[x]);
++		printf(" ");
++		for (x = i+12; x < i+16; x++)
++			printf("%02x ", err->Data[x]);
++		printf("\n");
++	}
++}
++
++static int grub_efi_pxe_check_for_file(
++	EFI_PXE_BASE_CODE *pxe,
++	EFI_IP_ADDRESS *ServerIp,
++	char *BootpBootFile,
++	char *configname,
++	char **returnpath)
++{
++	size_t bplen = strlen(BootpBootFile);
++	char *Filename = grub_malloc(24 + bplen + 40);
++	char *lastslash = Filename + bplen;
++	grub_efi_uintn_t size;
++	int i;
++	EFI_STATUS rc;
++	char Buffer[8192];
++
++	memcpy(Filename, BootpBootFile, bplen);
++
++	for (i = 0; i < bplen; i++) {
++		if (Filename[i] == '/')
++			lastslash = Filename + i;
++	}
++	if (*lastslash) {
++		*lastslash++ = '/';
++		*lastslash = '\0';
++	}
++
++	sprintf(lastslash, configname);
++
++	printf("tftp://%d.%d.%d.%d/%s\n",
++		ServerIp->v4.Addr[0], ServerIp->v4.Addr[1],
++		ServerIp->v4.Addr[2], ServerIp->v4.Addr[3],
++		Filename);
++
++	rc = tftp_get_file_size(Filename, &size);
++	if (rc == GRUB_EFI_ICMP_ERROR)
++		icmp_print_error(pxe);
++
++	if (rc == GRUB_EFI_SUCCESS) {
++		*returnpath = Filename;
++		return size;
++	}
++	grub_free(Filename);
++	return 0;
++}
++
++static void get_pxe_server(EFI_PXE_BASE_CODE *pxe, EFI_IP_ADDRESS **Address)
++{
++	EFI_IP_ADDRESS *tmp = grub_malloc(sizeof *tmp);
++	if (tmp) {
++		memset(tmp, '\0', sizeof (*tmp));
++		memcpy(&tmp->Addr[0], pxe->Mode->DhcpAck.Dhcpv4.BootpSiAddr, 4);
++		*Address = tmp;
++	}
++}
++
++static char *get_pxe_file_dir(EFI_PXE_BASE_CODE *pxe)
++{
++	char *FileDir = NULL;
++	char *DirEnd = NULL;
++	char *BootpBootFile;
++	size_t bplen;
++
++	BootpBootFile = pxe->Mode->DhcpAck.Dhcpv4.BootpBootFile;
++	bplen = strlen(BootpBootFile);
++	FileDir = grub_malloc(bplen + 1);
++	memcpy(FileDir, BootpBootFile, bplen);
++	FileDir[bplen] = '\0';
++
++	DirEnd = grub_strrchr(FileDir, '/');
++	if (!DirEnd)
++		DirEnd = FileDir;
++
++	*DirEnd = '\0';
++
++	return FileDir;
++}
++
++static void set_pxe_info(grub_efi_loaded_image_t *LoadedImage,
++			EFI_PXE_BASE_CODE *pxe)
++{
++	tftp_info.LoadedImage = LoadedImage;
++	tftp_info.Pxe = pxe;
++	get_pxe_server(pxe, &tftp_info.ServerIp);
++	tftp_info.BasePath = get_pxe_file_dir(pxe);
++}
++
++char *grub_efi_pxe_get_config_path(grub_efi_loaded_image_t *LoadedImage)
++{
++	EFI_PXE_BASE_CODE *pxe = NULL;
++	EFI_IP_ADDRESS ServerIp;
++	char *FileName = NULL;
++	EFI_PXE_BASE_CODE_DHCPV4_PACKET *packet;
++	uuid_t uuid;
++	grub_efi_uintn_t FileSize = 0;
++	grub_efi_status_t rc = GRUB_EFI_SUCCESS;
++	char *ConfigPath = NULL;
++	char hex[] = "0123456789ABCDEF";
++	char hexip[9];
++	int hexiplen;
++
++	pxe = grub_efi_locate_protocol(&PxeBaseCodeProtocol, NULL);
++	if (pxe == NULL)
++		return NULL;
++
++	if (!pxe->Mode->Started)
++		return NULL;
++
++	set_pxe_info(LoadedImage, pxe);
++
++	FileName = grub_malloc(strlen("1902dcf5-7190-d811-bbd6-6ef21c690030"));
++
++	packet = &pxe->Mode->DhcpDiscover.Dhcpv4;
++
++	if (get_dhcp_client_id((EFI_PXE_BASE_CODE_PACKET *)packet, &uuid)) {
++
++		uuid.time_mid = 0x0011;
++		sprintf(FileName,
++			"%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X",
++			uuid.time_low, uuid.time_mid, uuid.time_hi_ver,
++			uuid.clock_seq_hi, uuid.clock_seq_low,
++			uuid.node[0], uuid.node[1], uuid.node[2],
++			uuid.node[3], uuid.node[4], uuid.node[5]);
++
++		rc = tftp_get_file_size(FileName, &FileSize);
++		if (rc == GRUB_EFI_SUCCESS) {
++			char *ReturnFile = grub_malloc(strlen("(nd)/") +
++						strlen(FileName) + 1);
++			sprintf(ReturnFile, "(nd)/%s", FileName);
++			grub_free(FileName);
++			//sprintf(tftp_info.LastPath, FileName);
++			return ReturnFile;
++		}
++	}
++
++	packet = &pxe->Mode->DhcpAck.Dhcpv4;
++
++	if (!memcmp(packet->BootpHwAddr + 6, "\x00\x00\x00\x00\x00"
++					     "\x00\x00\x00\x00\x00", 10) &&
++			memcmp(packet->BootpHwAddr, "\x00\x00\x00\x00\x00\x00",
++				6)) {
++		char mac[21];
++		sprintf(mac, "01-%c%c-%c%c-%c%c-%c%c-%c%c-%c%c",
++			hex[(packet->BootpHwAddr[0] & 0xf0) >> 4],
++			hex[packet->BootpHwAddr[0] & 0xf],
++			hex[(packet->BootpHwAddr[1] & 0xf0) >> 4],
++			hex[packet->BootpHwAddr[1] & 0xf],
++			hex[(packet->BootpHwAddr[2] & 0xf0) >> 4],
++			hex[packet->BootpHwAddr[2] & 0xf],
++			hex[(packet->BootpHwAddr[3] & 0xf0) >> 4],
++			hex[packet->BootpHwAddr[3] & 0xf],
++			hex[(packet->BootpHwAddr[4] & 0xf0) >> 4],
++			hex[packet->BootpHwAddr[4] & 0xf],
++			hex[(packet->BootpHwAddr[5] & 0xf0) >> 4],
++			hex[packet->BootpHwAddr[5] & 0xf]);
++
++		rc = tftp_get_file_size(mac, &FileSize);
++		if (rc == GRUB_EFI_SUCCESS) {
++			char *ReturnFile = grub_malloc(strlen("(nd)/") +
++						strlen(mac) + 1);
++			sprintf(ReturnFile, "(nd)/%s", mac);
++			return ReturnFile;
++		}
++
++	}
++
++	sprintf(hexip, "%c%c%c%c%c%c%c%c",
++		hex[(packet->BootpYiAddr[0] & 0xf0) >> 4],
++		hex[packet->BootpYiAddr[0] & 0xf],
++		hex[(packet->BootpYiAddr[1] & 0xf0) >> 4],
++		hex[packet->BootpYiAddr[1] & 0xf],
++		hex[(packet->BootpYiAddr[2] & 0xf0) >> 4],
++		hex[packet->BootpYiAddr[2] & 0xf],
++		hex[(packet->BootpYiAddr[3] & 0xf0) >> 4],
++		hex[packet->BootpYiAddr[3] & 0xf]);
++
++	for (hexiplen = strlen(hexip); hexiplen > 0; hexiplen--)
++	{
++		hexip[hexiplen] = '\0';
++		rc = tftp_get_file_size(hexip, &FileSize);
++		if (rc == GRUB_EFI_SUCCESS) {
++			char *ReturnFile = grub_malloc(strlen("(nd)/") +
++						strlen(hexip) + 1);
++			sprintf(ReturnFile, "(nd)/%s", hexip);
++			return ReturnFile;
++		}
++	}
++
++	rc = tftp_get_file_size("efidefault", &FileSize);
++	if (rc == GRUB_EFI_SUCCESS) {
++		char *ReturnFile = grub_malloc(strlen("(nd)/efidefault")+1);
++		sprintf(ReturnFile, "(nd)/efidefault");
++		return ReturnFile;
++	}
++
++	return NULL;
++}
+diff --git a/efi/pxe.h b/efi/pxe.h
+new file mode 100644
+index 0000000..0a68007
+--- /dev/null
++++ b/efi/pxe.h
+@@ -0,0 +1,237 @@
++#ifndef PXE_H
++#define PXE_H 1
++
++#include "byteswap.h"
++
++extern char *grub_efi_pxe_get_config_path(grub_efi_loaded_image_t *LoadedImage);
++extern void grub_print_dhcp_info(grub_efi_loaded_image_t *loaded_image);
++extern char *grub_efi_pxe_path_to_path_name(void);
++
++
++#define EFI_PXE_BASE_CODE_PROTOCOL \
++    { 0x03c4e603, 0xac28, 0x11d3, {0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
++static grub_efi_guid_t PxeBaseCodeProtocol = EFI_PXE_BASE_CODE_PROTOCOL;
++
++struct _EFI_PXE_BASE_CODE;
++
++typedef enum {
++	EFI_PXE_BASE_CODE_TFTP_FIRST,
++	EFI_PXE_BASE_CODE_TFTP_GET_FILE_SIZE,
++	EFI_PXE_BASE_CODE_TFTP_READ_FILE,
++	EFI_PXE_BASE_CODE_TFTP_WRITE_FILE,
++	EFI_PXE_BASE_CODE_TFTP_READ_DIRECTORY,
++	EFI_PXE_BASE_CODE_MTFTP_GET_FILE_SIZE,
++	EFI_PXE_BASE_CODE_MTFTP_READ_FILE,
++	EFI_PXE_BASE_CODE_MTFTP_READ_DIRECTORY,
++	EFI_PXE_BASE_CODE_MTFTP_LAST
++} EFI_PXE_BASE_CODE_TFTP_OPCODE;
++
++typedef struct {
++    grub_efi_uint8_t                   Addr[4];
++} EFI_IPv4_ADDRESS;
++
++typedef struct {
++    grub_efi_uint8_t                   Addr[16];
++} EFI_IPv6_ADDRESS;
++
++typedef struct {
++    grub_efi_uint8_t                   Addr[32];
++} EFI_MAC_ADDRESS;
++
++typedef union {
++    grub_efi_uint32_t      Addr[4];
++    EFI_IPv4_ADDRESS    v4;
++    EFI_IPv6_ADDRESS    v6;
++} EFI_IP_ADDRESS;
++
++typedef grub_efi_uint16_t EFI_PXE_BASE_CODE_UDP_PORT;
++
++typedef struct {
++	EFI_IP_ADDRESS MCastIp;
++	EFI_PXE_BASE_CODE_UDP_PORT CPort;
++	EFI_PXE_BASE_CODE_UDP_PORT SPort;
++	grub_efi_uint16_t ListenTimeout;
++	grub_efi_uint16_t TransmitTimeout;
++} EFI_PXE_BASE_CODE_MTFTP_INFO;
++
++typedef EFI_STATUS (*EFI_PXE_BASE_CODE_MTFTP)(
++	struct _EFI_PXE_BASE_CODE *This,
++	EFI_PXE_BASE_CODE_TFTP_OPCODE Operation,
++	void *BufferPtr,
++	grub_efi_boolean_t Overwrite,
++	grub_efi_uint64_t *BufferSize,
++	grub_efi_uintn_t *BlockSize,
++	EFI_IP_ADDRESS *ServerIp,
++	grub_efi_uint8_t *Filename,
++	EFI_PXE_BASE_CODE_MTFTP_INFO *Info,
++	grub_efi_boolean_t DontUseBuffer);
++
++typedef struct {
++    grub_efi_uint8_t                           BootpOpcode;
++    grub_efi_uint8_t                           BootpHwType;
++    grub_efi_uint8_t                           BootpHwAddrLen;
++    grub_efi_uint8_t                           BootpGateHops;
++    grub_efi_uint32_t                          BootpIdent;
++    grub_efi_uint16_t                          BootpSeconds;
++    grub_efi_uint16_t                          BootpFlags;
++    grub_efi_uint8_t                           BootpCiAddr[4];
++    grub_efi_uint8_t                           BootpYiAddr[4];
++    grub_efi_uint8_t                           BootpSiAddr[4];
++    grub_efi_uint8_t                           BootpGiAddr[4];
++    grub_efi_uint8_t                           BootpHwAddr[16];
++    grub_efi_uint8_t                           BootpSrvName[64];
++    grub_efi_uint8_t                           BootpBootFile[128];
++    grub_efi_uint32_t                          DhcpMagik;
++    grub_efi_uint8_t                           DhcpOptions[56];
++} EFI_PXE_BASE_CODE_DHCPV4_PACKET;
++
++// TBD in EFI v1.1
++//typedef struct {
++//    grub_efi_uint8_t                           reserved;
++//} EFI_PXE_BASE_CODE_DHCPV6_PACKET;
++
++typedef union {
++    grub_efi_uint8_t                               Raw[1472];
++    EFI_PXE_BASE_CODE_DHCPV4_PACKET     Dhcpv4;
++//    EFI_PXE_BASE_CODE_DHCPV6_PACKET     Dhcpv6;
++} EFI_PXE_BASE_CODE_PACKET;
++
++typedef struct {
++    grub_efi_uint8_t                   Type;
++    grub_efi_uint8_t                   Code;
++    grub_efi_uint16_t                  Checksum;
++    union {
++        grub_efi_uint32_t              reserved;
++        grub_efi_uint32_t              Mtu;
++        grub_efi_uint32_t              Pointer;
++        struct {
++            grub_efi_uint16_t          Identifier;
++            grub_efi_uint16_t          Sequence;
++        } Echo;
++    } u;
++    grub_efi_uint8_t                   Data[494];
++} EFI_PXE_BASE_CODE_ICMP_ERROR;
++
++typedef struct {
++    grub_efi_uint8_t                   ErrorCode;
++    grub_efi_char8_t                   ErrorString[127];
++} EFI_PXE_BASE_CODE_TFTP_ERROR;
++
++
++#define EFI_PXE_BASE_CODE_MAX_IPCNT             8
++typedef struct {
++    grub_efi_uint8_t                       Filters;
++    grub_efi_uint8_t                       IpCnt;
++    grub_efi_uint16_t                      reserved;
++    EFI_IP_ADDRESS              IpList[EFI_PXE_BASE_CODE_MAX_IPCNT];
++} EFI_PXE_BASE_CODE_IP_FILTER;
++
++#define EFI_PXE_BASE_CODE_IP_FILTER_STATION_IP             0x0001
++#define EFI_PXE_BASE_CODE_IP_FILTER_BROADCAST              0x0002
++#define EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS            0x0004
++#define EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS_MULTICAST  0x0008
++
++typedef struct {
++    EFI_IP_ADDRESS       IpAddr;
++    EFI_MAC_ADDRESS      MacAddr;
++} EFI_PXE_BASE_CODE_ARP_ENTRY;
++
++typedef struct {
++    EFI_IP_ADDRESS       IpAddr;
++    EFI_IP_ADDRESS       SubnetMask;
++    EFI_IP_ADDRESS       GwAddr;
++} EFI_PXE_BASE_CODE_ROUTE_ENTRY;
++
++#define EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES       8
++#define EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES     8
++
++typedef struct {
++    grub_efi_boolean_t                         Started;
++    grub_efi_boolean_t                         Ipv6Available;
++    grub_efi_boolean_t                         Ipv6Supported;
++    grub_efi_boolean_t                         UsingIpv6;
++    grub_efi_boolean_t                         BisSupported;
++    grub_efi_boolean_t                         BisDetected;
++    grub_efi_boolean_t                         AutoArp;
++    grub_efi_boolean_t                         SendGUID;
++    grub_efi_boolean_t                         DhcpDiscoverValid;
++    grub_efi_boolean_t                         DhcpAckReceived;
++    grub_efi_boolean_t                         ProxyOfferReceived;
++    grub_efi_boolean_t                         PxeDiscoverValid;
++    grub_efi_boolean_t                         PxeReplyReceived;
++    grub_efi_boolean_t                         PxeBisReplyReceived;
++    grub_efi_boolean_t                         IcmpErrorReceived;
++    grub_efi_boolean_t                         TftpErrorReceived;
++    grub_efi_boolean_t                         MakeCallbacks;
++    grub_efi_uint8_t                           TTL;
++    grub_efi_uint8_t                           ToS;
++    EFI_IP_ADDRESS                  StationIp;
++    EFI_IP_ADDRESS                  SubnetMask;
++    EFI_PXE_BASE_CODE_PACKET        DhcpDiscover;
++    EFI_PXE_BASE_CODE_PACKET        DhcpAck;
++    EFI_PXE_BASE_CODE_PACKET        ProxyOffer;
++    EFI_PXE_BASE_CODE_PACKET        PxeDiscover;
++    EFI_PXE_BASE_CODE_PACKET        PxeReply;
++    EFI_PXE_BASE_CODE_PACKET        PxeBisReply;
++    EFI_PXE_BASE_CODE_IP_FILTER     IpFilter;
++    grub_efi_uint32_t                          ArpCacheEntries;
++    EFI_PXE_BASE_CODE_ARP_ENTRY     ArpCache[EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES];
++    grub_efi_uint32_t                          RouteTableEntries;
++    EFI_PXE_BASE_CODE_ROUTE_ENTRY   RouteTable[EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES];
++    EFI_PXE_BASE_CODE_ICMP_ERROR    IcmpError;
++    EFI_PXE_BASE_CODE_TFTP_ERROR    TftpError;
++} EFI_PXE_BASE_CODE_MODE;
++
++typedef EFI_STATUS (*EFI_PXE_BASE_CODE_START)();
++typedef EFI_STATUS (*EFI_PXE_BASE_CODE_STOP)();
++typedef EFI_STATUS (*EFI_PXE_BASE_CODE_DHCP)();
++typedef EFI_STATUS (*EFI_PXE_BASE_CODE_DISCOVER)();
++typedef EFI_STATUS (*EFI_PXE_BASE_CODE_UDP_WRITE)();
++typedef EFI_STATUS (*EFI_PXE_BASE_CODE_UDP_READ)();
++typedef EFI_STATUS (*EFI_PXE_BASE_CODE_SET_IP_FILTER)();
++typedef EFI_STATUS (*EFI_PXE_BASE_CODE_ARP)();
++typedef EFI_STATUS (*EFI_PXE_BASE_CODE_SET_PARAMETERS)();
++typedef EFI_STATUS (*EFI_PXE_BASE_CODE_SET_STATION_IP)();
++typedef EFI_STATUS (*EFI_PXE_BASE_CODE_SET_PACKETS)();
++
++typedef struct _EFI_PXE_BASE_CODE{
++	grub_efi_uint64_t Revision;
++	EFI_PXE_BASE_CODE_START             Start;
++	EFI_PXE_BASE_CODE_STOP              Stop;
++	EFI_PXE_BASE_CODE_DHCP              Dhcp;
++	EFI_PXE_BASE_CODE_DISCOVER          Discover;
++	EFI_PXE_BASE_CODE_MTFTP             Mtftp;
++	EFI_PXE_BASE_CODE_UDP_WRITE         UdpWrite;
++	EFI_PXE_BASE_CODE_UDP_READ          UdpRead;
++	EFI_PXE_BASE_CODE_SET_IP_FILTER     SetIpFilter;
++	EFI_PXE_BASE_CODE_ARP               Arp;
++	EFI_PXE_BASE_CODE_SET_PARAMETERS    SetParameters;
++	EFI_PXE_BASE_CODE_SET_STATION_IP    SetStationIp;
++	EFI_PXE_BASE_CODE_SET_PACKETS       SetPackets;
++	EFI_PXE_BASE_CODE_MODE              *Mode;
++} EFI_PXE_BASE_CODE;
++
++typedef struct {
++	grub_efi_uint32_t time_low;
++	grub_efi_uint16_t time_mid;
++	grub_efi_uint16_t time_hi_ver;
++	grub_efi_uint8_t clock_seq_hi;
++	grub_efi_uint8_t clock_seq_low;
++	grub_efi_uint8_t node[6];
++} uuid_t;
++
++struct tftp_info {
++	grub_efi_loaded_image_t *LoadedImage;
++	EFI_PXE_BASE_CODE *Pxe;
++	EFI_IP_ADDRESS *ServerIp;
++	char *BasePath;
++	char *LastPath;
++	char *Buffer;
++};
++
++extern struct tftp_info tftp_info;
++extern grub_efi_status_t tftp_get_file_size(
++	char *Filename,
++	grub_efi_uintn_t *Size);
++
++#endif /* PXE_H */
+diff --git a/efi/ugadebug.h b/efi/ugadebug.h
+new file mode 100644
+index 0000000..f461c8b
+--- /dev/null
++++ b/efi/ugadebug.h
+@@ -0,0 +1,201 @@
++#ifndef UGA_DEBUG_H
++#define UGA_DEBUG_H
++
++extern void dc(char *file, int line);
++extern void gm(char *file, int line, char *fmt, ...);
++
++#ifdef UGA
++
++extern const unsigned char font8x16[];
++
++extern grub_efi_guid_t draw_guid;
++
++static void *tmp_term;
++
++#define SCREEN_WIDTH 80
++
++#define LINE_SIZE_X ( 8 * 100 )
++#define LINE_START_X(x) (1280 + (x))
++#define LINE_END_X(x) (LINE_START_X(0) + LINE_SIZE_X - 1)
++
++#define POS_X(x) (LINE_START_X(x) + (8 * (x)))
++
++#define LINE_SIZE_Y 16
++#define LINE_START_Y(y) ((y) * LINE_SIZE_Y)
++#define LINE_END_Y(y) ( (((y)+1) * LINE_SIZE_Y ) - 1)
++
++#define POS_Y(y) LINE_START_Y(y)
++
++#define FIRST_LINE 0
++#define LAST_LINE 75
++
++#define format_ascii(buf, val, is_hex, is_cap) ({                   \
++        int _n = sizeof ((buf)) - 2;                                \
++        typeof(val) _nval = (val);                                  \
++        int _negative = 0;                                          \
++        int _mult = is_hex ? 16 : 10;                               \
++        char _a = is_cap ? 'A' : 'a';                               \
++        grub_memset((buf), '\0', sizeof ((buf)));                        \
++        if (!(_nval > 0LL))                                         \
++            _negative = 1;                                          \
++        if (_nval == 0LL)                                           \
++            _negative = 0;                                          \
++        if (_negative)                                              \
++            _nval = (_nval ^ -1);                                   \
++        do {                                                        \
++            int _dig = _nval % _mult;                               \
++            (buf)[_n--] = ((_dig > 9) ? _dig + _a - 10 : '0'+_dig); \
++        } while (_nval /= _mult);                                   \
++        if (_negative)                                              \
++            (buf)[_n--] = '-';                                      \
++        _mult = 0;                                                  \
++        _n++;                                                       \
++        while (_n < sizeof ((buf)))                                 \
++            (buf)[_mult++] = (buf)[_n++];                           \
++        if (_negative && _mult > 1)                                 \
++            ((buf)[_mult-2])++;                                     \
++    })
++
++static grub_efi_uga_draw_t *debug_draw_intf;
++static void debug_putchar(int i, int j, int ch)
++{
++    grub_efi_uga_pixel_t pixbuf[8 * 16];
++    grub_efi_uga_pixel_t black = { .red = 0x00, .green = 0x00, .blue = 0x00 },
++                         white = { .red = 0xff, .green = 0xff, .blue = 0xff };
++    const unsigned char *pat;
++    int x, y;
++
++    if (!debug_draw_intf)
++	debug_draw_intf = grub_efi_locate_protocol(&draw_guid, NULL);
++    if (!debug_draw_intf)
++        return;
++
++    pat = font8x16 + (ch << 4);
++
++    for (y = 0; y < 16; y++) {
++        for (x = 0; x < 8; x++) {
++            int bit = pat[y] & (1 << (7 - x));
++
++            grub_memmove(&pixbuf[x + y * 8], bit ? &white : &black,
++                    sizeof (pixbuf[0]));
++        }
++    }
++
++    Call_Service_10(debug_draw_intf->blt, debug_draw_intf, pixbuf,
++    		    EfiUgaBltBufferToVideo,
++                    0, 0,
++		    POS_X(i), POS_Y(j),
++                    8, 16,
++                    0);
++
++}
++
++static void dputs(const char *s)
++{
++    static int row = -1;
++    int col = 89;
++    return;
++
++    if (s && *s) {
++        do {
++            if (col > 190) {
++                row++;
++                col = 89;
++            }
++            if (row > 50) {
++                row = 0;
++                col = 89;
++            }
++            col++;
++
++            if (*s == '\n') {
++                col = 1;
++                row++;
++            } else {
++                debug_putchar(col, row, *s);
++            }
++        } while (*(++s));
++    }
++    row++;
++}
++
++static int dbg_row = 0;
++static int dbg_col = 0;
++
++static void dbg_scroll(int new_dbg_col)
++{
++    grub_efi_uga_pixel_t black[1] ={{.red = 0x00, .green = 0x00, .blue = 0x00}};
++
++    if (dbg_row == LAST_LINE) {
++        dbg_col = new_dbg_col;
++        Call_Service_10(debug_draw_intf->blt, debug_draw_intf, NULL,
++    		    EfiUgaVideoToVideo,
++                    640, LINE_START_Y(1),
++                    640, LINE_START_Y(0),
++                    LINE_SIZE_X, LINE_END_Y(LAST_LINE)+1,
++                    0);
++        Call_Service_10(debug_draw_intf->blt, debug_draw_intf, black,
++    		    EfiUgaVideoFill,
++                    0, 0,
++                    640, LINE_START_Y(LAST_LINE),
++                    LINE_END_X(SCREEN_WIDTH)+1, LINE_END_Y(LAST_LINE)+1,
++                    0);
++    } else {
++        dbg_row++;
++        dbg_col = new_dbg_col;
++    }
++//    grub_efi_stall(1000000);
++}
++
++static void dc_backend(char *file, int line)
++{
++    char linebuf[9] = "        ";
++    int pos;
++
++    linebuf[8] = '\0';
++
++    format_ascii(linebuf, line, 0, 0);
++    for (dbg_col=0, pos=0; linebuf[pos]; dbg_col++, pos++)
++        debug_putchar(dbg_col, dbg_row, linebuf[pos]);
++
++    for (dbg_col=5, pos=0; file[pos]; dbg_col++, pos++) {
++        if (dbg_col > 15)
++            dbg_scroll(0);
++
++        debug_putchar(dbg_col, dbg_row, file[pos]);
++    }
++}
++
++void dc(char *file, int line)
++{
++	dc_backend(file, line);
++	dbg_scroll(0);
++}
++
++void
++gm(char *file, int line, char *fmt, ...)
++{
++    va_list ap;
++    char buf[1024]="";
++    int pos;
++
++    va_start(ap, fmt);
++    grub_vsprintf(buf, fmt, ap);
++    va_end(ap);
++
++    dc_backend(file, line);
++    for (dbg_col=16, pos=0; buf[pos]; dbg_col++, pos++) {
++        if (buf[pos] == '\n')
++            continue;
++        if (dbg_col > SCREEN_WIDTH-1)
++            dbg_scroll(16);
++        debug_putchar(dbg_col, dbg_row, buf[pos]);
++    }
++    dbg_scroll(0);
++}
++
++#define dm() ({ tmp_term = current_term; current_term = term_table; grub_dprintf(__func__, "got here\n"); current_term = tmp_term; })
++
++#endif
++
++#endif /* UGA_DEBUG_H */
+diff --git a/efi/x86_64/callwrap.S b/efi/x86_64/callwrap.S
+new file mode 100644
+index 0000000..e69de29
+diff --git a/efi/x86_64/callwrap.c b/efi/x86_64/callwrap.c
+new file mode 100644
+index 0000000..eb8fd25
+--- /dev/null
++++ b/efi/x86_64/callwrap.c
+@@ -0,0 +1,395 @@
++/*
++ *  Copyright (C) 2006 Giridhar Pemmasani
++ *  Copyright (C) 2007-2010 Intel Corp
++ *  	Contributed by Chandramouli Narayanan<mouli at linux.intel.com>
++ *	Adapted wrapper macros for Linux to windows calls from
++ *	NDIS wrapper project (http:/ndiswrapper.sourceforge.net)
++ *	
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ *  GNU General Public License for more details.
++ *
++ */
++
++#define alloc_win_stack_frame(argc)		\
++	"subq $" #argc "*8, %%rsp\n\t"
++#define free_win_stack_frame(argc)		\
++	"addq $" #argc "*8, %%rsp\n\t"
++
++/* m is index of Windows arg required, n is total number of args to
++ * function Windows arg 1 should be at 0(%rsp), arg 2 at 8(%rsp) and
++ * so on, after stack frame is allocated, which starts at -n*8(%rsp)
++ * when stack frame is allocated. 4 > m >= n.
++*/
++
++#define lin2win_win_arg(m,n) "(" #m "-1-" #n ")*8(%%rsp)"
++
++/* volatile args for Windows function must be in clobber / output list */
++extern unsigned long long x64_call0(void *func);
++extern unsigned long long x64_call1(void *func, unsigned long long arg1);
++extern unsigned long long x64_call2(void *func, unsigned long long arg1, unsigned long long arg2);
++extern unsigned long long x64_call3(
++	void *func,
++	unsigned long long arg1,
++	unsigned long long arg2,
++	unsigned long long arg3);
++extern unsigned long long x64_call4(
++	void *func,
++	unsigned long long arg1,
++	unsigned long long arg2,
++	unsigned long long arg3,
++	unsigned long long arg4);
++extern unsigned long long x64_call5(
++	void *func,
++	unsigned long long arg1,
++	unsigned long long arg2,
++	unsigned long long arg3,
++	unsigned long long arg4,
++	unsigned long long arg5);
++extern unsigned long long x64_call6(
++	void *func,
++	unsigned long long arg1,
++	unsigned long long arg2,
++	unsigned long long arg3,
++	unsigned long long arg4,
++	unsigned long long arg5,
++	unsigned long long arg6);
++extern unsigned long long x64_call7(
++	void *func,
++	unsigned long long arg1,
++	unsigned long long arg2,
++	unsigned long long arg3,
++	unsigned long long arg4,
++	unsigned long long arg5,
++	unsigned long long arg6,
++	unsigned long long arg7);
++extern unsigned long long x64_call8(
++	void *func,
++	unsigned long long arg1,
++	unsigned long long arg2,
++	unsigned long long arg3,
++	unsigned long long arg4,
++	unsigned long long arg5,
++	unsigned long long arg6,
++	unsigned long long arg7,
++	unsigned long long arg8);
++extern unsigned long long x64_call9(
++	void *func,
++	unsigned long long arg1,
++	unsigned long long arg2,
++	unsigned long long arg3,
++	unsigned long long arg4,
++	unsigned long long arg5,
++	unsigned long long arg6,
++	unsigned long long arg7,
++	unsigned long long arg8,
++	unsigned long long arg9);
++extern unsigned long long x64_call10(
++	void *func,
++	unsigned long long arg1,
++	unsigned long long arg2,
++	unsigned long long arg3,
++	unsigned long long arg4,
++	unsigned long long arg5,
++	unsigned long long arg6,
++	unsigned long long arg7,
++	unsigned long long arg8,
++	unsigned long long arg9,
++	unsigned long long arg10);
++
++
++unsigned long long x64_call0(void *func)
++{									
++	unsigned long long ret, dummy;
++	register unsigned long long r8 __asm__("r8");
++	register unsigned long long r9 __asm__("r9");
++	register unsigned long long r10 __asm__("r10");
++	register unsigned long long r11 __asm__("r11");
++	__asm__ __volatile__(					
++		alloc_win_stack_frame(4)				
++		"call *%[fptr]\n\t"					
++		free_win_stack_frame(4)					
++		: "=a" (ret), "=c" (dummy), "=d" (dummy),		
++		  "=r" (r8), "=r" (r9), "=r" (r10), "=r" (r11)		
++		: [fptr] "r" (func));					
++	return ret;								
++}
++
++unsigned long long x64_call1(void *func, unsigned long long arg1)
++{
++	unsigned long long ret, dummy;
++	register unsigned long long r8 __asm__("r8");
++	register unsigned long long r9 __asm__("r9");
++	register unsigned long long r10 __asm__("r10");
++	register unsigned long long r11 __asm__("r11");
++	__asm__ __volatile__(
++		alloc_win_stack_frame(4)
++		"call *%[fptr]\n\t"
++		free_win_stack_frame(4)	
++		: "=a" (ret), "=c" (dummy), "=d" (dummy),
++		  "=r" (r8), "=r" (r9), "=r" (r10), "=r" (r11)
++		: "c" (arg1),
++		  [fptr] "r" (func));
++	return ret;
++}
++
++unsigned long long x64_call2(void *func, unsigned long long arg1, unsigned long long arg2)
++{
++	unsigned long long ret, dummy;
++	register unsigned long long r8 __asm__("r8");
++	register unsigned long long r9 __asm__("r9");
++	register unsigned long long r10 __asm__("r10");
++	register unsigned long long r11 __asm__("r11");
++	__asm__ __volatile__(
++		alloc_win_stack_frame(4)
++		"call *%[fptr]\n\t"
++		free_win_stack_frame(4)
++		: "=a" (ret), "=c" (dummy), "=d" (dummy),
++		  "=r" (r8), "=r" (r9), "=r" (r10), "=r" (r11)
++		: "c" (arg1), "d" (arg2),
++		  [fptr] "r" (func));
++	return ret;
++}
++
++unsigned long long x64_call3(
++	void *func,
++	unsigned long long arg1,
++	unsigned long long arg2,
++	unsigned long long arg3)
++{
++	unsigned long long ret, dummy;
++	register unsigned long long r8 __asm__("r8") = (unsigned long long)arg3;
++	register unsigned long long r9 __asm__("r9");
++	register unsigned long long r10 __asm__("r10");
++	register unsigned long long r11 __asm__("r11");
++	__asm__ __volatile__(
++		alloc_win_stack_frame(4)
++		"call *%[fptr]\n\t"
++		free_win_stack_frame(4)
++		: "=a" (ret), "=c" (dummy), "=d" (dummy),
++		  "=r" (r8), "=r" (r9), "=r" (r10), "=r" (r11)
++		: "c" (arg1), "d" (arg2), "r" (r8),
++		  [fptr] "r" (func));
++	return ret;
++}
++
++unsigned long long x64_call4(
++	void *func,
++	unsigned long long arg1,
++	unsigned long long arg2,
++	unsigned long long arg3,
++	unsigned long long arg4)
++{
++	unsigned long long ret, dummy;
++	register unsigned long long r8 __asm__("r8") = (unsigned long long)arg3;
++	register unsigned long long r9 __asm__("r9") = (unsigned long long)arg4;
++	register unsigned long long r10 __asm__("r10");
++	register unsigned long long r11 __asm__("r11");
++	__asm__ __volatile__(
++		alloc_win_stack_frame(4)
++		"call *%[fptr]\n\t"
++		free_win_stack_frame(4)
++		: "=a" (ret), "=c" (dummy), "=d" (dummy),
++		  "=r" (r8), "=r" (r9), "=r" (r10), "=r" (r11)
++		: "c" (arg1), "d" (arg2), "r" (r8), "r" (r9),
++		  [fptr] "r" (func));
++	return ret;
++}
++
++unsigned long long x64_call5(
++	void *func,
++	unsigned long long arg1,
++	unsigned long long arg2,
++	unsigned long long arg3,
++	unsigned long long arg4,
++	unsigned long long arg5)
++{
++	unsigned long long ret, dummy;
++	register unsigned long long r8 __asm__("r8") = (unsigned long long)arg3;
++	register unsigned long long r9 __asm__("r9") = (unsigned long long)arg4;
++	register unsigned long long r10 __asm__("r10");
++	register unsigned long long r11 __asm__("r11");
++	__asm__ __volatile__(
++		"mov %[rarg5], " lin2win_win_arg(5,6) "\n\t"
++		alloc_win_stack_frame(6)
++		"call *%[fptr]\n\t"
++		free_win_stack_frame(6)
++		: "=a" (ret), "=c" (dummy), "=d" (dummy),
++		  "=r" (r8), "=r" (r9), "=r" (r10), "=r" (r11)
++		: "c" (arg1), "d" (arg2), "r" (r8), "r" (r9),
++		  [rarg5] "r" ((unsigned long long)arg5),
++		  [fptr] "r" (func));
++	return ret;
++}
++
++unsigned long long x64_call6(
++	void *func,
++	unsigned long long arg1,
++	unsigned long long arg2,
++	unsigned long long arg3,
++	unsigned long long arg4,
++	unsigned long long arg5,
++	unsigned long long arg6)
++{
++	unsigned long long ret, dummy;
++	register unsigned long long r8 __asm__("r8") = (unsigned long long)arg3;
++	register unsigned long long r9 __asm__("r9") = (unsigned long long)arg4;
++	register unsigned long long r10 __asm__("r10");
++	register unsigned long long r11 __asm__("r11");
++	__asm__ __volatile__(
++		"movq %[rarg5], " lin2win_win_arg(5,6) "\n\t"
++		"movq %[rarg6], " lin2win_win_arg(6,6) "\n\t"
++		alloc_win_stack_frame(6)
++		"call *%[fptr]\n\t"
++		free_win_stack_frame(6)
++		: "=a" (ret), "=c" (dummy), "=d" (dummy),
++		  "=r" (r8), "=r" (r9), "=r" (r10), "=r" (r11)
++		: "c" (arg1), "d" (arg2), "r" (r8), "r" (r9),
++		  [rarg5] "r" ((unsigned long long)arg5), [rarg6] "r" ((unsigned long long)arg6),
++		  [fptr] "r" (func));
++	return ret;
++}
++
++unsigned long long x64_call7(
++	void *func,
++	unsigned long long arg1,
++	unsigned long long arg2,
++	unsigned long long arg3,
++	unsigned long long arg4,
++	unsigned long long arg5,
++	unsigned long long arg6,
++	unsigned long long arg7)
++{
++	unsigned long long ret, dummy;
++	register unsigned long long r8 __asm__("r8") = (unsigned long long)arg3;
++	register unsigned long long r9 __asm__("r9") = (unsigned long long)arg4;
++	register unsigned long long r10 __asm__("r10");
++	register unsigned long long r11 __asm__("r11");
++	__asm__ __volatile__(
++		"movq %[rarg5], " lin2win_win_arg(5,7) "\n\t"
++		"movq %[rarg6], " lin2win_win_arg(6,7) "\n\t"
++		"movq %[rarg7], " lin2win_win_arg(7,7) "\n\t"
++		alloc_win_stack_frame(7)
++		"call *%[fptr]\n\t"
++		free_win_stack_frame(7)
++		: "=a" (ret), "=c" (dummy), "=d" (dummy),
++		  "=r" (r8), "=r" (r9), "=r" (r10), "=r" (r11)
++		: "c" (arg1), "d" (arg2), "r" (r8), "r" (r9),
++		  [rarg5] "r" ((unsigned long long)arg5), [rarg6] "r" ((unsigned long long)arg6),
++		  [rarg7] "r" ((unsigned long long)arg7), [fptr] "r" (func));
++	return ret;
++}
++
++unsigned long long x64_call8(
++	void *func,
++	unsigned long long arg1,
++	unsigned long long arg2,
++	unsigned long long arg3,
++	unsigned long long arg4,
++	unsigned long long arg5,
++	unsigned long long arg6,
++	unsigned long long arg7,
++	unsigned long long arg8)
++{
++	unsigned long long ret, dummy;
++	register unsigned long long r8 __asm__("r8") = (unsigned long long)arg3;
++	register unsigned long long r9 __asm__("r9") = (unsigned long long)arg4;
++	register unsigned long long r10 __asm__("r10");
++	register unsigned long long r11 __asm__("r11");
++	__asm__ __volatile__(
++		"movq %[rarg5], " lin2win_win_arg(5,8) "\n\t"
++		"movq %[rarg6], " lin2win_win_arg(6,8) "\n\t"
++		"movq %[rarg7], " lin2win_win_arg(7,8) "\n\t"
++		"movq %[rarg8], " lin2win_win_arg(8,8) "\n\t"
++		alloc_win_stack_frame(8)
++		"call *%[fptr]\n\t"
++		free_win_stack_frame(8)
++		: "=a" (ret), "=c" (dummy), "=d" (dummy),
++		  "=r" (r8), "=r" (r9), "=r" (r10), "=r" (r11)
++		: "c" (arg1), "d" (arg2), "r" (r8), "r" (r9),
++		  [rarg5] "r" ((unsigned long long)arg5), [rarg6] "r" ((unsigned long long)arg6),
++		  [rarg7] "r" ((unsigned long long)arg7), [rarg8] "r" ((unsigned long long)arg8),
++		  [fptr] "r" (func));
++	return ret;
++}
++
++unsigned long long x64_call9(
++	void *func,
++	unsigned long long arg1,
++	unsigned long long arg2,
++	unsigned long long arg3,
++	unsigned long long arg4,
++	unsigned long long arg5,
++	unsigned long long arg6,
++	unsigned long long arg7,
++	unsigned long long arg8,
++	unsigned long long arg9)
++{
++	unsigned long long ret, dummy;
++	register unsigned long long r8 __asm__("r8") = (unsigned long long)arg3;
++	register unsigned long long r9 __asm__("r9") = (unsigned long long)arg4;
++	register unsigned long long r10 __asm__("r10");
++	register unsigned long long r11 __asm__("r11");
++	__asm__ __volatile__(
++		"movq %[rarg5], " lin2win_win_arg(5,9) "\n\t"
++		"movq %[rarg6], " lin2win_win_arg(6,9) "\n\t"
++		"movq %[rarg7], " lin2win_win_arg(7,9) "\n\t"
++		"movq %[rarg8], " lin2win_win_arg(8,9) "\n\t"
++		"movq %[rarg9], " lin2win_win_arg(9,9) "\n\t"
++		alloc_win_stack_frame(9)
++		"call *%[fptr]\n\t"
++		free_win_stack_frame(9)
++		: "=a" (ret), "=c" (dummy), "=d" (dummy),
++		  "=r" (r8), "=r" (r9), "=r" (r10), "=r" (r11)
++		: "c" (arg1), "d" (arg2), "r" (r8), "r" (r9),
++		  [rarg5] "r" ((unsigned long long)arg5), [rarg6] "r" ((unsigned long long)arg6),
++		  [rarg7] "r" ((unsigned long long)arg7), [rarg8] "r" ((unsigned long long)arg8),
++		  [rarg9] "r" ((unsigned long long)arg9), [fptr] "r" (func));
++	return ret;
++}
++
++unsigned long long x64_call10(
++	void *func,
++	unsigned long long arg1,
++	unsigned long long arg2,
++	unsigned long long arg3,
++	unsigned long long arg4,
++	unsigned long long arg5,
++	unsigned long long arg6,
++	unsigned long long arg7,
++	unsigned long long arg8,
++	unsigned long long arg9,
++	unsigned long long arg10)
++{
++	unsigned long long ret, dummy;
++	register unsigned long long r8 __asm__("r8") = (unsigned long long)arg3;
++	register unsigned long long r9 __asm__("r9") = (unsigned long long)arg4;
++	register unsigned long long r10 __asm__("r10");
++	register unsigned long long r11 __asm__("r11");
++	__asm__ __volatile__(
++		"movq %[rarg5], " lin2win_win_arg(5,10) "\n\t"
++		"movq %[rarg6], " lin2win_win_arg(6,10) "\n\t"
++		"movq %[rarg7], " lin2win_win_arg(7,10) "\n\t"
++		"movq %[rarg8], " lin2win_win_arg(8,10) "\n\t"
++		"movq %[rarg9], " lin2win_win_arg(9,10) "\n\t"
++		"movq %[rarg10], " lin2win_win_arg(10,10) "\n\t"
++		alloc_win_stack_frame(10)
++		"call *%[fptr]\n\t"
++		free_win_stack_frame(10)
++		: "=a" (ret), "=c" (dummy), "=d" (dummy),
++		  "=r" (r8), "=r" (r9), "=r" (r10), "=r" (r11)
++		: "c" (arg1), "d" (arg2), "r" (r8), "r" (r9),
++		  [rarg5] "r" ((unsigned long long)arg5), [rarg6] "r" ((unsigned long long)arg6),
++		  [rarg7] "r" ((unsigned long long)arg7), [rarg8] "r" ((unsigned long long)arg8),
++		  [rarg9] "r" ((unsigned long long)arg9), [rarg10] "r" ((unsigned long long)arg10),
++		  [fptr] "r" (func));
++	return ret;
++}
++
+diff --git a/efi/x86_64/crt0-efi.S b/efi/x86_64/crt0-efi.S
+new file mode 100644
+index 0000000..8667694
+--- /dev/null
++++ b/efi/x86_64/crt0-efi.S
+@@ -0,0 +1,63 @@
++/* crt0-efi-x86_64.S - x86_64 EFI startup code.
++   Copyright (C) 1999 Hewlett-Packard Co.
++	Contributed by David Mosberger <davidm at hpl.hp.com>.
++   Copyright (C) 2005 Intel Co.
++	Contributed by Fenghua Yu <fenghua.yu at intel.com>.
++
++   This file is part of GNU-EFI, the GNU EFI development environment.
++
++   GNU EFI is free software; you can redistribute it and/or modify
++   it under the terms of the GNU General Public License as published by
++   the Free Software Foundation; either version 2, or (at your option)
++   any later version.
++
++   GNU EFI is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU General Public License for more details.
++
++   You should have received a copy of the GNU General Public License
++   along with GNU EFI; see the file COPYING.  If not, write to the Free
++   Software Foundation, 59 Temple Place - Suite 330, Boston, MA
++   02111-1307, USA. */
++
++	.text
++	.align 4
++
++	.globl _start
++_start:
++	subq $8, %rsp
++	pushq %rcx
++	pushq %rdx
++
++0:
++	lea ImageBase(%rip), %rdi
++	lea _DYNAMIC(%rip), %rsi
++
++	popq %rcx
++	popq %rdx
++	pushq %rcx
++	pushq %rdx
++	call _relocate
++
++	popq %rdi
++	popq %rsi
++
++	call efi_main
++	addq $8, %rsp
++
++.exit:
++  	ret
++
++ 	// hand-craft a dummy .reloc section so EFI knows it's a relocatable executable:
++
++ 	.data
++dummy:	.long	0
++
++#define IMAGE_REL_ABSOLUTE	0
++ 	.section .reloc, "a"
++label1:
++	.long	dummy-label1				// Page RVA
++ 	.long	10					// Block Size (2*4+2)
++	.word	(IMAGE_REL_ABSOLUTE<<12) +  0		// reloc for dummy
++
+diff --git a/efi/x86_64/elf_efi.lds b/efi/x86_64/elf_efi.lds
+new file mode 100644
+index 0000000..18a9ab9
+--- /dev/null
++++ b/efi/x86_64/elf_efi.lds
+@@ -0,0 +1,58 @@
++OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64")
++OUTPUT_ARCH(i386:x86-64)
++ENTRY(_start)
++SECTIONS
++{
++  . = 0;
++  ImageBase = .;
++  .hash : { *(.hash) }	/* this MUST come first! */
++  . = ALIGN(4096);
++  .eh_frame :
++  {
++    *(.eh_frame)
++  }
++  . = ALIGN(4096);
++  .text :
++  {
++   *(.text)
++  }
++  .reloc :
++  {
++   *(.reloc)
++  }
++  . = ALIGN(4096);
++  .data :
++  {
++   *(.rodata*)
++   *(.got.plt)
++   *(.got)
++   *(.data*)
++   *(.sdata)
++   /* the EFI loader doesn't seem to like a .bss section, so we stick
++      it all into .data: */
++   *(.sbss)
++   *(.scommon)
++   *(.dynbss)
++   *(.bss)
++   *(COMMON)
++   *(.rel.local)
++  }
++  . = ALIGN(4096);
++  .dynamic  : { *(.dynamic) }
++  . = ALIGN(4096);
++  .rela :
++  {
++    *(.rela.data*)
++    *(.rela.got)
++    *(.rela.stab)
++  }
++  . = ALIGN(4096);
++  .dynsym   : { *(.dynsym) }
++  . = ALIGN(4096);
++  .dynstr   : { *(.dynstr) }
++  . = ALIGN(4096);
++  .ignored.reloc :
++  {
++    *(.rela.reloc)
++  }
++}
+diff --git a/efi/x86_64/loader/Makefile b/efi/x86_64/loader/Makefile
+new file mode 100644
+index 0000000..0d8b888
+--- /dev/null
++++ b/efi/x86_64/loader/Makefile
+@@ -0,0 +1,20 @@
++
++all : switch.h
++
++bin_to_h: bin_to_h.c
++	$(CC) $(CFLAGS) -o $@ $<
++
++switch.h : switch.bin bin_to_h
++	./bin_to_h < $< > $@
++
++switch.bin : switch
++	objcopy -O binary $< $@
++
++switch : switch.o
++	ld.bfd -Ttext-segment=0x688 --init _start -o $@ $<
++
++switch.o : switch.S
++	as -march=generic64 -defsym _start=0 -o $@ $<
++
++clean :
++	@rm -vf switch.o switch switch.bin switch.h bin_to_h
+diff --git a/efi/x86_64/loader/bin_to_h.c b/efi/x86_64/loader/bin_to_h.c
+new file mode 100644
+index 0000000..4cff104
+--- /dev/null
++++ b/efi/x86_64/loader/bin_to_h.c
+@@ -0,0 +1,29 @@
++#include <stdio.h>
++#include <stdlib.h>
++
++int
++main (void)
++{
++  unsigned n = 0;
++  int c;
++
++  printf ("unsigned char switch_image[] = {\n");
++
++  while ((c = getchar ()) != EOF)
++    {
++      printf("0x%02x,%s",
++	     c & 0xFF,
++	     (++n & 0x07) ? " " : "\n");
++    }
++
++  if (n & 0x07)
++    {
++      printf("\n");
++    }
++
++  printf("};\n"
++	 "int switch_size = sizeof switch_image;\n");
++
++  return 0;
++}
++
+diff --git a/efi/x86_64/loader/linux.c b/efi/x86_64/loader/linux.c
+new file mode 100644
+index 0000000..54d075b
+--- /dev/null
++++ b/efi/x86_64/loader/linux.c
+@@ -0,0 +1,588 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2006  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#include <grub/misc.h>
++#include <grub/types.h>
++#include <grub/cpu/linux.h>
++#include <grub/efi/api.h>
++#include <grub/efi/efi.h>
++#include <grub/efi/misc.h>
++
++#include "switch.h"
++
++#include <shared.h>
++
++#include "graphics.h"
++
++#define grub_file_size()    filemax
++
++#define NEXT_MEMORY_DESCRIPTOR(desc, size)      \
++  ((grub_efi_memory_descriptor_t *) ((char *) (desc) + (size)))
++
++#define PTR_HI(x) ((grub_uint32_t) ((unsigned long long)((unsigned long)(x)) >> 32))
++
++#ifndef SECTOR_SIZE
++#define SECTOR_SIZE 0x200
++#endif /* defined(SECTOR_SIZE) */
++#ifndef SECTOR_BITS
++#define SECTOR_BITS 9
++#endif /* defined(SECTOR_BITS) */
++
++static unsigned long linux_mem_size;
++static int loaded;
++static void *real_mode_mem;
++static void *prot_mode_mem;
++static grub_size_t prot_kernel_size;
++static void *initrd_mem;
++static grub_efi_uintn_t real_mode_pages;
++static grub_efi_uintn_t prot_mode_pages;
++static grub_efi_uintn_t initrd_pages;
++static grub_efi_guid_t graphics_output_guid = GRUB_EFI_GRAPHICS_OUTPUT_GUID;
++
++static inline grub_size_t
++page_align (grub_size_t size)
++{
++  return (size + (1 << 12) - 1) & (~((1 << 12) - 1));
++}
++
++static void
++free_pages (void)
++{
++  if (real_mode_mem)
++    {
++      grub_efi_free_pages ((grub_addr_t) real_mode_mem, real_mode_pages);
++      real_mode_mem = 0;
++    }
++
++  if (initrd_mem)
++    {
++      grub_efi_free_pages ((grub_addr_t) initrd_mem, initrd_pages);
++      initrd_mem = 0;
++    }
++
++  if (mmap_buf)
++    {
++      grub_efi_free_pages ((grub_addr_t) mmap_buf, mmap_pages);
++      mmap_buf = 0;
++    }
++}
++
++/* Allocate pages for the real mode code and the protected mode code
++   for linux as well as a memory map buffer.  */
++static int
++allocate_pages (grub_size_t real_size, grub_size_t prot_size)
++{
++  grub_efi_uintn_t desc_size;
++  grub_efi_memory_descriptor_t *mmap_end;
++  grub_efi_memory_descriptor_t *desc;
++  grub_efi_physical_address_t addr;
++
++  /* Make sure that each size is aligned to a page boundary.  */
++  real_size = page_align (real_size + SECTOR_SIZE);
++  prot_size = page_align (prot_size);
++
++  grub_dprintf ("linux", "real_size = %x, prot_size = %x, mmap_size = %x\n",
++		(unsigned int) real_size, (unsigned int) prot_size,
++		(unsigned int) mmap_size);
++
++  /* Calculate the number of pages; Combine the real mode code with
++     the memory map buffer for simplicity.  */
++  real_mode_pages = (real_size >> 12);
++  prot_mode_pages = (prot_size >> 12);
++
++  /* Initialize the memory pointers with NULL for convenience.  */
++  real_mode_mem = 0;
++  prot_mode_mem = 0;
++
++  if (grub_efi_get_memory_map (0, &desc_size, 0) <= 0)
++    grub_fatal ("cannot get memory map");
++
++  addr = 0;
++  mmap_end = NEXT_MEMORY_DESCRIPTOR (mmap_buf, mmap_size);
++  /* First, find free pages for the real mode code
++     and the memory map buffer.  */
++  for (desc = mmap_buf;
++       desc < mmap_end;
++       desc = NEXT_MEMORY_DESCRIPTOR (desc, desc_size))
++    {
++      if (desc->type == GRUB_EFI_CONVENTIONAL_MEMORY
++	  && desc->num_pages >= real_mode_pages)
++	{
++	  grub_efi_physical_address_t physical_end;
++
++          physical_end = desc->physical_start + (desc->num_pages << 12);
++
++          grub_dprintf ("linux", "physical_start = %x, physical_end = %x\n",
++                        (unsigned) desc->physical_start,
++                        (unsigned) physical_end);
++          addr = physical_end - real_size;
++          if (addr < 0x10000)
++            continue;
++
++          /* the kernel wants this address to be under 1 gig.*/
++          if (desc->physical_start > 0x40000000 - real_size)
++            continue;
++
++          if (addr > 0x40000000 - real_size)
++            addr = 0x40000000 - real_size;
++
++          grub_dprintf ("linux", "trying to allocate %u pages at %x\n",
++                        (unsigned) real_mode_pages, (unsigned) addr);
++          real_mode_mem = grub_efi_allocate_pages (addr, real_mode_pages);
++          if (! real_mode_mem)
++            grub_fatal ("cannot allocate pages");
++
++          desc->num_pages -= real_mode_pages;
++          break;
++	}
++    }
++
++  if (! real_mode_mem)
++    {
++      grub_printf ("cannot allocate real mode pages");
++      errnum = ERR_WONT_FIT;
++      goto fail;
++    }
++
++  grub_printf("Trying to allocate %u pages for VMLINUZ\n",
++		(unsigned) prot_mode_pages);
++  prot_mode_mem = grub_efi_allocate_anypages(prot_mode_pages);
++
++  if (!prot_mode_mem)
++	grub_fatal("Cannot allocate pages for VMLINUZ");
++  grub_printf("Got pages at %p\n", prot_mode_mem);
++ 
++  return 1;
++
++ fail:
++  free_pages ();
++  return 0;
++}
++
++/* do some funky stuff, then boot linux */
++void
++linux_boot (void)
++{
++  grub_printf ("zImage is not supported under EFI.\n");
++  for (;;);
++}
++
++void
++big_linux_boot (void)
++{
++  struct linux_kernel_params *params;
++  struct grub_linux_kernel_header *lh;
++  grub_efi_uintn_t map_key;
++  grub_efi_uintn_t desc_size;
++  grub_efi_uint32_t desc_version;
++  int e820_nr_map;
++
++  params = real_mode_mem;
++
++  graphics_set_kernel_params (params);
++
++  if (grub_efi_get_memory_map (&map_key, &desc_size, &desc_version) <= 0)
++    grub_fatal ("cannot get memory map");
++
++  /* Pass e820 memmap. */
++  e820_map_from_efi_map ((struct e820_entry *) params->e820_map, &e820_nr_map,
++			 mmap_buf, desc_size, mmap_size);
++  params->e820_nr_map = e820_nr_map;
++
++  if (! grub_efi_exit_boot_services (map_key))
++    grub_fatal ("cannot exit boot services");
++
++  /* Note that no boot services are available from here.  */
++
++  /* copy vmlinuz image to hdr.code32_start */
++  memcpy ((char *)(unsigned long)(params->hdr.code32_start), (char *)prot_mode_mem,
++	  prot_kernel_size);
++  /* copy switch image */
++  memcpy ((void *) 0x700, switch_image, switch_size);
++
++  lh = &params->hdr;
++  /* Pass EFI parameters.  */
++  if (grub_le_to_cpu16 (lh->version) >= 0x0206) {
++    params->version_0206.efi_mem_desc_size = desc_size;
++    params->version_0206.efi_mem_desc_version = desc_version;
++    params->version_0206.efi_mmap = (grub_uint32_t) (unsigned long) mmap_buf;
++    params->version_0206.efi_mmap_size = mmap_size;
++  } else if (grub_le_to_cpu16 (lh->version) >= 0x0204) {
++    params->version_0204.efi_mem_desc_size = desc_size;
++    params->version_0204.efi_mem_desc_version = desc_version;
++    params->version_0204.efi_mmap = (grub_uint32_t) (unsigned long) mmap_buf;
++    params->version_0204.efi_mmap_size = mmap_size;
++  } else /* dunno */ {
++    params->dunno.efi_mem_desc_size = desc_size;
++    params->dunno.efi_mem_desc_version = desc_version;
++    params->dunno.efi_mmap = (grub_uint32_t) (unsigned long) mmap_buf;
++    params->dunno.efi_mmap_size = mmap_size;
++    params->dunno.efi_mmap_hi = PTR_HI(mmap_buf);
++  }
++
++#ifdef __x86_64__
++  /* Pass parameters.  */
++  asm volatile ("mov %0, %%rsi" : : "m" (real_mode_mem));
++  asm volatile ("movl %0, %%ebx" : : "m" (params->hdr.code32_start));
++
++  /* Enter Linux, switch from 64-bit long mode
++   * to 32-bit protect mode, this code end address
++   * must not exceed 0x1000, because linux kernel bootstrap
++   * code will flush this area
++   */
++  asm volatile ( "mov $0x700, %%rdi" : :);
++  asm volatile ( "jmp *%%rdi" : :);
++#else
++  /* Pass parameters.  */
++  asm volatile ("mov %0, %%esi" : : "m" (real_mode_mem));
++  asm volatile ("movl %0, %%ebx" : : "m" (params->hdr.code32_start));
++
++  /* Enter Linux, switch from 64-bit long mode
++   * to 32-bit protect mode, this code end address
++   * must not exceed 0x1000, because linux kernel bootstrap
++   * code will flush this area
++   */
++  asm volatile ( "mov $0x700, %%edi" : :);
++  asm volatile ( "jmp *%%edi" : :);
++#endif
++
++  /* Never reach here.  */
++  for (;;);
++}
++
++int
++grub_load_linux (char *kernel, char *arg)
++{
++  struct grub_linux_kernel_header *lh;
++  struct linux_kernel_params *params;
++  static struct linux_kernel_params params_buf;
++  grub_uint8_t setup_sects;
++  grub_size_t real_size, prot_size;
++  grub_ssize_t len;
++  char *dest;
++
++  if (kernel == NULL)
++    {
++      errnum = ERR_BAD_FILENAME;
++      grub_printf ("no kernel specified");
++      goto fail1;
++    }
++
++  if (! grub_open (kernel))
++    goto fail1;
++
++  if (grub_read ((char *) &params_buf, sizeof (params_buf))
++      != sizeof (params_buf))
++    {
++      errnum = ERR_EXEC_FORMAT;
++      grub_printf ("cannot read the linux header");
++      goto fail;
++    }
++
++  lh = &params_buf.hdr;
++
++  if (lh->boot_flag != grub_cpu_to_le16 (0xaa55))
++    {
++      errnum = ERR_EXEC_FORMAT;
++      grub_printf ("invalid magic number: %x", lh->boot_flag);
++      goto fail;
++    }
++
++  /* EFI support is quite new, so reject old versions.  */
++  if (lh->header != grub_cpu_to_le32 (GRUB_LINUX_MAGIC_SIGNATURE)
++      || grub_le_to_cpu16 (lh->version) < 0x0203)
++    {
++      errnum = ERR_EXEC_FORMAT;
++      grub_printf ("too old version");
++      goto fail;
++    }
++
++  /* I'm not sure how to support zImage on EFI.  */
++  if (! (lh->loadflags & GRUB_LINUX_FLAG_BIG_KERNEL))
++    {
++      errnum = ERR_EXEC_FORMAT;
++      grub_printf ("zImage is not supported");
++      goto fail;
++    }
++
++  setup_sects = lh->setup_sects;
++
++  real_size = 0x1000 + grub_strlen(arg);
++  prot_size = grub_file_size () - (setup_sects << SECTOR_BITS) - SECTOR_SIZE;
++  prot_kernel_size = prot_size;
++
++  if (! allocate_pages (real_size, prot_size))
++    goto fail;
++
++  /* XXX Linux assumes that only elilo can boot Linux on EFI!!!  */
++  lh->type_of_loader = 0x50;
++
++  lh->cmd_line_ptr = (grub_uint32_t) (unsigned long) real_mode_mem + 0x1000;
++  lh->ramdisk_image = 0;
++  lh->ramdisk_size = 0;
++
++  grub_memset(real_mode_mem, 0, real_size);
++
++  params = (struct linux_kernel_params *) real_mode_mem;
++
++  grub_memmove(&params->hdr, lh, 0x202 + lh->jump_off - 0x1f1);
++
++  params->cl_magic = GRUB_LINUX_CL_MAGIC;
++  params->cl_offset = 0x1000;
++
++  /* These are not needed to be precise, because Linux uses these values
++     only to raise an error when the decompression code cannot find good
++     space.  */
++  params->ext_mem = ((32 * 0x100000) >> 10);
++  params->alt_mem = ((32 * 0x100000) >> 10);
++
++  /* No APM on EFI.  */
++  params->apm_version = 0;
++  params->apm_code_segment = 0;
++  params->apm_entry = 0;
++  params->apm_16bit_code_segment = 0;
++  params->apm_data_segment = 0;
++  params->apm_flags = 0;
++  params->apm_code_len = 0;
++  params->apm_data_len = 0;
++
++  /* XXX is there any way to use SpeedStep on EFI?  */
++  params->ist_signature = 0;
++  params->ist_command = 0;
++  params->ist_event = 0;
++  params->ist_perf_level = 0;
++
++  /* Let the kernel probe the information.  */
++  grub_memset (params->hd0_drive_info, 0, sizeof (params->hd0_drive_info));
++  grub_memset (params->hd1_drive_info, 0, sizeof (params->hd1_drive_info));
++
++  /* No MCA on EFI.  */
++  params->rom_config_len = 0;
++
++  if (grub_le_to_cpu16 (lh->version) >= 0x0206) {
++    grub_memcpy(&params->version_0204.efi_signature, "EL64", 4);
++    params->version_0206.efi_system_table = \
++                        (grub_uint32_t) (unsigned long) grub_efi_system_table;
++  } else if (grub_le_to_cpu16 (lh->version) >= 0x0204) {
++    grub_memcpy(&params->version_0204.efi_signature, "EFIL", 4);
++    params->version_0204.efi_system_table = \
++                        (grub_uint32_t) (unsigned long) grub_efi_system_table;
++  } else /* dunno */ {
++    params->dunno.efi_signature = GRUB_LINUX_EFI_SIGNATURE_X64;
++    params->dunno.efi_system_table = \
++                        (grub_uint32_t) (unsigned long) grub_efi_system_table;
++    params->dunno.efi_system_table_hi = PTR_HI(grub_efi_system_table);
++  }
++  /* The other EFI parameters are filled when booting.  */
++
++  /* No EDD */
++  params->eddbuf_entries = 0;
++  params->edd_mbr_sig_buf_entries = 0;
++
++  /* XXX there is no way to know if the kernel really supports EFI.  */
++  grub_printf ("[Linux-EFI, setup=0x%x, size=0x%x]\n", (unsigned int)real_size,
++	       (unsigned int)prot_size);
++
++  /* Check the mem= option to limit memory used for initrd.  */
++  {
++    char *mem;
++
++    mem = grub_strstr (arg, "mem=");
++    if (mem)
++      {
++	char *value = mem + 4;
++
++	safe_parse_maxulong (&value, &linux_mem_size);
++	switch (errnum)
++	  {
++	  case ERR_NUMBER_OVERFLOW:
++	    /* If an overflow occurs, use the maximum address for
++	       initrd instead. This is good, because MAXINT is
++	       greater than LINUX_INITRD_MAX_ADDRESS.  */
++	    linux_mem_size = LINUX_INITRD_MAX_ADDRESS;
++	    errnum = ERR_NONE;
++	    break;
++
++	  case ERR_NONE:
++	    {
++	      int shift = 0;
++
++	      switch (grub_tolower (*value))
++		{
++		case 'g':
++		  shift += 10;
++		case 'm':
++		  shift += 10;
++		case 'k':
++		  shift += 10;
++		default:
++		  break;
++		}
++
++	      /* Check an overflow.  */
++	      if (linux_mem_size > (~0UL >> shift))
++		linux_mem_size = 0;
++	      else
++		linux_mem_size <<= shift;
++	    }
++	    break;
++
++	  default:
++	    linux_mem_size = 0;
++	    errnum = ERR_NONE;
++	    break;
++	  }
++      }
++    else
++      linux_mem_size = 0;
++  }
++
++  dest = grub_stpcpy ((char *) real_mode_mem + 0x1000, skip_to(0, arg));
++
++  grub_seek ((setup_sects << SECTOR_BITS) + SECTOR_SIZE);
++  len = prot_size;
++  if (grub_read ((char *)prot_mode_mem, len) != len)
++    grub_printf ("Couldn't read file");
++
++  if (errnum == ERR_NONE)
++    {
++      loaded = 1;
++    }
++
++ fail:
++
++  grub_close ();
++
++ fail1:
++
++  if (errnum != ERR_NONE)
++    {
++      loaded = 0;
++    }
++  return errnum ? KERNEL_TYPE_NONE : KERNEL_TYPE_BIG_LINUX;
++}
++
++int
++grub_load_initrd (char *initrd)
++{
++  grub_ssize_t size;
++  grub_addr_t addr_min, addr_max;
++  grub_addr_t addr;
++  grub_efi_memory_descriptor_t *desc;
++  grub_efi_memory_descriptor_t tdesc;
++  grub_efi_uintn_t desc_size;
++  struct linux_kernel_params *params;
++
++  if (initrd == NULL)
++    {
++      errnum = ERR_BAD_FILENAME;
++      grub_printf ("No module specified");
++      goto fail1;
++    }
++
++  if (! loaded)
++    {
++      errnum = ERR_UNRECOGNIZED;
++      grub_printf ("You need to load the kernel first.");
++      goto fail1;
++    }
++
++  if (! grub_open (initrd))
++    goto fail1;
++
++  size = grub_file_size ();
++  initrd_pages = (page_align (size) >> 12);
++
++  params = (struct linux_kernel_params *) real_mode_mem;
++  grub_dprintf(__func__, "initrd_pages: %lu\n", initrd_pages);
++
++  addr_max = grub_cpu_to_le32 (params->hdr.initrd_addr_max);
++  if (linux_mem_size != 0 && linux_mem_size < addr_max)
++    addr_max = linux_mem_size;
++  addr_max &= ~((1 << 12)-1);
++
++  /* Usually, the compression ratio is about 50%.  */
++  addr_min = 0;
++
++  /* Find the highest address to put the initrd.  */
++  grub_dprintf(__func__, "addr_min: 0x%lx addr_max: 0x%lx mmap_size: %lu\n", addr_min, addr_max, mmap_size);
++  if (grub_efi_get_memory_map (0, &desc_size, 0) <= 0)
++    grub_fatal ("cannot get memory map");
++
++  addr = 0;
++  for (desc = mmap_buf;
++       desc < NEXT_MEMORY_DESCRIPTOR (mmap_buf, mmap_size);
++       desc = NEXT_MEMORY_DESCRIPTOR (desc, desc_size))
++    {
++      if (desc->type != GRUB_EFI_CONVENTIONAL_MEMORY)
++        continue;
++      memcpy(&tdesc, desc, sizeof (tdesc));
++      if (tdesc.physical_start < addr_min
++              && tdesc.num_pages > ((addr_min - tdesc.physical_start) >> 12))
++        {
++          tdesc.num_pages -= ((addr_min - tdesc.physical_start) >> 12);
++          tdesc.physical_start = addr_min;
++        }
++
++      grub_dprintf(__func__, "desc = {type=%d,ps=0x%llx,vs=0x%llx,sz=%llu,attr=%llu}\n", desc->type, (unsigned long long)desc->physical_start, (unsigned long long)desc->virtual_start, (unsigned long long)desc->num_pages, (unsigned long long)desc->attribute);
++      if (tdesc.physical_start >= addr_min
++	  && tdesc.physical_start + page_align (size) <= addr_max
++	  && tdesc.num_pages >= initrd_pages)
++	{
++	  grub_efi_physical_address_t physical_end;
++
++	  physical_end = tdesc.physical_start + (tdesc.num_pages << 12);
++	  if (physical_end > addr_max)
++	    physical_end = addr_max;
++
++	  if (physical_end <= 0x7fffffffUL && physical_end > addr)
++	    addr = physical_end - page_align (size);
++	}
++    }
++
++  if (addr == 0)
++    {
++      errnum = ERR_UNRECOGNIZED;
++      grub_printf ("no free pages available");
++      goto fail;
++    }
++
++  initrd_mem = grub_efi_allocate_pages (addr, initrd_pages);
++  if (! initrd_mem)
++    grub_fatal ("cannot allocate pages: %x@%x", (unsigned)initrd_pages,
++		(unsigned)addr);
++
++  if (grub_read (initrd_mem, size) != size)
++    {
++      grub_printf ("Couldn't read file");
++      goto fail;
++    }
++
++  grub_printf ("   [Initrd, addr=0x%x, size=0x%x]\n", (unsigned int) addr,
++	       (unsigned int) size);
++
++  params->hdr.ramdisk_image = addr;
++  params->hdr.ramdisk_size = size;
++  params->hdr.root_dev = 0x0100; /* XXX */
++
++ fail:
++  grub_close ();
++ fail1:
++  return !errnum;
++}
+diff --git a/efi/x86_64/loader/switch.S b/efi/x86_64/loader/switch.S
+new file mode 100644
+index 0000000..d0d8dca
+--- /dev/null
++++ b/efi/x86_64/loader/switch.S
+@@ -0,0 +1,92 @@
++#
++# Switch from protected mode to real mode and jump to setup.S
++# image located at %cx:0.
++#
++# This module must be placed into physical memory at 0:7C00h.
++# EFI has some real mode thunking code at 2000:0h.
++#
++# Processor and non-maskable interrupts should be disabled
++# before control is passed to this module.
++#
++
++#define __KERNEL_CS 0x38
++#define MSR_EFER    0xc0000080
++#define _EFER_LME 8  /* Long mode enable */
++
++.global _start
++
++.text
++_start:
++        #
++        # Load identity mapped GDT & real mode IDT.
++        # Add 7C00h to the addresses since this is linked to start
++        # at 0h and it is being placed at 7C00h.
++        #
++
++        # fixme here EFI bios cs segment is 0x38
++        # switch to IA32e compatible mode
++	# esi point to kernel parameter
++	# ebx point to kernel entry point
++.code64
++	cli
++	cld
++        lgdt    gdt_64
++        lidt    idt_64
++	ljmp	*exit_ia32e
++
++ 	/* switch to IA32e compatible mode */
++.code32
++mode32:
++        #
++        # Turn off PG bit in CR0 and set CR3 to zero.
++        #
++        movl    %cr0, %eax
++        andl    $0x7FFFFFFF, %eax
++        movl    %eax, %cr0
++
++        /* Setup EFER (Extended Feature Enable Register) */
++	nop
++	nop
++        movl    $0xc0000080, %ecx
++        rdmsr
++        /* Enable Long Mode */
++        andl    $0xFFFFFEFF, %eax
++        /* Make changes effective */
++        wrmsr
++
++        /* Disable PAE */
++        xorl    %eax, %eax
++        movl    %eax, %cr4
++
++        jmp    2f
++2:
++      	jmp     *%ebx
++//jmp to kernel entry
++
++.align 8
++exit_ia32e:
++        .long mode32
++        .long 0x10
++
++gdt_64: .word   0x08 * 9 -1
++        .quad   gdt
++
++	.word	0, 0, 0
++idt_64: .word   0
++        .quad   0
++        #
++        # GDT & IDT stuff for switching into 32 bit protected mode.
++        #
++	.word	0,0,0
++gdt:
++        .quad   0x0000000000000000      /* NULL descriptor 0*/
++        .quad   0x0                     /* unused 0x08 */
++        .quad   0x00cf9a000000ffff      /* __KERNEL_CS 0x10 */
++        .quad   0x00cf92000000ffff      /* __KERNEL_DS 0x18 */
++        .quad   0x00cf92000000ffff
++        .quad   0x00cf92000000ffff
++        .quad   0x00cf92000000ffff
++        .quad   0x00cf9a000000ffff      /* __KERNEL32_CS 0x38*/
++        .quad   0                       /* unused */
++.end
++
+diff --git a/efi/x86_64/loader/switch.h b/efi/x86_64/loader/switch.h
+new file mode 100644
+index 0000000..b5dc39a
+--- /dev/null
++++ b/efi/x86_64/loader/switch.h
+@@ -0,0 +1,25 @@
++unsigned char switch_image[] = {
++0xfa, 0xfc, 0x0f, 0x01, 0x14, 0x25, 0x48, 0x07,
++0x00, 0x00, 0x0f, 0x01, 0x1c, 0x25, 0x58, 0x07,
++0x00, 0x00, 0xff, 0x2c, 0x25, 0x40, 0x07, 0x00,
++0x00, 0x0f, 0x20, 0xc0, 0x25, 0xff, 0xff, 0xff,
++0x7f, 0x0f, 0x22, 0xc0, 0x90, 0x90, 0xb9, 0x80,
++0x00, 0x00, 0xc0, 0x0f, 0x32, 0x25, 0xff, 0xfe,
++0xff, 0xff, 0x0f, 0x30, 0x31, 0xc0, 0x0f, 0x22,
++0xe0, 0xeb, 0x00, 0xff, 0xe3, 0x8d, 0x76, 0x00,
++0x19, 0x07, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
++0x47, 0x00, 0x68, 0x07, 0x00, 0x00, 0x00, 0x00,
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++0xff, 0xff, 0x00, 0x00, 0x00, 0x9a, 0xcf, 0x00,
++0xff, 0xff, 0x00, 0x00, 0x00, 0x92, 0xcf, 0x00,
++0xff, 0xff, 0x00, 0x00, 0x00, 0x92, 0xcf, 0x00,
++0xff, 0xff, 0x00, 0x00, 0x00, 0x92, 0xcf, 0x00,
++0xff, 0xff, 0x00, 0x00, 0x00, 0x92, 0xcf, 0x00,
++0xff, 0xff, 0x00, 0x00, 0x00, 0x9a, 0xcf, 0x00,
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++};
++int switch_size = sizeof switch_image;
+diff --git a/efi/x86_64/reloc.c b/efi/x86_64/reloc.c
+new file mode 100644
+index 0000000..b53eb63
+--- /dev/null
++++ b/efi/x86_64/reloc.c
+@@ -0,0 +1,79 @@
++/* reloc_x86_64.c - position independent x86_64 ELF shared object relocator
++   Copyright (C) 1999 Hewlett-Packard Co.
++	Contributed by David Mosberger <davidm at hpl.hp.com>.
++   Copyright (C) 2005 Intel Co.
++	Contributed by Fenghua Yu <fenghua.yu at intel.com>.
++
++   This file is part of GNU-EFI, the GNU EFI development environment.
++
++   GNU EFI is free software; you can redistribute it and/or modify
++   it under the terms of the GNU General Public License as published by
++   the Free Software Foundation; either version 2, or (at your option)
++   any later version.
++
++   GNU EFI is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU General Public License for more details.
++
++   You should have received a copy of the GNU General Public License
++   along with GNU EFI; see the file COPYING.  If not, write to the Free
++   Software Foundation, 59 Temple Place - Suite 330, Boston, MA
++   02111-1307, USA. */
++
++#include <grub/efi/efi.h>
++#include <grub/efi/api.h>
++#include <link.h>
++
++grub_efi_status_t _relocate (long ldbase, ElfW(Dyn) *dyn,
++			     grub_efi_handle_t image_handle,
++			     grub_efi_system_table_t *sys_tab)
++{
++	//extern EFI_STATUS efi_main (EFI_HANDLE, EFI_SYSTEM_TABLE *);
++	long relsz = 0, relent = 0;
++	ElfW(Rel) *rel = 0;
++	unsigned long *addr;
++	int i;
++
++	for (i = 0; dyn[i].d_tag != DT_NULL; ++i) {
++		switch (dyn[i].d_tag) {
++		      case DT_RELA:
++			rel = (ElfW(Rel)*) ((long) dyn[i].d_un.d_ptr + ldbase);
++			break;
++
++		      case DT_RELASZ:
++			relsz = dyn[i].d_un.d_val;
++			break;
++
++		      case DT_RELAENT:
++			relent = dyn[i].d_un.d_val;
++			break;
++
++		      default:
++			break;
++		}
++	}
++
++ 	if (!rel || relent == 0){
++ 		return GRUB_EFI_LOAD_ERROR;
++	}
++	while (relsz > 0) {
++		/* apply the relocs */
++		switch (ELF64_R_TYPE (rel->r_info)) {
++		      case R_X86_64_NONE:
++			break;
++
++		      case R_X86_64_RELATIVE:
++			 addr = (unsigned long *) (ldbase + rel->r_offset);
++			 *addr += ldbase;
++			      break;
++
++		      default:
++			break;
++		}
++		rel = (ElfW(Rel)*) ((char *) rel + relent);
++		relsz -= relent;
++	}
++	return GRUB_EFI_SUCCESS;
++}
++
+diff --git a/efi/x86_64/setjmp.S b/efi/x86_64/setjmp.S
+new file mode 100644
+index 0000000..e042a14
+--- /dev/null
++++ b/efi/x86_64/setjmp.S
+@@ -0,0 +1,56 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2003  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#include <grub/symbol.h>
++
++	.file	"setjmp.S"
++
++	.text
++
++/*
++ * int grub_setjmp (grub_jmp_buf env)
++ */
++FUNCTION(grub_setjmp)
++	pop	%rsi		/* Return address, and adjust the stack */
++	xor	%rax, %rax
++	movq	%rbx, 0(%rdi)	/* RBX */
++	movq	%rsp, 8(%rdi)   /* RSP */
++	push	%rsi
++	movq	%rbp, 16(%rdi)	/* RBP */
++	movq	%r12, 24(%rdi)	/* R12 */
++	movq	%r13, 32(%rdi)	/* R13 */
++	movq	%r14, 40(%rdi)	/* R14 */
++	movq	%r15, 48(%rdi)	/* R15 */
++	movq	%rsi, 56(%rdi)	/* RSI */
++	ret
++
++/*
++ * int grub_longjmp (grub_jmp_buf env, int val)
++ */
++FUNCTION(grub_longjmp)
++	movl	%esi, %eax
++	movq	(%rdi), %rbx
++	movq	8(%rdi), %rsp
++	movq	16(%rdi), %rbp
++	movq	24(%rdi), %r12
++	movq    32(%rdi), %r13
++	movq    40(%rdi), %r14
++	movq    48(%rdi), %r15
++	jmp	*56(%rdi)
++
+diff --git a/efi/xpm.c b/efi/xpm.c
+new file mode 100644
+index 0000000..085a10c
+--- /dev/null
++++ b/efi/xpm.c
+@@ -0,0 +1,231 @@
++
++#if defined(SUPPORT_GRAPHICS) || defined(PLATFORM_EFI) || 1
++
++#include <grub/efi/api.h>
++#include <grub/efi/efi.h>
++#include <grub/misc.h>
++
++#include "xpm.h"
++
++unsigned char
++xpm_get_pixel_idx(struct xpm *xpm, int x, int y)
++{
++    if (x < 0 || x >= xpm->width)
++        return -1;
++    if (y < 0 || y >= xpm->width)
++        return -1;
++    return xpm->image[x + (y * xpm->width)];
++}
++
++void
++xpm_set_pixel_idx(struct xpm *xpm, int x, int y, unsigned char idx)
++{
++    xpm->image[y * xpm->width + x] = idx;
++}
++
++void
++xpm_get_idx(struct xpm *xpm, unsigned char idx, xpm_pixel_t *pixel)
++{
++    xpm_pixel_t *xpl;
++    if (!pixel)
++        return;
++    if (idx >= xpm->colors) {
++        pixel->red = pixel->green = pixel->blue = 0;
++        return;
++    }
++    xpl = &xpm->palette[idx];
++    memcpy(pixel, xpl, sizeof (*pixel));
++//    pixel->red = xpl->red;
++//    pixel->green = xpl->green;
++//    pixel->blue = xpl->blue;
++}
++
++int
++xpm_get_pixel(struct xpm *xpm, int x, int y, xpm_pixel_t *pixel)
++{
++    unsigned char idx;
++    idx = xpm_get_pixel_idx(xpm, x, y);
++    xpm_get_idx(xpm, idx, pixel);
++    return 1;
++}
++
++static int
++hex_to_int(int v)
++{
++    if (v >= 'A' && v <= 'F')
++        return (v - 'A' + 10);
++    if (v >= 'a' && v <= 'f')
++        return (v - 'a' + 10);
++    return (v - '0');
++}
++
++struct xpm *
++xpm_open(char *path)
++{
++    char c, prev, target[]="/* XPM */\n", base;
++    char buf[32];
++    int pos = 0;
++    unsigned int i, idx, len, x, y;
++    unsigned char pal[XPM_MAX_COLORS];
++    struct xpm *xpm;
++
++    xpm = grub_malloc(sizeof (*xpm));
++    if (!xpm)
++        return NULL;
++
++    if (!grub_open(path)) {
++        grub_free(xpm);
++        grub_printf("grub_open(\"%s\") failed\n", path);
++        return NULL;
++    }
++
++    grub_memset(xpm, '\0', sizeof (*xpm));
++
++    prev = '\n';
++    c = 0;
++    do {
++        if (grub_read(&c, 1) != 1) {
++            grub_printf("grub_read() failed\n");
++            grub_free(xpm);
++            grub_close();
++            return NULL;
++        }
++        if ((pos == 0 && prev == '\n') || pos > 0) {
++            if (c == target[pos])
++                pos++;
++            else
++                pos = 0;
++        }
++        prev = c;
++    } while (target[pos]);
++
++    /* parse info */
++    while (grub_read(&c, 1)) {
++        if (c == '"')
++            break;
++    }
++    while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
++        ;
++
++    i = 0;
++    xpm->width = c - '0';
++    while (grub_read(&c, 1)) {
++        if (c >= '0' && c <= '9')
++            xpm->width = xpm->width * 10 + c - '0';
++        else
++            break;
++    }
++    if (xpm->width > XPM_MAX_WIDTH) {
++        grub_printf("xpm->width (%d) was greater than XPM_MAX_WIDTH (%d)\n",
++                xpm->width, XPM_MAX_WIDTH);
++        grub_free(xpm);
++        grub_close();
++        return NULL;
++    }
++    while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
++        ;
++
++    xpm->height = c - '0';
++    while (grub_read(&c, 1)) {
++        if (c >= '0' && c <= '9')
++            xpm->height = xpm->height * 10 + c - '0';
++        else
++            break;
++    }
++    if (xpm->height > XPM_MAX_HEIGHT) {
++        grub_printf("xpm->height (%d) was greater than XPM_MAX_HEIGHT (%d)\n",
++                xpm->height, XPM_MAX_HEIGHT);
++        grub_free(xpm);
++        grub_close();
++        return NULL;
++    }
++
++    while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
++        ;
++
++    xpm->colors = c - '0';
++    while (grub_read(&c, 1)) {
++        if (c >= '0' && c <= '9')
++            xpm->colors = xpm->colors * 10 + c - '0';
++        else
++            break;
++    }
++
++    base = 0;
++    while (grub_read(&c, 1) && c != '"')
++        ;
++
++    /* palette */
++    for (i = 0, idx = 1; i < xpm->colors; i++) {
++        len = 0;
++
++        while (grub_read(&c, 1) && c != '"')
++            ;
++        grub_read(&c, 1);       /* char */
++        base = c;
++        grub_read(buf, 4);      /* \t c # */
++
++        while (grub_read(&c, 1) && c != '"') {
++            if (len < sizeof(buf))
++                buf[len++] = c;
++        }
++
++        if (len == 6 && idx < xpm->colors) {
++            unsigned char r, g, b;
++            
++            r = (hex_to_int(buf[0]) << 4) | hex_to_int(buf[1]);
++            g = (hex_to_int(buf[2]) << 4) | hex_to_int(buf[3]);
++            b = (hex_to_int(buf[4]) << 4) | hex_to_int(buf[5]);
++
++            pal[idx] = base;
++            xpm->palette[idx].red = r;
++            xpm->palette[idx].green = g;
++            xpm->palette[idx].blue = b;
++            ++idx;
++        }
++    }
++
++    /* parse xpm data */
++    x = y = 0;
++    while (y < xpm->height) {
++        xpm_pixel_t *pixel = NULL;
++        while (1) {
++            if (!grub_read(&c, 1)) {
++                grub_printf("%s %s:%d grub_read() failed\n", __FILE__, __func__, __LINE__);
++                grub_free(xpm);
++                grub_close();
++                return NULL;
++            }
++            if (c == '"')
++                break;
++        }
++
++        while (grub_read(&c, 1) && c != '"') {
++            unsigned char *iaddr = NULL;
++            for (i = 1; i < xpm->colors; i++)
++                if (pal[i] == c) {
++                    idx = i;
++                    break;
++                }
++
++            xpm_set_pixel_idx(xpm, x, y, idx);
++           
++            if (++x >= xpm->width) {
++                x = 0;
++
++                ++y;
++            }
++        }
++    }
++    grub_close();
++    return xpm;
++}
++
++void
++xpm_free(struct xpm *xpm)
++{
++    grub_free(xpm);
++}
++
++
++#endif /* SUPPORT_GRAPHICS || PLATFORM_EFI */
+diff --git a/efi/xpm.h b/efi/xpm.h
+new file mode 100644
+index 0000000..258abc1
+--- /dev/null
++++ b/efi/xpm.h
+@@ -0,0 +1,36 @@
++#ifndef GRUB_XPM_H
++#define GRUB_XPM_H
++
++#include <shared.h>
++
++#define XPM_MAX_COLORS 31
++#define XPM_MAX_WIDTH 640
++#define XPM_MAX_HEIGHT 480
++
++struct xpm_pixel {
++    unsigned char reserved;
++    unsigned char red;
++    unsigned char green;
++    unsigned char blue;
++};
++typedef struct xpm_pixel xpm_pixel_t;
++
++struct xpm {
++    int colors;
++    xpm_pixel_t palette[32];
++
++    int width;
++    int height;
++    unsigned char image[XPM_MAX_WIDTH * XPM_MAX_HEIGHT];
++};
++
++extern struct xpm *xpm_open(char *path);
++extern void xpm_free(struct xpm *xpm);
++
++extern unsigned char xpm_get_pixel_idx(struct xpm *xpm, int x, int y);
++extern void xpm_set_pixel_idx(struct xpm *xpm, int x, int y, unsigned char idx);
++extern int xpm_get_pixel(struct xpm *xpm, int x, int y, xpm_pixel_t *pixel);
++
++extern void xpm_get_idx(struct xpm *xpm, unsigned char idx, xpm_pixel_t *pixel);
++
++#endif /* GRUB_XPM_H */
+diff --git a/grub.spec b/grub.spec
+new file mode 100644
+index 0000000..7e5982d
+--- /dev/null
++++ b/grub.spec
+@@ -0,0 +1,438 @@
++Name: grub
++Version: 0.97
++Release: 20%{?dist}
++Summary: GRUB - the Grand Unified Boot Loader.
++Group: System Environment/Base
++License: GPLv2+
++
++ExclusiveArch: i386 x86_64
++BuildRequires: binutils >= 2.9.1.0.23, ncurses-devel, ncurses-static, texinfo
++BuildRequires: autoconf /usr/lib/crt1.o automake
++PreReq: /sbin/install-info
++Requires: mktemp
++Requires: /usr/bin/cmp
++Requires: system-logos
++BuildRoot: %{_tmppath}/%{name}-%{version}-root
++
++URL: http://www.gnu.org/software/%{name}/
++Source0: ftp://alpha.gnu.org/gnu/%{name}/%{name}-%{version}.tar.gz
++Patch0: grub-fedora-9.patch
++
++%description
++GRUB (Grand Unified Boot Loader) is an experimental boot loader
++capable of booting into most free operating systems - Linux, FreeBSD,
++NetBSD, GNU Mach, and others as well as most commercial operating
++systems.
++
++%prep
++%setup -q
++%patch0 -p1 -b .fedora-9
++
++%build
++autoreconf
++autoconf
++GCCVERS=$(gcc --version | head -1 | cut -d\  -f3 | cut -d. -f1)
++CFLAGS="-Os -g -fno-strict-aliasing -Wall -Werror -Wno-shadow -Wno-unused"
++if [ "$GCCVERS" == "4" ]; then
++	CFLAGS="$CFLAGS -Wno-pointer-sign"
++fi
++export CFLAGS
++%ifarch x86_64
++%configure --sbindir=/sbin --disable-auto-linux-mem-opt --datarootdir=%{_datadir} --with-platform=efi
++make
++rm -fr $RPM_BUILD_ROOT
++%makeinstall sbindir=${RPM_BUILD_ROOT}/sbin
++mv ${RPM_BUILD_ROOT}/sbin/grub ${RPM_BUILD_ROOT}/sbin/grub-efi
++make clean
++autoreconf
++autoconf
++CFLAGS="$CFLAGS -static" 
++export CFLAGS
++%endif
++%configure --sbindir=/sbin --disable-auto-linux-mem-opt --datarootdir=%{_datadir}
++make
++
++%install
++%makeinstall sbindir=${RPM_BUILD_ROOT}/sbin
++mkdir -p ${RPM_BUILD_ROOT}/boot/grub
++
++rm -f ${RPM_BUILD_ROOT}/%{_infodir}/dir
++
++%clean
++rm -fr $RPM_BUILD_ROOT
++
++%post
++if [ "$1" = 1 ]; then
++  /sbin/install-info --info-dir=%{_infodir} %{_infodir}/grub.info.gz || :
++  /sbin/install-info --info-dir=%{_infodir} %{_infodir}/multiboot.info.gz || :
++fi
++
++%preun
++if [ "$1" = 0 ] ;then
++  /sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/grub.info.gz || :
++  /sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/multiboot.info.gz || :
++fi
++
++%files
++%defattr(-,root,root)
++%doc AUTHORS ChangeLog NEWS README COPYING TODO docs/menu.lst
++/boot/grub
++/sbin/grub
++/sbin/grub-install
++/sbin/grub-terminfo
++/sbin/grub-md5-crypt
++%{_bindir}/mbchk
++%{_infodir}/grub*
++%{_infodir}/multiboot*
++%{_mandir}/man*/*
++%{_datadir}/grub
++%ifarch x86_64
++/sbin/grub-efi
++%endif
++
++%changelog
++* Mon Nov 05 2007 Peter Jones <pjones at redhat.com> - 0.97-20
++- Add EFI support from Intel on x86_64
++
++* Thu Sep 20 2007 Peter Jones <pjones at redhat.com> - 0.97-19
++- Fix dmraid detection on Intel (isw) controllers in grub-install .
++
++* Wed Aug 22 2007 Peter Jones <pjones at redhat.com> - 0.97-18
++- Fix license tag.
++
++* Mon Aug 20 2007 Peter Jones <pjones at redhat.com> - 0.97-17
++- Use --build-id=none instead of stripping out the build-id notes in the
++  first and second stage loaders.
++
++* Tue Aug 7 2007 Peter Jones <pjones at redhat.com> - 0.97-16
++- Add ext[23] large inode support (patch from Eric Sandeen)
++- Fix auto* breakage that happened when we switched from autoreconf to autoconf
++- Move to original tarball + patch generated from git
++
++* Mon Jul 16 2007 Peter Jones <pjones at redhat.com> - 0.97-15
++- Support booting from GPT
++
++* Fri Feb 23 2007 Bill Nottingham <notting at redhat.com> - 0.97-14
++- fix scriplet errors when installed with --nodocs
++- coax grub into building (-ltinfo, autoconf instead of autoreconf)
++
++* Sun Oct 01 2006 Jesse Keating <jkeating at redhat.com> - 0.97-13
++- rebuilt for unwind info generation, broken in gcc-4.1.1-21
++
++* Thu Sep 21 2006 Peter Jones <pjones at redhat.com> - 0.97-12
++- Reenable patch 505, which fixes #116311
++
++* Tue Aug 15 2006 Peter Jones <pjones at redhat.com> - 0.97-11
++- Disable patch 505 (#164497)
++
++* Wed Aug  2 2006 Peter Jones <pjones at redhat.com> - 0.97-10
++- Fix grub-install for multipath
++
++* Wed Jul 12 2006 Jesse Keating <jkeating at redhat.com> - 0.97-9.1
++- rebuild
++
++* Fri Jul  7 2006 Peter Jones <pjones at redhat.com> - 0.97-9
++- fix broken error reporting from helper functions
++
++* Mon Jun 12 2006 Peter Jones <pjones at redhat.com> - 0.97-8
++- Fix BIOS keyboard handler to use extended keyboard interrupts, so the
++  Mac Mini works.
++
++* Mon Jun  5 2006 Jesse Keating <jkeating at redhat.com> - 0.97-7
++- Added BuildRequires on a 32bit library
++
++* Sat May 27 2006 Peter Jones <pjones at redhat.com> - 0.97-6
++- Fix mactel keyboard problems, patch from Juergen Keil, forwarded by Linus.
++
++* Mon Mar 13 2006 Peter Jones <pjones at redhat.com> - 0.97-5
++- Fix merge error for "bootonce" patch (broken in 0.95->0.97 update)
++- Get rid of the 0.97 "default" stuff, since it conflicts with our working
++  method.
++
++* Mon Mar  9 2006 Peter Jones <pjones at redhat.com> - 0.97-4
++- Fix running "install" multiple times on the same fs in the same invocation
++  of grub.  (bz #158426 , patch from lxo at redhat.com)
++
++* Mon Feb 13 2006 Peter Jones <pjones at redhat.com> - 0.97-3
++- fix partition names on dmraid
++
++* Tue Feb 07 2006 Jesse Keating <jkeating at redhat.com> - 0.97-2.1
++- rebuilt for new gcc4.1 snapshot and glibc changes
++
++* Fri Jan 13 2006 Peter Jones <pjones at redhat.com> - 0.97-2
++- add dmraid support
++
++* Wed Dec 14 2005 Peter Jones <pjones at redhat.com> - 0.97-1
++- update to grub 0.97
++
++* Mon Dec  5 2005 Peter Jones <pjones at redhat.com> - 0.95-17
++- fix configure conftest.c bugs
++- add -Wno-unused to defeat gcc41 "unused" checking when there are aliases.
++
++* Mon Aug  1 2005 Peter Jones <pjones at redhat.com> - 0.95-16
++- minor fix to the --recheck fix.
++
++* Mon Jul 25 2005 Peter Jones <pjones at redhat.com> 0.95-15
++- Make "grub-install --recheck" warn the user about how bad it is,
++  and keep a backup file, which it reverts to upon detecting some errors.
++
++* Wed Jul  6 2005 Peter Jones <pjones at redhat.com> 0.95-14
++- Fix changelog to be UTF-8
++
++* Thu May 19 2005 Peter Jones <pjones at redhat.com> 0.95-13
++- Make the spec work with gcc3 and gcc4, so people can test on existing
++  installations.
++- don't treat i2o like a cciss device, since its partition names aren't done
++  that way. (#158158)
++
++* Wed Mar 16 2005 Peter Jones <pjones at redhat.com> 0.95-12
++- Make installing on a partition work again when not using raid
++
++* Thu Mar  3 2005 Peter Jones <pjones at redhat.com> 0.95-11
++- Make it build with gcc4
++
++* Sun Feb 20 2005 Peter Jones <pjones at redhat.com> 0.95-10
++- Always install in MBR for raid1 /boot/
++
++* Sun Feb 20 2005 Peter Jones <pjones at redhat.com> 0.95-9
++- Always use full path for mdadm in grub-install
++
++* Tue Feb  8 2005 Peter Jones <pjones at redhat.com> 0.95-8
++- Mark the simulation stack executable
++- Eliminate the use of inline functions in stage2/builtins.c
++
++* Wed Jan 11 2005 Peter Jones <pjones at redhat.com> 0.95-7
++- Make grub ignore everything before the XPM header in the splash image,
++  fixing #143879
++- If the boot splash image is missing, use console mode instead 
++  of graphics mode.
++- Don't print out errors using the graphics terminal code if we're not
++  actually in graphics mode.
++
++* Mon Jan  3 2005 Peter Jones <pjones at redhat.com> 0.95-6
++- reworked much of how the RAID1 support in grub-install works.  This version
++  does not require all the devices in the raid to be listed in device.map,
++  as long as you specify a physical device or partition rather than an md
++  device.  It should also work with a windows dual-boot on the first partition.
++
++* Fri Dec 17 2004 Peter Jones <pjones at redhat.com> 0.95-5
++- added support for RAID1 devices to grub-install, partly based on a
++  patch from David Knierim. (#114690)
++
++* Tue Nov 30 2004 Jeremy Katz <katzj at redhat.com> 0.95-4
++- add patch from upstream CVS to handle sparse files on ext[23]
++- make geometry detection a little bit more robust/correct
++- use O_DIRECT when reading/writing from devices.  use aligned buffers as 
++  needed for read/write (#125808)
++- actually apply the i2o patch
++- detect cciss/cpqarray devices better (#123249)
++
++* Thu Sep 30 2004 Jeremy Katz <katzj at redhat.com> - 0.95-3
++- don't act on the keypress for the menu (#134029)
++
++* Mon Jun 28 2004 Jeremy Katz <katzj at redhat.com> - 0.95-2
++- add patch from Nicholas Miell to make hiddenmenu work more 
++  nicely with splashimage mode (#126764)
++
++* Fri Jun 18 2004 Jeremy Katz <katzj at redhat.com> - 0.95-1
++- update to 0.95
++- drop emd patch, E-MD isn't making forward progress upstream
++- fix static build for x86_64 (#121095)
++
++* Tue Jun 15 2004 Elliot Lee <sopwith at redhat.com>
++- rebuilt
++
++* Wed Jun  9 2004 Jeremy Katz <katzj at redhat.com>
++- require system-logos (#120837)
++
++* Fri Jun  4 2004 Jeremy Katz <katzj at redhat.com>
++- buildrequire automake (#125326)
++
++* Thu May 06 2004 Warren Togami <wtogami at redhat.com> - 0.94-5
++- i2o patch from Markus Lidel
++
++* Wed Apr 14 2004 Jeremy Katz <katzj at redhat.com> - 0.94-4
++- read geometry off of the disk since HDIO_GETGEO doesn't actually 
++  return correct data with a 2.6 kernel
++
++* Fri Mar 12 2004 Jeremy Katz <katzj at redhat.com>
++- add texinfo buildrequires (#118146)
++
++* Wed Feb 25 2004 Jeremy Katz <katzj at redhat.com> 0.94-3
++- don't use initrd_max_address
++
++* Fri Feb 13 2004 Elliot Lee <sopwith at redhat.com> 0.94-2
++- rebuilt
++
++* Thu Feb 12 2004 Jeremy Katz <katzj at redhat.com> 0.94-1
++- update to 0.94, patch merging and updating as necessary
++
++* Sat Jan  3 2004 Jeremy Katz <katzj at redhat.com> 0.93-8
++- new bootonce patch from Padraig Brady so that you don't lose 
++  the old default (#112775)
++
++* Mon Nov 24 2003 Jeremy Katz <katzj at redhat.com>
++- add ncurses-devel as a buildrequires (#110732)
++
++* Tue Oct 14 2003 Jeremy Katz <katzj at redhat.com> 0.93-7
++- rebuild
++
++* Wed Jul  2 2003 Jeremy Katz <katzj at redhat.com> 
++- Requires: /usr/bin/cmp (#98325)
++
++* Thu May 22 2003 Jeremy Katz <katzj at redhat.com> 0.93-6
++- add patch from upstream to fix build with gcc 3.3
++
++* Wed Apr  2 2003 Jeremy Katz <katzj at redhat.com> 0.93-5
++- add patch to fix support for serial terminfo (#85595)
++
++* Wed Jan 22 2003 Tim Powers <timp at redhat.com>
++- rebuilt
++
++* Fri Jan 17 2003 Jeremy Katz <katzj at redhat.com> 0.93-3
++- add patch from HJ Lu to support large disks (#80980, #63848)
++- add patch to make message when ending edit clearer (#53846)
++
++* Sun Dec 29 2002 Jeremy Katz <katzj at redhat.com> 0.93-2
++- add a patch to reset the terminal type to console before doing 'boot' from
++  the command line (#61069)
++
++* Sat Dec 28 2002 Jeremy Katz <katzj at redhat.com> 0.93-1
++- update to 0.93
++- update configfile patch
++- graphics patch rework to fit in as a terminal type as present in 0.93
++- use CFLAGS="-Os -g"
++- patch configure.in to allow building if host_cpu=x86_64, include -m32 in
++  CFLAGS if building on x86_64
++- link glibc static on x86_64 to not require glibc32
++- include multiboot info pages
++- drop obsolete patches, reorder remaining patches into some semblance of order
++
++* Thu Sep  5 2002 Jeremy Katz <katzj at redhat.com> 0.92-7
++- splashscreen is in redhat-logos now
++
++* Tue Sep  3 2002 Jeremy Katz <katzj at redhat.com> 0.92-6
++- update splashscreen again
++
++* Mon Sep  2 2002 Jeremy Katz <katzj at redhat.com> 0.92-5
++- update splashscreen
++
++* Fri Jun 21 2002 Tim Powers <timp at redhat.com> 0.92-4
++- automated rebuild
++
++* Thu May 23 2002 Tim Powers <timp at redhat.com> 0.92-3
++- automated rebuild
++
++* Fri May  3 2002 Jeremy Katz <katzj at redhat.com> 0.92-2
++- add patch from Grant Edwards to make vga16 + serial happier (#63491)
++
++* Wed May  1 2002 Jeremy Katz <katzj at redhat.com> 0.92-1
++- update to 0.92
++- back to autoreconf
++- make it work with automake 1.6/autoconf 2.53
++- use "-falign-jumps=1 -falign-loops=1 -falign-functions=1" instead of
++  "-malign-jumps=1 -malign-loops=1 -malign-functions=1"	to not use 
++  deprecated gcc options
++
++* Tue Apr  9 2002 Jeremy Katz <katzj at redhat.com> 0.91-4
++- new splash screen
++
++* Fri Mar  8 2002 Jeremy Katz <katzj at redhat.com> 0.91-3
++- include patch from Denis Kitzmen to fix typo causing several options to 
++  never be defined (in upstream CVS)
++- include patch from upstream CVS to make displaymem always use hex for 
++  consistency
++- add patch from GRUB mailing list from Keir Fraser to add a --once flag to
++  savedefault function so that you can have the equivalent of lilo -R 
++  functionality (use 'savedefault --default=N --once' from the grub shell)
++- back to autoconf
++
++* Sun Jan 27 2002 Jeremy Katz <katzj at redhat.com> 
++- change to use $grubdir instead of /boot/grub in the symlink patch (#58771)
++
++* Fri Jan 25 2002 Jeremy Katz <katzj at redhat.com> 0.91-2
++- don't ifdef out the auto memory passing, use the configure flag instead
++- add a patch so that grub respects mem= from the kernel command line when 
++  deciding where to place the initrd (#52558)
++
++* Mon Jan 21 2002 Jeremy Katz <katzj at redhat.com> 0.91-1
++- update to 0.91 final
++- add documentation on splashimage param (#51609)
++
++* Wed Jan  2 2002 Jeremy Katz <katzj at redhat.com> 0.91-0.20020102cvs
++- update to current CVS snapshot to fix some of the hangs on boot related
++  to LBA probing (#57503, #55868, and others)
++
++* Fri Dec 21 2001 Erik Troan <ewt at redhat.com> 0.90-14
++- fixed append patch to not require arguments to begin with
++- changed to autoreconf from autoconf
++
++* Wed Oct 31 2001 Jeremy Katz <katzj at redhat.com> 0.90-13
++- include additional patch from Erich to add sync calls in grub-install to 
++  work around updated images not being synced to disk
++- fix segfault in grub shell if 'password --md5' is used without specifying
++  a password (#55008)
++
++* Fri Oct 26 2001 Jeremy Katz <katzj at redhat.com> 0.90-12
++- Include Erich Boleyn <erich at uruk.org>'s patch to disconnect from the 
++  BIOS after APM operations.  Should fix #54375
++
++* Wed Sep 12 2001 Erik Troan <ewt at redhat.com>
++- added patch for 'a' option in grub boot menu
++
++* Wed Sep  5 2001 Jeremy Katz <katzj at redhat.com> 0.90-11
++- grub-install: if /boot/grub/grub.conf doesn't exist but /boot/grub/menu.lst 
++  does, create a symlink
++
++* Fri Aug 24 2001 Jeremy Katz <katzj at redhat.com>
++- pull in patch from upstream CVS to fix md5crypt in grub shell (#52220)
++- use mktemp in grub-install to avoid tmp races
++
++* Fri Aug  3 2001 Jeremy Katz <katzj at redhat.com>
++- link curses statically (#49519)
++
++* Thu Aug  2 2001 Jeremy Katz <katzj at redhat.com>
++- fix segfault with using the serial device before initialization (#50219)
++
++* Thu Jul 19 2001 Jeremy Katz <katzj at redhat.com>
++- add --copy-only flag to grub-install
++
++* Thu Jul 19 2001 Jeremy Katz <katzj at redhat.com>
++- copy files in grub-install prior to device probe
++
++* Thu Jul 19 2001 Jeremy Katz <katzj at redhat.com>
++- original images don't go in /boot and then grub-install does the right
++  thing
++
++* Thu Jul 19 2001 Jeremy Katz <katzj at redhat.com>
++- fix the previous patch
++- put the password prompt in the proper location
++
++* Thu Jul 19 2001 Jeremy Katz <katzj at redhat.com>
++- reset the screen when the countdown is cancelled so text will disappear 
++  in vga16 mode
++
++* Mon Jul 16 2001 Jeremy Katz <katzj at redhat.com>
++- change configfile defaults to grub.conf
++
++* Sun Jul 15 2001 Jeremy Katz <katzj at redhat.com>
++- updated to grub 0.90 final
++
++* Fri Jul  6 2001 Matt Wilson <msw at redhat.com>
++- modifed splash screen to a nice shade of blue
++
++* Tue Jul  3 2001 Matt Wilson <msw at redhat.com>
++- added a first cut at a splash screen
++
++* Sun Jul  1 2001 Nalin Dahyabhai <nalin at redhat.com>
++- fix datadir mismatch between build and install phases
++
++* Mon Jun 25 2001 Jeremy Katz <katzj at redhat.com>
++- update to current CVS 
++- forward port VGA16 patch from Paulo César Pereira de 
++  Andrade <pcpa at conectiva.com.br>
++- add patch for cciss, ida, and rd raid controllers
++- don't pass mem= to the kernel
++
++* Wed May 23 2001 Erik Troan <ewt at redhat.com>
++- initial build for Red Hat
+diff --git a/grub/.gitignore b/grub/.gitignore
+new file mode 100644
+index 0000000..5d89f6d
+--- /dev/null
++++ b/grub/.gitignore
+@@ -0,0 +1,2 @@
++Makefile.in
++.deps
+diff --git a/grub/Makefile.am b/grub/Makefile.am
+index 7eb2eaa..c569174 100644
+--- a/grub/Makefile.am
++++ b/grub/Makefile.am
+@@ -8,12 +8,12 @@ endif
+ 
+ AM_CPPFLAGS = -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \
+ 	-DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \
+-	-DFSYS_UFS2=1 -DFSYS_VSTAFS=1 -DFSYS_XFS=1 \
++	-DFSYS_UFS2=1 -DFSYS_VSTAFS=1 -DFSYS_XFS=1 -DFSYS_BTRFS=1 \
+ 	-DUSE_MD5_PASSWORDS=1 -DSUPPORT_HERCULES=1 \
+ 	$(SERIAL_FLAGS) -I$(top_srcdir)/stage2 \
+ 	-I$(top_srcdir)/stage1 -I$(top_srcdir)/lib
+ 
+ AM_CFLAGS = $(GRUB_CFLAGS)
+ 
+-grub_SOURCES = main.c asmstub.c
++grub_SOURCES = main.c asmstub.c efitftp.c
+ grub_LDADD = ../stage2/libgrub.a  ../lib/libcommon.a $(GRUB_LIBS)
+diff --git a/grub/Makefile.in b/grub/Makefile.in
+index 136c38f..0e40e1b 100644
+--- a/grub/Makefile.in
++++ b/grub/Makefile.in
+@@ -1,8 +1,8 @@
+-# Makefile.in generated by automake 1.9.4 from Makefile.am.
++# Makefile.in generated by automake 1.10 from Makefile.am.
+ # @configure_input@
+ 
+ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+-# 2003, 2004  Free Software Foundation, Inc.
++# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+@@ -14,17 +14,11 @@
+ 
+ @SET_MAKE@
+ 
+-SOURCES = $(grub_SOURCES)
+-
+-srcdir = @srcdir@
+-top_srcdir = @top_srcdir@
+ VPATH = @srcdir@
+ pkgdatadir = $(datadir)/@PACKAGE@
+ pkglibdir = $(libdir)/@PACKAGE@
+ pkgincludedir = $(includedir)/@PACKAGE@
+-top_builddir = ..
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+-INSTALL = @INSTALL@
+ install_sh_DATA = $(install_sh) -c -m 644
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+@@ -43,7 +37,7 @@ subdir = grub
+ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+-	$(top_srcdir)/configure.ac
++	$(top_srcdir)/configure.in
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+@@ -57,7 +51,7 @@ grub_OBJECTS = $(am_grub_OBJECTS)
+ am__DEPENDENCIES_1 =
+ grub_DEPENDENCIES = ../stage2/libgrub.a ../lib/libcommon.a \
+ 	$(am__DEPENDENCIES_1)
+-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
++DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
+ depcomp = $(SHELL) $(top_srcdir)/depcomp
+ am__depfiles_maybe = depfiles
+ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+@@ -70,17 +64,14 @@ ETAGS = etags
+ CTAGS = ctags
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ ACLOCAL = @ACLOCAL@
+-AMDEP_FALSE = @AMDEP_FALSE@
+-AMDEP_TRUE = @AMDEP_TRUE@
+ AMTAR = @AMTAR@
+ AUTOCONF = @AUTOCONF@
+ AUTOHEADER = @AUTOHEADER@
+ AUTOMAKE = @AUTOMAKE@
+ AWK = @AWK@
+-BUILD_EXAMPLE_KERNEL_FALSE = @BUILD_EXAMPLE_KERNEL_FALSE@
+-BUILD_EXAMPLE_KERNEL_TRUE = @BUILD_EXAMPLE_KERNEL_TRUE@
+ CC = @CC@
+ CCAS = @CCAS@
++CCASDEPMODE = @CCASDEPMODE@
+ CCASFLAGS = @CCASFLAGS@
+ CCDEPMODE = @CCDEPMODE@
+ CFLAGS = @CFLAGS@
+@@ -89,18 +80,16 @@ CPPFLAGS = @CPPFLAGS@
+ CYGPATH_W = @CYGPATH_W@
+ DEFS = @DEFS@
+ DEPDIR = @DEPDIR@
+-DISKLESS_SUPPORT_FALSE = @DISKLESS_SUPPORT_FALSE@
+-DISKLESS_SUPPORT_TRUE = @DISKLESS_SUPPORT_TRUE@
+ ECHO_C = @ECHO_C@
+ ECHO_N = @ECHO_N@
+ ECHO_T = @ECHO_T@
+ EGREP = @EGREP@
+ EXEEXT = @EXEEXT@
+ FSYS_CFLAGS = @FSYS_CFLAGS@
++GREP = @GREP@
+ GRUB_CFLAGS = @GRUB_CFLAGS@
+ GRUB_LIBS = @GRUB_LIBS@
+-HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@
+-HERCULES_SUPPORT_TRUE = @HERCULES_SUPPORT_TRUE@
++INSTALL = @INSTALL@
+ INSTALL_DATA = @INSTALL_DATA@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+@@ -108,14 +97,12 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
++LOADER_LDFLAGS = @LOADER_LDFLAGS@
+ LTLIBOBJS = @LTLIBOBJS@
+ MAINT = @MAINT@
+-MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+-MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+ MAKEINFO = @MAKEINFO@
++MKDIR_P = @MKDIR_P@
+ NETBOOT_DRIVERS = @NETBOOT_DRIVERS@
+-NETBOOT_SUPPORT_FALSE = @NETBOOT_SUPPORT_FALSE@
+-NETBOOT_SUPPORT_TRUE = @NETBOOT_SUPPORT_TRUE@
+ NET_CFLAGS = @NET_CFLAGS@
+ NET_EXTRAFLAGS = @NET_EXTRAFLAGS@
+ OBJCOPY = @OBJCOPY@
+@@ -129,22 +116,17 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
+ PATH_SEPARATOR = @PATH_SEPARATOR@
+ PERL = @PERL@
+ RANLIB = @RANLIB@
+-SERIAL_SPEED_SIMULATION_FALSE = @SERIAL_SPEED_SIMULATION_FALSE@
+-SERIAL_SPEED_SIMULATION_TRUE = @SERIAL_SPEED_SIMULATION_TRUE@
+-SERIAL_SUPPORT_FALSE = @SERIAL_SUPPORT_FALSE@
+-SERIAL_SUPPORT_TRUE = @SERIAL_SUPPORT_TRUE@
+ SET_MAKE = @SET_MAKE@
+ SHELL = @SHELL@
+ STAGE1_CFLAGS = @STAGE1_CFLAGS@
+ STAGE2_CFLAGS = @STAGE2_CFLAGS@
+ STRIP = @STRIP@
+ VERSION = @VERSION@
++abs_builddir = @abs_builddir@
++abs_srcdir = @abs_srcdir@
++abs_top_builddir = @abs_top_builddir@
++abs_top_srcdir = @abs_top_srcdir@
+ ac_ct_CC = @ac_ct_CC@
+-ac_ct_OBJCOPY = @ac_ct_OBJCOPY@
+-ac_ct_RANLIB = @ac_ct_RANLIB@
+-ac_ct_STRIP = @ac_ct_STRIP@
+-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+ am__include = @am__include@
+ am__leading_dot = @am__leading_dot@
+ am__quote = @am__quote@
+@@ -156,28 +138,39 @@ build_alias = @build_alias@
+ build_cpu = @build_cpu@
+ build_os = @build_os@
+ build_vendor = @build_vendor@
++builddir = @builddir@
+ datadir = @datadir@
++datarootdir = @datarootdir@
++docdir = @docdir@
++dvidir = @dvidir@
+ exec_prefix = @exec_prefix@
+ host = @host@
+ host_alias = @host_alias@
+ host_cpu = @host_cpu@
+ host_os = @host_os@
+ host_vendor = @host_vendor@
++htmldir = @htmldir@
+ includedir = @includedir@
+ infodir = @infodir@
+ install_sh = @install_sh@
+ libdir = @libdir@
+ libexecdir = @libexecdir@
++localedir = @localedir@
+ localstatedir = @localstatedir@
+ mandir = @mandir@
+ mkdir_p = @mkdir_p@
+ oldincludedir = @oldincludedir@
++pdfdir = @pdfdir@
+ prefix = @prefix@
+ program_transform_name = @program_transform_name@
++psdir = @psdir@
+ sbindir = @sbindir@
+ sharedstatedir = @sharedstatedir@
++srcdir = @srcdir@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
++top_builddir = @top_builddir@
++top_srcdir = @top_srcdir@
+ @SERIAL_SPEED_SIMULATION_FALSE at SERIAL_FLAGS = -DSUPPORT_SERIAL=1 
+ @SERIAL_SPEED_SIMULATION_TRUE at SERIAL_FLAGS = -DSUPPORT_SERIAL=1 -DSIMULATE_SLOWNESS_OF_SERIAL=1
+ AM_CPPFLAGS = -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \
+@@ -225,7 +218,7 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ install-sbinPROGRAMS: $(sbin_PROGRAMS)
+ 	@$(NORMAL_INSTALL)
+-	test -z "$(sbindir)" || $(mkdir_p) "$(DESTDIR)$(sbindir)"
++	test -z "$(sbindir)" || $(MKDIR_P) "$(DESTDIR)$(sbindir)"
+ 	@list='$(sbin_PROGRAMS)'; for p in $$list; do \
+ 	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ 	  if test -f $$p \
+@@ -248,7 +241,7 @@ clean-sbinPROGRAMS:
+ 	-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
+ grub$(EXEEXT): $(grub_OBJECTS) $(grub_DEPENDENCIES) 
+ 	@rm -f grub$(EXEEXT)
+-	$(LINK) $(grub_LDFLAGS) $(grub_OBJECTS) $(grub_LDADD) $(LIBS)
++	$(LINK) $(grub_OBJECTS) $(grub_LDADD) $(LIBS)
+ 
+ mostlyclean-compile:
+ 	-rm -f *.$(OBJEXT)
+@@ -260,19 +253,18 @@ distclean-compile:
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/main.Po at am__quote@
+ 
+ .c.o:
+- at am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(COMPILE) -c $<
+ 
+ .c.obj:
+- at am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+-uninstall-info-am:
+ 
+ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+@@ -323,22 +315,21 @@ distclean-tags:
+ 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+ 
+ distdir: $(DISTFILES)
+-	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+-	list='$(DISTFILES)'; for file in $$list; do \
+-	  case $$file in \
+-	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+-	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+-	  esac; \
++	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
++	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
++	list='$(DISTFILES)'; \
++	  dist_files=`for file in $$list; do echo $$file; done | \
++	  sed -e "s|^$$srcdirstrip/||;t" \
++	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
++	case $$dist_files in \
++	  */*) $(MKDIR_P) `echo "$$dist_files" | \
++			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
++			   sort -u` ;; \
++	esac; \
++	for file in $$dist_files; do \
+ 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+-	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+-	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+-	    dir="/$$dir"; \
+-	    $(mkdir_p) "$(distdir)$$dir"; \
+-	  else \
+-	    dir=''; \
+-	  fi; \
+ 	  if test -d $$d/$$file; then \
++	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ 	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ 	    fi; \
+@@ -354,7 +345,7 @@ check: check-am
+ all-am: Makefile $(PROGRAMS)
+ installdirs:
+ 	for dir in "$(DESTDIR)$(sbindir)"; do \
+-	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
++	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ 	done
+ install: install-am
+ install-exec: install-exec-am
+@@ -402,12 +393,20 @@ info-am:
+ 
+ install-data-am:
+ 
++install-dvi: install-dvi-am
++
+ install-exec-am: install-sbinPROGRAMS
+ 
++install-html: install-html-am
++
+ install-info: install-info-am
+ 
+ install-man:
+ 
++install-pdf: install-pdf-am
++
++install-ps: install-ps-am
++
+ installcheck-am:
+ 
+ maintainer-clean: maintainer-clean-am
+@@ -427,18 +426,22 @@ ps: ps-am
+ 
+ ps-am:
+ 
+-uninstall-am: uninstall-info-am uninstall-sbinPROGRAMS
++uninstall-am: uninstall-sbinPROGRAMS
++
++.MAKE: install-am install-strip
+ 
+ .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ 	clean-sbinPROGRAMS ctags distclean distclean-compile \
+ 	distclean-generic distclean-tags distdir dvi dvi-am html \
+ 	html-am info info-am install install-am install-data \
+-	install-data-am install-exec install-exec-am install-info \
+-	install-info-am install-man install-sbinPROGRAMS install-strip \
++	install-data-am install-dvi install-dvi-am install-exec \
++	install-exec-am install-html install-html-am install-info \
++	install-info-am install-man install-pdf install-pdf-am \
++	install-ps install-ps-am install-sbinPROGRAMS install-strip \
+ 	installcheck installcheck-am installdirs maintainer-clean \
+ 	maintainer-clean-generic mostlyclean mostlyclean-compile \
+ 	mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
+-	uninstall-am uninstall-info-am uninstall-sbinPROGRAMS
++	uninstall-am uninstall-sbinPROGRAMS
+ 
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+diff --git a/grub/asmstub.c b/grub/asmstub.c
+index ab95b4b..818be75 100644
+--- a/grub/asmstub.c
++++ b/grub/asmstub.c
+@@ -42,6 +42,7 @@ int grub_stage2 (void);
+ #include <sys/time.h>
+ #include <termios.h>
+ #include <signal.h>
++#include <sys/mman.h>
+ 
+ #ifdef __linux__
+ # include <sys/ioctl.h>		/* ioctl */
+@@ -53,6 +54,9 @@ int grub_stage2 (void);
+ # ifndef BLKFLSBUF
+ #  define BLKFLSBUF	_IO (0x12,97)	/* flush buffer cache */
+ # endif /* ! BLKFLSBUF */
++# ifndef O_DIRECT
++#   define O_DIRECT 040000
++# endif /* ! O_DIRECT */
+ #endif /* __linux__ */
+ 
+ /* We want to prevent any circularararity in our stubs, as well as
+@@ -71,7 +75,7 @@ unsigned long install_partition = 0x20000;
+ unsigned long boot_drive = 0;
+ int saved_entryno = 0;
+ char version_string[] = VERSION;
+-char config_file[128] = "/boot/grub/menu.lst"; /* FIXME: arbitrary */
++char config_file[128] = "/boot/grub/grub.conf"; /* FIXME: arbitrary */
+ unsigned long linux_text_len = 0;
+ char *linux_data_tmp_addr = 0;
+ char *linux_data_real_addr = 0;
+@@ -79,7 +83,7 @@ unsigned short io_map[IO_MAP_SIZE];
+ struct apm_info apm_bios_info;
+ 
+ /* Emulation requirements. */
+-char *grub_scratch_mem = 0;
++void *grub_scratch_mem = 0;
+ 
+ struct geometry *disks = 0;
+ 
+@@ -103,14 +107,73 @@ static char *serial_device = 0;
+ static unsigned int serial_speed;
+ #endif /* SIMULATE_SLOWNESS_OF_SERIAL */
+ 
++#ifdef GRUB_UTIL
++int get_sector_size (int drive)
++{
++  return 0x200;
++}
++int get_sector_bits (int drive)
++{
++  return 9;
++}
++#endif /* GRUB_UTIL */
++
++/* This allocates page-aligned storage of the specified size, which must be
++ * a multiple of the page size as determined by calling sysconf(_SC_PAGESIZE)
++ */
++#ifdef __linux__
++static void *
++grub_mmap_alloc(size_t len)
++{
++  int mmap_flags = MAP_ANONYMOUS|MAP_PRIVATE|MAP_EXECUTABLE;
++
++#ifdef MAP_32BIT
++  mmap_flags |= MAP_32BIT;
++#endif
++  /* Mark the simulated stack executable, as GCC uses stack trampolines
++   * to implement nested functions. */
++  return mmap(NULL, len, PROT_READ|PROT_WRITE|PROT_EXEC, mmap_flags, -1, 0);
++}
++#else /* !defined(__linux__) */
++static void *
++grub_mmap_alloc(size_t len)
++{
++  int fd = 0, offset = 0, ret = 0;
++  void *pa = MAP_FAILED; 
++  char template[] = "/tmp/grub_mmap_alloc_XXXXXX";
++  errno_t e;
++
++  fd = mkstemp(template);
++  if (fd < 0)
++    return pa;
++
++  unlink(template);
++
++  ret = ftruncate(fd, len);
++  if (ret < 0)
++    return pa;
++
++  /* Mark the simulated stack executable, as GCC uses stack trampolines
++   * to implement nested functions. */
++  pa = mmap(NULL, len, PROT_READ|PROT_WRITE|PROT_EXEC,
++                  MAP_PRIVATE|MAP_EXECUTABLE, fd, offset);
++
++  e = errno;
++  close(fd);
++  errno = e;
++  return pa;
++}
++#endif /* defined(__linux__) */
++
+ /* The main entry point into this mess. */
+ int
+ grub_stage2 (void)
+ {
+   /* These need to be static, because they survive our stack transitions. */
+   static int status = 0;
+-  static char *realstack;
+-  char *scratch, *simstack;
++  static void *realstack;
++  void *simstack_alloc_base, *simstack;
++  size_t simstack_size, page_size;
+   int i;
+ 
+   auto void doit (void);
+@@ -120,8 +183,13 @@ grub_stage2 (void)
+   void doit (void)
+     {
+       /* Make sure our stack lives in the simulated memory area. */
++#ifdef __x86_64
++      asm volatile ("movq %%rsp, %0\n\tmovq %1, %%rsp\n"
++		    : "=&r" (realstack) : "r" (simstack));
++#else
+       asm volatile ("movl %%esp, %0\n\tmovl %1, %%esp\n"
+ 		    : "=&r" (realstack) : "r" (simstack));
++#endif
+       
+       /* Do a setjmp here for the stop command.  */
+       if (! setjmp (env_for_exit))
+@@ -138,13 +206,43 @@ grub_stage2 (void)
+ 	}
+       
+       /* Replace our stack before we use any local variables. */
++#ifdef __x86_64
++      asm volatile ("movq %0, %%rsp\n" : : "r" (realstack));
++#else
+       asm volatile ("movl %0, %%esp\n" : : "r" (realstack));
++#endif
+     }
+ 
+   assert (grub_scratch_mem == 0);
+-  scratch = malloc (0x100000 + EXTENDED_MEMSIZE + 15);
+-  assert (scratch);
+-  grub_scratch_mem = (char *) ((((int) scratch) >> 4) << 4);
++
++  /* Allocate enough pages for 0x100000 + EXTENDED_SIZE + 15, and
++   * make sure the memory is aligned to a multiple of the system's
++   * page size */
++  page_size = sysconf (_SC_PAGESIZE);
++  simstack_size = ( 0x100000 + EXTENDED_MEMSIZE + 15);
++  if (simstack_size % page_size)
++    {
++      /* If we're not on a page_size boundary, round up to the next one */
++      simstack_size &= ~(page_size-1);
++      simstack_size += page_size;
++    }
++
++  /* Add one for a PROT_NONE boundary page at each end. */
++  simstack_size += 2 * page_size;
++
++  simstack_alloc_base = grub_mmap_alloc(simstack_size);
++  assert (simstack_alloc_base != MAP_FAILED);
++
++  /* mark pages above and below our simstack area as innaccessable.
++   * If the implementation we're using doesn't support that, then the
++   * new protection modes are undefined.  It's safe to just ignore
++   * them, though.  It'd be nice if we knew that we'd get a SEGV for
++   * touching the area, but that's all.  it'd be nice to have. */
++  mprotect (simstack_alloc_base, page_size, PROT_NONE);
++  mprotect ((void *)((unsigned long)simstack_alloc_base +
++			  simstack_size - page_size),  page_size, PROT_NONE);
++
++  grub_scratch_mem = (void *)((unsigned long)simstack_alloc_base + page_size);
+ 
+   /* FIXME: simulate the memory holes using mprot, if available. */
+ 
+@@ -217,7 +315,7 @@ grub_stage2 (void)
+   device_map = 0;
+   free (disks);
+   disks = 0;
+-  free (scratch);
++  munmap(simstack_alloc_base, simstack_size);
+   grub_scratch_mem = 0;
+ 
+   if (serial_device)
+@@ -699,6 +797,13 @@ console_getkey (void)
+   return console_translate_key (c);
+ }
+ 
++/* returns modifier status */
++int
++console_keystatus (void)
++{
++  return 0;
++}
++
+ /* returns packed values, LSB+1 is x, LSB is y */
+ int
+ console_getxy (void)
+@@ -766,7 +871,7 @@ get_diskinfo (int drive, struct geometry *geometry)
+     {
+       /* The unpartitioned device name: /dev/XdX */
+       char *devname = device_map[drive];
+-      char buf[512];
++      char * buf, * buf_unaligned;
+ 
+       if (! devname)
+ 	return -1;
+@@ -777,13 +882,13 @@ get_diskinfo (int drive, struct geometry *geometry)
+ 
+       /* Open read/write, or read-only if that failed. */
+       if (! read_only)
+-	disks[drive].flags = open (devname, O_RDWR);
++	disks[drive].flags = open (devname, O_RDWR | O_DIRECT);
+ 
+       if (disks[drive].flags == -1)
+ 	{
+ 	  if (read_only || errno == EACCES || errno == EROFS || errno == EPERM)
+ 	    {
+-	      disks[drive].flags = open (devname, O_RDONLY);
++	      disks[drive].flags = open (devname, O_RDONLY | O_DIRECT);
+ 	      if (disks[drive].flags == -1)
+ 		{
+ 		  assign_device_name (drive, 0);
+@@ -797,6 +902,10 @@ get_diskinfo (int drive, struct geometry *geometry)
+ 	    }
+ 	}
+ 
++      buf_unaligned = malloc((512 * sizeof(char)) + 4095);
++      buf = (char *) (((unsigned long)buf_unaligned + 4096 - 1) &
++                      (~(4096-1)));
++
+       /* Attempt to read the first sector.  */
+       if (read (disks[drive].flags, buf, 512) != 512)
+ 	{
+@@ -808,6 +917,7 @@ get_diskinfo (int drive, struct geometry *geometry)
+ 
+       if (disks[drive].flags != -1)
+ 	get_drive_geometry (&disks[drive], device_map, drive);
++      free(buf_unaligned);
+     }
+ 
+   if (disks[drive].flags == -1)
+@@ -829,24 +939,34 @@ static int
+ nread (int fd, char *buf, size_t len)
+ {
+   int size = len;
++  char * buf_unaligned, * buff, * obuff;
++  int ret;
++
++  buf_unaligned = malloc((len * sizeof(char)) + 4095);
++  obuff = buff = (char *) (((unsigned long)buf_unaligned + 4096 - 1) &
++                           (~(4096-1)));
++
+ 
+   while (len)
+     {
+-      int ret = read (fd, buf, len);
++      ret = read (fd, buff, len);
+ 
+       if (ret <= 0)
+ 	{
+ 	  if (errno == EINTR)
+ 	    continue;
+ 	  else
+-	    return ret;
++            break;
+ 	}
+ 
+       len -= ret;
+-      buf += ret;
++      buff += ret;
+     }
+ 
+-  return size;
++  if (!len) ret = size;
++
++  buf = memcpy(buf, obuff, size);
++  return ret;
+ }
+ 
+ /* Write LEN bytes from BUF to FD. Return less than or equal to zero if an
+@@ -855,10 +975,18 @@ static int
+ nwrite (int fd, char *buf, size_t len)
+ {
+   int size = len;
++  char * buf_unaligned, * buff;
++
++  buf_unaligned = malloc((len * sizeof(char)) + 4095);
++  buff = (char *) (((unsigned long)buf_unaligned + 4096 - 1) &
++                   (~(4096-1)));
+ 
+   while (len)
+     {
+-      int ret = write (fd, buf, len);
++      int ret;
++
++      memcpy(buff, buf, len);
++      ret = write (fd, buff, len);
+ 
+       if (ret <= 0)
+ 	{
+@@ -946,20 +1074,20 @@ biosdisk (int subfunc, int drive, struct geometry *geometry,
+     _syscall5 (int, _llseek, uint, filedes, ulong, hi, ulong, lo,
+ 	       loff_t *, res, uint, wh);
+ 
+-    offset = (loff_t) sector * (loff_t) SECTOR_SIZE;
++    offset = (loff_t) sector * (loff_t) get_sector_size(drive);
+     if (_llseek (fd, offset >> 32, offset & 0xffffffff, &result, SEEK_SET))
+       return -1;
+   }
+ #else
+   {
+-    off_t offset = (off_t) sector * (off_t) SECTOR_SIZE;
++    off_t offset = (off_t) sector * (off_t) get_sector_size(drive);
+ 
+     if (lseek (fd, offset, SEEK_SET) != offset)
+       return -1;
+   }
+ #endif
+ 
+-  buf = (char *) (segment << 4);
++  buf = (char *) (unsigned long) (segment << 4);
+ 
+   switch (subfunc)
+     {
+@@ -971,13 +1099,13 @@ biosdisk (int subfunc, int drive, struct geometry *geometry,
+ 	     sectors that are read together with the MBR in one read.  It
+ 	     should only remap the MBR, so we split the read in two 
+ 	     parts. -jochen  */
+-	  if (nread (fd, buf, SECTOR_SIZE) != SECTOR_SIZE)
++	  if (nread (fd, buf, get_sector_size(drive)) != get_sector_size(drive))
+ 	    return -1;
+-	  buf += SECTOR_SIZE;
++	  buf += get_sector_size(drive);
+ 	  nsec--;
+ 	}
+ #endif
+-      if (nread (fd, buf, nsec * SECTOR_SIZE) != nsec * SECTOR_SIZE)
++      if (nread (fd, buf, nsec * get_sector_size(drive)) != nsec * get_sector_size(drive))
+ 	return -1;
+       break;
+ 
+@@ -987,10 +1115,10 @@ biosdisk (int subfunc, int drive, struct geometry *geometry,
+ 	  grub_printf ("Write %d sectors starting from %d sector"
+ 		       " to drive 0x%x (%s)\n",
+ 		       nsec, sector, drive, device_map[drive]);
+-	  hex_dump (buf, nsec * SECTOR_SIZE);
++	  hex_dump (buf, nsec * get_sector_size(drive));
+ 	}
+       if (! read_only)
+-	if (nwrite (fd, buf, nsec * SECTOR_SIZE) != nsec * SECTOR_SIZE)
++	if (nwrite (fd, buf, nsec * get_sector_size(drive)) != nsec * get_sector_size(drive))
+ 	  return -1;
+       break;
+ 
+@@ -1273,3 +1401,21 @@ hercules_setcursor (int on)
+ {
+   return 1;
+ }
++
++int
++grub_load_linux (char *kernel, char *arg)
++{
++  return 0;
++}
++
++int
++grub_load_initrd (char *initrd)
++{
++  return 0;
++}
++
++int
++grub_chainloader (char *filename)
++{
++  return 0;
++}
+diff --git a/grub/efitftp.c b/grub/efitftp.c
+new file mode 100644
+index 0000000..5355dec
+--- /dev/null
++++ b/grub/efitftp.c
+@@ -0,0 +1,34 @@
++#include <shared.h>
++#include <filesys.h>
++
++int efi_tftp_mount (void);
++int efi_tftp_read (char *buf, int len);
++int efi_tftp_dir (char *dirname);
++void efi_tftp_close (void);
++
++int
++efi_tftp_mount (void)
++{
++	grub_printf("non-efi efi_tftp_mount()\n");
++	return 0;
++}
++
++int
++efi_tftp_read (char *addr, int size)
++{
++	grub_printf ("non-efi efi_tftp_read (0x%x, %d)\n", (long) addr, size);
++	return 0;
++}
++
++int
++efi_tftp_dir (char *dirname)
++{
++	grub_printf ("non-efi efi_ftp_dir (%s)\n", dirname);
++	return 0;
++}
++
++void
++efi_tftp_close (void)
++{
++	grub_printf ("non-efi efi_tftp_close ()\n");
++}
+diff --git a/grub/main.c b/grub/main.c
+index dfe847e..6083641 100644
+--- a/grub/main.c
++++ b/grub/main.c
+@@ -140,7 +140,7 @@ main (int argc, char **argv)
+   program_name = argv[0];
+   default_boot_drive = boot_drive;
+   default_install_partition = install_partition;
+-  if (config_file)
++  if (config_file[0])
+     default_config_file = config_file;
+   else
+     default_config_file = "NONE";
+diff --git a/lib/.gitignore b/lib/.gitignore
+new file mode 100644
+index 0000000..5d89f6d
+--- /dev/null
++++ b/lib/.gitignore
+@@ -0,0 +1,2 @@
++Makefile.in
++.deps
+diff --git a/lib/Makefile.in b/lib/Makefile.in
+index 3dae206..e46d1c4 100644
+--- a/lib/Makefile.in
++++ b/lib/Makefile.in
+@@ -1,8 +1,8 @@
+-# Makefile.in generated by automake 1.9.4 from Makefile.am.
++# Makefile.in generated by automake 1.10 from Makefile.am.
+ # @configure_input@
+ 
+ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+-# 2003, 2004  Free Software Foundation, Inc.
++# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+@@ -14,17 +14,11 @@
+ 
+ @SET_MAKE@
+ 
+-SOURCES = $(libcommon_a_SOURCES)
+-
+-srcdir = @srcdir@
+-top_srcdir = @top_srcdir@
+ VPATH = @srcdir@
+ pkgdatadir = $(datadir)/@PACKAGE@
+ pkglibdir = $(libdir)/@PACKAGE@
+ pkgincludedir = $(includedir)/@PACKAGE@
+-top_builddir = ..
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+-INSTALL = @INSTALL@
+ install_sh_DATA = $(install_sh) -c -m 644
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+@@ -42,7 +36,7 @@ subdir = lib
+ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+-	$(top_srcdir)/configure.ac
++	$(top_srcdir)/configure.in
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+@@ -56,7 +50,7 @@ libcommon_a_LIBADD =
+ am_libcommon_a_OBJECTS = getopt.$(OBJEXT) getopt1.$(OBJEXT) \
+ 	device.$(OBJEXT)
+ libcommon_a_OBJECTS = $(am_libcommon_a_OBJECTS)
+-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
++DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
+ depcomp = $(SHELL) $(top_srcdir)/depcomp
+ am__depfiles_maybe = depfiles
+ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+@@ -69,17 +63,14 @@ ETAGS = etags
+ CTAGS = ctags
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ ACLOCAL = @ACLOCAL@
+-AMDEP_FALSE = @AMDEP_FALSE@
+-AMDEP_TRUE = @AMDEP_TRUE@
+ AMTAR = @AMTAR@
+ AUTOCONF = @AUTOCONF@
+ AUTOHEADER = @AUTOHEADER@
+ AUTOMAKE = @AUTOMAKE@
+ AWK = @AWK@
+-BUILD_EXAMPLE_KERNEL_FALSE = @BUILD_EXAMPLE_KERNEL_FALSE@
+-BUILD_EXAMPLE_KERNEL_TRUE = @BUILD_EXAMPLE_KERNEL_TRUE@
+ CC = @CC@
+ CCAS = @CCAS@
++CCASDEPMODE = @CCASDEPMODE@
+ CCASFLAGS = @CCASFLAGS@
+ CCDEPMODE = @CCDEPMODE@
+ CFLAGS = @CFLAGS@
+@@ -88,18 +79,16 @@ CPPFLAGS = @CPPFLAGS@
+ CYGPATH_W = @CYGPATH_W@
+ DEFS = @DEFS@
+ DEPDIR = @DEPDIR@
+-DISKLESS_SUPPORT_FALSE = @DISKLESS_SUPPORT_FALSE@
+-DISKLESS_SUPPORT_TRUE = @DISKLESS_SUPPORT_TRUE@
+ ECHO_C = @ECHO_C@
+ ECHO_N = @ECHO_N@
+ ECHO_T = @ECHO_T@
+ EGREP = @EGREP@
+ EXEEXT = @EXEEXT@
+ FSYS_CFLAGS = @FSYS_CFLAGS@
++GREP = @GREP@
+ GRUB_CFLAGS = @GRUB_CFLAGS@
+ GRUB_LIBS = @GRUB_LIBS@
+-HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@
+-HERCULES_SUPPORT_TRUE = @HERCULES_SUPPORT_TRUE@
++INSTALL = @INSTALL@
+ INSTALL_DATA = @INSTALL_DATA@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+@@ -107,14 +96,12 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
++LOADER_LDFLAGS = @LOADER_LDFLAGS@
+ LTLIBOBJS = @LTLIBOBJS@
+ MAINT = @MAINT@
+-MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+-MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+ MAKEINFO = @MAKEINFO@
++MKDIR_P = @MKDIR_P@
+ NETBOOT_DRIVERS = @NETBOOT_DRIVERS@
+-NETBOOT_SUPPORT_FALSE = @NETBOOT_SUPPORT_FALSE@
+-NETBOOT_SUPPORT_TRUE = @NETBOOT_SUPPORT_TRUE@
+ NET_CFLAGS = @NET_CFLAGS@
+ NET_EXTRAFLAGS = @NET_EXTRAFLAGS@
+ OBJCOPY = @OBJCOPY@
+@@ -128,22 +115,17 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
+ PATH_SEPARATOR = @PATH_SEPARATOR@
+ PERL = @PERL@
+ RANLIB = @RANLIB@
+-SERIAL_SPEED_SIMULATION_FALSE = @SERIAL_SPEED_SIMULATION_FALSE@
+-SERIAL_SPEED_SIMULATION_TRUE = @SERIAL_SPEED_SIMULATION_TRUE@
+-SERIAL_SUPPORT_FALSE = @SERIAL_SUPPORT_FALSE@
+-SERIAL_SUPPORT_TRUE = @SERIAL_SUPPORT_TRUE@
+ SET_MAKE = @SET_MAKE@
+ SHELL = @SHELL@
+ STAGE1_CFLAGS = @STAGE1_CFLAGS@
+ STAGE2_CFLAGS = @STAGE2_CFLAGS@
+ STRIP = @STRIP@
+ VERSION = @VERSION@
++abs_builddir = @abs_builddir@
++abs_srcdir = @abs_srcdir@
++abs_top_builddir = @abs_top_builddir@
++abs_top_srcdir = @abs_top_srcdir@
+ ac_ct_CC = @ac_ct_CC@
+-ac_ct_OBJCOPY = @ac_ct_OBJCOPY@
+-ac_ct_RANLIB = @ac_ct_RANLIB@
+-ac_ct_STRIP = @ac_ct_STRIP@
+-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+ am__include = @am__include@
+ am__leading_dot = @am__leading_dot@
+ am__quote = @am__quote@
+@@ -155,28 +137,39 @@ build_alias = @build_alias@
+ build_cpu = @build_cpu@
+ build_os = @build_os@
+ build_vendor = @build_vendor@
++builddir = @builddir@
+ datadir = @datadir@
++datarootdir = @datarootdir@
++docdir = @docdir@
++dvidir = @dvidir@
+ exec_prefix = @exec_prefix@
+ host = @host@
+ host_alias = @host_alias@
+ host_cpu = @host_cpu@
+ host_os = @host_os@
+ host_vendor = @host_vendor@
++htmldir = @htmldir@
+ includedir = @includedir@
+ infodir = @infodir@
+ install_sh = @install_sh@
+ libdir = @libdir@
+ libexecdir = @libexecdir@
++localedir = @localedir@
+ localstatedir = @localstatedir@
+ mandir = @mandir@
+ mkdir_p = @mkdir_p@
+ oldincludedir = @oldincludedir@
++pdfdir = @pdfdir@
+ prefix = @prefix@
+ program_transform_name = @program_transform_name@
++psdir = @psdir@
+ sbindir = @sbindir@
+ sharedstatedir = @sharedstatedir@
++srcdir = @srcdir@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
++top_builddir = @top_builddir@
++top_srcdir = @top_srcdir@
+ noinst_LIBRARIES = libcommon.a
+ AM_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/stage2 \
+ 	-I$(top_srcdir)/stage1
+@@ -234,19 +227,18 @@ distclean-compile:
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/getopt1.Po at am__quote@
+ 
+ .c.o:
+- at am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(COMPILE) -c $<
+ 
+ .c.obj:
+- at am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+-uninstall-info-am:
+ 
+ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+@@ -297,22 +289,21 @@ distclean-tags:
+ 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+ 
+ distdir: $(DISTFILES)
+-	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+-	list='$(DISTFILES)'; for file in $$list; do \
+-	  case $$file in \
+-	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+-	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+-	  esac; \
++	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
++	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
++	list='$(DISTFILES)'; \
++	  dist_files=`for file in $$list; do echo $$file; done | \
++	  sed -e "s|^$$srcdirstrip/||;t" \
++	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
++	case $$dist_files in \
++	  */*) $(MKDIR_P) `echo "$$dist_files" | \
++			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
++			   sort -u` ;; \
++	esac; \
++	for file in $$dist_files; do \
+ 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+-	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+-	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+-	    dir="/$$dir"; \
+-	    $(mkdir_p) "$(distdir)$$dir"; \
+-	  else \
+-	    dir=''; \
+-	  fi; \
+ 	  if test -d $$d/$$file; then \
++	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ 	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ 	    fi; \
+@@ -373,12 +364,20 @@ info-am:
+ 
+ install-data-am:
+ 
++install-dvi: install-dvi-am
++
+ install-exec-am:
+ 
++install-html: install-html-am
++
+ install-info: install-info-am
+ 
+ install-man:
+ 
++install-pdf: install-pdf-am
++
++install-ps: install-ps-am
++
+ installcheck-am:
+ 
+ maintainer-clean: maintainer-clean-am
+@@ -398,18 +397,22 @@ ps: ps-am
+ 
+ ps-am:
+ 
+-uninstall-am: uninstall-info-am
++uninstall-am:
++
++.MAKE: install-am install-strip
+ 
+ .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ 	clean-noinstLIBRARIES ctags distclean distclean-compile \
+ 	distclean-generic distclean-tags distdir dvi dvi-am html \
+ 	html-am info info-am install install-am install-data \
+-	install-data-am install-exec install-exec-am install-info \
+-	install-info-am install-man install-strip installcheck \
++	install-data-am install-dvi install-dvi-am install-exec \
++	install-exec-am install-html install-html-am install-info \
++	install-info-am install-man install-pdf install-pdf-am \
++	install-ps install-ps-am install-strip installcheck \
+ 	installcheck-am installdirs maintainer-clean \
+ 	maintainer-clean-generic mostlyclean mostlyclean-compile \
+ 	mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
+-	uninstall-am uninstall-info-am
++	uninstall-am
+ 
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+diff --git a/lib/device.c b/lib/device.c
+index d0663b3..50540bc 100644
+--- a/lib/device.c
++++ b/lib/device.c
+@@ -36,6 +36,9 @@
+ #include <limits.h>
+ #include <stdarg.h>
+ 
++#define SECTOR_SIZE 0x200
++#define SECTOR_BITS 9
++
+ #ifdef __linux__
+ # if !defined(__GLIBC__) || \
+         ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1)))
+@@ -131,6 +134,152 @@ get_kfreebsd_version ()
+ #include <shared.h>
+ #include <device.h>
+ 
++#if defined(__linux__)
++/* The 2.6 kernel has removed all of the geometry handling for IDE drives
++ * that did fixups for LBA, etc.  This means that the geometry we get
++ * with the ioctl has a good chance of being wrong.  So, we get to 
++ * also know about partition tables and try to read what the geometry
++ * is there. *grumble*   Very closely based on code from cfdisk
++ */
++static void get_kernel_geometry(int fd, long long *cyl, int *heads, int *sectors) {
++    struct hd_geometry hdg;
++    
++    if (ioctl (fd, HDIO_GETGEO, &hdg))
++        return;
++
++    *cyl = hdg.cylinders;
++    *heads = hdg.heads;
++    *sectors = hdg.sectors;
++}
++
++struct partition {
++        unsigned char boot_ind;         /* 0x80 - active */
++        unsigned char head;             /* starting head */
++        unsigned char sector;           /* starting sector */
++        unsigned char cyl;              /* starting cylinder */
++        unsigned char sys_ind;          /* What partition type */
++        unsigned char end_head;         /* end head */
++        unsigned char end_sector;       /* end sector */
++        unsigned char end_cyl;          /* end cylinder */
++        unsigned char start4[4];        /* starting sector counting from 0 */
++        unsigned char size4[4];         /* nr of sectors in partition */
++};
++
++#define ALIGNMENT 2
++typedef union {
++    struct {
++	unsigned char align[ALIGNMENT];
++	unsigned char b[SECTOR_SIZE];
++    } c;
++    struct {
++	unsigned char align[ALIGNMENT];
++	unsigned char buffer[0x1BE];
++	struct partition part[4];
++	unsigned char magicflag[2];
++    } p;
++} partition_table;
++
++#define PART_TABLE_FLAG0 0x55
++#define PART_TABLE_FLAG1 0xAA
++
++static void
++get_partition_table_geometry(partition_table *bufp, long long *cyl, int *heads, 
++                             int *sectors) {
++    struct partition *p;
++    int i,h,s,hh,ss;
++    int first = 1;
++    int bad = 0;
++
++    if (bufp->p.magicflag[0] != PART_TABLE_FLAG0 ||
++	bufp->p.magicflag[1] != PART_TABLE_FLAG1) {
++	    /* Matthew Wilcox: slightly friendlier version of
++	       fatal(_("Bad signature on partition table"), 3);
++	    */
++            fprintf(stderr, "Unknown partition table signature\n");
++	    return;
++    }
++
++    hh = ss = 0;
++    for (i=0; i<4; i++) {
++	p = &(bufp->p.part[i]);
++	if (p->sys_ind != 0) {
++	    h = p->end_head + 1;
++	    s = (p->end_sector & 077);
++	    if (first) {
++		hh = h;
++		ss = s;
++		first = 0;
++	    } else if (hh != h || ss != s)
++		bad = 1;
++	}
++    }
++
++    if (!first && !bad) {
++	*heads = hh;
++	*sectors = ss;
++    }
++}
++
++static long long my_lseek (unsigned int fd, long long offset, 
++                           unsigned int origin)
++{
++#if defined(__linux__) && (!defined(__GLIBC__) || \
++        ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1))))
++  /* Maybe libc doesn't have large file support.  */
++  loff_t offset, result;
++  static int _llseek (uint filedes, ulong hi, ulong lo,
++                      loff_t *res, uint wh);
++  _syscall5 (int, _llseek, uint, filedes, ulong, hi, ulong, lo,
++             loff_t *, res, uint, wh);
++  
++  if (_llseek (fd, offset >> 32, offset & 0xffffffff, &result, SEEK_SET) < 0)
++    return (long long) -1;
++  return result;
++#else
++  return lseek(fd, offset, SEEK_SET);
++#endif
++}
++
++static void get_linux_geometry (int fd, struct geometry *geom) {
++    long long kern_cyl = 0; int kern_head = 0, kern_sectors = 0;
++    long long pt_cyl = 0; int pt_head = 0, pt_sectors = 0;
++    partition_table bufp;
++    char *buff, *buf_unaligned;
++
++    buf_unaligned = malloc(sizeof(partition_table) + 4095);
++    buff = (char *) (((unsigned long)buf_unaligned + 4096 - 1) &
++                     (~(4096-1)));
++
++    get_kernel_geometry(fd, &kern_cyl, &kern_head, &kern_sectors);
++
++    if (my_lseek (fd, 0*SECTOR_SIZE, SEEK_SET) < 0) {
++        fprintf(stderr, "Unable to seek");
++    }
++
++    if (read(fd, buff, SECTOR_SIZE) == SECTOR_SIZE) {
++        memcpy(bufp.c.b, buff, SECTOR_SIZE);
++        get_partition_table_geometry(&bufp, &pt_cyl, &pt_head, &pt_sectors);
++    } else {
++        fprintf(stderr, "Unable to read partition table: %s\n", strerror(errno));
++    }
++
++    if (pt_head && pt_sectors) {
++        int cyl_size;
++
++        geom->heads = pt_head;
++        geom->sectors = pt_sectors;
++        cyl_size = pt_head * pt_sectors;
++        geom->cylinders = geom->total_sectors/cyl_size;
++    } else {
++        geom->heads = kern_head;
++        geom->sectors = kern_sectors;
++        geom->cylinders = kern_cyl;
++    }
++
++    return;
++}
++#endif
++
+ /* Get the geometry of a drive DRIVE.  */
+ void
+ get_drive_geometry (struct geometry *geom, char **map, int drive)
+@@ -151,21 +300,16 @@ get_drive_geometry (struct geometry *geom, char **map, int drive)
+ #if defined(__linux__)
+   /* Linux */
+   {
+-    struct hd_geometry hdg;
+     unsigned long nr;
+-    
+-    if (ioctl (fd, HDIO_GETGEO, &hdg))
+-      goto fail;
+ 
+     if (ioctl (fd, BLKGETSIZE, &nr))
+       goto fail;
+     
+     /* Got the geometry, so save it. */
+-    geom->cylinders = hdg.cylinders;
+-    geom->heads = hdg.heads;
+-    geom->sectors = hdg.sectors;
+     geom->total_sectors = nr;
+-    
++    get_linux_geometry(fd, geom);
++    if (!geom->heads && !geom->cylinders && !geom->sectors)
++        goto fail;
+     goto success;
+   }
+ 
+@@ -403,10 +547,27 @@ get_dac960_disk_name (char *name, int controller, int drive)
+ }
+ 
+ static void
++get_cciss_disk_name (char * name, int controller, int drive)
++{
++  sprintf (name, "/dev/cciss/c%dd%d", controller, drive);
++}
++
++static void
++get_cpqarray_disk_name (char * name, int controller, int drive)
++{
++  sprintf (name, "/dev/ida/c%dd%d", controller, drive);
++}
++static void
+ get_ataraid_disk_name (char *name, int unit)
+ {
+   sprintf (name, "/dev/ataraid/d%c", unit + '0');
+ }
++
++static void
++get_i2o_disk_name (char *name, int unit)
++{
++  sprintf (name, "/dev/i2o/hd%c", unit + 'a');
++}
+ #endif
+ 
+ /* Check if DEVICE can be read. If an error occurs, return zero,
+@@ -490,27 +651,24 @@ check_device (const char *device)
+ }
+ 
+ /* Read mapping information from FP, and write it to MAP.  */
++static void rdm_show_error (const char *map_file, int no, const char *msg)
++{
++  fprintf (stderr, "%s:%d: error: %s\n", map_file, no, msg);
++}
++
++static void rdm_show_warning (const char *map_file,int no, const char *msg, ...)
++{
++  va_list ap;
++  
++  va_start (ap, msg);
++  fprintf (stderr, "%s:%d: warning: ", map_file, no);
++  vfprintf (stderr, msg, ap);
++  va_end (ap);
++}
++
+ static int
+ read_device_map (FILE *fp, char **map, const char *map_file)
+ {
+-  auto void show_error (int no, const char *msg);
+-  auto void show_warning (int no, const char *msg, ...);
+-  
+-  auto void show_error (int no, const char *msg)
+-    {
+-      fprintf (stderr, "%s:%d: error: %s\n", map_file, no, msg);
+-    }
+-  
+-  auto void show_warning (int no, const char *msg, ...)
+-    {
+-      va_list ap;
+-      
+-      va_start (ap, msg);
+-      fprintf (stderr, "%s:%d: warning: ", map_file, no);
+-      vfprintf (stderr, msg, ap);
+-      va_end (ap);
+-    }
+-  
+   /* If there is the device map file, use the data in it instead of
+      probing devices.  */
+   char buf[1024];		/* XXX */
+@@ -540,14 +698,14 @@ read_device_map (FILE *fp, char **map, const char *map_file)
+       
+       if (*ptr != '(')
+ 	{
+-	  show_error (line_number, "No open parenthesis found");
++	  rdm_show_error (map_file, line_number, "No open parenthesis found");
+ 	  return 0;
+ 	}
+       
+       ptr++;
+       if ((*ptr != 'f' && *ptr != 'h') || *(ptr + 1) != 'd')
+ 	{
+-	  show_error (line_number, "Bad drive name");
++	  rdm_show_error (map_file, line_number, "Bad drive name");
+ 	  return 0;
+ 	}
+       
+@@ -558,12 +716,12 @@ read_device_map (FILE *fp, char **map, const char *map_file)
+       drive = strtoul (ptr, &ptr, 10);
+       if (drive < 0)
+ 	{
+-	  show_error (line_number, "Bad device number");
++	  rdm_show_error (map_file, line_number, "Bad device number");
+ 	  return 0;
+ 	}
+       else if (drive > 127)
+ 	{
+-	  show_warning (line_number,
++	  rdm_show_warning (map_file, line_number,
+ 			"Ignoring %cd%d due to a BIOS limitation",
+ 			is_floppy ? 'f' : 'h', drive);
+ 	  continue;
+@@ -574,7 +732,7 @@ read_device_map (FILE *fp, char **map, const char *map_file)
+       
+       if (*ptr != ')')
+ 	{
+-	  show_error (line_number, "No close parenthesis found");
++	  rdm_show_error (map_file, line_number, "No close parenthesis found");
+ 	  return 0;
+ 	}
+       
+@@ -585,7 +743,7 @@ read_device_map (FILE *fp, char **map, const char *map_file)
+       
+       if (! *ptr)
+ 	{
+-	  show_error (line_number, "No filename found");
++	  rdm_show_error (map_file, line_number, "No filename found");
+ 	  return 0;
+ 	}
+       
+@@ -598,7 +756,7 @@ read_device_map (FILE *fp, char **map, const char *map_file)
+       /* Multiple entries for a given drive is not allowed.  */
+       if (map[drive])
+ 	{
+-	  show_error (line_number, "Duplicated entry found");
++	  rdm_show_error (map_file, line_number, "Duplicated entry found");
+ 	  return 0;
+ 	}
+       
+@@ -782,7 +940,7 @@ init_device_map (char ***map, const char *map_file, int floppy_disks)
+     
+     for (controller = 0; controller < 8; controller++)
+       {
+-	for (drive = 0; drive < 15; drive++)
++	for (drive = 0; drive < 32; drive++)
+ 	  {
+ 	    char name[24];
+ 	    
+@@ -801,6 +959,90 @@ init_device_map (char ***map, const char *map_file, int floppy_disks)
+ 	  }
+       }
+   }
++
++  /* I2O disks.  */
++  for (i = 0; i < 8; i++)
++    {
++      char name[16];
++      
++      get_i2o_disk_name (name, i);
++      if (check_device (name))
++	{
++	  (*map)[num_hd + 0x80] = strdup (name);
++	  assert ((*map)[num_hd + 0x80]);
++	  
++	  /* If the device map file is opened, write the map.  */
++	  if (fp)
++	    fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
++	  
++	  num_hd++;
++	}
++    }
++  
++#endif /* __linux__ */
++
++#ifdef __linux__
++  /* This is for cciss - we have
++     /dev/cciss/c<controller>d<logical drive>p<partition>.
++     
++     cciss driver currently supports up to 8 controllers, 16 logical
++     drives, and 7 partitions.  */
++  {
++    int controller, drive;
++    
++    for (controller = 0; controller < 8; controller++)
++      {
++	for (drive = 0; drive < 16; drive++)
++	  {
++	    char name[24];
++	    
++	    get_cciss_disk_name (name, controller, drive);
++	    if (check_device (name))
++	      {
++		(*map)[num_hd + 0x80] = strdup (name);
++		assert ((*map)[num_hd + 0x80]);
++		
++		/* If the device map file is opened, write the map.  */
++		if (fp)
++		  fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
++		
++		num_hd++;
++	      }
++	  }
++      }
++  }
++#endif /* __linux__ */
++
++#ifdef __linux__
++  /* This is for cpqarray - we have
++     /dev/ida/c<controller>d<logical drive>p<partition>.
++     
++     cpqarray driver currently supports up to 8 controllers, 16 logical
++     drives, and 15 partitions.  */
++  {
++    int controller, drive;
++    
++    for (controller = 0; controller < 8; controller++)
++      {
++	for (drive = 0; drive < 15; drive++)
++	  {
++	    char name[24];
++	    
++	    get_cpqarray_disk_name (name, controller, drive);
++	    if (check_device (name))
++	      {
++		(*map)[num_hd + 0x80] = strdup (name);
++		assert ((*map)[num_hd + 0x80]);
++		
++		/* If the device map file is opened, write the map.  */
++		if (fp)
++		  fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
++		
++		num_hd++;
++	      }
++	  }
++      }
++  }
+ #endif /* __linux__ */
+   
+   /* OK, close the device map file if opened.  */
+@@ -844,6 +1086,7 @@ write_to_partition (char **map, int drive, int partition,
+ {
+   char dev[PATH_MAX];	/* XXX */
+   int fd;
++  off_t offset = (off_t) sector * (off_t) SECTOR_SIZE;
+   
+   if ((partition & 0x00FF00) != 0x00FF00)
+     {
+@@ -861,44 +1104,35 @@ write_to_partition (char **map, int drive, int partition,
+       if (strcmp (dev + strlen(dev) - 5, "/disc") == 0)
+ 	strcpy (dev + strlen(dev) - 5, "/part");
+     }
+-  sprintf (dev + strlen(dev), "%d", ((partition >> 16) & 0xFF) + 1);
++
++  sprintf (dev + strlen(dev), "%s%d", 
++	   /* Compaq smart and others */
++	   (strncmp(dev, "/dev/ida/", 9) == 0 ||
++	    strncmp(dev, "/dev/ataraid/", 13) == 0 ||
++	    strncmp(dev, "/dev/mapper/", 12) == 0 || 
++	    strncmp(dev, "/dev/md", 7) == 0 ||
++	    strncmp(dev, "/dev/cciss/", 11) == 0 ||
++	    strncmp(dev, "/dev/rd/", 8) == 0) ? "p" : "",
++	   ((partition >> 16) & 0xFF) + 1);
+   
+   /* Open the partition.  */
+   fd = open (dev, O_RDWR);
+   if (fd < 0)
+     {
++      /* No partition file, pass thru and not worry about
++       * cache inconsistency. */
++      if (errno == ENOENT)
++        return -1;
+       errnum = ERR_NO_PART;
+       return 0;
+     }
+-  
+-#if defined(__linux__) && (!defined(__GLIBC__) || \
+-        ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1))))
+-  /* Maybe libc doesn't have large file support.  */
+-  {
+-    loff_t offset, result;
+-    static int _llseek (uint filedes, ulong hi, ulong lo,
+-                        loff_t *res, uint wh);
+-    _syscall5 (int, _llseek, uint, filedes, ulong, hi, ulong, lo,
+-               loff_t *, res, uint, wh);
+-
+-    offset = (loff_t) sector * (loff_t) SECTOR_SIZE;
+-    if (_llseek (fd, offset >> 32, offset & 0xffffffff, &result, SEEK_SET))
+-      {
+-	errnum = ERR_DEV_VALUES;
+-	return 0;
+-      }
+-  }
+-#else
+-  {
+-    off_t offset = (off_t) sector * (off_t) SECTOR_SIZE;
+ 
+-    if (lseek (fd, offset, SEEK_SET) != offset)
+-      {
+-	errnum = ERR_DEV_VALUES;
+-	return 0;
+-      }
+-  }
+-#endif
++
++  if (my_lseek(fd, offset, SEEK_SET) != offset)
++    {
++      errnum = ERR_DEV_VALUES;
++      return 0;
++    }
+   
+   if (write (fd, buf, size * SECTOR_SIZE) != (size * SECTOR_SIZE))
+     {
+diff --git a/netboot/.gitignore b/netboot/.gitignore
+new file mode 100644
+index 0000000..5d89f6d
+--- /dev/null
++++ b/netboot/.gitignore
+@@ -0,0 +1,2 @@
++Makefile.in
++.deps
+diff --git a/netboot/Makefile.in b/netboot/Makefile.in
+index 75ac299..3a6a501 100644
+--- a/netboot/Makefile.in
++++ b/netboot/Makefile.in
+@@ -1,8 +1,8 @@
+-# Makefile.in generated by automake 1.9.4 from Makefile.am.
++# Makefile.in generated by automake 1.10 from Makefile.am.
+ # @configure_input@
+ 
+ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+-# 2003, 2004  Free Software Foundation, Inc.
++# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+@@ -14,17 +14,11 @@
+ 
+ @SET_MAKE@
+ 
+-SOURCES = $(libdrivers_a_SOURCES) $(EXTRA_libdrivers_a_SOURCES)
+-
+-srcdir = @srcdir@
+-top_srcdir = @top_srcdir@
+ VPATH = @srcdir@
+ pkgdatadir = $(datadir)/@PACKAGE@
+ pkglibdir = $(libdir)/@PACKAGE@
+ pkgincludedir = $(includedir)/@PACKAGE@
+-top_builddir = ..
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+-INSTALL = @INSTALL@
+ install_sh_DATA = $(install_sh) -c -m 644
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+@@ -42,7 +36,7 @@ subdir = netboot
+ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+-	$(top_srcdir)/configure.ac
++	$(top_srcdir)/configure.in
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+@@ -57,7 +51,7 @@ am_libdrivers_a_OBJECTS = libdrivers_a-config.$(OBJEXT) \
+ 	libdrivers_a-misc.$(OBJEXT) libdrivers_a-pci.$(OBJEXT) \
+ 	libdrivers_a-timer.$(OBJEXT)
+ libdrivers_a_OBJECTS = $(am_libdrivers_a_OBJECTS)
+-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
++DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
+ depcomp = $(SHELL) $(top_srcdir)/depcomp
+ am__depfiles_maybe = depfiles
+ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+@@ -70,17 +64,14 @@ ETAGS = etags
+ CTAGS = ctags
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ ACLOCAL = @ACLOCAL@
+-AMDEP_FALSE = @AMDEP_FALSE@
+-AMDEP_TRUE = @AMDEP_TRUE@
+ AMTAR = @AMTAR@
+ AUTOCONF = @AUTOCONF@
+ AUTOHEADER = @AUTOHEADER@
+ AUTOMAKE = @AUTOMAKE@
+ AWK = @AWK@
+-BUILD_EXAMPLE_KERNEL_FALSE = @BUILD_EXAMPLE_KERNEL_FALSE@
+-BUILD_EXAMPLE_KERNEL_TRUE = @BUILD_EXAMPLE_KERNEL_TRUE@
+ CC = @CC@
+ CCAS = @CCAS@
++CCASDEPMODE = @CCASDEPMODE@
+ CCASFLAGS = @CCASFLAGS@
+ CCDEPMODE = @CCDEPMODE@
+ CFLAGS = @CFLAGS@
+@@ -89,18 +80,16 @@ CPPFLAGS = @CPPFLAGS@
+ CYGPATH_W = @CYGPATH_W@
+ DEFS = @DEFS@
+ DEPDIR = @DEPDIR@
+-DISKLESS_SUPPORT_FALSE = @DISKLESS_SUPPORT_FALSE@
+-DISKLESS_SUPPORT_TRUE = @DISKLESS_SUPPORT_TRUE@
+ ECHO_C = @ECHO_C@
+ ECHO_N = @ECHO_N@
+ ECHO_T = @ECHO_T@
+ EGREP = @EGREP@
+ EXEEXT = @EXEEXT@
+ FSYS_CFLAGS = @FSYS_CFLAGS@
++GREP = @GREP@
+ GRUB_CFLAGS = @GRUB_CFLAGS@
+ GRUB_LIBS = @GRUB_LIBS@
+-HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@
+-HERCULES_SUPPORT_TRUE = @HERCULES_SUPPORT_TRUE@
++INSTALL = @INSTALL@
+ INSTALL_DATA = @INSTALL_DATA@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+@@ -108,14 +97,12 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
++LOADER_LDFLAGS = @LOADER_LDFLAGS@
+ LTLIBOBJS = @LTLIBOBJS@
+ MAINT = @MAINT@
+-MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+-MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+ MAKEINFO = @MAKEINFO@
++MKDIR_P = @MKDIR_P@
+ NETBOOT_DRIVERS = @NETBOOT_DRIVERS@
+-NETBOOT_SUPPORT_FALSE = @NETBOOT_SUPPORT_FALSE@
+-NETBOOT_SUPPORT_TRUE = @NETBOOT_SUPPORT_TRUE@
+ NET_CFLAGS = @NET_CFLAGS@
+ NET_EXTRAFLAGS = @NET_EXTRAFLAGS@
+ OBJCOPY = @OBJCOPY@
+@@ -129,22 +116,17 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
+ PATH_SEPARATOR = @PATH_SEPARATOR@
+ PERL = @PERL@
+ RANLIB = @RANLIB@
+-SERIAL_SPEED_SIMULATION_FALSE = @SERIAL_SPEED_SIMULATION_FALSE@
+-SERIAL_SPEED_SIMULATION_TRUE = @SERIAL_SPEED_SIMULATION_TRUE@
+-SERIAL_SUPPORT_FALSE = @SERIAL_SUPPORT_FALSE@
+-SERIAL_SUPPORT_TRUE = @SERIAL_SUPPORT_TRUE@
+ SET_MAKE = @SET_MAKE@
+ SHELL = @SHELL@
+ STAGE1_CFLAGS = @STAGE1_CFLAGS@
+ STAGE2_CFLAGS = @STAGE2_CFLAGS@
+ STRIP = @STRIP@
+ VERSION = @VERSION@
++abs_builddir = @abs_builddir@
++abs_srcdir = @abs_srcdir@
++abs_top_builddir = @abs_top_builddir@
++abs_top_srcdir = @abs_top_srcdir@
+ ac_ct_CC = @ac_ct_CC@
+-ac_ct_OBJCOPY = @ac_ct_OBJCOPY@
+-ac_ct_RANLIB = @ac_ct_RANLIB@
+-ac_ct_STRIP = @ac_ct_STRIP@
+-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+ am__include = @am__include@
+ am__leading_dot = @am__leading_dot@
+ am__quote = @am__quote@
+@@ -156,28 +138,39 @@ build_alias = @build_alias@
+ build_cpu = @build_cpu@
+ build_os = @build_os@
+ build_vendor = @build_vendor@
++builddir = @builddir@
+ datadir = @datadir@
++datarootdir = @datarootdir@
++docdir = @docdir@
++dvidir = @dvidir@
+ exec_prefix = @exec_prefix@
+ host = @host@
+ host_alias = @host_alias@
+ host_cpu = @host_cpu@
+ host_os = @host_os@
+ host_vendor = @host_vendor@
++htmldir = @htmldir@
+ includedir = @includedir@
+ infodir = @infodir@
+ install_sh = @install_sh@
+ libdir = @libdir@
+ libexecdir = @libexecdir@
++localedir = @localedir@
+ localstatedir = @localstatedir@
+ mandir = @mandir@
+ mkdir_p = @mkdir_p@
+ oldincludedir = @oldincludedir@
++pdfdir = @pdfdir@
+ prefix = @prefix@
+ program_transform_name = @program_transform_name@
++psdir = @psdir@
+ sbindir = @sbindir@
+ sharedstatedir = @sharedstatedir@
++srcdir = @srcdir@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
++top_builddir = @top_builddir@
++top_srcdir = @top_srcdir@
+ 
+ # For <shared.h> and <stage1.h>.
+ INCLUDES = -I$(top_srcdir)/stage2 -I$(top_srcdir)/stage1
+@@ -349,453 +342,452 @@ distclean-compile:
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdrivers_a-w89c840.Po at am__quote@
+ 
+ .c.o:
+- at am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(COMPILE) -c $<
+ 
+ .c.obj:
+- at am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ 
+ libdrivers_a-config.o: config.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-config.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-config.Tpo" -c -o libdrivers_a-config.o `test -f 'config.c' || echo '$(srcdir)/'`config.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-config.Tpo" "$(DEPDIR)/libdrivers_a-config.Po"; else rm -f "$(DEPDIR)/libdrivers_a-config.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-config.o -MD -MP -MF $(DEPDIR)/libdrivers_a-config.Tpo -c -o libdrivers_a-config.o `test -f 'config.c' || echo '$(srcdir)/'`config.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-config.Tpo $(DEPDIR)/libdrivers_a-config.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='config.c' object='libdrivers_a-config.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-config.o `test -f 'config.c' || echo '$(srcdir)/'`config.c
+ 
+ libdrivers_a-config.obj: config.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-config.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-config.Tpo" -c -o libdrivers_a-config.obj `if test -f 'config.c'; then $(CYGPATH_W) 'config.c'; else $(CYGPATH_W) '$(srcdir)/config.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-config.Tpo" "$(DEPDIR)/libdrivers_a-config.Po"; else rm -f "$(DEPDIR)/libdrivers_a-config.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-config.obj -MD -MP -MF $(DEPDIR)/libdrivers_a-config.Tpo -c -o libdrivers_a-config.obj `if test -f 'config.c'; then $(CYGPATH_W) 'config.c'; else $(CYGPATH_W) '$(srcdir)/config.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-config.Tpo $(DEPDIR)/libdrivers_a-config.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='config.c' object='libdrivers_a-config.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-config.obj `if test -f 'config.c'; then $(CYGPATH_W) 'config.c'; else $(CYGPATH_W) '$(srcdir)/config.c'; fi`
+ 
+ libdrivers_a-fsys_tftp.o: fsys_tftp.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-fsys_tftp.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-fsys_tftp.Tpo" -c -o libdrivers_a-fsys_tftp.o `test -f 'fsys_tftp.c' || echo '$(srcdir)/'`fsys_tftp.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-fsys_tftp.Tpo" "$(DEPDIR)/libdrivers_a-fsys_tftp.Po"; else rm -f "$(DEPDIR)/libdrivers_a-fsys_tftp.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-fsys_tftp.o -MD -MP -MF $(DEPDIR)/libdrivers_a-fsys_tftp.Tpo -c -o libdrivers_a-fsys_tftp.o `test -f 'fsys_tftp.c' || echo '$(srcdir)/'`fsys_tftp.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-fsys_tftp.Tpo $(DEPDIR)/libdrivers_a-fsys_tftp.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_tftp.c' object='libdrivers_a-fsys_tftp.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-fsys_tftp.o `test -f 'fsys_tftp.c' || echo '$(srcdir)/'`fsys_tftp.c
+ 
+ libdrivers_a-fsys_tftp.obj: fsys_tftp.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-fsys_tftp.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-fsys_tftp.Tpo" -c -o libdrivers_a-fsys_tftp.obj `if test -f 'fsys_tftp.c'; then $(CYGPATH_W) 'fsys_tftp.c'; else $(CYGPATH_W) '$(srcdir)/fsys_tftp.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-fsys_tftp.Tpo" "$(DEPDIR)/libdrivers_a-fsys_tftp.Po"; else rm -f "$(DEPDIR)/libdrivers_a-fsys_tftp.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-fsys_tftp.obj -MD -MP -MF $(DEPDIR)/libdrivers_a-fsys_tftp.Tpo -c -o libdrivers_a-fsys_tftp.obj `if test -f 'fsys_tftp.c'; then $(CYGPATH_W) 'fsys_tftp.c'; else $(CYGPATH_W) '$(srcdir)/fsys_tftp.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-fsys_tftp.Tpo $(DEPDIR)/libdrivers_a-fsys_tftp.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_tftp.c' object='libdrivers_a-fsys_tftp.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-fsys_tftp.obj `if test -f 'fsys_tftp.c'; then $(CYGPATH_W) 'fsys_tftp.c'; else $(CYGPATH_W) '$(srcdir)/fsys_tftp.c'; fi`
+ 
+ libdrivers_a-main.o: main.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-main.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-main.Tpo" -c -o libdrivers_a-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-main.Tpo" "$(DEPDIR)/libdrivers_a-main.Po"; else rm -f "$(DEPDIR)/libdrivers_a-main.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-main.o -MD -MP -MF $(DEPDIR)/libdrivers_a-main.Tpo -c -o libdrivers_a-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-main.Tpo $(DEPDIR)/libdrivers_a-main.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='main.c' object='libdrivers_a-main.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c
+ 
+ libdrivers_a-main.obj: main.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-main.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-main.Tpo" -c -o libdrivers_a-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-main.Tpo" "$(DEPDIR)/libdrivers_a-main.Po"; else rm -f "$(DEPDIR)/libdrivers_a-main.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-main.obj -MD -MP -MF $(DEPDIR)/libdrivers_a-main.Tpo -c -o libdrivers_a-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-main.Tpo $(DEPDIR)/libdrivers_a-main.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='main.c' object='libdrivers_a-main.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
+ 
+ libdrivers_a-misc.o: misc.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-misc.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-misc.Tpo" -c -o libdrivers_a-misc.o `test -f 'misc.c' || echo '$(srcdir)/'`misc.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-misc.Tpo" "$(DEPDIR)/libdrivers_a-misc.Po"; else rm -f "$(DEPDIR)/libdrivers_a-misc.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-misc.o -MD -MP -MF $(DEPDIR)/libdrivers_a-misc.Tpo -c -o libdrivers_a-misc.o `test -f 'misc.c' || echo '$(srcdir)/'`misc.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-misc.Tpo $(DEPDIR)/libdrivers_a-misc.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='misc.c' object='libdrivers_a-misc.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-misc.o `test -f 'misc.c' || echo '$(srcdir)/'`misc.c
+ 
+ libdrivers_a-misc.obj: misc.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-misc.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-misc.Tpo" -c -o libdrivers_a-misc.obj `if test -f 'misc.c'; then $(CYGPATH_W) 'misc.c'; else $(CYGPATH_W) '$(srcdir)/misc.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-misc.Tpo" "$(DEPDIR)/libdrivers_a-misc.Po"; else rm -f "$(DEPDIR)/libdrivers_a-misc.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-misc.obj -MD -MP -MF $(DEPDIR)/libdrivers_a-misc.Tpo -c -o libdrivers_a-misc.obj `if test -f 'misc.c'; then $(CYGPATH_W) 'misc.c'; else $(CYGPATH_W) '$(srcdir)/misc.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-misc.Tpo $(DEPDIR)/libdrivers_a-misc.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='misc.c' object='libdrivers_a-misc.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-misc.obj `if test -f 'misc.c'; then $(CYGPATH_W) 'misc.c'; else $(CYGPATH_W) '$(srcdir)/misc.c'; fi`
+ 
+ libdrivers_a-pci.o: pci.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-pci.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-pci.Tpo" -c -o libdrivers_a-pci.o `test -f 'pci.c' || echo '$(srcdir)/'`pci.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-pci.Tpo" "$(DEPDIR)/libdrivers_a-pci.Po"; else rm -f "$(DEPDIR)/libdrivers_a-pci.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-pci.o -MD -MP -MF $(DEPDIR)/libdrivers_a-pci.Tpo -c -o libdrivers_a-pci.o `test -f 'pci.c' || echo '$(srcdir)/'`pci.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-pci.Tpo $(DEPDIR)/libdrivers_a-pci.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pci.c' object='libdrivers_a-pci.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-pci.o `test -f 'pci.c' || echo '$(srcdir)/'`pci.c
+ 
+ libdrivers_a-pci.obj: pci.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-pci.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-pci.Tpo" -c -o libdrivers_a-pci.obj `if test -f 'pci.c'; then $(CYGPATH_W) 'pci.c'; else $(CYGPATH_W) '$(srcdir)/pci.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-pci.Tpo" "$(DEPDIR)/libdrivers_a-pci.Po"; else rm -f "$(DEPDIR)/libdrivers_a-pci.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-pci.obj -MD -MP -MF $(DEPDIR)/libdrivers_a-pci.Tpo -c -o libdrivers_a-pci.obj `if test -f 'pci.c'; then $(CYGPATH_W) 'pci.c'; else $(CYGPATH_W) '$(srcdir)/pci.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-pci.Tpo $(DEPDIR)/libdrivers_a-pci.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pci.c' object='libdrivers_a-pci.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-pci.obj `if test -f 'pci.c'; then $(CYGPATH_W) 'pci.c'; else $(CYGPATH_W) '$(srcdir)/pci.c'; fi`
+ 
+ libdrivers_a-timer.o: timer.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-timer.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-timer.Tpo" -c -o libdrivers_a-timer.o `test -f 'timer.c' || echo '$(srcdir)/'`timer.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-timer.Tpo" "$(DEPDIR)/libdrivers_a-timer.Po"; else rm -f "$(DEPDIR)/libdrivers_a-timer.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-timer.o -MD -MP -MF $(DEPDIR)/libdrivers_a-timer.Tpo -c -o libdrivers_a-timer.o `test -f 'timer.c' || echo '$(srcdir)/'`timer.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-timer.Tpo $(DEPDIR)/libdrivers_a-timer.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='timer.c' object='libdrivers_a-timer.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-timer.o `test -f 'timer.c' || echo '$(srcdir)/'`timer.c
+ 
+ libdrivers_a-timer.obj: timer.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-timer.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-timer.Tpo" -c -o libdrivers_a-timer.obj `if test -f 'timer.c'; then $(CYGPATH_W) 'timer.c'; else $(CYGPATH_W) '$(srcdir)/timer.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-timer.Tpo" "$(DEPDIR)/libdrivers_a-timer.Po"; else rm -f "$(DEPDIR)/libdrivers_a-timer.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-timer.obj -MD -MP -MF $(DEPDIR)/libdrivers_a-timer.Tpo -c -o libdrivers_a-timer.obj `if test -f 'timer.c'; then $(CYGPATH_W) 'timer.c'; else $(CYGPATH_W) '$(srcdir)/timer.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-timer.Tpo $(DEPDIR)/libdrivers_a-timer.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='timer.c' object='libdrivers_a-timer.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-timer.obj `if test -f 'timer.c'; then $(CYGPATH_W) 'timer.c'; else $(CYGPATH_W) '$(srcdir)/timer.c'; fi`
+ 
+ libdrivers_a-3c509.o: 3c509.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-3c509.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-3c509.Tpo" -c -o libdrivers_a-3c509.o `test -f '3c509.c' || echo '$(srcdir)/'`3c509.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-3c509.Tpo" "$(DEPDIR)/libdrivers_a-3c509.Po"; else rm -f "$(DEPDIR)/libdrivers_a-3c509.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-3c509.o -MD -MP -MF $(DEPDIR)/libdrivers_a-3c509.Tpo -c -o libdrivers_a-3c509.o `test -f '3c509.c' || echo '$(srcdir)/'`3c509.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-3c509.Tpo $(DEPDIR)/libdrivers_a-3c509.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='3c509.c' object='libdrivers_a-3c509.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-3c509.o `test -f '3c509.c' || echo '$(srcdir)/'`3c509.c
+ 
+ libdrivers_a-3c509.obj: 3c509.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-3c509.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-3c509.Tpo" -c -o libdrivers_a-3c509.obj `if test -f '3c509.c'; then $(CYGPATH_W) '3c509.c'; else $(CYGPATH_W) '$(srcdir)/3c509.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-3c509.Tpo" "$(DEPDIR)/libdrivers_a-3c509.Po"; else rm -f "$(DEPDIR)/libdrivers_a-3c509.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-3c509.obj -MD -MP -MF $(DEPDIR)/libdrivers_a-3c509.Tpo -c -o libdrivers_a-3c509.obj `if test -f '3c509.c'; then $(CYGPATH_W) '3c509.c'; else $(CYGPATH_W) '$(srcdir)/3c509.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-3c509.Tpo $(DEPDIR)/libdrivers_a-3c509.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='3c509.c' object='libdrivers_a-3c509.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-3c509.obj `if test -f '3c509.c'; then $(CYGPATH_W) '3c509.c'; else $(CYGPATH_W) '$(srcdir)/3c509.c'; fi`
+ 
+ libdrivers_a-3c595.o: 3c595.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-3c595.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-3c595.Tpo" -c -o libdrivers_a-3c595.o `test -f '3c595.c' || echo '$(srcdir)/'`3c595.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-3c595.Tpo" "$(DEPDIR)/libdrivers_a-3c595.Po"; else rm -f "$(DEPDIR)/libdrivers_a-3c595.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-3c595.o -MD -MP -MF $(DEPDIR)/libdrivers_a-3c595.Tpo -c -o libdrivers_a-3c595.o `test -f '3c595.c' || echo '$(srcdir)/'`3c595.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-3c595.Tpo $(DEPDIR)/libdrivers_a-3c595.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='3c595.c' object='libdrivers_a-3c595.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-3c595.o `test -f '3c595.c' || echo '$(srcdir)/'`3c595.c
+ 
+ libdrivers_a-3c595.obj: 3c595.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-3c595.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-3c595.Tpo" -c -o libdrivers_a-3c595.obj `if test -f '3c595.c'; then $(CYGPATH_W) '3c595.c'; else $(CYGPATH_W) '$(srcdir)/3c595.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-3c595.Tpo" "$(DEPDIR)/libdrivers_a-3c595.Po"; else rm -f "$(DEPDIR)/libdrivers_a-3c595.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-3c595.obj -MD -MP -MF $(DEPDIR)/libdrivers_a-3c595.Tpo -c -o libdrivers_a-3c595.obj `if test -f '3c595.c'; then $(CYGPATH_W) '3c595.c'; else $(CYGPATH_W) '$(srcdir)/3c595.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-3c595.Tpo $(DEPDIR)/libdrivers_a-3c595.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='3c595.c' object='libdrivers_a-3c595.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-3c595.obj `if test -f '3c595.c'; then $(CYGPATH_W) '3c595.c'; else $(CYGPATH_W) '$(srcdir)/3c595.c'; fi`
+ 
+ libdrivers_a-3c90x.o: 3c90x.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-3c90x.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-3c90x.Tpo" -c -o libdrivers_a-3c90x.o `test -f '3c90x.c' || echo '$(srcdir)/'`3c90x.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-3c90x.Tpo" "$(DEPDIR)/libdrivers_a-3c90x.Po"; else rm -f "$(DEPDIR)/libdrivers_a-3c90x.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-3c90x.o -MD -MP -MF $(DEPDIR)/libdrivers_a-3c90x.Tpo -c -o libdrivers_a-3c90x.o `test -f '3c90x.c' || echo '$(srcdir)/'`3c90x.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-3c90x.Tpo $(DEPDIR)/libdrivers_a-3c90x.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='3c90x.c' object='libdrivers_a-3c90x.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-3c90x.o `test -f '3c90x.c' || echo '$(srcdir)/'`3c90x.c
+ 
+ libdrivers_a-3c90x.obj: 3c90x.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-3c90x.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-3c90x.Tpo" -c -o libdrivers_a-3c90x.obj `if test -f '3c90x.c'; then $(CYGPATH_W) '3c90x.c'; else $(CYGPATH_W) '$(srcdir)/3c90x.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-3c90x.Tpo" "$(DEPDIR)/libdrivers_a-3c90x.Po"; else rm -f "$(DEPDIR)/libdrivers_a-3c90x.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-3c90x.obj -MD -MP -MF $(DEPDIR)/libdrivers_a-3c90x.Tpo -c -o libdrivers_a-3c90x.obj `if test -f '3c90x.c'; then $(CYGPATH_W) '3c90x.c'; else $(CYGPATH_W) '$(srcdir)/3c90x.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-3c90x.Tpo $(DEPDIR)/libdrivers_a-3c90x.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='3c90x.c' object='libdrivers_a-3c90x.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-3c90x.obj `if test -f '3c90x.c'; then $(CYGPATH_W) '3c90x.c'; else $(CYGPATH_W) '$(srcdir)/3c90x.c'; fi`
+ 
+ libdrivers_a-cs89x0.o: cs89x0.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-cs89x0.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-cs89x0.Tpo" -c -o libdrivers_a-cs89x0.o `test -f 'cs89x0.c' || echo '$(srcdir)/'`cs89x0.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-cs89x0.Tpo" "$(DEPDIR)/libdrivers_a-cs89x0.Po"; else rm -f "$(DEPDIR)/libdrivers_a-cs89x0.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-cs89x0.o -MD -MP -MF $(DEPDIR)/libdrivers_a-cs89x0.Tpo -c -o libdrivers_a-cs89x0.o `test -f 'cs89x0.c' || echo '$(srcdir)/'`cs89x0.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-cs89x0.Tpo $(DEPDIR)/libdrivers_a-cs89x0.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='cs89x0.c' object='libdrivers_a-cs89x0.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-cs89x0.o `test -f 'cs89x0.c' || echo '$(srcdir)/'`cs89x0.c
+ 
+ libdrivers_a-cs89x0.obj: cs89x0.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-cs89x0.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-cs89x0.Tpo" -c -o libdrivers_a-cs89x0.obj `if test -f 'cs89x0.c'; then $(CYGPATH_W) 'cs89x0.c'; else $(CYGPATH_W) '$(srcdir)/cs89x0.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-cs89x0.Tpo" "$(DEPDIR)/libdrivers_a-cs89x0.Po"; else rm -f "$(DEPDIR)/libdrivers_a-cs89x0.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-cs89x0.obj -MD -MP -MF $(DEPDIR)/libdrivers_a-cs89x0.Tpo -c -o libdrivers_a-cs89x0.obj `if test -f 'cs89x0.c'; then $(CYGPATH_W) 'cs89x0.c'; else $(CYGPATH_W) '$(srcdir)/cs89x0.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-cs89x0.Tpo $(DEPDIR)/libdrivers_a-cs89x0.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='cs89x0.c' object='libdrivers_a-cs89x0.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-cs89x0.obj `if test -f 'cs89x0.c'; then $(CYGPATH_W) 'cs89x0.c'; else $(CYGPATH_W) '$(srcdir)/cs89x0.c'; fi`
+ 
+ libdrivers_a-davicom.o: davicom.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-davicom.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-davicom.Tpo" -c -o libdrivers_a-davicom.o `test -f 'davicom.c' || echo '$(srcdir)/'`davicom.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-davicom.Tpo" "$(DEPDIR)/libdrivers_a-davicom.Po"; else rm -f "$(DEPDIR)/libdrivers_a-davicom.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-davicom.o -MD -MP -MF $(DEPDIR)/libdrivers_a-davicom.Tpo -c -o libdrivers_a-davicom.o `test -f 'davicom.c' || echo '$(srcdir)/'`davicom.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-davicom.Tpo $(DEPDIR)/libdrivers_a-davicom.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='davicom.c' object='libdrivers_a-davicom.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-davicom.o `test -f 'davicom.c' || echo '$(srcdir)/'`davicom.c
+ 
+ libdrivers_a-davicom.obj: davicom.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-davicom.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-davicom.Tpo" -c -o libdrivers_a-davicom.obj `if test -f 'davicom.c'; then $(CYGPATH_W) 'davicom.c'; else $(CYGPATH_W) '$(srcdir)/davicom.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-davicom.Tpo" "$(DEPDIR)/libdrivers_a-davicom.Po"; else rm -f "$(DEPDIR)/libdrivers_a-davicom.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-davicom.obj -MD -MP -MF $(DEPDIR)/libdrivers_a-davicom.Tpo -c -o libdrivers_a-davicom.obj `if test -f 'davicom.c'; then $(CYGPATH_W) 'davicom.c'; else $(CYGPATH_W) '$(srcdir)/davicom.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-davicom.Tpo $(DEPDIR)/libdrivers_a-davicom.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='davicom.c' object='libdrivers_a-davicom.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-davicom.obj `if test -f 'davicom.c'; then $(CYGPATH_W) 'davicom.c'; else $(CYGPATH_W) '$(srcdir)/davicom.c'; fi`
+ 
+ libdrivers_a-depca.o: depca.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-depca.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-depca.Tpo" -c -o libdrivers_a-depca.o `test -f 'depca.c' || echo '$(srcdir)/'`depca.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-depca.Tpo" "$(DEPDIR)/libdrivers_a-depca.Po"; else rm -f "$(DEPDIR)/libdrivers_a-depca.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-depca.o -MD -MP -MF $(DEPDIR)/libdrivers_a-depca.Tpo -c -o libdrivers_a-depca.o `test -f 'depca.c' || echo '$(srcdir)/'`depca.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-depca.Tpo $(DEPDIR)/libdrivers_a-depca.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='depca.c' object='libdrivers_a-depca.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-depca.o `test -f 'depca.c' || echo '$(srcdir)/'`depca.c
+ 
+ libdrivers_a-depca.obj: depca.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-depca.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-depca.Tpo" -c -o libdrivers_a-depca.obj `if test -f 'depca.c'; then $(CYGPATH_W) 'depca.c'; else $(CYGPATH_W) '$(srcdir)/depca.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-depca.Tpo" "$(DEPDIR)/libdrivers_a-depca.Po"; else rm -f "$(DEPDIR)/libdrivers_a-depca.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-depca.obj -MD -MP -MF $(DEPDIR)/libdrivers_a-depca.Tpo -c -o libdrivers_a-depca.obj `if test -f 'depca.c'; then $(CYGPATH_W) 'depca.c'; else $(CYGPATH_W) '$(srcdir)/depca.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-depca.Tpo $(DEPDIR)/libdrivers_a-depca.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='depca.c' object='libdrivers_a-depca.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-depca.obj `if test -f 'depca.c'; then $(CYGPATH_W) 'depca.c'; else $(CYGPATH_W) '$(srcdir)/depca.c'; fi`
+ 
+ libdrivers_a-eepro.o: eepro.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-eepro.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-eepro.Tpo" -c -o libdrivers_a-eepro.o `test -f 'eepro.c' || echo '$(srcdir)/'`eepro.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-eepro.Tpo" "$(DEPDIR)/libdrivers_a-eepro.Po"; else rm -f "$(DEPDIR)/libdrivers_a-eepro.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-eepro.o -MD -MP -MF $(DEPDIR)/libdrivers_a-eepro.Tpo -c -o libdrivers_a-eepro.o `test -f 'eepro.c' || echo '$(srcdir)/'`eepro.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-eepro.Tpo $(DEPDIR)/libdrivers_a-eepro.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='eepro.c' object='libdrivers_a-eepro.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-eepro.o `test -f 'eepro.c' || echo '$(srcdir)/'`eepro.c
+ 
+ libdrivers_a-eepro.obj: eepro.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-eepro.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-eepro.Tpo" -c -o libdrivers_a-eepro.obj `if test -f 'eepro.c'; then $(CYGPATH_W) 'eepro.c'; else $(CYGPATH_W) '$(srcdir)/eepro.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-eepro.Tpo" "$(DEPDIR)/libdrivers_a-eepro.Po"; else rm -f "$(DEPDIR)/libdrivers_a-eepro.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-eepro.obj -MD -MP -MF $(DEPDIR)/libdrivers_a-eepro.Tpo -c -o libdrivers_a-eepro.obj `if test -f 'eepro.c'; then $(CYGPATH_W) 'eepro.c'; else $(CYGPATH_W) '$(srcdir)/eepro.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-eepro.Tpo $(DEPDIR)/libdrivers_a-eepro.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='eepro.c' object='libdrivers_a-eepro.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-eepro.obj `if test -f 'eepro.c'; then $(CYGPATH_W) 'eepro.c'; else $(CYGPATH_W) '$(srcdir)/eepro.c'; fi`
+ 
+ libdrivers_a-eepro100.o: eepro100.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-eepro100.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-eepro100.Tpo" -c -o libdrivers_a-eepro100.o `test -f 'eepro100.c' || echo '$(srcdir)/'`eepro100.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-eepro100.Tpo" "$(DEPDIR)/libdrivers_a-eepro100.Po"; else rm -f "$(DEPDIR)/libdrivers_a-eepro100.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-eepro100.o -MD -MP -MF $(DEPDIR)/libdrivers_a-eepro100.Tpo -c -o libdrivers_a-eepro100.o `test -f 'eepro100.c' || echo '$(srcdir)/'`eepro100.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-eepro100.Tpo $(DEPDIR)/libdrivers_a-eepro100.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='eepro100.c' object='libdrivers_a-eepro100.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-eepro100.o `test -f 'eepro100.c' || echo '$(srcdir)/'`eepro100.c
+ 
+ libdrivers_a-eepro100.obj: eepro100.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-eepro100.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-eepro100.Tpo" -c -o libdrivers_a-eepro100.obj `if test -f 'eepro100.c'; then $(CYGPATH_W) 'eepro100.c'; else $(CYGPATH_W) '$(srcdir)/eepro100.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-eepro100.Tpo" "$(DEPDIR)/libdrivers_a-eepro100.Po"; else rm -f "$(DEPDIR)/libdrivers_a-eepro100.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-eepro100.obj -MD -MP -MF $(DEPDIR)/libdrivers_a-eepro100.Tpo -c -o libdrivers_a-eepro100.obj `if test -f 'eepro100.c'; then $(CYGPATH_W) 'eepro100.c'; else $(CYGPATH_W) '$(srcdir)/eepro100.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-eepro100.Tpo $(DEPDIR)/libdrivers_a-eepro100.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='eepro100.c' object='libdrivers_a-eepro100.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-eepro100.obj `if test -f 'eepro100.c'; then $(CYGPATH_W) 'eepro100.c'; else $(CYGPATH_W) '$(srcdir)/eepro100.c'; fi`
+ 
+ libdrivers_a-epic100.o: epic100.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-epic100.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-epic100.Tpo" -c -o libdrivers_a-epic100.o `test -f 'epic100.c' || echo '$(srcdir)/'`epic100.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-epic100.Tpo" "$(DEPDIR)/libdrivers_a-epic100.Po"; else rm -f "$(DEPDIR)/libdrivers_a-epic100.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-epic100.o -MD -MP -MF $(DEPDIR)/libdrivers_a-epic100.Tpo -c -o libdrivers_a-epic100.o `test -f 'epic100.c' || echo '$(srcdir)/'`epic100.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-epic100.Tpo $(DEPDIR)/libdrivers_a-epic100.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epic100.c' object='libdrivers_a-epic100.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-epic100.o `test -f 'epic100.c' || echo '$(srcdir)/'`epic100.c
+ 
+ libdrivers_a-epic100.obj: epic100.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-epic100.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-epic100.Tpo" -c -o libdrivers_a-epic100.obj `if test -f 'epic100.c'; then $(CYGPATH_W) 'epic100.c'; else $(CYGPATH_W) '$(srcdir)/epic100.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-epic100.Tpo" "$(DEPDIR)/libdrivers_a-epic100.Po"; else rm -f "$(DEPDIR)/libdrivers_a-epic100.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-epic100.obj -MD -MP -MF $(DEPDIR)/libdrivers_a-epic100.Tpo -c -o libdrivers_a-epic100.obj `if test -f 'epic100.c'; then $(CYGPATH_W) 'epic100.c'; else $(CYGPATH_W) '$(srcdir)/epic100.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-epic100.Tpo $(DEPDIR)/libdrivers_a-epic100.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='epic100.c' object='libdrivers_a-epic100.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-epic100.obj `if test -f 'epic100.c'; then $(CYGPATH_W) 'epic100.c'; else $(CYGPATH_W) '$(srcdir)/epic100.c'; fi`
+ 
+ libdrivers_a-fa311.o: fa311.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-fa311.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-fa311.Tpo" -c -o libdrivers_a-fa311.o `test -f 'fa311.c' || echo '$(srcdir)/'`fa311.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-fa311.Tpo" "$(DEPDIR)/libdrivers_a-fa311.Po"; else rm -f "$(DEPDIR)/libdrivers_a-fa311.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-fa311.o -MD -MP -MF $(DEPDIR)/libdrivers_a-fa311.Tpo -c -o libdrivers_a-fa311.o `test -f 'fa311.c' || echo '$(srcdir)/'`fa311.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-fa311.Tpo $(DEPDIR)/libdrivers_a-fa311.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fa311.c' object='libdrivers_a-fa311.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-fa311.o `test -f 'fa311.c' || echo '$(srcdir)/'`fa311.c
+ 
+ libdrivers_a-fa311.obj: fa311.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-fa311.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-fa311.Tpo" -c -o libdrivers_a-fa311.obj `if test -f 'fa311.c'; then $(CYGPATH_W) 'fa311.c'; else $(CYGPATH_W) '$(srcdir)/fa311.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-fa311.Tpo" "$(DEPDIR)/libdrivers_a-fa311.Po"; else rm -f "$(DEPDIR)/libdrivers_a-fa311.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-fa311.obj -MD -MP -MF $(DEPDIR)/libdrivers_a-fa311.Tpo -c -o libdrivers_a-fa311.obj `if test -f 'fa311.c'; then $(CYGPATH_W) 'fa311.c'; else $(CYGPATH_W) '$(srcdir)/fa311.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-fa311.Tpo $(DEPDIR)/libdrivers_a-fa311.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fa311.c' object='libdrivers_a-fa311.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-fa311.obj `if test -f 'fa311.c'; then $(CYGPATH_W) 'fa311.c'; else $(CYGPATH_W) '$(srcdir)/fa311.c'; fi`
+ 
+ libdrivers_a-i82586.o: i82586.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-i82586.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-i82586.Tpo" -c -o libdrivers_a-i82586.o `test -f 'i82586.c' || echo '$(srcdir)/'`i82586.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-i82586.Tpo" "$(DEPDIR)/libdrivers_a-i82586.Po"; else rm -f "$(DEPDIR)/libdrivers_a-i82586.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-i82586.o -MD -MP -MF $(DEPDIR)/libdrivers_a-i82586.Tpo -c -o libdrivers_a-i82586.o `test -f 'i82586.c' || echo '$(srcdir)/'`i82586.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-i82586.Tpo $(DEPDIR)/libdrivers_a-i82586.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='i82586.c' object='libdrivers_a-i82586.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-i82586.o `test -f 'i82586.c' || echo '$(srcdir)/'`i82586.c
+ 
+ libdrivers_a-i82586.obj: i82586.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-i82586.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-i82586.Tpo" -c -o libdrivers_a-i82586.obj `if test -f 'i82586.c'; then $(CYGPATH_W) 'i82586.c'; else $(CYGPATH_W) '$(srcdir)/i82586.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-i82586.Tpo" "$(DEPDIR)/libdrivers_a-i82586.Po"; else rm -f "$(DEPDIR)/libdrivers_a-i82586.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-i82586.obj -MD -MP -MF $(DEPDIR)/libdrivers_a-i82586.Tpo -c -o libdrivers_a-i82586.obj `if test -f 'i82586.c'; then $(CYGPATH_W) 'i82586.c'; else $(CYGPATH_W) '$(srcdir)/i82586.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-i82586.Tpo $(DEPDIR)/libdrivers_a-i82586.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='i82586.c' object='libdrivers_a-i82586.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-i82586.obj `if test -f 'i82586.c'; then $(CYGPATH_W) 'i82586.c'; else $(CYGPATH_W) '$(srcdir)/i82586.c'; fi`
+ 
+ libdrivers_a-lance.o: lance.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-lance.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-lance.Tpo" -c -o libdrivers_a-lance.o `test -f 'lance.c' || echo '$(srcdir)/'`lance.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-lance.Tpo" "$(DEPDIR)/libdrivers_a-lance.Po"; else rm -f "$(DEPDIR)/libdrivers_a-lance.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-lance.o -MD -MP -MF $(DEPDIR)/libdrivers_a-lance.Tpo -c -o libdrivers_a-lance.o `test -f 'lance.c' || echo '$(srcdir)/'`lance.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-lance.Tpo $(DEPDIR)/libdrivers_a-lance.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='lance.c' object='libdrivers_a-lance.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-lance.o `test -f 'lance.c' || echo '$(srcdir)/'`lance.c
+ 
+ libdrivers_a-lance.obj: lance.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-lance.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-lance.Tpo" -c -o libdrivers_a-lance.obj `if test -f 'lance.c'; then $(CYGPATH_W) 'lance.c'; else $(CYGPATH_W) '$(srcdir)/lance.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-lance.Tpo" "$(DEPDIR)/libdrivers_a-lance.Po"; else rm -f "$(DEPDIR)/libdrivers_a-lance.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-lance.obj -MD -MP -MF $(DEPDIR)/libdrivers_a-lance.Tpo -c -o libdrivers_a-lance.obj `if test -f 'lance.c'; then $(CYGPATH_W) 'lance.c'; else $(CYGPATH_W) '$(srcdir)/lance.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-lance.Tpo $(DEPDIR)/libdrivers_a-lance.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='lance.c' object='libdrivers_a-lance.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-lance.obj `if test -f 'lance.c'; then $(CYGPATH_W) 'lance.c'; else $(CYGPATH_W) '$(srcdir)/lance.c'; fi`
+ 
+ libdrivers_a-natsemi.o: natsemi.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-natsemi.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-natsemi.Tpo" -c -o libdrivers_a-natsemi.o `test -f 'natsemi.c' || echo '$(srcdir)/'`natsemi.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-natsemi.Tpo" "$(DEPDIR)/libdrivers_a-natsemi.Po"; else rm -f "$(DEPDIR)/libdrivers_a-natsemi.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-natsemi.o -MD -MP -MF $(DEPDIR)/libdrivers_a-natsemi.Tpo -c -o libdrivers_a-natsemi.o `test -f 'natsemi.c' || echo '$(srcdir)/'`natsemi.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-natsemi.Tpo $(DEPDIR)/libdrivers_a-natsemi.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='natsemi.c' object='libdrivers_a-natsemi.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-natsemi.o `test -f 'natsemi.c' || echo '$(srcdir)/'`natsemi.c
+ 
+ libdrivers_a-natsemi.obj: natsemi.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-natsemi.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-natsemi.Tpo" -c -o libdrivers_a-natsemi.obj `if test -f 'natsemi.c'; then $(CYGPATH_W) 'natsemi.c'; else $(CYGPATH_W) '$(srcdir)/natsemi.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-natsemi.Tpo" "$(DEPDIR)/libdrivers_a-natsemi.Po"; else rm -f "$(DEPDIR)/libdrivers_a-natsemi.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-natsemi.obj -MD -MP -MF $(DEPDIR)/libdrivers_a-natsemi.Tpo -c -o libdrivers_a-natsemi.obj `if test -f 'natsemi.c'; then $(CYGPATH_W) 'natsemi.c'; else $(CYGPATH_W) '$(srcdir)/natsemi.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-natsemi.Tpo $(DEPDIR)/libdrivers_a-natsemi.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='natsemi.c' object='libdrivers_a-natsemi.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-natsemi.obj `if test -f 'natsemi.c'; then $(CYGPATH_W) 'natsemi.c'; else $(CYGPATH_W) '$(srcdir)/natsemi.c'; fi`
+ 
+ libdrivers_a-ni5010.o: ni5010.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-ni5010.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-ni5010.Tpo" -c -o libdrivers_a-ni5010.o `test -f 'ni5010.c' || echo '$(srcdir)/'`ni5010.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-ni5010.Tpo" "$(DEPDIR)/libdrivers_a-ni5010.Po"; else rm -f "$(DEPDIR)/libdrivers_a-ni5010.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-ni5010.o -MD -MP -MF $(DEPDIR)/libdrivers_a-ni5010.Tpo -c -o libdrivers_a-ni5010.o `test -f 'ni5010.c' || echo '$(srcdir)/'`ni5010.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-ni5010.Tpo $(DEPDIR)/libdrivers_a-ni5010.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='ni5010.c' object='libdrivers_a-ni5010.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-ni5010.o `test -f 'ni5010.c' || echo '$(srcdir)/'`ni5010.c
+ 
+ libdrivers_a-ni5010.obj: ni5010.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-ni5010.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-ni5010.Tpo" -c -o libdrivers_a-ni5010.obj `if test -f 'ni5010.c'; then $(CYGPATH_W) 'ni5010.c'; else $(CYGPATH_W) '$(srcdir)/ni5010.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-ni5010.Tpo" "$(DEPDIR)/libdrivers_a-ni5010.Po"; else rm -f "$(DEPDIR)/libdrivers_a-ni5010.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-ni5010.obj -MD -MP -MF $(DEPDIR)/libdrivers_a-ni5010.Tpo -c -o libdrivers_a-ni5010.obj `if test -f 'ni5010.c'; then $(CYGPATH_W) 'ni5010.c'; else $(CYGPATH_W) '$(srcdir)/ni5010.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-ni5010.Tpo $(DEPDIR)/libdrivers_a-ni5010.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='ni5010.c' object='libdrivers_a-ni5010.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-ni5010.obj `if test -f 'ni5010.c'; then $(CYGPATH_W) 'ni5010.c'; else $(CYGPATH_W) '$(srcdir)/ni5010.c'; fi`
+ 
+ libdrivers_a-ns8390.o: ns8390.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-ns8390.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-ns8390.Tpo" -c -o libdrivers_a-ns8390.o `test -f 'ns8390.c' || echo '$(srcdir)/'`ns8390.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-ns8390.Tpo" "$(DEPDIR)/libdrivers_a-ns8390.Po"; else rm -f "$(DEPDIR)/libdrivers_a-ns8390.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-ns8390.o -MD -MP -MF $(DEPDIR)/libdrivers_a-ns8390.Tpo -c -o libdrivers_a-ns8390.o `test -f 'ns8390.c' || echo '$(srcdir)/'`ns8390.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-ns8390.Tpo $(DEPDIR)/libdrivers_a-ns8390.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='ns8390.c' object='libdrivers_a-ns8390.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-ns8390.o `test -f 'ns8390.c' || echo '$(srcdir)/'`ns8390.c
+ 
+ libdrivers_a-ns8390.obj: ns8390.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-ns8390.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-ns8390.Tpo" -c -o libdrivers_a-ns8390.obj `if test -f 'ns8390.c'; then $(CYGPATH_W) 'ns8390.c'; else $(CYGPATH_W) '$(srcdir)/ns8390.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-ns8390.Tpo" "$(DEPDIR)/libdrivers_a-ns8390.Po"; else rm -f "$(DEPDIR)/libdrivers_a-ns8390.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-ns8390.obj -MD -MP -MF $(DEPDIR)/libdrivers_a-ns8390.Tpo -c -o libdrivers_a-ns8390.obj `if test -f 'ns8390.c'; then $(CYGPATH_W) 'ns8390.c'; else $(CYGPATH_W) '$(srcdir)/ns8390.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-ns8390.Tpo $(DEPDIR)/libdrivers_a-ns8390.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='ns8390.c' object='libdrivers_a-ns8390.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-ns8390.obj `if test -f 'ns8390.c'; then $(CYGPATH_W) 'ns8390.c'; else $(CYGPATH_W) '$(srcdir)/ns8390.c'; fi`
+ 
+ libdrivers_a-otulip.o: otulip.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-otulip.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-otulip.Tpo" -c -o libdrivers_a-otulip.o `test -f 'otulip.c' || echo '$(srcdir)/'`otulip.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-otulip.Tpo" "$(DEPDIR)/libdrivers_a-otulip.Po"; else rm -f "$(DEPDIR)/libdrivers_a-otulip.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-otulip.o -MD -MP -MF $(DEPDIR)/libdrivers_a-otulip.Tpo -c -o libdrivers_a-otulip.o `test -f 'otulip.c' || echo '$(srcdir)/'`otulip.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-otulip.Tpo $(DEPDIR)/libdrivers_a-otulip.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='otulip.c' object='libdrivers_a-otulip.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-otulip.o `test -f 'otulip.c' || echo '$(srcdir)/'`otulip.c
+ 
+ libdrivers_a-otulip.obj: otulip.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-otulip.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-otulip.Tpo" -c -o libdrivers_a-otulip.obj `if test -f 'otulip.c'; then $(CYGPATH_W) 'otulip.c'; else $(CYGPATH_W) '$(srcdir)/otulip.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-otulip.Tpo" "$(DEPDIR)/libdrivers_a-otulip.Po"; else rm -f "$(DEPDIR)/libdrivers_a-otulip.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-otulip.obj -MD -MP -MF $(DEPDIR)/libdrivers_a-otulip.Tpo -c -o libdrivers_a-otulip.obj `if test -f 'otulip.c'; then $(CYGPATH_W) 'otulip.c'; else $(CYGPATH_W) '$(srcdir)/otulip.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-otulip.Tpo $(DEPDIR)/libdrivers_a-otulip.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='otulip.c' object='libdrivers_a-otulip.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-otulip.obj `if test -f 'otulip.c'; then $(CYGPATH_W) 'otulip.c'; else $(CYGPATH_W) '$(srcdir)/otulip.c'; fi`
+ 
+ libdrivers_a-rtl8139.o: rtl8139.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-rtl8139.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-rtl8139.Tpo" -c -o libdrivers_a-rtl8139.o `test -f 'rtl8139.c' || echo '$(srcdir)/'`rtl8139.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-rtl8139.Tpo" "$(DEPDIR)/libdrivers_a-rtl8139.Po"; else rm -f "$(DEPDIR)/libdrivers_a-rtl8139.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-rtl8139.o -MD -MP -MF $(DEPDIR)/libdrivers_a-rtl8139.Tpo -c -o libdrivers_a-rtl8139.o `test -f 'rtl8139.c' || echo '$(srcdir)/'`rtl8139.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-rtl8139.Tpo $(DEPDIR)/libdrivers_a-rtl8139.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='rtl8139.c' object='libdrivers_a-rtl8139.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-rtl8139.o `test -f 'rtl8139.c' || echo '$(srcdir)/'`rtl8139.c
+ 
+ libdrivers_a-rtl8139.obj: rtl8139.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-rtl8139.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-rtl8139.Tpo" -c -o libdrivers_a-rtl8139.obj `if test -f 'rtl8139.c'; then $(CYGPATH_W) 'rtl8139.c'; else $(CYGPATH_W) '$(srcdir)/rtl8139.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-rtl8139.Tpo" "$(DEPDIR)/libdrivers_a-rtl8139.Po"; else rm -f "$(DEPDIR)/libdrivers_a-rtl8139.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-rtl8139.obj -MD -MP -MF $(DEPDIR)/libdrivers_a-rtl8139.Tpo -c -o libdrivers_a-rtl8139.obj `if test -f 'rtl8139.c'; then $(CYGPATH_W) 'rtl8139.c'; else $(CYGPATH_W) '$(srcdir)/rtl8139.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-rtl8139.Tpo $(DEPDIR)/libdrivers_a-rtl8139.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='rtl8139.c' object='libdrivers_a-rtl8139.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-rtl8139.obj `if test -f 'rtl8139.c'; then $(CYGPATH_W) 'rtl8139.c'; else $(CYGPATH_W) '$(srcdir)/rtl8139.c'; fi`
+ 
+ libdrivers_a-sis900.o: sis900.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-sis900.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-sis900.Tpo" -c -o libdrivers_a-sis900.o `test -f 'sis900.c' || echo '$(srcdir)/'`sis900.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-sis900.Tpo" "$(DEPDIR)/libdrivers_a-sis900.Po"; else rm -f "$(DEPDIR)/libdrivers_a-sis900.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-sis900.o -MD -MP -MF $(DEPDIR)/libdrivers_a-sis900.Tpo -c -o libdrivers_a-sis900.o `test -f 'sis900.c' || echo '$(srcdir)/'`sis900.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-sis900.Tpo $(DEPDIR)/libdrivers_a-sis900.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='sis900.c' object='libdrivers_a-sis900.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-sis900.o `test -f 'sis900.c' || echo '$(srcdir)/'`sis900.c
+ 
+ libdrivers_a-sis900.obj: sis900.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-sis900.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-sis900.Tpo" -c -o libdrivers_a-sis900.obj `if test -f 'sis900.c'; then $(CYGPATH_W) 'sis900.c'; else $(CYGPATH_W) '$(srcdir)/sis900.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-sis900.Tpo" "$(DEPDIR)/libdrivers_a-sis900.Po"; else rm -f "$(DEPDIR)/libdrivers_a-sis900.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-sis900.obj -MD -MP -MF $(DEPDIR)/libdrivers_a-sis900.Tpo -c -o libdrivers_a-sis900.obj `if test -f 'sis900.c'; then $(CYGPATH_W) 'sis900.c'; else $(CYGPATH_W) '$(srcdir)/sis900.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-sis900.Tpo $(DEPDIR)/libdrivers_a-sis900.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='sis900.c' object='libdrivers_a-sis900.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-sis900.obj `if test -f 'sis900.c'; then $(CYGPATH_W) 'sis900.c'; else $(CYGPATH_W) '$(srcdir)/sis900.c'; fi`
+ 
+ libdrivers_a-sk_g16.o: sk_g16.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-sk_g16.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-sk_g16.Tpo" -c -o libdrivers_a-sk_g16.o `test -f 'sk_g16.c' || echo '$(srcdir)/'`sk_g16.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-sk_g16.Tpo" "$(DEPDIR)/libdrivers_a-sk_g16.Po"; else rm -f "$(DEPDIR)/libdrivers_a-sk_g16.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-sk_g16.o -MD -MP -MF $(DEPDIR)/libdrivers_a-sk_g16.Tpo -c -o libdrivers_a-sk_g16.o `test -f 'sk_g16.c' || echo '$(srcdir)/'`sk_g16.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-sk_g16.Tpo $(DEPDIR)/libdrivers_a-sk_g16.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='sk_g16.c' object='libdrivers_a-sk_g16.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-sk_g16.o `test -f 'sk_g16.c' || echo '$(srcdir)/'`sk_g16.c
+ 
+ libdrivers_a-sk_g16.obj: sk_g16.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-sk_g16.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-sk_g16.Tpo" -c -o libdrivers_a-sk_g16.obj `if test -f 'sk_g16.c'; then $(CYGPATH_W) 'sk_g16.c'; else $(CYGPATH_W) '$(srcdir)/sk_g16.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-sk_g16.Tpo" "$(DEPDIR)/libdrivers_a-sk_g16.Po"; else rm -f "$(DEPDIR)/libdrivers_a-sk_g16.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-sk_g16.obj -MD -MP -MF $(DEPDIR)/libdrivers_a-sk_g16.Tpo -c -o libdrivers_a-sk_g16.obj `if test -f 'sk_g16.c'; then $(CYGPATH_W) 'sk_g16.c'; else $(CYGPATH_W) '$(srcdir)/sk_g16.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-sk_g16.Tpo $(DEPDIR)/libdrivers_a-sk_g16.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='sk_g16.c' object='libdrivers_a-sk_g16.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-sk_g16.obj `if test -f 'sk_g16.c'; then $(CYGPATH_W) 'sk_g16.c'; else $(CYGPATH_W) '$(srcdir)/sk_g16.c'; fi`
+ 
+ libdrivers_a-smc9000.o: smc9000.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-smc9000.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-smc9000.Tpo" -c -o libdrivers_a-smc9000.o `test -f 'smc9000.c' || echo '$(srcdir)/'`smc9000.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-smc9000.Tpo" "$(DEPDIR)/libdrivers_a-smc9000.Po"; else rm -f "$(DEPDIR)/libdrivers_a-smc9000.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-smc9000.o -MD -MP -MF $(DEPDIR)/libdrivers_a-smc9000.Tpo -c -o libdrivers_a-smc9000.o `test -f 'smc9000.c' || echo '$(srcdir)/'`smc9000.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-smc9000.Tpo $(DEPDIR)/libdrivers_a-smc9000.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='smc9000.c' object='libdrivers_a-smc9000.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-smc9000.o `test -f 'smc9000.c' || echo '$(srcdir)/'`smc9000.c
+ 
+ libdrivers_a-smc9000.obj: smc9000.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-smc9000.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-smc9000.Tpo" -c -o libdrivers_a-smc9000.obj `if test -f 'smc9000.c'; then $(CYGPATH_W) 'smc9000.c'; else $(CYGPATH_W) '$(srcdir)/smc9000.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-smc9000.Tpo" "$(DEPDIR)/libdrivers_a-smc9000.Po"; else rm -f "$(DEPDIR)/libdrivers_a-smc9000.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-smc9000.obj -MD -MP -MF $(DEPDIR)/libdrivers_a-smc9000.Tpo -c -o libdrivers_a-smc9000.obj `if test -f 'smc9000.c'; then $(CYGPATH_W) 'smc9000.c'; else $(CYGPATH_W) '$(srcdir)/smc9000.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-smc9000.Tpo $(DEPDIR)/libdrivers_a-smc9000.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='smc9000.c' object='libdrivers_a-smc9000.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-smc9000.obj `if test -f 'smc9000.c'; then $(CYGPATH_W) 'smc9000.c'; else $(CYGPATH_W) '$(srcdir)/smc9000.c'; fi`
+ 
+ libdrivers_a-tiara.o: tiara.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-tiara.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-tiara.Tpo" -c -o libdrivers_a-tiara.o `test -f 'tiara.c' || echo '$(srcdir)/'`tiara.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-tiara.Tpo" "$(DEPDIR)/libdrivers_a-tiara.Po"; else rm -f "$(DEPDIR)/libdrivers_a-tiara.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-tiara.o -MD -MP -MF $(DEPDIR)/libdrivers_a-tiara.Tpo -c -o libdrivers_a-tiara.o `test -f 'tiara.c' || echo '$(srcdir)/'`tiara.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-tiara.Tpo $(DEPDIR)/libdrivers_a-tiara.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='tiara.c' object='libdrivers_a-tiara.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-tiara.o `test -f 'tiara.c' || echo '$(srcdir)/'`tiara.c
+ 
+ libdrivers_a-tiara.obj: tiara.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-tiara.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-tiara.Tpo" -c -o libdrivers_a-tiara.obj `if test -f 'tiara.c'; then $(CYGPATH_W) 'tiara.c'; else $(CYGPATH_W) '$(srcdir)/tiara.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-tiara.Tpo" "$(DEPDIR)/libdrivers_a-tiara.Po"; else rm -f "$(DEPDIR)/libdrivers_a-tiara.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-tiara.obj -MD -MP -MF $(DEPDIR)/libdrivers_a-tiara.Tpo -c -o libdrivers_a-tiara.obj `if test -f 'tiara.c'; then $(CYGPATH_W) 'tiara.c'; else $(CYGPATH_W) '$(srcdir)/tiara.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-tiara.Tpo $(DEPDIR)/libdrivers_a-tiara.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='tiara.c' object='libdrivers_a-tiara.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-tiara.obj `if test -f 'tiara.c'; then $(CYGPATH_W) 'tiara.c'; else $(CYGPATH_W) '$(srcdir)/tiara.c'; fi`
+ 
+ libdrivers_a-tlan.o: tlan.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-tlan.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-tlan.Tpo" -c -o libdrivers_a-tlan.o `test -f 'tlan.c' || echo '$(srcdir)/'`tlan.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-tlan.Tpo" "$(DEPDIR)/libdrivers_a-tlan.Po"; else rm -f "$(DEPDIR)/libdrivers_a-tlan.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-tlan.o -MD -MP -MF $(DEPDIR)/libdrivers_a-tlan.Tpo -c -o libdrivers_a-tlan.o `test -f 'tlan.c' || echo '$(srcdir)/'`tlan.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-tlan.Tpo $(DEPDIR)/libdrivers_a-tlan.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='tlan.c' object='libdrivers_a-tlan.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-tlan.o `test -f 'tlan.c' || echo '$(srcdir)/'`tlan.c
+ 
+ libdrivers_a-tlan.obj: tlan.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-tlan.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-tlan.Tpo" -c -o libdrivers_a-tlan.obj `if test -f 'tlan.c'; then $(CYGPATH_W) 'tlan.c'; else $(CYGPATH_W) '$(srcdir)/tlan.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-tlan.Tpo" "$(DEPDIR)/libdrivers_a-tlan.Po"; else rm -f "$(DEPDIR)/libdrivers_a-tlan.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-tlan.obj -MD -MP -MF $(DEPDIR)/libdrivers_a-tlan.Tpo -c -o libdrivers_a-tlan.obj `if test -f 'tlan.c'; then $(CYGPATH_W) 'tlan.c'; else $(CYGPATH_W) '$(srcdir)/tlan.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-tlan.Tpo $(DEPDIR)/libdrivers_a-tlan.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='tlan.c' object='libdrivers_a-tlan.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-tlan.obj `if test -f 'tlan.c'; then $(CYGPATH_W) 'tlan.c'; else $(CYGPATH_W) '$(srcdir)/tlan.c'; fi`
+ 
+ libdrivers_a-tulip.o: tulip.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-tulip.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-tulip.Tpo" -c -o libdrivers_a-tulip.o `test -f 'tulip.c' || echo '$(srcdir)/'`tulip.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-tulip.Tpo" "$(DEPDIR)/libdrivers_a-tulip.Po"; else rm -f "$(DEPDIR)/libdrivers_a-tulip.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-tulip.o -MD -MP -MF $(DEPDIR)/libdrivers_a-tulip.Tpo -c -o libdrivers_a-tulip.o `test -f 'tulip.c' || echo '$(srcdir)/'`tulip.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-tulip.Tpo $(DEPDIR)/libdrivers_a-tulip.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='tulip.c' object='libdrivers_a-tulip.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-tulip.o `test -f 'tulip.c' || echo '$(srcdir)/'`tulip.c
+ 
+ libdrivers_a-tulip.obj: tulip.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-tulip.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-tulip.Tpo" -c -o libdrivers_a-tulip.obj `if test -f 'tulip.c'; then $(CYGPATH_W) 'tulip.c'; else $(CYGPATH_W) '$(srcdir)/tulip.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-tulip.Tpo" "$(DEPDIR)/libdrivers_a-tulip.Po"; else rm -f "$(DEPDIR)/libdrivers_a-tulip.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-tulip.obj -MD -MP -MF $(DEPDIR)/libdrivers_a-tulip.Tpo -c -o libdrivers_a-tulip.obj `if test -f 'tulip.c'; then $(CYGPATH_W) 'tulip.c'; else $(CYGPATH_W) '$(srcdir)/tulip.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-tulip.Tpo $(DEPDIR)/libdrivers_a-tulip.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='tulip.c' object='libdrivers_a-tulip.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-tulip.obj `if test -f 'tulip.c'; then $(CYGPATH_W) 'tulip.c'; else $(CYGPATH_W) '$(srcdir)/tulip.c'; fi`
+ 
+ libdrivers_a-via-rhine.o: via-rhine.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-via-rhine.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-via-rhine.Tpo" -c -o libdrivers_a-via-rhine.o `test -f 'via-rhine.c' || echo '$(srcdir)/'`via-rhine.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-via-rhine.Tpo" "$(DEPDIR)/libdrivers_a-via-rhine.Po"; else rm -f "$(DEPDIR)/libdrivers_a-via-rhine.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-via-rhine.o -MD -MP -MF $(DEPDIR)/libdrivers_a-via-rhine.Tpo -c -o libdrivers_a-via-rhine.o `test -f 'via-rhine.c' || echo '$(srcdir)/'`via-rhine.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-via-rhine.Tpo $(DEPDIR)/libdrivers_a-via-rhine.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='via-rhine.c' object='libdrivers_a-via-rhine.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-via-rhine.o `test -f 'via-rhine.c' || echo '$(srcdir)/'`via-rhine.c
+ 
+ libdrivers_a-via-rhine.obj: via-rhine.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-via-rhine.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-via-rhine.Tpo" -c -o libdrivers_a-via-rhine.obj `if test -f 'via-rhine.c'; then $(CYGPATH_W) 'via-rhine.c'; else $(CYGPATH_W) '$(srcdir)/via-rhine.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-via-rhine.Tpo" "$(DEPDIR)/libdrivers_a-via-rhine.Po"; else rm -f "$(DEPDIR)/libdrivers_a-via-rhine.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-via-rhine.obj -MD -MP -MF $(DEPDIR)/libdrivers_a-via-rhine.Tpo -c -o libdrivers_a-via-rhine.obj `if test -f 'via-rhine.c'; then $(CYGPATH_W) 'via-rhine.c'; else $(CYGPATH_W) '$(srcdir)/via-rhine.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-via-rhine.Tpo $(DEPDIR)/libdrivers_a-via-rhine.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='via-rhine.c' object='libdrivers_a-via-rhine.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-via-rhine.obj `if test -f 'via-rhine.c'; then $(CYGPATH_W) 'via-rhine.c'; else $(CYGPATH_W) '$(srcdir)/via-rhine.c'; fi`
+ 
+ libdrivers_a-w89c840.o: w89c840.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-w89c840.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-w89c840.Tpo" -c -o libdrivers_a-w89c840.o `test -f 'w89c840.c' || echo '$(srcdir)/'`w89c840.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-w89c840.Tpo" "$(DEPDIR)/libdrivers_a-w89c840.Po"; else rm -f "$(DEPDIR)/libdrivers_a-w89c840.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-w89c840.o -MD -MP -MF $(DEPDIR)/libdrivers_a-w89c840.Tpo -c -o libdrivers_a-w89c840.o `test -f 'w89c840.c' || echo '$(srcdir)/'`w89c840.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-w89c840.Tpo $(DEPDIR)/libdrivers_a-w89c840.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='w89c840.c' object='libdrivers_a-w89c840.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-w89c840.o `test -f 'w89c840.c' || echo '$(srcdir)/'`w89c840.c
+ 
+ libdrivers_a-w89c840.obj: w89c840.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-w89c840.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-w89c840.Tpo" -c -o libdrivers_a-w89c840.obj `if test -f 'w89c840.c'; then $(CYGPATH_W) 'w89c840.c'; else $(CYGPATH_W) '$(srcdir)/w89c840.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libdrivers_a-w89c840.Tpo" "$(DEPDIR)/libdrivers_a-w89c840.Po"; else rm -f "$(DEPDIR)/libdrivers_a-w89c840.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-w89c840.obj -MD -MP -MF $(DEPDIR)/libdrivers_a-w89c840.Tpo -c -o libdrivers_a-w89c840.obj `if test -f 'w89c840.c'; then $(CYGPATH_W) 'w89c840.c'; else $(CYGPATH_W) '$(srcdir)/w89c840.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libdrivers_a-w89c840.Tpo $(DEPDIR)/libdrivers_a-w89c840.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='w89c840.c' object='libdrivers_a-w89c840.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-w89c840.obj `if test -f 'w89c840.c'; then $(CYGPATH_W) 'w89c840.c'; else $(CYGPATH_W) '$(srcdir)/w89c840.c'; fi`
+-uninstall-info-am:
+ 
+ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+@@ -846,22 +838,21 @@ distclean-tags:
+ 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+ 
+ distdir: $(DISTFILES)
+-	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+-	list='$(DISTFILES)'; for file in $$list; do \
+-	  case $$file in \
+-	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+-	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+-	  esac; \
++	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
++	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
++	list='$(DISTFILES)'; \
++	  dist_files=`for file in $$list; do echo $$file; done | \
++	  sed -e "s|^$$srcdirstrip/||;t" \
++	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
++	case $$dist_files in \
++	  */*) $(MKDIR_P) `echo "$$dist_files" | \
++			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
++			   sort -u` ;; \
++	esac; \
++	for file in $$dist_files; do \
+ 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+-	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+-	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+-	    dir="/$$dir"; \
+-	    $(mkdir_p) "$(distdir)$$dir"; \
+-	  else \
+-	    dir=''; \
+-	  fi; \
+ 	  if test -d $$d/$$file; then \
++	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ 	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ 	    fi; \
+@@ -922,12 +913,20 @@ info-am:
+ 
+ install-data-am:
+ 
++install-dvi: install-dvi-am
++
+ install-exec-am:
+ 
++install-html: install-html-am
++
+ install-info: install-info-am
+ 
+ install-man:
+ 
++install-pdf: install-pdf-am
++
++install-ps: install-ps-am
++
+ installcheck-am:
+ 
+ maintainer-clean: maintainer-clean-am
+@@ -947,18 +946,22 @@ ps: ps-am
+ 
+ ps-am:
+ 
+-uninstall-am: uninstall-info-am
++uninstall-am:
++
++.MAKE: install-am install-strip
+ 
+ .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ 	clean-noinstLIBRARIES ctags distclean distclean-compile \
+ 	distclean-generic distclean-tags distdir dvi dvi-am html \
+ 	html-am info info-am install install-am install-data \
+-	install-data-am install-exec install-exec-am install-info \
+-	install-info-am install-man install-strip installcheck \
++	install-data-am install-dvi install-dvi-am install-exec \
++	install-exec-am install-html install-html-am install-info \
++	install-info-am install-man install-pdf install-pdf-am \
++	install-ps install-ps-am install-strip installcheck \
+ 	installcheck-am installdirs maintainer-clean \
+ 	maintainer-clean-generic mostlyclean mostlyclean-compile \
+ 	mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
+-	uninstall-am uninstall-info-am
++	uninstall-am
+ 
+ 
+ # Is it really necessary to specify dependecies explicitly?
+diff --git a/netboot/etherboot.h b/netboot/etherboot.h
+index 74ca16f..9c02b25 100644
+--- a/netboot/etherboot.h
++++ b/netboot/etherboot.h
+@@ -246,7 +246,7 @@ Author: Martin Renters
+ 
+ typedef struct
+ {
+-  unsigned long	s_addr;
++  unsigned int	s_addr;
+ }
+ in_addr;
+ 
+@@ -302,7 +302,7 @@ struct bootp_t
+   char bp_htype;
+   char bp_hlen;
+   char bp_hops;
+-  unsigned long bp_xid;
++  unsigned int bp_xid;
+   unsigned short bp_secs;
+   unsigned short unused;
+   in_addr bp_ciaddr;
+@@ -411,25 +411,25 @@ struct rpc_t
+     
+     struct
+     {
+-      long id;
+-      long type;
+-      long rpcvers;
+-      long prog;
+-      long vers;
+-      long proc;
+-      long data[1];
++      int id;
++      int type;
++      int rpcvers;
++      int prog;
++      int vers;
++      int proc;
++      int data[1];
+     }
+     call;
+     
+     struct
+     {
+-      long id;
+-      long type;
+-      long rstatus;
+-      long verifier;
+-      long v2;
+-      long astatus;
+-      long data[1];
++      int id;
++      int type;
++      int rstatus;
++      int verifier;
++      int v2;
++      int astatus;
++      int data[1];
+     }
+     reply;
+   }
+@@ -531,9 +531,7 @@ extern int ip_abort;
+ extern int network_ready;
+ extern struct rom_info rom;
+ extern struct arptable_t arptable[MAX_ARP];
+-extern struct bootpd_t bootp_data;
+ #define	BOOTP_DATA_ADDR	(&bootp_data)
+-extern unsigned char *end_of_rfc1533;
+ 
+ /* config.c */
+ extern struct nic nic;
+diff --git a/netboot/main.c b/netboot/main.c
+index 82759b6..b8ba920 100644
+--- a/netboot/main.c
++++ b/netboot/main.c
+@@ -53,9 +53,9 @@ int network_ready = 0;
+ struct rom_info rom;
+ 
+ static int vendorext_isvalid;
+-static unsigned long netmask;
++static unsigned int netmask;
+ static struct bootpd_t bootp_data;
+-static unsigned long xid;
++static unsigned int xid;
+ static unsigned char *end_of_rfc1533 = NULL;
+ 
+ #ifndef	NO_DHCP_SUPPORT
+@@ -773,7 +773,7 @@ await_reply (int type, int ival, void *ptr, int timeout)
+ 	  if (nic.packetlen >= ETH_HLEN + sizeof (struct arprequest)
+ 	      && ptype == ARP)
+ 	    {
+-	      unsigned long tmp;
++	      unsigned int tmp;
+ 
+ 	      arpreply = (struct arprequest *) &nic.packet[ETH_HLEN];
+ 	      
+diff --git a/netboot/misc.c b/netboot/misc.c
+index 28614fd..6ea9a8e 100644
+--- a/netboot/misc.c
++++ b/netboot/misc.c
+@@ -21,6 +21,7 @@
+ 
+ #define GRUB	1
+ #include <etherboot.h>
++#include <stdarg.h>
+ 
+ void
+ sleep (int secs)
+@@ -71,9 +72,10 @@ PRINTF and friends
+ 	Note: width specification not supported
+ **************************************************************************/
+ static int
+-etherboot_vsprintf (char *buf, const char *fmt, const int *dp)
++etherboot_vsprintf (char *buf, const char *fmt, va_list args)
+ {
+   char *p, *s;
++  int n;
+   
+   s = buf;
+   for ( ; *fmt != '\0'; ++fmt)
+@@ -86,7 +88,7 @@ etherboot_vsprintf (char *buf, const char *fmt, const int *dp)
+       
+       if (*++fmt == 's')
+ 	{
+-	  for (p = (char *) *dp++; *p != '\0'; p++)
++	  for (p = va_arg (args, char *); *p != '\0'; p++)
+ 	    buf ? *s++ = *p : grub_putchar (*p);
+ 	}
+       else
+@@ -120,46 +122,44 @@ etherboot_vsprintf (char *buf, const char *fmt, const int *dp)
+ 	   */
+ 	  if ((*fmt | 0x20) == 'x')
+ 	    {
+-	      /* With x86 gcc, sizeof(long) == sizeof(int) */
+-	      const long *lp = (const long *) dp;
+-	      long h = *lp++;
+ 	      int ncase = (*fmt & 0x20);
++
++	      n = va_arg (args, int);
+ 	      
+-	      dp = (const int *) lp;
+ 	      if (alt)
+ 		{
+ 		  *q++ = '0';
+ 		  *q++ = 'X' | ncase;
+ 		}
+ 	      for (; shift >= 0; shift -= 4)
+-		*q++ = "0123456789ABCDEF"[(h >> shift) & 0xF] | ncase;
++		*q++ = "0123456789ABCDEF"[(n >> shift) & 0xF] | ncase;
+ 	    }
+ 	  else if (*fmt == 'd')
+ 	    {
+-	      int i = *dp++;
+ 	      char *r;
+-	      
+-	      if (i < 0)
++
++	      n = va_arg (args, int);
++	      if (n < 0)
+ 		{
+ 		  *q++ = '-';
+-		  i = -i;
++		  n = -n;
+ 		}
+ 	      
+ 	      p = q;		/* save beginning of digits */
+ 	      do
+ 		{
+-		  *q++ = '0' + (i % 10);
+-		  i /= 10;
++		  *q++ = '0' + (n % 10);
++		  n /= 10;
+ 		}
+-	      while (i);
++	      while (n);
+ 	      
+ 	      /* reverse digits, stop in middle */
+ 	      r = q;		/* don't alter q */
+ 	      while (--r > p)
+ 		{
+-		  i = *r;
++		  n = *r;
+ 		  *r = *p;
+-		  *p++ = i;
++		  *p++ = n;
+ 		}
+ 	    }
+ 	  else if (*fmt == '@')
+@@ -167,14 +167,12 @@ etherboot_vsprintf (char *buf, const char *fmt, const int *dp)
+ 	      unsigned char *r;
+ 	      union
+ 	      {
+-		long		l;
++		int		l;
+ 		unsigned char	c[4];
+ 	      }
+ 	      u;
+-	      const long *lp = (const long *) dp;
+ 	      
+-	      u.l = *lp++;
+-	      dp = (const int *) lp;
++	      u.l = va_arg (args, int);
+ 	      
+ 	      for (r = &u.c[0]; r < &u.c[4]; ++r)
+ 		q += etherboot_sprintf (q, "%d.", *r);
+@@ -184,15 +182,15 @@ etherboot_vsprintf (char *buf, const char *fmt, const int *dp)
+ 	  else if (*fmt == '!')
+ 	    {
+ 	      char *r;
+-	      p = (char *) *dp++;
+-	      
++
++	      p = va_arg (args, char *);
+ 	      for (r = p + ETH_ALEN; p < r; ++p)
+ 		q += etherboot_sprintf (q, "%hhX:", *p);
+ 	      
+ 	      --q;
+ 	    }
+ 	  else if (*fmt == 'c')
+-	    *q++ = *dp++;
++	    *q++ = va_arg (args, int);
+ 	  else
+ 	    *q++ = *fmt;
+ 	  
+@@ -211,13 +209,23 @@ etherboot_vsprintf (char *buf, const char *fmt, const int *dp)
+ int
+ etherboot_sprintf (char *buf, const char *fmt, ...)
+ {
+-  return etherboot_vsprintf (buf, fmt, ((const int *) &fmt) + 1);
++  va_list ap;
++  int ret;
++
++  va_start (ap, fmt);
++  ret = etherboot_vsprintf (buf, fmt, ap);
++  va_end (ap);
++  return ret;
+ }
+ 
+ void
+ etherboot_printf (const char *fmt, ...)
+ {
+-  (void) etherboot_vsprintf (0, fmt, ((const int *) &fmt) + 1);
++  va_list ap;
++
++  va_start (ap, fmt);
++  (void) etherboot_vsprintf (0, fmt, ap);
++  va_end (ap);
+ }
+ 
+ int
+diff --git a/netboot/osdep.h b/netboot/osdep.h
+index 57218bf..881141b 100644
+--- a/netboot/osdep.h
++++ b/netboot/osdep.h
+@@ -21,10 +21,10 @@
+ #elif defined(__LITTLE_ENDIAN)
+ #	if !defined(__constant_htonl)
+ #		define __constant_htonl(x) \
+-        ((unsigned long int)((((unsigned long int)(x) & 0x000000ffU) << 24) | \
+-                             (((unsigned long int)(x) & 0x0000ff00U) <<  8) | \
+-                             (((unsigned long int)(x) & 0x00ff0000U) >>  8) | \
+-                             (((unsigned long int)(x) & 0xff000000U) >> 24)))
++        ((unsigned int)((((unsigned int)(x) & 0x000000ffU) << 24) | \
++                        (((unsigned int)(x) & 0x0000ff00U) <<  8) | \
++                        (((unsigned int)(x) & 0x00ff0000U) >>  8) | \
++                        (((unsigned int)(x) & 0xff000000U) >> 24)))
+ #	endif
+ #	if !defined(__constant_htons)
+ #		define __constant_htons(x) \
+@@ -36,11 +36,11 @@
+ #endif
+ 
+ #define ntohl(x) \
+-(__builtin_constant_p(x) ? \
++(__builtin_constant_p((unsigned int)x) ? \
+  __constant_htonl((x)) : \
+  __swap32(x))
+ #define htonl(x) \
+-(__builtin_constant_p(x) ? \
++(__builtin_constant_p((unsigned int)x) ? \
+  __constant_htonl((x)) : \
+  __swap32(x))
+ #define ntohs(x) \
+@@ -52,21 +52,29 @@
+  __constant_htons((x)) : \
+  __swap16(x))
+ 
+-static inline unsigned long int __swap32(unsigned long int x)
++static inline unsigned int __swap32(unsigned int x)
+ {
++#ifdef PLATFORM_EFI
++	__asm__("bswapl %0" : "=r" (x) : "0" (x));
++#else
+ 	__asm__("xchgb %b0,%h0\n\t"
+ 		"rorl $16,%0\n\t"
+ 		"xchgb %b0,%h0"
+ 		: "=q" (x)
+ 		: "0" (x));
++#endif
+ 	return x;
+ }
+ 
+ static inline unsigned short int __swap16(unsigned short int x)
+ {
++#ifdef PLATFORM_EFI
++	return __constant_htons(x);
++#else
+ 	__asm__("xchgb %b0,%h0"
+ 		: "=q" (x)
+ 		: "0" (x));
++#endif
+ 	return x;
+ }
+ 
+@@ -76,7 +84,7 @@ static inline unsigned short int __swap16(unsigned short int x)
+ 
+ #include "linux-asm-io.h"
+ 
+-typedef	unsigned long Address;
++typedef	unsigned int Address;
+ 
+ /* ANSI prototyping macro */
+ #ifdef	__STDC__
+diff --git a/stage1/.gitignore b/stage1/.gitignore
+new file mode 100644
+index 0000000..5d89f6d
+--- /dev/null
++++ b/stage1/.gitignore
+@@ -0,0 +1,2 @@
++Makefile.in
++.deps
+diff --git a/stage1/Makefile.am b/stage1/Makefile.am
+index 0afc285..cbae397 100644
+--- a/stage1/Makefile.am
++++ b/stage1/Makefile.am
+@@ -1,11 +1,14 @@
+-pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
+-nodist_pkglib_DATA = stage1
+-
+-CLEANFILES = $(nodist_pkglib_DATA)
++pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
+ 
+ # We can't use builtins or standard includes.
+ AM_CCASFLAGS = $(STAGE1_CFLAGS) -fno-builtin -nostdinc
+-LDFLAGS = -nostdlib -Wl,-N,-Ttext,7C00
++LDFLAGS = $(LOADER_LDFLAGS) -nostdlib -Wl,-N,-Ttext,7C00
++
++if !PLATFORM_EFI
++
++nodist_pkgdata_DATA = stage1
++
++CLEANFILES = $(nodist_pkgdata_DATA)
+ 
+ noinst_PROGRAMS = stage1.exec
+ stage1_exec_SOURCES = stage1.S stage1.h
+@@ -13,3 +16,5 @@ stage1_exec_SOURCES = stage1.S stage1.h
+ SUFFIXES = .exec
+ .exec:
+ 	$(OBJCOPY) -O binary $< $@
++
++endif
+diff --git a/stage1/Makefile.in b/stage1/Makefile.in
+index 7134bdf..c7e251b 100644
+--- a/stage1/Makefile.in
++++ b/stage1/Makefile.in
+@@ -1,8 +1,8 @@
+-# Makefile.in generated by automake 1.9.4 from Makefile.am.
++# Makefile.in generated by automake 1.10 from Makefile.am.
+ # @configure_input@
+ 
+ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+-# 2003, 2004  Free Software Foundation, Inc.
++# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+@@ -15,16 +15,10 @@
+ @SET_MAKE@
+ 
+ 
+-SOURCES = $(stage1_exec_SOURCES)
+-
+-srcdir = @srcdir@
+-top_srcdir = @top_srcdir@
+ VPATH = @srcdir@
+-pkgdatadir = $(datadir)/@PACKAGE@
++pkglibdir = $(libdir)/@PACKAGE@
+ pkgincludedir = $(includedir)/@PACKAGE@
+-top_builddir = ..
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+-INSTALL = @INSTALL@
+ install_sh_DATA = $(install_sh) -c -m 644
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+@@ -43,7 +37,7 @@ subdir = stage1
+ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+-	$(top_srcdir)/configure.ac
++	$(top_srcdir)/configure.in
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+@@ -53,8 +47,11 @@ PROGRAMS = $(noinst_PROGRAMS)
+ am_stage1_exec_OBJECTS = stage1.$(OBJEXT)
+ stage1_exec_OBJECTS = $(am_stage1_exec_OBJECTS)
+ stage1_exec_LDADD = $(LDADD)
+-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+-CCASCOMPILE = $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS)
++DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
++depcomp = $(SHELL) $(top_srcdir)/depcomp
++am__depfiles_maybe = depfiles
++CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
++	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS)
+ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+ CCLD = $(CC)
+@@ -67,25 +64,22 @@ am__vpath_adj = case $$p in \
+     *) f=$$p;; \
+   esac;
+ am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+-am__installdirs = "$(DESTDIR)$(pkglibdir)"
+-nodist_pkglibDATA_INSTALL = $(INSTALL_DATA)
+-DATA = $(nodist_pkglib_DATA)
++am__installdirs = "$(DESTDIR)$(pkgdatadir)"
++nodist_pkgdataDATA_INSTALL = $(INSTALL_DATA)
++DATA = $(nodist_pkgdata_DATA)
+ ETAGS = etags
+ CTAGS = ctags
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+-pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
++pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
+ ACLOCAL = @ACLOCAL@
+-AMDEP_FALSE = @AMDEP_FALSE@
+-AMDEP_TRUE = @AMDEP_TRUE@
+ AMTAR = @AMTAR@
+ AUTOCONF = @AUTOCONF@
+ AUTOHEADER = @AUTOHEADER@
+ AUTOMAKE = @AUTOMAKE@
+ AWK = @AWK@
+-BUILD_EXAMPLE_KERNEL_FALSE = @BUILD_EXAMPLE_KERNEL_FALSE@
+-BUILD_EXAMPLE_KERNEL_TRUE = @BUILD_EXAMPLE_KERNEL_TRUE@
+ CC = @CC@
+ CCAS = @CCAS@
++CCASDEPMODE = @CCASDEPMODE@
+ CCASFLAGS = @CCASFLAGS@
+ CCDEPMODE = @CCDEPMODE@
+ CFLAGS = @CFLAGS@
+@@ -94,33 +88,29 @@ CPPFLAGS = @CPPFLAGS@
+ CYGPATH_W = @CYGPATH_W@
+ DEFS = @DEFS@
+ DEPDIR = @DEPDIR@
+-DISKLESS_SUPPORT_FALSE = @DISKLESS_SUPPORT_FALSE@
+-DISKLESS_SUPPORT_TRUE = @DISKLESS_SUPPORT_TRUE@
+ ECHO_C = @ECHO_C@
+ ECHO_N = @ECHO_N@
+ ECHO_T = @ECHO_T@
+ EGREP = @EGREP@
+ EXEEXT = @EXEEXT@
+ FSYS_CFLAGS = @FSYS_CFLAGS@
++GREP = @GREP@
+ GRUB_CFLAGS = @GRUB_CFLAGS@
+ GRUB_LIBS = @GRUB_LIBS@
+-HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@
+-HERCULES_SUPPORT_TRUE = @HERCULES_SUPPORT_TRUE@
++INSTALL = @INSTALL@
+ INSTALL_DATA = @INSTALL_DATA@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+-LDFLAGS = -nostdlib -Wl,-N,-Ttext,7C00
++LDFLAGS = $(LOADER_LDFLAGS) -nostdlib -Wl,-N,-Ttext,7C00
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
++LOADER_LDFLAGS = @LOADER_LDFLAGS@
+ LTLIBOBJS = @LTLIBOBJS@
+ MAINT = @MAINT@
+-MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+-MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+ MAKEINFO = @MAKEINFO@
++MKDIR_P = @MKDIR_P@
+ NETBOOT_DRIVERS = @NETBOOT_DRIVERS@
+-NETBOOT_SUPPORT_FALSE = @NETBOOT_SUPPORT_FALSE@
+-NETBOOT_SUPPORT_TRUE = @NETBOOT_SUPPORT_TRUE@
+ NET_CFLAGS = @NET_CFLAGS@
+ NET_EXTRAFLAGS = @NET_EXTRAFLAGS@
+ OBJCOPY = @OBJCOPY@
+@@ -134,22 +124,17 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
+ PATH_SEPARATOR = @PATH_SEPARATOR@
+ PERL = @PERL@
+ RANLIB = @RANLIB@
+-SERIAL_SPEED_SIMULATION_FALSE = @SERIAL_SPEED_SIMULATION_FALSE@
+-SERIAL_SPEED_SIMULATION_TRUE = @SERIAL_SPEED_SIMULATION_TRUE@
+-SERIAL_SUPPORT_FALSE = @SERIAL_SUPPORT_FALSE@
+-SERIAL_SUPPORT_TRUE = @SERIAL_SUPPORT_TRUE@
+ SET_MAKE = @SET_MAKE@
+ SHELL = @SHELL@
+ STAGE1_CFLAGS = @STAGE1_CFLAGS@
+ STAGE2_CFLAGS = @STAGE2_CFLAGS@
+ STRIP = @STRIP@
+ VERSION = @VERSION@
++abs_builddir = @abs_builddir@
++abs_srcdir = @abs_srcdir@
++abs_top_builddir = @abs_top_builddir@
++abs_top_srcdir = @abs_top_srcdir@
+ ac_ct_CC = @ac_ct_CC@
+-ac_ct_OBJCOPY = @ac_ct_OBJCOPY@
+-ac_ct_RANLIB = @ac_ct_RANLIB@
+-ac_ct_STRIP = @ac_ct_STRIP@
+-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+ am__include = @am__include@
+ am__leading_dot = @am__leading_dot@
+ am__quote = @am__quote@
+@@ -161,30 +146,41 @@ build_alias = @build_alias@
+ build_cpu = @build_cpu@
+ build_os = @build_os@
+ build_vendor = @build_vendor@
++builddir = @builddir@
+ datadir = @datadir@
++datarootdir = @datarootdir@
++docdir = @docdir@
++dvidir = @dvidir@
+ exec_prefix = @exec_prefix@
+ host = @host@
+ host_alias = @host_alias@
+ host_cpu = @host_cpu@
+ host_os = @host_os@
+ host_vendor = @host_vendor@
++htmldir = @htmldir@
+ includedir = @includedir@
+ infodir = @infodir@
+ install_sh = @install_sh@
+ libdir = @libdir@
+ libexecdir = @libexecdir@
++localedir = @localedir@
+ localstatedir = @localstatedir@
+ mandir = @mandir@
+ mkdir_p = @mkdir_p@
+ oldincludedir = @oldincludedir@
++pdfdir = @pdfdir@
+ prefix = @prefix@
+ program_transform_name = @program_transform_name@
++psdir = @psdir@
+ sbindir = @sbindir@
+ sharedstatedir = @sharedstatedir@
++srcdir = @srcdir@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
+-nodist_pkglib_DATA = stage1
+-CLEANFILES = $(nodist_pkglib_DATA)
++top_builddir = @top_builddir@
++top_srcdir = @top_srcdir@
++nodist_pkgdata_DATA = stage1
++CLEANFILES = $(nodist_pkgdata_DATA)
+ 
+ # We can't use builtins or standard includes.
+ AM_CCASFLAGS = $(STAGE1_CFLAGS) -fno-builtin -nostdinc
+@@ -228,7 +224,7 @@ clean-noinstPROGRAMS:
+ 	-test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
+ stage1.exec$(EXEEXT): $(stage1_exec_OBJECTS) $(stage1_exec_DEPENDENCIES) 
+ 	@rm -f stage1.exec$(EXEEXT)
+-	$(LINK) $(stage1_exec_LDFLAGS) $(stage1_exec_OBJECTS) $(stage1_exec_LDADD) $(LIBS)
++	$(LINK) $(stage1_exec_OBJECTS) $(stage1_exec_LDADD) $(LIBS)
+ 
+ mostlyclean-compile:
+ 	-rm -f *.$(OBJEXT)
+@@ -236,28 +232,37 @@ mostlyclean-compile:
+ distclean-compile:
+ 	-rm -f *.tab.c
+ 
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/stage1.Po at am__quote@
++
+ .S.o:
+-	$(CCASCOMPILE) -c $<
++ at am__fastdepCCAS_TRUE@	$(CPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CPPASCOMPILE) -c -o $@ $<
+ 
+ .S.obj:
+-	$(CCASCOMPILE) -c `$(CYGPATH_W) '$<'`
+-uninstall-info-am:
+-install-nodist_pkglibDATA: $(nodist_pkglib_DATA)
++ at am__fastdepCCAS_TRUE@	$(CPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CPPASCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
++install-nodist_pkgdataDATA: $(nodist_pkgdata_DATA)
+ 	@$(NORMAL_INSTALL)
+-	test -z "$(pkglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkglibdir)"
+-	@list='$(nodist_pkglib_DATA)'; for p in $$list; do \
++	test -z "$(pkgdatadir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdatadir)"
++	@list='$(nodist_pkgdata_DATA)'; for p in $$list; do \
+ 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ 	  f=$(am__strip_dir) \
+-	  echo " $(nodist_pkglibDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \
+-	  $(nodist_pkglibDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \
++	  echo " $(nodist_pkgdataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgdatadir)/$$f'"; \
++	  $(nodist_pkgdataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgdatadir)/$$f"; \
+ 	done
+ 
+-uninstall-nodist_pkglibDATA:
++uninstall-nodist_pkgdataDATA:
+ 	@$(NORMAL_UNINSTALL)
+-	@list='$(nodist_pkglib_DATA)'; for p in $$list; do \
++	@list='$(nodist_pkgdata_DATA)'; for p in $$list; do \
+ 	  f=$(am__strip_dir) \
+-	  echo " rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
+-	  rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
++	  echo " rm -f '$(DESTDIR)$(pkgdatadir)/$$f'"; \
++	  rm -f "$(DESTDIR)$(pkgdatadir)/$$f"; \
+ 	done
+ 
+ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+@@ -309,22 +314,21 @@ distclean-tags:
+ 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+ 
+ distdir: $(DISTFILES)
+-	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+-	list='$(DISTFILES)'; for file in $$list; do \
+-	  case $$file in \
+-	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+-	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+-	  esac; \
++	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
++	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
++	list='$(DISTFILES)'; \
++	  dist_files=`for file in $$list; do echo $$file; done | \
++	  sed -e "s|^$$srcdirstrip/||;t" \
++	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
++	case $$dist_files in \
++	  */*) $(MKDIR_P) `echo "$$dist_files" | \
++			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
++			   sort -u` ;; \
++	esac; \
++	for file in $$dist_files; do \
+ 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+-	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+-	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+-	    dir="/$$dir"; \
+-	    $(mkdir_p) "$(distdir)$$dir"; \
+-	  else \
+-	    dir=''; \
+-	  fi; \
+ 	  if test -d $$d/$$file; then \
++	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ 	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ 	    fi; \
+@@ -339,8 +343,8 @@ check-am: all-am
+ check: check-am
+ all-am: Makefile $(PROGRAMS) $(DATA)
+ installdirs:
+-	for dir in "$(DESTDIR)$(pkglibdir)"; do \
+-	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
++	for dir in "$(DESTDIR)$(pkgdatadir)"; do \
++	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ 	done
+ install: install-am
+ install-exec: install-exec-am
+@@ -372,6 +376,7 @@ clean: clean-am
+ clean-am: clean-generic clean-noinstPROGRAMS mostlyclean-am
+ 
+ distclean: distclean-am
++	-rm -rf ./$(DEPDIR)
+ 	-rm -f Makefile
+ distclean-am: clean-am distclean-compile distclean-generic \
+ 	distclean-tags
+@@ -386,17 +391,26 @@ info: info-am
+ 
+ info-am:
+ 
+-install-data-am:
++install-data-am: install-nodist_pkgdataDATA
++
++install-dvi: install-dvi-am
+ 
+-install-exec-am: install-nodist_pkglibDATA
++install-exec-am:
++
++install-html: install-html-am
+ 
+ install-info: install-info-am
+ 
+ install-man:
+ 
++install-pdf: install-pdf-am
++
++install-ps: install-ps-am
++
+ installcheck-am:
+ 
+ maintainer-clean: maintainer-clean-am
++	-rm -rf ./$(DEPDIR)
+ 	-rm -f Makefile
+ maintainer-clean-am: distclean-am maintainer-clean-generic
+ 
+@@ -412,19 +426,22 @@ ps: ps-am
+ 
+ ps-am:
+ 
+-uninstall-am: uninstall-info-am uninstall-nodist_pkglibDATA
++uninstall-am: uninstall-nodist_pkgdataDATA
++
++.MAKE: install-am install-strip
+ 
+ .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ 	clean-noinstPROGRAMS ctags distclean distclean-compile \
+ 	distclean-generic distclean-tags distdir dvi dvi-am html \
+ 	html-am info info-am install install-am install-data \
+-	install-data-am install-exec install-exec-am install-info \
+-	install-info-am install-man install-nodist_pkglibDATA \
++	install-data-am install-dvi install-dvi-am install-exec \
++	install-exec-am install-html install-html-am install-info \
++	install-info-am install-man install-nodist_pkgdataDATA \
++	install-pdf install-pdf-am install-ps install-ps-am \
+ 	install-strip installcheck installcheck-am installdirs \
+ 	maintainer-clean maintainer-clean-generic mostlyclean \
+ 	mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
+-	tags uninstall uninstall-am uninstall-info-am \
+-	uninstall-nodist_pkglibDATA
++	tags uninstall uninstall-am uninstall-nodist_pkgdataDATA
+ 
+ .exec:
+ 	$(OBJCOPY) -O binary $< $@
+diff --git a/stage1/stage1.S b/stage1/stage1.S
+index 985963d..3a896be 100644
+--- a/stage1/stage1.S
++++ b/stage1/stage1.S
+@@ -31,6 +31,8 @@
+ 
+ 	/* Print message string */
+ #define MSG(x)	movw $ABS(x), %si; call message
++	/* Print verbose message string */
++#define VMSG(x)
+ 
+ 	/* XXX:	binutils-2.9.1.0.x doesn't produce a short opcode for this. */
+ #define	MOV_MEM_TO_AL(x)	.byte 0xa0;  .word x
+@@ -151,7 +153,7 @@ real_start:
+ 	pushw	%dx
+ 
+ 	/* print a notification message on the screen */
+-	MSG(notification_string)
++	VMSG(notification_string)
+ 
+ 	/* do not probe LBA if the drive is a floppy */
+ 	testb	$STAGE1_BIOS_HD_FLAG, %dl
+diff --git a/stage2/.gitignore b/stage2/.gitignore
+new file mode 100644
+index 0000000..e0480a0
+--- /dev/null
++++ b/stage2/.gitignore
+@@ -0,0 +1,5 @@
++Makefile.in
++Makefile
++.deps
++*.a
++*.o
+diff --git a/stage2/Makefile.am b/stage2/Makefile.am
+index f8e6d42..9dabffb 100644
+--- a/stage2/Makefile.am
++++ b/stage2/Makefile.am
+@@ -7,59 +7,70 @@ noinst_HEADERS = apic.h defs.h dir.h disk_inode.h disk_inode_ffs.h \
+         fat.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \
+ 	imgact_aout.h iso9660.h jfs.h mb_header.h mb_info.h md5.h \
+ 	nbi.h pc_slice.h serial.h shared.h smp-imps.h term.h \
+-	terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h
++	terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h graphics.h gpt.h
+ EXTRA_DIST = setjmp.S apm.S $(noinst_SCRIPTS)
+ 
+ # For <stage1.h>.
+ INCLUDES = -I$(top_srcdir)/stage1
+ 
+ # The library for /sbin/grub.
++if PLATFORM_EFI
++noinst_LIBRARIES = libgrub.a libstage2.a
++else
+ noinst_LIBRARIES = libgrub.a
++endif
+ libgrub_a_SOURCES = boot.c builtins.c char_io.c cmdline.c common.c \
+ 	disk_io.c fsys_ext2fs.c fsys_fat.c fsys_ffs.c fsys_iso9660.c \
+ 	fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_ufs2.c \
+-	fsys_vstafs.c fsys_xfs.c gunzip.c md5.c serial.c stage2.c \
+-	terminfo.c tparm.c
++	fsys_vstafs.c fsys_xfs.c fsys_btrfs.c  gunzip.c md5.c serial.c \
++	sha256crypt.c sha512crypt.c stage2.c terminfo.c tparm.c graphics.c \
++	efistubs.c
+ libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \
+ 	-DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \
+ 	-DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \
+-	-DFSYS_UFS2=1 -DFSYS_VSTAFS=1 -DFSYS_XFS=1 \
++	-DFSYS_UFS2=1 -DFSYS_VSTAFS=1 -DFSYS_XFS=1 -DFSYS_BTRFS=1 \
+ 	-DUSE_MD5_PASSWORDS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1
+ 
+ # Stage 2 and Stage 1.5's.
+-pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
++pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
++
++if !PLATFORM_EFI
+ 
+ EXTRA_PROGRAMS = nbloader.exec pxeloader.exec diskless.exec
+ 
+ if DISKLESS_SUPPORT
+-pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
++pkgdata_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
+ 	ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \
+-	reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5 \
+-	nbgrub pxegrub
++	reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 \
++	xfs_stage1_5 btrfs_stage1_5 nbgrub pxegrub
+ noinst_DATA = pre_stage2 start start_eltorito nbloader pxeloader diskless
+ noinst_PROGRAMS = pre_stage2.exec start.exec start_eltorito.exec \
+ 	e2fs_stage1_5.exec fat_stage1_5.exec ffs_stage1_5.exec \
+ 	iso9660_stage1_5.exec jfs_stage1_5.exec minix_stage1_5.exec \
+ 	reiserfs_stage1_5.exec ufs2_stage1_5.exec vstafs_stage1_5.exec \
+-	xfs_stage1_5.exec nbloader.exec pxeloader.exec diskless.exec
++	xfs_stage1_5.exec btrfs_stage1_5.exec nbloader.exec \
++	pxeloader.exec diskless.exec
+ else
+-pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
++pkgdata_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
+ 	ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \
+-	reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5
++	reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5 \
++        btrfs_stage1_5
+ noinst_DATA = pre_stage2 start start_eltorito
+ noinst_PROGRAMS = pre_stage2.exec start.exec start_eltorito.exec \
+ 	e2fs_stage1_5.exec fat_stage1_5.exec ffs_stage1_5.exec \
+ 	iso9660_stage1_5.exec jfs_stage1_5.exec minix_stage1_5.exec \
+ 	reiserfs_stage1_5.exec ufs2_stage1_5.exec vstafs_stage1_5.exec \
+-	xfs_stage1_5.exec
++        xfs_stage1_5.exec btrfs_stage1_5.exec
+ endif
+ MOSTLYCLEANFILES = $(noinst_PROGRAMS)
+ 
+-PRE_STAGE2_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8200
+-START_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8000
+-NBLOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,0
+-PXELOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00
+-START_ELTORITO_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00
++endif
++
++PRE_STAGE2_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8200 $(LOADER_LDFLAGS)
++START_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8000 $(LOADER_LDFLAGS)
++NBLOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,0 $(LOADER_LDFLAGS)
++PXELOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00 $(LOADER_LDFLAGS)
++START_ELTORITO_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00 $(LOADER_LDFLAGS)
+ 
+ if NETBOOT_SUPPORT
+ NETBOOT_FLAGS = -I$(top_srcdir)/netboot -DSUPPORT_NETBOOT=1
+@@ -79,24 +90,41 @@ else
+ HERCULES_FLAGS =
+ endif
+ 
++if GRAPHICS_SUPPORT
++GRAPHICS_FLAGS = -DSUPPORT_GRAPHICS=1
++else
++GRAPHICS_FLAGS =
++endif
++
+ STAGE2_COMPILE = $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+-	$(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS)
++	$(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS) $(GRAPHICS_FLAGS)
++
++libstage2_a_SOURCES = boot.c builtins.c char_io.c cmdline.c common.c \
++	disk_io.c fsys_ext2fs.c fsys_fat.c fsys_ffs.c fsys_iso9660.c \
++	fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_ufs2.c fsys_vstafs.c \
++	fsys_xfs.c fsys_btrfs.c gunzip.c md5.c serial.c sha256crypt.c \
++	sha512crypt.c stage2.c terminfo.c tparm.c efistubs.c
++libstage2_a_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
+ 
+-STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000
++if !PLATFORM_EFI
++
++STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000 $(LOADER_LDFLAGS)
+ STAGE1_5_COMPILE = $(STAGE2_COMPILE) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1
+ 
+ # For stage2 target.
+ pre_stage2_exec_SOURCES = asm.S bios.c boot.c builtins.c char_io.c \
+ 	cmdline.c common.c console.c disk_io.c fsys_ext2fs.c \
+ 	fsys_fat.c fsys_ffs.c fsys_iso9660.c fsys_jfs.c fsys_minix.c \
+-	fsys_reiserfs.c fsys_ufs2.c fsys_vstafs.c fsys_xfs.c gunzip.c \
+-	hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c
++	fsys_reiserfs.c fsys_ufs2.c fsys_vstafs.c fsys_xfs.c fsys_btrfs.c \
++	gunzip.c hercules.c md5.c serial.c smp-imps.c sha256crypt.c \
++	sha512crypt.c stage2.c terminfo.c tparm.c graphics.c
+ pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
+ pre_stage2_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
+ pre_stage2_exec_LDFLAGS = $(PRE_STAGE2_LINK)
+ 
++pre_stage2_exec_LDADD = @LIBGCC@
+ if NETBOOT_SUPPORT
+-pre_stage2_exec_LDADD = ../netboot/libdrivers.a
++pre_stage2_exec_LDADD += ../netboot/libdrivers.a
+ endif
+ 
+ if DISKLESS_SUPPORT
+@@ -105,7 +133,7 @@ else
+ BUILT_SOURCES = stage2_size.h
+ endif
+ 
+-CLEANFILES = $(pkglib_DATA) $(noinst_DATA) $(BUILT_SOURCES)
++CLEANFILES = $(pkgdata_DATA) $(noinst_DATA) $(BUILT_SOURCES)
+ 
+ stage2_size.h: pre_stage2
+ 	-rm -f stage2_size.h
+@@ -115,6 +143,7 @@ stage2_size.h: pre_stage2
+ start_exec_SOURCES = start.S
+ start_exec_CCASFLAGS = $(STAGE2_COMPILE)
+ start_exec_LDFLAGS = $(START_LINK)
++start_exec_LDADD = @LIBGCC@
+ 
+ # XXX: automake doesn't provide a way to specify dependencies for object
+ # files explicitly, so we must write this by a general Makefile scheme.
+@@ -129,6 +158,7 @@ stage2: pre_stage2 start
+ start_eltorito_exec_SOURCES = start_eltorito.S
+ start_eltorito_exec_CCASFLAGS = $(STAGE2_COMPILE)
+ start_eltorito_exec_LDFLAGS = $(START_ELTORITO_LINK)
++start_eltorito_exec_LDADD = @LIBGCC@
+ 
+ start_eltorito_exec-start.$(OBJEXT): stage2_size.h
+ 
+@@ -144,6 +174,7 @@ e2fs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_EXT2FS=1 \
+ e2fs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_EXT2FS=1 \
+ 	-DNO_BLOCK_FILES=1
+ e2fs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++e2fs_stage1_5_exec_LDADD = @LIBGCC@
+ 
+ # For fat_stage1_5 target.
+ fat_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
+@@ -153,6 +184,7 @@ fat_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FAT=1 \
+ fat_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FAT=1 \
+ 	-DNO_BLOCK_FILES=1
+ fat_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++fat_stage1_5_exec_LDADD = @LIBGCC@
+ 
+ # For ffs_stage1_5 target.
+ ffs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
+@@ -162,6 +194,7 @@ ffs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FFS=1 \
+ ffs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FFS=1 \
+ 	-DNO_BLOCK_FILES=1
+ ffs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++ffs_stage1_5_exec_LDADD = @LIBGCC@
+ 
+ # For ufs2_stage1_5 target.
+ ufs2_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
+@@ -171,6 +204,7 @@ ufs2_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_UFS2=1 \
+ ufs2_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_UFS2=1 \
+ 	-DNO_BLOCK_FILES=1
+ ufs2_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++ufs2_stage1_5_exec_LDADD = @LIBGCC@
+ 
+ # For minix_stage1_5 target.
+ minix_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
+@@ -180,6 +214,7 @@ minix_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_MINIX=1 \
+ minix_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_MINIX=1 \
+ 	-DNO_BLOCK_FILES=1
+ minix_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++minix_stage1_5_exec_LDADD = @LIBGCC@
+ 
+ # For reiserfs_stage1_5 target.
+ reiserfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
+@@ -189,6 +224,7 @@ reiserfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_REISERFS=1 \
+ reiserfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_REISERFS=1 \
+ 	-DNO_BLOCK_FILES=1
+ reiserfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++reiserfs_stage1_5_exec_LDADD = @LIBGCC@
+ 
+ # For vstafs_stage1_5 target.
+ vstafs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
+@@ -198,6 +234,7 @@ vstafs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_VSTAFS=1 \
+ vstafs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_VSTAFS=1 \
+ 	-DNO_BLOCK_FILES=1
+ vstafs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++vstafs_stage1_5_exec_LDADD = @LIBGCC@
+ 
+ # For jfs_stage1_5 target.
+ jfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
+@@ -207,6 +244,7 @@ jfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \
+ jfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \
+ 	-DNO_BLOCK_FILES=1
+ jfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++jfs_stage1_5_exec_LDADD = @LIBGCC@
+ 
+ # For xfs_stage1_5 target.
+ xfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
+@@ -216,6 +254,17 @@ xfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \
+ xfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \
+ 	-DNO_BLOCK_FILES=1
+ xfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++xfs_stage1_5_exec_LDADD = @LIBGCC@
++
++# For btrfs_stage1_5 target.
++btrfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
++	disk_io.c stage1_5.c fsys_btrfs.c bios.c
++btrfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_BTRFS=1 \
++	-DNO_BLOCK_FILES=1
++btrfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_BTRFS=1 \
++	-DNO_BLOCK_FILES=1
++btrfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++btrfs_stage1_5_exec_LDADD = @LIBGCC@
+ 
+ # For iso9660_stage1_5 target.
+ iso9660_stage1_5_exec_SOURCES = start_eltorito.S asm.S common.c char_io.c \
+@@ -225,6 +274,7 @@ iso9660_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_ISO9660=1 \
+ iso9660_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_ISO9660=1 \
+ 	-DNO_BLOCK_FILES=1
+ iso9660_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++iso9660_stage1_5_exec_LDADD = @LIBGCC@
+ 
+ # For diskless target.
+ diskless_exec_SOURCES = $(pre_stage2_exec_SOURCES)
+@@ -233,7 +283,7 @@ diskless_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) \
+ diskless_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) \
+ 	-DSUPPORT_DISKLESS=1
+ diskless_exec_LDFLAGS = $(PRE_STAGE2_LINK)
+-diskless_exec_LDADD = ../netboot/libdrivers.a
++diskless_exec_LDADD = ../netboot/libdrivers.a @LIBGCC@
+ 
+ diskless_size.h: diskless
+ 	-rm -f $@
+@@ -270,3 +320,5 @@ pxegrub: pxeloader diskless
+ SUFFIXES = .exec
+ .exec:
+ 	$(OBJCOPY) -O binary $< $@
++
++endif
+diff --git a/stage2/Makefile.in b/stage2/Makefile.in
+index d0062bd..66e7465 100644
+--- a/stage2/Makefile.in
++++ b/stage2/Makefile.in
+@@ -1,8 +1,8 @@
+-# Makefile.in generated by automake 1.9.4 from Makefile.am.
++# Makefile.in generated by automake 1.10 from Makefile.am.
+ # @configure_input@
+ 
+ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+-# 2003, 2004  Free Software Foundation, Inc.
++# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+@@ -18,16 +18,10 @@
+ 
+ 
+ 
+-SOURCES = $(libgrub_a_SOURCES) $(diskless_exec_SOURCES) $(e2fs_stage1_5_exec_SOURCES) $(fat_stage1_5_exec_SOURCES) $(ffs_stage1_5_exec_SOURCES) $(iso9660_stage1_5_exec_SOURCES) $(jfs_stage1_5_exec_SOURCES) $(minix_stage1_5_exec_SOURCES) $(nbloader_exec_SOURCES) $(pre_stage2_exec_SOURCES) $(pxeloader_exec_SOURCES) $(reiserfs_stage1_5_exec_SOURCES) $(start_exec_SOURCES) $(start_eltorito_exec_SOURCES) $(ufs2_stage1_5_exec_SOURCES) $(vstafs_stage1_5_exec_SOURCES) $(xfs_stage1_5_exec_SOURCES)
+-
+-srcdir = @srcdir@
+-top_srcdir = @top_srcdir@
+ VPATH = @srcdir@
+-pkgdatadir = $(datadir)/@PACKAGE@
++pkglibdir = $(libdir)/@PACKAGE@
+ pkgincludedir = $(includedir)/@PACKAGE@
+-top_builddir = ..
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+-INSTALL = @INSTALL@
+ install_sh_DATA = $(install_sh) -c -m 644
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+@@ -77,7 +71,7 @@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
+ 	$(srcdir)/Makefile.in
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+-	$(top_srcdir)/configure.ac
++	$(top_srcdir)/configure.in
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+@@ -100,7 +94,7 @@ am_libgrub_a_OBJECTS = libgrub_a-boot.$(OBJEXT) \
+ 	libgrub_a-fsys_xfs.$(OBJEXT) libgrub_a-gunzip.$(OBJEXT) \
+ 	libgrub_a-md5.$(OBJEXT) libgrub_a-serial.$(OBJEXT) \
+ 	libgrub_a-stage2.$(OBJEXT) libgrub_a-terminfo.$(OBJEXT) \
+-	libgrub_a-tparm.$(OBJEXT)
++	libgrub_a-tparm.$(OBJEXT) libgrub_a-graphics.$(OBJEXT)
+ libgrub_a_OBJECTS = $(am_libgrub_a_OBJECTS)
+ PROGRAMS = $(noinst_PROGRAMS)
+ am__objects_1 = diskless_exec-asm.$(OBJEXT) \
+@@ -125,10 +119,13 @@ am__objects_1 = diskless_exec-asm.$(OBJEXT) \
+ 	diskless_exec-serial.$(OBJEXT) \
+ 	diskless_exec-smp-imps.$(OBJEXT) \
+ 	diskless_exec-stage2.$(OBJEXT) \
+-	diskless_exec-terminfo.$(OBJEXT) diskless_exec-tparm.$(OBJEXT)
++	diskless_exec-terminfo.$(OBJEXT) diskless_exec-tparm.$(OBJEXT) \
++	diskless_exec-graphics.$(OBJEXT)
+ am_diskless_exec_OBJECTS = $(am__objects_1)
+ diskless_exec_OBJECTS = $(am_diskless_exec_OBJECTS)
+ diskless_exec_DEPENDENCIES = ../netboot/libdrivers.a
++diskless_exec_LINK = $(CCLD) $(diskless_exec_CFLAGS) $(CFLAGS) \
++	$(diskless_exec_LDFLAGS) $(LDFLAGS) -o $@
+ am_e2fs_stage1_5_exec_OBJECTS = e2fs_stage1_5_exec-start.$(OBJEXT) \
+ 	e2fs_stage1_5_exec-asm.$(OBJEXT) \
+ 	e2fs_stage1_5_exec-common.$(OBJEXT) \
+@@ -139,6 +136,8 @@ am_e2fs_stage1_5_exec_OBJECTS = e2fs_stage1_5_exec-start.$(OBJEXT) \
+ 	e2fs_stage1_5_exec-bios.$(OBJEXT)
+ e2fs_stage1_5_exec_OBJECTS = $(am_e2fs_stage1_5_exec_OBJECTS)
+ e2fs_stage1_5_exec_LDADD = $(LDADD)
++e2fs_stage1_5_exec_LINK = $(CCLD) $(e2fs_stage1_5_exec_CFLAGS) \
++	$(CFLAGS) $(e2fs_stage1_5_exec_LDFLAGS) $(LDFLAGS) -o $@
+ am_fat_stage1_5_exec_OBJECTS = fat_stage1_5_exec-start.$(OBJEXT) \
+ 	fat_stage1_5_exec-asm.$(OBJEXT) \
+ 	fat_stage1_5_exec-common.$(OBJEXT) \
+@@ -149,6 +148,8 @@ am_fat_stage1_5_exec_OBJECTS = fat_stage1_5_exec-start.$(OBJEXT) \
+ 	fat_stage1_5_exec-bios.$(OBJEXT)
+ fat_stage1_5_exec_OBJECTS = $(am_fat_stage1_5_exec_OBJECTS)
+ fat_stage1_5_exec_LDADD = $(LDADD)
++fat_stage1_5_exec_LINK = $(CCLD) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) \
++	$(fat_stage1_5_exec_LDFLAGS) $(LDFLAGS) -o $@
+ am_ffs_stage1_5_exec_OBJECTS = ffs_stage1_5_exec-start.$(OBJEXT) \
+ 	ffs_stage1_5_exec-asm.$(OBJEXT) \
+ 	ffs_stage1_5_exec-common.$(OBJEXT) \
+@@ -159,6 +160,8 @@ am_ffs_stage1_5_exec_OBJECTS = ffs_stage1_5_exec-start.$(OBJEXT) \
+ 	ffs_stage1_5_exec-bios.$(OBJEXT)
+ ffs_stage1_5_exec_OBJECTS = $(am_ffs_stage1_5_exec_OBJECTS)
+ ffs_stage1_5_exec_LDADD = $(LDADD)
++ffs_stage1_5_exec_LINK = $(CCLD) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) \
++	$(ffs_stage1_5_exec_LDFLAGS) $(LDFLAGS) -o $@
+ am_iso9660_stage1_5_exec_OBJECTS =  \
+ 	iso9660_stage1_5_exec-start_eltorito.$(OBJEXT) \
+ 	iso9660_stage1_5_exec-asm.$(OBJEXT) \
+@@ -170,6 +173,8 @@ am_iso9660_stage1_5_exec_OBJECTS =  \
+ 	iso9660_stage1_5_exec-bios.$(OBJEXT)
+ iso9660_stage1_5_exec_OBJECTS = $(am_iso9660_stage1_5_exec_OBJECTS)
+ iso9660_stage1_5_exec_LDADD = $(LDADD)
++iso9660_stage1_5_exec_LINK = $(CCLD) $(iso9660_stage1_5_exec_CFLAGS) \
++	$(CFLAGS) $(iso9660_stage1_5_exec_LDFLAGS) $(LDFLAGS) -o $@
+ am_jfs_stage1_5_exec_OBJECTS = jfs_stage1_5_exec-start.$(OBJEXT) \
+ 	jfs_stage1_5_exec-asm.$(OBJEXT) \
+ 	jfs_stage1_5_exec-common.$(OBJEXT) \
+@@ -180,6 +185,8 @@ am_jfs_stage1_5_exec_OBJECTS = jfs_stage1_5_exec-start.$(OBJEXT) \
+ 	jfs_stage1_5_exec-bios.$(OBJEXT)
+ jfs_stage1_5_exec_OBJECTS = $(am_jfs_stage1_5_exec_OBJECTS)
+ jfs_stage1_5_exec_LDADD = $(LDADD)
++jfs_stage1_5_exec_LINK = $(CCLD) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) \
++	$(jfs_stage1_5_exec_LDFLAGS) $(LDFLAGS) -o $@
+ am_minix_stage1_5_exec_OBJECTS = minix_stage1_5_exec-start.$(OBJEXT) \
+ 	minix_stage1_5_exec-asm.$(OBJEXT) \
+ 	minix_stage1_5_exec-common.$(OBJEXT) \
+@@ -190,9 +197,13 @@ am_minix_stage1_5_exec_OBJECTS = minix_stage1_5_exec-start.$(OBJEXT) \
+ 	minix_stage1_5_exec-bios.$(OBJEXT)
+ minix_stage1_5_exec_OBJECTS = $(am_minix_stage1_5_exec_OBJECTS)
+ minix_stage1_5_exec_LDADD = $(LDADD)
++minix_stage1_5_exec_LINK = $(CCLD) $(minix_stage1_5_exec_CFLAGS) \
++	$(CFLAGS) $(minix_stage1_5_exec_LDFLAGS) $(LDFLAGS) -o $@
+ am_nbloader_exec_OBJECTS = nbloader_exec-nbloader.$(OBJEXT)
+ nbloader_exec_OBJECTS = $(am_nbloader_exec_OBJECTS)
+ nbloader_exec_LDADD = $(LDADD)
++nbloader_exec_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
++	$(nbloader_exec_LDFLAGS) $(LDFLAGS) -o $@
+ am_pre_stage2_exec_OBJECTS = pre_stage2_exec-asm.$(OBJEXT) \
+ 	pre_stage2_exec-bios.$(OBJEXT) pre_stage2_exec-boot.$(OBJEXT) \
+ 	pre_stage2_exec-builtins.$(OBJEXT) \
+@@ -217,13 +228,18 @@ am_pre_stage2_exec_OBJECTS = pre_stage2_exec-asm.$(OBJEXT) \
+ 	pre_stage2_exec-smp-imps.$(OBJEXT) \
+ 	pre_stage2_exec-stage2.$(OBJEXT) \
+ 	pre_stage2_exec-terminfo.$(OBJEXT) \
+-	pre_stage2_exec-tparm.$(OBJEXT)
++	pre_stage2_exec-tparm.$(OBJEXT) \
++	pre_stage2_exec-graphics.$(OBJEXT)
+ pre_stage2_exec_OBJECTS = $(am_pre_stage2_exec_OBJECTS)
+ @NETBOOT_SUPPORT_TRUE at pre_stage2_exec_DEPENDENCIES =  \
+ @NETBOOT_SUPPORT_TRUE@	../netboot/libdrivers.a
++pre_stage2_exec_LINK = $(CCLD) $(pre_stage2_exec_CFLAGS) $(CFLAGS) \
++	$(pre_stage2_exec_LDFLAGS) $(LDFLAGS) -o $@
+ am_pxeloader_exec_OBJECTS = pxeloader_exec-pxeloader.$(OBJEXT)
+ pxeloader_exec_OBJECTS = $(am_pxeloader_exec_OBJECTS)
+ pxeloader_exec_LDADD = $(LDADD)
++pxeloader_exec_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
++	$(pxeloader_exec_LDFLAGS) $(LDFLAGS) -o $@
+ am_reiserfs_stage1_5_exec_OBJECTS =  \
+ 	reiserfs_stage1_5_exec-start.$(OBJEXT) \
+ 	reiserfs_stage1_5_exec-asm.$(OBJEXT) \
+@@ -235,13 +251,19 @@ am_reiserfs_stage1_5_exec_OBJECTS =  \
+ 	reiserfs_stage1_5_exec-bios.$(OBJEXT)
+ reiserfs_stage1_5_exec_OBJECTS = $(am_reiserfs_stage1_5_exec_OBJECTS)
+ reiserfs_stage1_5_exec_LDADD = $(LDADD)
++reiserfs_stage1_5_exec_LINK = $(CCLD) $(reiserfs_stage1_5_exec_CFLAGS) \
++	$(CFLAGS) $(reiserfs_stage1_5_exec_LDFLAGS) $(LDFLAGS) -o $@
+ am_start_exec_OBJECTS = start_exec-start.$(OBJEXT)
+ start_exec_OBJECTS = $(am_start_exec_OBJECTS)
+ start_exec_LDADD = $(LDADD)
++start_exec_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(start_exec_LDFLAGS) \
++	$(LDFLAGS) -o $@
+ am_start_eltorito_exec_OBJECTS =  \
+ 	start_eltorito_exec-start_eltorito.$(OBJEXT)
+ start_eltorito_exec_OBJECTS = $(am_start_eltorito_exec_OBJECTS)
+ start_eltorito_exec_LDADD = $(LDADD)
++start_eltorito_exec_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
++	$(start_eltorito_exec_LDFLAGS) $(LDFLAGS) -o $@
+ am_ufs2_stage1_5_exec_OBJECTS = ufs2_stage1_5_exec-start.$(OBJEXT) \
+ 	ufs2_stage1_5_exec-asm.$(OBJEXT) \
+ 	ufs2_stage1_5_exec-common.$(OBJEXT) \
+@@ -252,6 +274,8 @@ am_ufs2_stage1_5_exec_OBJECTS = ufs2_stage1_5_exec-start.$(OBJEXT) \
+ 	ufs2_stage1_5_exec-bios.$(OBJEXT)
+ ufs2_stage1_5_exec_OBJECTS = $(am_ufs2_stage1_5_exec_OBJECTS)
+ ufs2_stage1_5_exec_LDADD = $(LDADD)
++ufs2_stage1_5_exec_LINK = $(CCLD) $(ufs2_stage1_5_exec_CFLAGS) \
++	$(CFLAGS) $(ufs2_stage1_5_exec_LDFLAGS) $(LDFLAGS) -o $@
+ am_vstafs_stage1_5_exec_OBJECTS =  \
+ 	vstafs_stage1_5_exec-start.$(OBJEXT) \
+ 	vstafs_stage1_5_exec-asm.$(OBJEXT) \
+@@ -263,6 +287,8 @@ am_vstafs_stage1_5_exec_OBJECTS =  \
+ 	vstafs_stage1_5_exec-bios.$(OBJEXT)
+ vstafs_stage1_5_exec_OBJECTS = $(am_vstafs_stage1_5_exec_OBJECTS)
+ vstafs_stage1_5_exec_LDADD = $(LDADD)
++vstafs_stage1_5_exec_LINK = $(CCLD) $(vstafs_stage1_5_exec_CFLAGS) \
++	$(CFLAGS) $(vstafs_stage1_5_exec_LDFLAGS) $(LDFLAGS) -o $@
+ am_xfs_stage1_5_exec_OBJECTS = xfs_stage1_5_exec-start.$(OBJEXT) \
+ 	xfs_stage1_5_exec-asm.$(OBJEXT) \
+ 	xfs_stage1_5_exec-common.$(OBJEXT) \
+@@ -273,11 +299,14 @@ am_xfs_stage1_5_exec_OBJECTS = xfs_stage1_5_exec-start.$(OBJEXT) \
+ 	xfs_stage1_5_exec-bios.$(OBJEXT)
+ xfs_stage1_5_exec_OBJECTS = $(am_xfs_stage1_5_exec_OBJECTS)
+ xfs_stage1_5_exec_LDADD = $(LDADD)
++xfs_stage1_5_exec_LINK = $(CCLD) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) \
++	$(xfs_stage1_5_exec_LDFLAGS) $(LDFLAGS) -o $@
+ SCRIPTS = $(noinst_SCRIPTS)
+-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
++DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
+ depcomp = $(SHELL) $(top_srcdir)/depcomp
+ am__depfiles_maybe = depfiles
+-CCASCOMPILE = $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS)
++CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
++	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS)
+ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+ CCLD = $(CC)
+@@ -306,28 +335,25 @@ am__vpath_adj = case $$p in \
+     *) f=$$p;; \
+   esac;
+ am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+-am__installdirs = "$(DESTDIR)$(pkglibdir)"
+-pkglibDATA_INSTALL = $(INSTALL_DATA)
+-DATA = $(noinst_DATA) $(pkglib_DATA)
++am__installdirs = "$(DESTDIR)$(pkgdatadir)"
++pkgdataDATA_INSTALL = $(INSTALL_DATA)
++DATA = $(noinst_DATA) $(pkgdata_DATA)
+ HEADERS = $(noinst_HEADERS)
+ ETAGS = etags
+ CTAGS = ctags
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ 
+ # Stage 2 and Stage 1.5's.
+-pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
++pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
+ ACLOCAL = @ACLOCAL@
+-AMDEP_FALSE = @AMDEP_FALSE@
+-AMDEP_TRUE = @AMDEP_TRUE@
+ AMTAR = @AMTAR@
+ AUTOCONF = @AUTOCONF@
+ AUTOHEADER = @AUTOHEADER@
+ AUTOMAKE = @AUTOMAKE@
+ AWK = @AWK@
+-BUILD_EXAMPLE_KERNEL_FALSE = @BUILD_EXAMPLE_KERNEL_FALSE@
+-BUILD_EXAMPLE_KERNEL_TRUE = @BUILD_EXAMPLE_KERNEL_TRUE@
+ CC = @CC@
+ CCAS = @CCAS@
++CCASDEPMODE = @CCASDEPMODE@
+ CCASFLAGS = @CCASFLAGS@
+ CCDEPMODE = @CCDEPMODE@
+ CFLAGS = @CFLAGS@
+@@ -336,18 +362,16 @@ CPPFLAGS = @CPPFLAGS@
+ CYGPATH_W = @CYGPATH_W@
+ DEFS = @DEFS@
+ DEPDIR = @DEPDIR@
+-DISKLESS_SUPPORT_FALSE = @DISKLESS_SUPPORT_FALSE@
+-DISKLESS_SUPPORT_TRUE = @DISKLESS_SUPPORT_TRUE@
+ ECHO_C = @ECHO_C@
+ ECHO_N = @ECHO_N@
+ ECHO_T = @ECHO_T@
+ EGREP = @EGREP@
+ EXEEXT = @EXEEXT@
+ FSYS_CFLAGS = @FSYS_CFLAGS@
++GREP = @GREP@
+ GRUB_CFLAGS = @GRUB_CFLAGS@
+ GRUB_LIBS = @GRUB_LIBS@
+-HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@
+-HERCULES_SUPPORT_TRUE = @HERCULES_SUPPORT_TRUE@
++INSTALL = @INSTALL@
+ INSTALL_DATA = @INSTALL_DATA@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+@@ -355,14 +379,12 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
++LOADER_LDFLAGS = @LOADER_LDFLAGS@
+ LTLIBOBJS = @LTLIBOBJS@
+ MAINT = @MAINT@
+-MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+-MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+ MAKEINFO = @MAKEINFO@
++MKDIR_P = @MKDIR_P@
+ NETBOOT_DRIVERS = @NETBOOT_DRIVERS@
+-NETBOOT_SUPPORT_FALSE = @NETBOOT_SUPPORT_FALSE@
+-NETBOOT_SUPPORT_TRUE = @NETBOOT_SUPPORT_TRUE@
+ NET_CFLAGS = @NET_CFLAGS@
+ NET_EXTRAFLAGS = @NET_EXTRAFLAGS@
+ OBJCOPY = @OBJCOPY@
+@@ -376,22 +398,17 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
+ PATH_SEPARATOR = @PATH_SEPARATOR@
+ PERL = @PERL@
+ RANLIB = @RANLIB@
+-SERIAL_SPEED_SIMULATION_FALSE = @SERIAL_SPEED_SIMULATION_FALSE@
+-SERIAL_SPEED_SIMULATION_TRUE = @SERIAL_SPEED_SIMULATION_TRUE@
+-SERIAL_SUPPORT_FALSE = @SERIAL_SUPPORT_FALSE@
+-SERIAL_SUPPORT_TRUE = @SERIAL_SUPPORT_TRUE@
+ SET_MAKE = @SET_MAKE@
+ SHELL = @SHELL@
+ STAGE1_CFLAGS = @STAGE1_CFLAGS@
+ STAGE2_CFLAGS = @STAGE2_CFLAGS@
+ STRIP = @STRIP@
+ VERSION = @VERSION@
++abs_builddir = @abs_builddir@
++abs_srcdir = @abs_srcdir@
++abs_top_builddir = @abs_top_builddir@
++abs_top_srcdir = @abs_top_srcdir@
+ ac_ct_CC = @ac_ct_CC@
+-ac_ct_OBJCOPY = @ac_ct_OBJCOPY@
+-ac_ct_RANLIB = @ac_ct_RANLIB@
+-ac_ct_STRIP = @ac_ct_STRIP@
+-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+ am__include = @am__include@
+ am__leading_dot = @am__leading_dot@
+ am__quote = @am__quote@
+@@ -403,28 +420,39 @@ build_alias = @build_alias@
+ build_cpu = @build_cpu@
+ build_os = @build_os@
+ build_vendor = @build_vendor@
++builddir = @builddir@
+ datadir = @datadir@
++datarootdir = @datarootdir@
++docdir = @docdir@
++dvidir = @dvidir@
+ exec_prefix = @exec_prefix@
+ host = @host@
+ host_alias = @host_alias@
+ host_cpu = @host_cpu@
+ host_os = @host_os@
+ host_vendor = @host_vendor@
++htmldir = @htmldir@
+ includedir = @includedir@
+ infodir = @infodir@
+ install_sh = @install_sh@
+ libdir = @libdir@
+ libexecdir = @libexecdir@
++localedir = @localedir@
+ localstatedir = @localstatedir@
+ mandir = @mandir@
+ mkdir_p = @mkdir_p@
+ oldincludedir = @oldincludedir@
++pdfdir = @pdfdir@
+ prefix = @prefix@
+ program_transform_name = @program_transform_name@
++psdir = @psdir@
+ sbindir = @sbindir@
+ sharedstatedir = @sharedstatedir@
++srcdir = @srcdir@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
++top_builddir = @top_builddir@
++top_srcdir = @top_srcdir@
+ 
+ # For test target.
+ TESTS = size_test
+@@ -435,7 +463,7 @@ noinst_HEADERS = apic.h defs.h dir.h disk_inode.h disk_inode_ffs.h \
+         fat.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \
+ 	imgact_aout.h iso9660.h jfs.h mb_header.h mb_info.h md5.h \
+ 	nbi.h pc_slice.h serial.h shared.h smp-imps.h term.h \
+-	terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h
++	terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h graphics.h gpt.h
+ 
+ EXTRA_DIST = setjmp.S apm.S $(noinst_SCRIPTS)
+ 
+@@ -448,7 +476,7 @@ libgrub_a_SOURCES = boot.c builtins.c char_io.c cmdline.c common.c \
+ 	disk_io.c fsys_ext2fs.c fsys_fat.c fsys_ffs.c fsys_iso9660.c \
+ 	fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_ufs2.c \
+ 	fsys_vstafs.c fsys_xfs.c gunzip.c md5.c serial.c stage2.c \
+-	terminfo.c tparm.c
++	terminfo.c tparm.c graphics.c
+ 
+ libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \
+ 	-DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \
+@@ -456,11 +484,11 @@ libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \
+ 	-DFSYS_UFS2=1 -DFSYS_VSTAFS=1 -DFSYS_XFS=1 \
+ 	-DUSE_MD5_PASSWORDS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1
+ 
+- at DISKLESS_SUPPORT_FALSE@pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
++ at DISKLESS_SUPPORT_FALSE@pkgdata_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
+ @DISKLESS_SUPPORT_FALSE@	ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \
+ @DISKLESS_SUPPORT_FALSE@	reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5
+ 
+- at DISKLESS_SUPPORT_TRUE@pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
++ at DISKLESS_SUPPORT_TRUE@pkgdata_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
+ @DISKLESS_SUPPORT_TRUE@	ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \
+ @DISKLESS_SUPPORT_TRUE@	reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5 \
+ @DISKLESS_SUPPORT_TRUE@	nbgrub pxegrub
+@@ -468,21 +496,23 @@ libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \
+ @DISKLESS_SUPPORT_FALSE at noinst_DATA = pre_stage2 start start_eltorito
+ @DISKLESS_SUPPORT_TRUE at noinst_DATA = pre_stage2 start start_eltorito nbloader pxeloader diskless
+ MOSTLYCLEANFILES = $(noinst_PROGRAMS)
+-PRE_STAGE2_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8200
+-START_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8000
+-NBLOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,0
+-PXELOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00
+-START_ELTORITO_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00
++PRE_STAGE2_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8200 $(LOADER_LDFLAGS)
++START_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8000 $(LOADER_LDFLAGS)
++NBLOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,0 $(LOADER_LDFLAGS)
++PXELOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00 $(LOADER_LDFLAGS)
++START_ELTORITO_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00 $(LOADER_LDFLAGS)
+ @NETBOOT_SUPPORT_FALSE at NETBOOT_FLAGS = 
+ @NETBOOT_SUPPORT_TRUE at NETBOOT_FLAGS = -I$(top_srcdir)/netboot -DSUPPORT_NETBOOT=1
+ @SERIAL_SUPPORT_FALSE at SERIAL_FLAGS = 
+ @SERIAL_SUPPORT_TRUE at SERIAL_FLAGS = -DSUPPORT_SERIAL=1
+ @HERCULES_SUPPORT_FALSE at HERCULES_FLAGS = 
+ @HERCULES_SUPPORT_TRUE at HERCULES_FLAGS = -DSUPPORT_HERCULES=1
++ at GRAPHICS_SUPPORT_FALSE@GRAPHICS_FLAGS = 
++ at GRAPHICS_SUPPORT_TRUE@GRAPHICS_FLAGS = -DSUPPORT_GRAPHICS=1
+ STAGE2_COMPILE = $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+-	$(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS)
++	$(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS) $(GRAPHICS_FLAGS)
+ 
+-STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000
++STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000 $(LOADER_LDFLAGS)
+ STAGE1_5_COMPILE = $(STAGE2_COMPILE) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1
+ 
+ # For stage2 target.
+@@ -490,7 +520,8 @@ pre_stage2_exec_SOURCES = asm.S bios.c boot.c builtins.c char_io.c \
+ 	cmdline.c common.c console.c disk_io.c fsys_ext2fs.c \
+ 	fsys_fat.c fsys_ffs.c fsys_iso9660.c fsys_jfs.c fsys_minix.c \
+ 	fsys_reiserfs.c fsys_ufs2.c fsys_vstafs.c fsys_xfs.c gunzip.c \
+-	hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c
++	hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c \
++	graphics.c
+ 
+ pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
+ pre_stage2_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
+@@ -498,7 +529,7 @@ pre_stage2_exec_LDFLAGS = $(PRE_STAGE2_LINK)
+ @NETBOOT_SUPPORT_TRUE at pre_stage2_exec_LDADD = ../netboot/libdrivers.a
+ @DISKLESS_SUPPORT_FALSE at BUILT_SOURCES = stage2_size.h
+ @DISKLESS_SUPPORT_TRUE at BUILT_SOURCES = stage2_size.h diskless_size.h
+-CLEANFILES = $(pkglib_DATA) $(noinst_DATA) $(BUILT_SOURCES)
++CLEANFILES = $(pkgdata_DATA) $(noinst_DATA) $(BUILT_SOURCES)
+ start_exec_SOURCES = start.S
+ start_exec_CCASFLAGS = $(STAGE2_COMPILE)
+ start_exec_LDFLAGS = $(START_LINK)
+@@ -695,52 +726,52 @@ clean-noinstPROGRAMS:
+ 	-test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
+ diskless.exec$(EXEEXT): $(diskless_exec_OBJECTS) $(diskless_exec_DEPENDENCIES) 
+ 	@rm -f diskless.exec$(EXEEXT)
+-	$(LINK) $(diskless_exec_LDFLAGS) $(diskless_exec_OBJECTS) $(diskless_exec_LDADD) $(LIBS)
++	$(diskless_exec_LINK) $(diskless_exec_OBJECTS) $(diskless_exec_LDADD) $(LIBS)
+ e2fs_stage1_5.exec$(EXEEXT): $(e2fs_stage1_5_exec_OBJECTS) $(e2fs_stage1_5_exec_DEPENDENCIES) 
+ 	@rm -f e2fs_stage1_5.exec$(EXEEXT)
+-	$(LINK) $(e2fs_stage1_5_exec_LDFLAGS) $(e2fs_stage1_5_exec_OBJECTS) $(e2fs_stage1_5_exec_LDADD) $(LIBS)
++	$(e2fs_stage1_5_exec_LINK) $(e2fs_stage1_5_exec_OBJECTS) $(e2fs_stage1_5_exec_LDADD) $(LIBS)
+ fat_stage1_5.exec$(EXEEXT): $(fat_stage1_5_exec_OBJECTS) $(fat_stage1_5_exec_DEPENDENCIES) 
+ 	@rm -f fat_stage1_5.exec$(EXEEXT)
+-	$(LINK) $(fat_stage1_5_exec_LDFLAGS) $(fat_stage1_5_exec_OBJECTS) $(fat_stage1_5_exec_LDADD) $(LIBS)
++	$(fat_stage1_5_exec_LINK) $(fat_stage1_5_exec_OBJECTS) $(fat_stage1_5_exec_LDADD) $(LIBS)
+ ffs_stage1_5.exec$(EXEEXT): $(ffs_stage1_5_exec_OBJECTS) $(ffs_stage1_5_exec_DEPENDENCIES) 
+ 	@rm -f ffs_stage1_5.exec$(EXEEXT)
+-	$(LINK) $(ffs_stage1_5_exec_LDFLAGS) $(ffs_stage1_5_exec_OBJECTS) $(ffs_stage1_5_exec_LDADD) $(LIBS)
++	$(ffs_stage1_5_exec_LINK) $(ffs_stage1_5_exec_OBJECTS) $(ffs_stage1_5_exec_LDADD) $(LIBS)
+ iso9660_stage1_5.exec$(EXEEXT): $(iso9660_stage1_5_exec_OBJECTS) $(iso9660_stage1_5_exec_DEPENDENCIES) 
+ 	@rm -f iso9660_stage1_5.exec$(EXEEXT)
+-	$(LINK) $(iso9660_stage1_5_exec_LDFLAGS) $(iso9660_stage1_5_exec_OBJECTS) $(iso9660_stage1_5_exec_LDADD) $(LIBS)
++	$(iso9660_stage1_5_exec_LINK) $(iso9660_stage1_5_exec_OBJECTS) $(iso9660_stage1_5_exec_LDADD) $(LIBS)
+ jfs_stage1_5.exec$(EXEEXT): $(jfs_stage1_5_exec_OBJECTS) $(jfs_stage1_5_exec_DEPENDENCIES) 
+ 	@rm -f jfs_stage1_5.exec$(EXEEXT)
+-	$(LINK) $(jfs_stage1_5_exec_LDFLAGS) $(jfs_stage1_5_exec_OBJECTS) $(jfs_stage1_5_exec_LDADD) $(LIBS)
++	$(jfs_stage1_5_exec_LINK) $(jfs_stage1_5_exec_OBJECTS) $(jfs_stage1_5_exec_LDADD) $(LIBS)
+ minix_stage1_5.exec$(EXEEXT): $(minix_stage1_5_exec_OBJECTS) $(minix_stage1_5_exec_DEPENDENCIES) 
+ 	@rm -f minix_stage1_5.exec$(EXEEXT)
+-	$(LINK) $(minix_stage1_5_exec_LDFLAGS) $(minix_stage1_5_exec_OBJECTS) $(minix_stage1_5_exec_LDADD) $(LIBS)
++	$(minix_stage1_5_exec_LINK) $(minix_stage1_5_exec_OBJECTS) $(minix_stage1_5_exec_LDADD) $(LIBS)
+ nbloader.exec$(EXEEXT): $(nbloader_exec_OBJECTS) $(nbloader_exec_DEPENDENCIES) 
+ 	@rm -f nbloader.exec$(EXEEXT)
+-	$(LINK) $(nbloader_exec_LDFLAGS) $(nbloader_exec_OBJECTS) $(nbloader_exec_LDADD) $(LIBS)
++	$(nbloader_exec_LINK) $(nbloader_exec_OBJECTS) $(nbloader_exec_LDADD) $(LIBS)
+ pre_stage2.exec$(EXEEXT): $(pre_stage2_exec_OBJECTS) $(pre_stage2_exec_DEPENDENCIES) 
+ 	@rm -f pre_stage2.exec$(EXEEXT)
+-	$(LINK) $(pre_stage2_exec_LDFLAGS) $(pre_stage2_exec_OBJECTS) $(pre_stage2_exec_LDADD) $(LIBS)
++	$(pre_stage2_exec_LINK) $(pre_stage2_exec_OBJECTS) $(pre_stage2_exec_LDADD) $(LIBS)
+ pxeloader.exec$(EXEEXT): $(pxeloader_exec_OBJECTS) $(pxeloader_exec_DEPENDENCIES) 
+ 	@rm -f pxeloader.exec$(EXEEXT)
+-	$(LINK) $(pxeloader_exec_LDFLAGS) $(pxeloader_exec_OBJECTS) $(pxeloader_exec_LDADD) $(LIBS)
++	$(pxeloader_exec_LINK) $(pxeloader_exec_OBJECTS) $(pxeloader_exec_LDADD) $(LIBS)
+ reiserfs_stage1_5.exec$(EXEEXT): $(reiserfs_stage1_5_exec_OBJECTS) $(reiserfs_stage1_5_exec_DEPENDENCIES) 
+ 	@rm -f reiserfs_stage1_5.exec$(EXEEXT)
+-	$(LINK) $(reiserfs_stage1_5_exec_LDFLAGS) $(reiserfs_stage1_5_exec_OBJECTS) $(reiserfs_stage1_5_exec_LDADD) $(LIBS)
++	$(reiserfs_stage1_5_exec_LINK) $(reiserfs_stage1_5_exec_OBJECTS) $(reiserfs_stage1_5_exec_LDADD) $(LIBS)
+ start.exec$(EXEEXT): $(start_exec_OBJECTS) $(start_exec_DEPENDENCIES) 
+ 	@rm -f start.exec$(EXEEXT)
+-	$(LINK) $(start_exec_LDFLAGS) $(start_exec_OBJECTS) $(start_exec_LDADD) $(LIBS)
++	$(start_exec_LINK) $(start_exec_OBJECTS) $(start_exec_LDADD) $(LIBS)
+ start_eltorito.exec$(EXEEXT): $(start_eltorito_exec_OBJECTS) $(start_eltorito_exec_DEPENDENCIES) 
+ 	@rm -f start_eltorito.exec$(EXEEXT)
+-	$(LINK) $(start_eltorito_exec_LDFLAGS) $(start_eltorito_exec_OBJECTS) $(start_eltorito_exec_LDADD) $(LIBS)
++	$(start_eltorito_exec_LINK) $(start_eltorito_exec_OBJECTS) $(start_eltorito_exec_LDADD) $(LIBS)
+ ufs2_stage1_5.exec$(EXEEXT): $(ufs2_stage1_5_exec_OBJECTS) $(ufs2_stage1_5_exec_DEPENDENCIES) 
+ 	@rm -f ufs2_stage1_5.exec$(EXEEXT)
+-	$(LINK) $(ufs2_stage1_5_exec_LDFLAGS) $(ufs2_stage1_5_exec_OBJECTS) $(ufs2_stage1_5_exec_LDADD) $(LIBS)
++	$(ufs2_stage1_5_exec_LINK) $(ufs2_stage1_5_exec_OBJECTS) $(ufs2_stage1_5_exec_LDADD) $(LIBS)
+ vstafs_stage1_5.exec$(EXEEXT): $(vstafs_stage1_5_exec_OBJECTS) $(vstafs_stage1_5_exec_DEPENDENCIES) 
+ 	@rm -f vstafs_stage1_5.exec$(EXEEXT)
+-	$(LINK) $(vstafs_stage1_5_exec_LDFLAGS) $(vstafs_stage1_5_exec_OBJECTS) $(vstafs_stage1_5_exec_LDADD) $(LIBS)
++	$(vstafs_stage1_5_exec_LINK) $(vstafs_stage1_5_exec_OBJECTS) $(vstafs_stage1_5_exec_LDADD) $(LIBS)
+ xfs_stage1_5.exec$(EXEEXT): $(xfs_stage1_5_exec_OBJECTS) $(xfs_stage1_5_exec_DEPENDENCIES) 
+ 	@rm -f xfs_stage1_5.exec$(EXEEXT)
+-	$(LINK) $(xfs_stage1_5_exec_LDFLAGS) $(xfs_stage1_5_exec_OBJECTS) $(xfs_stage1_5_exec_LDADD) $(LIBS)
++	$(xfs_stage1_5_exec_LINK) $(xfs_stage1_5_exec_OBJECTS) $(xfs_stage1_5_exec_LDADD) $(LIBS)
+ 
+ mostlyclean-compile:
+ 	-rm -f *.$(OBJEXT)
+@@ -748,6 +779,7 @@ mostlyclean-compile:
+ distclean-compile:
+ 	-rm -f *.tab.c
+ 
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/diskless_exec-asm.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/diskless_exec-bios.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/diskless_exec-boot.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/diskless_exec-builtins.Po at am__quote@
+@@ -766,6 +798,7 @@ distclean-compile:
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/diskless_exec-fsys_ufs2.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/diskless_exec-fsys_vstafs.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/diskless_exec-fsys_xfs.Po at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/diskless_exec-graphics.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/diskless_exec-gunzip.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/diskless_exec-hercules.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/diskless_exec-md5.Po at am__quote@
+@@ -774,36 +807,46 @@ distclean-compile:
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/diskless_exec-stage2.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/diskless_exec-terminfo.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/diskless_exec-tparm.Po at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/e2fs_stage1_5_exec-asm.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/e2fs_stage1_5_exec-bios.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/e2fs_stage1_5_exec-char_io.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/e2fs_stage1_5_exec-common.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/e2fs_stage1_5_exec-disk_io.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Po at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/e2fs_stage1_5_exec-start.Po at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/fat_stage1_5_exec-asm.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/fat_stage1_5_exec-bios.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/fat_stage1_5_exec-char_io.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/fat_stage1_5_exec-common.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/fat_stage1_5_exec-disk_io.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/fat_stage1_5_exec-fsys_fat.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/fat_stage1_5_exec-stage1_5.Po at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/fat_stage1_5_exec-start.Po at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ffs_stage1_5_exec-asm.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ffs_stage1_5_exec-bios.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ffs_stage1_5_exec-char_io.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ffs_stage1_5_exec-common.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ffs_stage1_5_exec-disk_io.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ffs_stage1_5_exec-stage1_5.Po at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ffs_stage1_5_exec-start.Po at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/iso9660_stage1_5_exec-asm.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/iso9660_stage1_5_exec-bios.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/iso9660_stage1_5_exec-char_io.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/iso9660_stage1_5_exec-common.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Po at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/iso9660_stage1_5_exec-start_eltorito.Po at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/jfs_stage1_5_exec-asm.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/jfs_stage1_5_exec-bios.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/jfs_stage1_5_exec-char_io.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/jfs_stage1_5_exec-common.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/jfs_stage1_5_exec-disk_io.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Po at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/jfs_stage1_5_exec-start.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgrub_a-boot.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgrub_a-builtins.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgrub_a-char_io.Po at am__quote@
+@@ -820,18 +863,23 @@ distclean-compile:
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgrub_a-fsys_ufs2.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgrub_a-fsys_vstafs.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgrub_a-fsys_xfs.Po at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgrub_a-graphics.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgrub_a-gunzip.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgrub_a-md5.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgrub_a-serial.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgrub_a-stage2.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgrub_a-terminfo.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgrub_a-tparm.Po at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/minix_stage1_5_exec-asm.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/minix_stage1_5_exec-bios.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/minix_stage1_5_exec-char_io.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/minix_stage1_5_exec-common.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/minix_stage1_5_exec-disk_io.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/minix_stage1_5_exec-fsys_minix.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/minix_stage1_5_exec-stage1_5.Po at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/minix_stage1_5_exec-start.Po at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/nbloader_exec-nbloader.Po at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/pre_stage2_exec-asm.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/pre_stage2_exec-bios.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/pre_stage2_exec-boot.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/pre_stage2_exec-builtins.Po at am__quote@
+@@ -850,6 +898,7 @@ distclean-compile:
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/pre_stage2_exec-fsys_ufs2.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/pre_stage2_exec-fsys_xfs.Po at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/pre_stage2_exec-graphics.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/pre_stage2_exec-gunzip.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/pre_stage2_exec-hercules.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/pre_stage2_exec-md5.Po at am__quote@
+@@ -858,2099 +907,2367 @@ distclean-compile:
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/pre_stage2_exec-stage2.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/pre_stage2_exec-terminfo.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/pre_stage2_exec-tparm.Po at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/pxeloader_exec-pxeloader.Po at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/reiserfs_stage1_5_exec-asm.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/reiserfs_stage1_5_exec-bios.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/reiserfs_stage1_5_exec-char_io.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/reiserfs_stage1_5_exec-common.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Po at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/reiserfs_stage1_5_exec-start.Po at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/start_eltorito_exec-start_eltorito.Po at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/start_exec-start.Po at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ufs2_stage1_5_exec-asm.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ufs2_stage1_5_exec-bios.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ufs2_stage1_5_exec-char_io.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ufs2_stage1_5_exec-common.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ufs2_stage1_5_exec-disk_io.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Po at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ufs2_stage1_5_exec-start.Po at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/vstafs_stage1_5_exec-asm.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/vstafs_stage1_5_exec-bios.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/vstafs_stage1_5_exec-char_io.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/vstafs_stage1_5_exec-common.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/vstafs_stage1_5_exec-disk_io.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Po at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/vstafs_stage1_5_exec-start.Po at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/xfs_stage1_5_exec-asm.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/xfs_stage1_5_exec-bios.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/xfs_stage1_5_exec-char_io.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/xfs_stage1_5_exec-common.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/xfs_stage1_5_exec-disk_io.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Po at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/xfs_stage1_5_exec-start.Po at am__quote@
+ 
+ .S.o:
+-	$(CCASCOMPILE) -c $<
++ at am__fastdepCCAS_TRUE@	$(CPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CPPASCOMPILE) -c -o $@ $<
+ 
+ .S.obj:
+-	$(CCASCOMPILE) -c `$(CYGPATH_W) '$<'`
++ at am__fastdepCCAS_TRUE@	$(CPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CPPASCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+ 
+ diskless_exec-asm.o: asm.S
+-	$(CCAS) $(diskless_exec_CCASFLAGS) $(CCASFLAGS) -c -o diskless_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CCASFLAGS) $(CCASFLAGS) -MT diskless_exec-asm.o -MD -MP -MF $(DEPDIR)/diskless_exec-asm.Tpo -c -o diskless_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/diskless_exec-asm.Tpo $(DEPDIR)/diskless_exec-asm.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='asm.S' object='diskless_exec-asm.o' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CCASFLAGS) $(CCASFLAGS) -c -o diskless_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
+ 
+ diskless_exec-asm.obj: asm.S
+-	$(CCAS) $(diskless_exec_CCASFLAGS) $(CCASFLAGS) -c -o diskless_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CCASFLAGS) $(CCASFLAGS) -MT diskless_exec-asm.obj -MD -MP -MF $(DEPDIR)/diskless_exec-asm.Tpo -c -o diskless_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/diskless_exec-asm.Tpo $(DEPDIR)/diskless_exec-asm.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='asm.S' object='diskless_exec-asm.obj' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CCASFLAGS) $(CCASFLAGS) -c -o diskless_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
+ 
+ e2fs_stage1_5_exec-start.o: start.S
+-	$(CCAS) $(e2fs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o e2fs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT e2fs_stage1_5_exec-start.o -MD -MP -MF $(DEPDIR)/e2fs_stage1_5_exec-start.Tpo -c -o e2fs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/e2fs_stage1_5_exec-start.Tpo $(DEPDIR)/e2fs_stage1_5_exec-start.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='start.S' object='e2fs_stage1_5_exec-start.o' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o e2fs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
+ 
+ e2fs_stage1_5_exec-start.obj: start.S
+-	$(CCAS) $(e2fs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o e2fs_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT e2fs_stage1_5_exec-start.obj -MD -MP -MF $(DEPDIR)/e2fs_stage1_5_exec-start.Tpo -c -o e2fs_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/e2fs_stage1_5_exec-start.Tpo $(DEPDIR)/e2fs_stage1_5_exec-start.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='start.S' object='e2fs_stage1_5_exec-start.obj' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o e2fs_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
+ 
+ e2fs_stage1_5_exec-asm.o: asm.S
+-	$(CCAS) $(e2fs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o e2fs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT e2fs_stage1_5_exec-asm.o -MD -MP -MF $(DEPDIR)/e2fs_stage1_5_exec-asm.Tpo -c -o e2fs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/e2fs_stage1_5_exec-asm.Tpo $(DEPDIR)/e2fs_stage1_5_exec-asm.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='asm.S' object='e2fs_stage1_5_exec-asm.o' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o e2fs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
+ 
+ e2fs_stage1_5_exec-asm.obj: asm.S
+-	$(CCAS) $(e2fs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o e2fs_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT e2fs_stage1_5_exec-asm.obj -MD -MP -MF $(DEPDIR)/e2fs_stage1_5_exec-asm.Tpo -c -o e2fs_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/e2fs_stage1_5_exec-asm.Tpo $(DEPDIR)/e2fs_stage1_5_exec-asm.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='asm.S' object='e2fs_stage1_5_exec-asm.obj' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o e2fs_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
+ 
+ fat_stage1_5_exec-start.o: start.S
+-	$(CCAS) $(fat_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o fat_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT fat_stage1_5_exec-start.o -MD -MP -MF $(DEPDIR)/fat_stage1_5_exec-start.Tpo -c -o fat_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/fat_stage1_5_exec-start.Tpo $(DEPDIR)/fat_stage1_5_exec-start.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='start.S' object='fat_stage1_5_exec-start.o' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o fat_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
+ 
+ fat_stage1_5_exec-start.obj: start.S
+-	$(CCAS) $(fat_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o fat_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT fat_stage1_5_exec-start.obj -MD -MP -MF $(DEPDIR)/fat_stage1_5_exec-start.Tpo -c -o fat_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/fat_stage1_5_exec-start.Tpo $(DEPDIR)/fat_stage1_5_exec-start.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='start.S' object='fat_stage1_5_exec-start.obj' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o fat_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
+ 
+ fat_stage1_5_exec-asm.o: asm.S
+-	$(CCAS) $(fat_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o fat_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT fat_stage1_5_exec-asm.o -MD -MP -MF $(DEPDIR)/fat_stage1_5_exec-asm.Tpo -c -o fat_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/fat_stage1_5_exec-asm.Tpo $(DEPDIR)/fat_stage1_5_exec-asm.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='asm.S' object='fat_stage1_5_exec-asm.o' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o fat_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
+ 
+ fat_stage1_5_exec-asm.obj: asm.S
+-	$(CCAS) $(fat_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o fat_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT fat_stage1_5_exec-asm.obj -MD -MP -MF $(DEPDIR)/fat_stage1_5_exec-asm.Tpo -c -o fat_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/fat_stage1_5_exec-asm.Tpo $(DEPDIR)/fat_stage1_5_exec-asm.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='asm.S' object='fat_stage1_5_exec-asm.obj' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o fat_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
+ 
+ ffs_stage1_5_exec-start.o: start.S
+-	$(CCAS) $(ffs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ffs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT ffs_stage1_5_exec-start.o -MD -MP -MF $(DEPDIR)/ffs_stage1_5_exec-start.Tpo -c -o ffs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/ffs_stage1_5_exec-start.Tpo $(DEPDIR)/ffs_stage1_5_exec-start.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='start.S' object='ffs_stage1_5_exec-start.o' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ffs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
+ 
+ ffs_stage1_5_exec-start.obj: start.S
+-	$(CCAS) $(ffs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ffs_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT ffs_stage1_5_exec-start.obj -MD -MP -MF $(DEPDIR)/ffs_stage1_5_exec-start.Tpo -c -o ffs_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/ffs_stage1_5_exec-start.Tpo $(DEPDIR)/ffs_stage1_5_exec-start.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='start.S' object='ffs_stage1_5_exec-start.obj' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ffs_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
+ 
+ ffs_stage1_5_exec-asm.o: asm.S
+-	$(CCAS) $(ffs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ffs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT ffs_stage1_5_exec-asm.o -MD -MP -MF $(DEPDIR)/ffs_stage1_5_exec-asm.Tpo -c -o ffs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/ffs_stage1_5_exec-asm.Tpo $(DEPDIR)/ffs_stage1_5_exec-asm.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='asm.S' object='ffs_stage1_5_exec-asm.o' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ffs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
+ 
+ ffs_stage1_5_exec-asm.obj: asm.S
+-	$(CCAS) $(ffs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ffs_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT ffs_stage1_5_exec-asm.obj -MD -MP -MF $(DEPDIR)/ffs_stage1_5_exec-asm.Tpo -c -o ffs_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/ffs_stage1_5_exec-asm.Tpo $(DEPDIR)/ffs_stage1_5_exec-asm.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='asm.S' object='ffs_stage1_5_exec-asm.obj' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ffs_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
+ 
+ iso9660_stage1_5_exec-start_eltorito.o: start_eltorito.S
+-	$(CCAS) $(iso9660_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o iso9660_stage1_5_exec-start_eltorito.o `test -f 'start_eltorito.S' || echo '$(srcdir)/'`start_eltorito.S
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT iso9660_stage1_5_exec-start_eltorito.o -MD -MP -MF $(DEPDIR)/iso9660_stage1_5_exec-start_eltorito.Tpo -c -o iso9660_stage1_5_exec-start_eltorito.o `test -f 'start_eltorito.S' || echo '$(srcdir)/'`start_eltorito.S
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/iso9660_stage1_5_exec-start_eltorito.Tpo $(DEPDIR)/iso9660_stage1_5_exec-start_eltorito.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='start_eltorito.S' object='iso9660_stage1_5_exec-start_eltorito.o' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o iso9660_stage1_5_exec-start_eltorito.o `test -f 'start_eltorito.S' || echo '$(srcdir)/'`start_eltorito.S
+ 
+ iso9660_stage1_5_exec-start_eltorito.obj: start_eltorito.S
+-	$(CCAS) $(iso9660_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o iso9660_stage1_5_exec-start_eltorito.obj `if test -f 'start_eltorito.S'; then $(CYGPATH_W) 'start_eltorito.S'; else $(CYGPATH_W) '$(srcdir)/start_eltorito.S'; fi`
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT iso9660_stage1_5_exec-start_eltorito.obj -MD -MP -MF $(DEPDIR)/iso9660_stage1_5_exec-start_eltorito.Tpo -c -o iso9660_stage1_5_exec-start_eltorito.obj `if test -f 'start_eltorito.S'; then $(CYGPATH_W) 'start_eltorito.S'; else $(CYGPATH_W) '$(srcdir)/start_eltorito.S'; fi`
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/iso9660_stage1_5_exec-start_eltorito.Tpo $(DEPDIR)/iso9660_stage1_5_exec-start_eltorito.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='start_eltorito.S' object='iso9660_stage1_5_exec-start_eltorito.obj' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o iso9660_stage1_5_exec-start_eltorito.obj `if test -f 'start_eltorito.S'; then $(CYGPATH_W) 'start_eltorito.S'; else $(CYGPATH_W) '$(srcdir)/start_eltorito.S'; fi`
+ 
+ iso9660_stage1_5_exec-asm.o: asm.S
+-	$(CCAS) $(iso9660_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o iso9660_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT iso9660_stage1_5_exec-asm.o -MD -MP -MF $(DEPDIR)/iso9660_stage1_5_exec-asm.Tpo -c -o iso9660_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/iso9660_stage1_5_exec-asm.Tpo $(DEPDIR)/iso9660_stage1_5_exec-asm.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='asm.S' object='iso9660_stage1_5_exec-asm.o' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o iso9660_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
+ 
+ iso9660_stage1_5_exec-asm.obj: asm.S
+-	$(CCAS) $(iso9660_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o iso9660_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT iso9660_stage1_5_exec-asm.obj -MD -MP -MF $(DEPDIR)/iso9660_stage1_5_exec-asm.Tpo -c -o iso9660_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/iso9660_stage1_5_exec-asm.Tpo $(DEPDIR)/iso9660_stage1_5_exec-asm.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='asm.S' object='iso9660_stage1_5_exec-asm.obj' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o iso9660_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
+ 
+ jfs_stage1_5_exec-start.o: start.S
+-	$(CCAS) $(jfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o jfs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT jfs_stage1_5_exec-start.o -MD -MP -MF $(DEPDIR)/jfs_stage1_5_exec-start.Tpo -c -o jfs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/jfs_stage1_5_exec-start.Tpo $(DEPDIR)/jfs_stage1_5_exec-start.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='start.S' object='jfs_stage1_5_exec-start.o' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o jfs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
+ 
+ jfs_stage1_5_exec-start.obj: start.S
+-	$(CCAS) $(jfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o jfs_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT jfs_stage1_5_exec-start.obj -MD -MP -MF $(DEPDIR)/jfs_stage1_5_exec-start.Tpo -c -o jfs_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/jfs_stage1_5_exec-start.Tpo $(DEPDIR)/jfs_stage1_5_exec-start.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='start.S' object='jfs_stage1_5_exec-start.obj' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o jfs_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
+ 
+ jfs_stage1_5_exec-asm.o: asm.S
+-	$(CCAS) $(jfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o jfs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT jfs_stage1_5_exec-asm.o -MD -MP -MF $(DEPDIR)/jfs_stage1_5_exec-asm.Tpo -c -o jfs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/jfs_stage1_5_exec-asm.Tpo $(DEPDIR)/jfs_stage1_5_exec-asm.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='asm.S' object='jfs_stage1_5_exec-asm.o' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o jfs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
+ 
+ jfs_stage1_5_exec-asm.obj: asm.S
+-	$(CCAS) $(jfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o jfs_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT jfs_stage1_5_exec-asm.obj -MD -MP -MF $(DEPDIR)/jfs_stage1_5_exec-asm.Tpo -c -o jfs_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/jfs_stage1_5_exec-asm.Tpo $(DEPDIR)/jfs_stage1_5_exec-asm.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='asm.S' object='jfs_stage1_5_exec-asm.obj' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o jfs_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
+ 
+ minix_stage1_5_exec-start.o: start.S
+-	$(CCAS) $(minix_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o minix_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT minix_stage1_5_exec-start.o -MD -MP -MF $(DEPDIR)/minix_stage1_5_exec-start.Tpo -c -o minix_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/minix_stage1_5_exec-start.Tpo $(DEPDIR)/minix_stage1_5_exec-start.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='start.S' object='minix_stage1_5_exec-start.o' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o minix_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
+ 
+ minix_stage1_5_exec-start.obj: start.S
+-	$(CCAS) $(minix_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o minix_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT minix_stage1_5_exec-start.obj -MD -MP -MF $(DEPDIR)/minix_stage1_5_exec-start.Tpo -c -o minix_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/minix_stage1_5_exec-start.Tpo $(DEPDIR)/minix_stage1_5_exec-start.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='start.S' object='minix_stage1_5_exec-start.obj' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o minix_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
+ 
+ minix_stage1_5_exec-asm.o: asm.S
+-	$(CCAS) $(minix_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o minix_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT minix_stage1_5_exec-asm.o -MD -MP -MF $(DEPDIR)/minix_stage1_5_exec-asm.Tpo -c -o minix_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/minix_stage1_5_exec-asm.Tpo $(DEPDIR)/minix_stage1_5_exec-asm.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='asm.S' object='minix_stage1_5_exec-asm.o' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o minix_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
+ 
+ minix_stage1_5_exec-asm.obj: asm.S
+-	$(CCAS) $(minix_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o minix_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT minix_stage1_5_exec-asm.obj -MD -MP -MF $(DEPDIR)/minix_stage1_5_exec-asm.Tpo -c -o minix_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/minix_stage1_5_exec-asm.Tpo $(DEPDIR)/minix_stage1_5_exec-asm.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='asm.S' object='minix_stage1_5_exec-asm.obj' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o minix_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
+ 
+ nbloader_exec-nbloader.o: nbloader.S
+-	$(CCAS) $(nbloader_exec_CCASFLAGS) $(CCASFLAGS) -c -o nbloader_exec-nbloader.o `test -f 'nbloader.S' || echo '$(srcdir)/'`nbloader.S
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(nbloader_exec_CCASFLAGS) $(CCASFLAGS) -MT nbloader_exec-nbloader.o -MD -MP -MF $(DEPDIR)/nbloader_exec-nbloader.Tpo -c -o nbloader_exec-nbloader.o `test -f 'nbloader.S' || echo '$(srcdir)/'`nbloader.S
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/nbloader_exec-nbloader.Tpo $(DEPDIR)/nbloader_exec-nbloader.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='nbloader.S' object='nbloader_exec-nbloader.o' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(nbloader_exec_CCASFLAGS) $(CCASFLAGS) -c -o nbloader_exec-nbloader.o `test -f 'nbloader.S' || echo '$(srcdir)/'`nbloader.S
+ 
+ nbloader_exec-nbloader.obj: nbloader.S
+-	$(CCAS) $(nbloader_exec_CCASFLAGS) $(CCASFLAGS) -c -o nbloader_exec-nbloader.obj `if test -f 'nbloader.S'; then $(CYGPATH_W) 'nbloader.S'; else $(CYGPATH_W) '$(srcdir)/nbloader.S'; fi`
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(nbloader_exec_CCASFLAGS) $(CCASFLAGS) -MT nbloader_exec-nbloader.obj -MD -MP -MF $(DEPDIR)/nbloader_exec-nbloader.Tpo -c -o nbloader_exec-nbloader.obj `if test -f 'nbloader.S'; then $(CYGPATH_W) 'nbloader.S'; else $(CYGPATH_W) '$(srcdir)/nbloader.S'; fi`
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/nbloader_exec-nbloader.Tpo $(DEPDIR)/nbloader_exec-nbloader.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='nbloader.S' object='nbloader_exec-nbloader.obj' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(nbloader_exec_CCASFLAGS) $(CCASFLAGS) -c -o nbloader_exec-nbloader.obj `if test -f 'nbloader.S'; then $(CYGPATH_W) 'nbloader.S'; else $(CYGPATH_W) '$(srcdir)/nbloader.S'; fi`
+ 
+ pre_stage2_exec-asm.o: asm.S
+-	$(CCAS) $(pre_stage2_exec_CCASFLAGS) $(CCASFLAGS) -c -o pre_stage2_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CCASFLAGS) $(CCASFLAGS) -MT pre_stage2_exec-asm.o -MD -MP -MF $(DEPDIR)/pre_stage2_exec-asm.Tpo -c -o pre_stage2_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-asm.Tpo $(DEPDIR)/pre_stage2_exec-asm.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='asm.S' object='pre_stage2_exec-asm.o' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CCASFLAGS) $(CCASFLAGS) -c -o pre_stage2_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
+ 
+ pre_stage2_exec-asm.obj: asm.S
+-	$(CCAS) $(pre_stage2_exec_CCASFLAGS) $(CCASFLAGS) -c -o pre_stage2_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CCASFLAGS) $(CCASFLAGS) -MT pre_stage2_exec-asm.obj -MD -MP -MF $(DEPDIR)/pre_stage2_exec-asm.Tpo -c -o pre_stage2_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-asm.Tpo $(DEPDIR)/pre_stage2_exec-asm.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='asm.S' object='pre_stage2_exec-asm.obj' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CCASFLAGS) $(CCASFLAGS) -c -o pre_stage2_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
+ 
+ pxeloader_exec-pxeloader.o: pxeloader.S
+-	$(CCAS) $(pxeloader_exec_CCASFLAGS) $(CCASFLAGS) -c -o pxeloader_exec-pxeloader.o `test -f 'pxeloader.S' || echo '$(srcdir)/'`pxeloader.S
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pxeloader_exec_CCASFLAGS) $(CCASFLAGS) -MT pxeloader_exec-pxeloader.o -MD -MP -MF $(DEPDIR)/pxeloader_exec-pxeloader.Tpo -c -o pxeloader_exec-pxeloader.o `test -f 'pxeloader.S' || echo '$(srcdir)/'`pxeloader.S
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/pxeloader_exec-pxeloader.Tpo $(DEPDIR)/pxeloader_exec-pxeloader.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='pxeloader.S' object='pxeloader_exec-pxeloader.o' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pxeloader_exec_CCASFLAGS) $(CCASFLAGS) -c -o pxeloader_exec-pxeloader.o `test -f 'pxeloader.S' || echo '$(srcdir)/'`pxeloader.S
+ 
+ pxeloader_exec-pxeloader.obj: pxeloader.S
+-	$(CCAS) $(pxeloader_exec_CCASFLAGS) $(CCASFLAGS) -c -o pxeloader_exec-pxeloader.obj `if test -f 'pxeloader.S'; then $(CYGPATH_W) 'pxeloader.S'; else $(CYGPATH_W) '$(srcdir)/pxeloader.S'; fi`
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pxeloader_exec_CCASFLAGS) $(CCASFLAGS) -MT pxeloader_exec-pxeloader.obj -MD -MP -MF $(DEPDIR)/pxeloader_exec-pxeloader.Tpo -c -o pxeloader_exec-pxeloader.obj `if test -f 'pxeloader.S'; then $(CYGPATH_W) 'pxeloader.S'; else $(CYGPATH_W) '$(srcdir)/pxeloader.S'; fi`
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/pxeloader_exec-pxeloader.Tpo $(DEPDIR)/pxeloader_exec-pxeloader.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='pxeloader.S' object='pxeloader_exec-pxeloader.obj' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pxeloader_exec_CCASFLAGS) $(CCASFLAGS) -c -o pxeloader_exec-pxeloader.obj `if test -f 'pxeloader.S'; then $(CYGPATH_W) 'pxeloader.S'; else $(CYGPATH_W) '$(srcdir)/pxeloader.S'; fi`
+ 
+ reiserfs_stage1_5_exec-start.o: start.S
+-	$(CCAS) $(reiserfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o reiserfs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT reiserfs_stage1_5_exec-start.o -MD -MP -MF $(DEPDIR)/reiserfs_stage1_5_exec-start.Tpo -c -o reiserfs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/reiserfs_stage1_5_exec-start.Tpo $(DEPDIR)/reiserfs_stage1_5_exec-start.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='start.S' object='reiserfs_stage1_5_exec-start.o' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o reiserfs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
+ 
+ reiserfs_stage1_5_exec-start.obj: start.S
+-	$(CCAS) $(reiserfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o reiserfs_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT reiserfs_stage1_5_exec-start.obj -MD -MP -MF $(DEPDIR)/reiserfs_stage1_5_exec-start.Tpo -c -o reiserfs_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/reiserfs_stage1_5_exec-start.Tpo $(DEPDIR)/reiserfs_stage1_5_exec-start.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='start.S' object='reiserfs_stage1_5_exec-start.obj' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o reiserfs_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
+ 
+ reiserfs_stage1_5_exec-asm.o: asm.S
+-	$(CCAS) $(reiserfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o reiserfs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT reiserfs_stage1_5_exec-asm.o -MD -MP -MF $(DEPDIR)/reiserfs_stage1_5_exec-asm.Tpo -c -o reiserfs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/reiserfs_stage1_5_exec-asm.Tpo $(DEPDIR)/reiserfs_stage1_5_exec-asm.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='asm.S' object='reiserfs_stage1_5_exec-asm.o' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o reiserfs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
+ 
+ reiserfs_stage1_5_exec-asm.obj: asm.S
+-	$(CCAS) $(reiserfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o reiserfs_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT reiserfs_stage1_5_exec-asm.obj -MD -MP -MF $(DEPDIR)/reiserfs_stage1_5_exec-asm.Tpo -c -o reiserfs_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/reiserfs_stage1_5_exec-asm.Tpo $(DEPDIR)/reiserfs_stage1_5_exec-asm.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='asm.S' object='reiserfs_stage1_5_exec-asm.obj' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o reiserfs_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
+ 
+ start_exec-start.o: start.S
+-	$(CCAS) $(start_exec_CCASFLAGS) $(CCASFLAGS) -c -o start_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(start_exec_CCASFLAGS) $(CCASFLAGS) -MT start_exec-start.o -MD -MP -MF $(DEPDIR)/start_exec-start.Tpo -c -o start_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/start_exec-start.Tpo $(DEPDIR)/start_exec-start.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='start.S' object='start_exec-start.o' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(start_exec_CCASFLAGS) $(CCASFLAGS) -c -o start_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
+ 
+ start_exec-start.obj: start.S
+-	$(CCAS) $(start_exec_CCASFLAGS) $(CCASFLAGS) -c -o start_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(start_exec_CCASFLAGS) $(CCASFLAGS) -MT start_exec-start.obj -MD -MP -MF $(DEPDIR)/start_exec-start.Tpo -c -o start_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/start_exec-start.Tpo $(DEPDIR)/start_exec-start.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='start.S' object='start_exec-start.obj' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(start_exec_CCASFLAGS) $(CCASFLAGS) -c -o start_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
+ 
+ start_eltorito_exec-start_eltorito.o: start_eltorito.S
+-	$(CCAS) $(start_eltorito_exec_CCASFLAGS) $(CCASFLAGS) -c -o start_eltorito_exec-start_eltorito.o `test -f 'start_eltorito.S' || echo '$(srcdir)/'`start_eltorito.S
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(start_eltorito_exec_CCASFLAGS) $(CCASFLAGS) -MT start_eltorito_exec-start_eltorito.o -MD -MP -MF $(DEPDIR)/start_eltorito_exec-start_eltorito.Tpo -c -o start_eltorito_exec-start_eltorito.o `test -f 'start_eltorito.S' || echo '$(srcdir)/'`start_eltorito.S
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/start_eltorito_exec-start_eltorito.Tpo $(DEPDIR)/start_eltorito_exec-start_eltorito.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='start_eltorito.S' object='start_eltorito_exec-start_eltorito.o' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(start_eltorito_exec_CCASFLAGS) $(CCASFLAGS) -c -o start_eltorito_exec-start_eltorito.o `test -f 'start_eltorito.S' || echo '$(srcdir)/'`start_eltorito.S
+ 
+ start_eltorito_exec-start_eltorito.obj: start_eltorito.S
+-	$(CCAS) $(start_eltorito_exec_CCASFLAGS) $(CCASFLAGS) -c -o start_eltorito_exec-start_eltorito.obj `if test -f 'start_eltorito.S'; then $(CYGPATH_W) 'start_eltorito.S'; else $(CYGPATH_W) '$(srcdir)/start_eltorito.S'; fi`
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(start_eltorito_exec_CCASFLAGS) $(CCASFLAGS) -MT start_eltorito_exec-start_eltorito.obj -MD -MP -MF $(DEPDIR)/start_eltorito_exec-start_eltorito.Tpo -c -o start_eltorito_exec-start_eltorito.obj `if test -f 'start_eltorito.S'; then $(CYGPATH_W) 'start_eltorito.S'; else $(CYGPATH_W) '$(srcdir)/start_eltorito.S'; fi`
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/start_eltorito_exec-start_eltorito.Tpo $(DEPDIR)/start_eltorito_exec-start_eltorito.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='start_eltorito.S' object='start_eltorito_exec-start_eltorito.obj' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(start_eltorito_exec_CCASFLAGS) $(CCASFLAGS) -c -o start_eltorito_exec-start_eltorito.obj `if test -f 'start_eltorito.S'; then $(CYGPATH_W) 'start_eltorito.S'; else $(CYGPATH_W) '$(srcdir)/start_eltorito.S'; fi`
+ 
+ ufs2_stage1_5_exec-start.o: start.S
+-	$(CCAS) $(ufs2_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ufs2_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT ufs2_stage1_5_exec-start.o -MD -MP -MF $(DEPDIR)/ufs2_stage1_5_exec-start.Tpo -c -o ufs2_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/ufs2_stage1_5_exec-start.Tpo $(DEPDIR)/ufs2_stage1_5_exec-start.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='start.S' object='ufs2_stage1_5_exec-start.o' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ufs2_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
+ 
+ ufs2_stage1_5_exec-start.obj: start.S
+-	$(CCAS) $(ufs2_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ufs2_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT ufs2_stage1_5_exec-start.obj -MD -MP -MF $(DEPDIR)/ufs2_stage1_5_exec-start.Tpo -c -o ufs2_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/ufs2_stage1_5_exec-start.Tpo $(DEPDIR)/ufs2_stage1_5_exec-start.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='start.S' object='ufs2_stage1_5_exec-start.obj' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ufs2_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
+ 
+ ufs2_stage1_5_exec-asm.o: asm.S
+-	$(CCAS) $(ufs2_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ufs2_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT ufs2_stage1_5_exec-asm.o -MD -MP -MF $(DEPDIR)/ufs2_stage1_5_exec-asm.Tpo -c -o ufs2_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/ufs2_stage1_5_exec-asm.Tpo $(DEPDIR)/ufs2_stage1_5_exec-asm.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='asm.S' object='ufs2_stage1_5_exec-asm.o' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ufs2_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
+ 
+ ufs2_stage1_5_exec-asm.obj: asm.S
+-	$(CCAS) $(ufs2_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ufs2_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT ufs2_stage1_5_exec-asm.obj -MD -MP -MF $(DEPDIR)/ufs2_stage1_5_exec-asm.Tpo -c -o ufs2_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/ufs2_stage1_5_exec-asm.Tpo $(DEPDIR)/ufs2_stage1_5_exec-asm.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='asm.S' object='ufs2_stage1_5_exec-asm.obj' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ufs2_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
+ 
+ vstafs_stage1_5_exec-start.o: start.S
+-	$(CCAS) $(vstafs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o vstafs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT vstafs_stage1_5_exec-start.o -MD -MP -MF $(DEPDIR)/vstafs_stage1_5_exec-start.Tpo -c -o vstafs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/vstafs_stage1_5_exec-start.Tpo $(DEPDIR)/vstafs_stage1_5_exec-start.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='start.S' object='vstafs_stage1_5_exec-start.o' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o vstafs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
+ 
+ vstafs_stage1_5_exec-start.obj: start.S
+-	$(CCAS) $(vstafs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o vstafs_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT vstafs_stage1_5_exec-start.obj -MD -MP -MF $(DEPDIR)/vstafs_stage1_5_exec-start.Tpo -c -o vstafs_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/vstafs_stage1_5_exec-start.Tpo $(DEPDIR)/vstafs_stage1_5_exec-start.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='start.S' object='vstafs_stage1_5_exec-start.obj' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o vstafs_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
+ 
+ vstafs_stage1_5_exec-asm.o: asm.S
+-	$(CCAS) $(vstafs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o vstafs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT vstafs_stage1_5_exec-asm.o -MD -MP -MF $(DEPDIR)/vstafs_stage1_5_exec-asm.Tpo -c -o vstafs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/vstafs_stage1_5_exec-asm.Tpo $(DEPDIR)/vstafs_stage1_5_exec-asm.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='asm.S' object='vstafs_stage1_5_exec-asm.o' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o vstafs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
+ 
+ vstafs_stage1_5_exec-asm.obj: asm.S
+-	$(CCAS) $(vstafs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o vstafs_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT vstafs_stage1_5_exec-asm.obj -MD -MP -MF $(DEPDIR)/vstafs_stage1_5_exec-asm.Tpo -c -o vstafs_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/vstafs_stage1_5_exec-asm.Tpo $(DEPDIR)/vstafs_stage1_5_exec-asm.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='asm.S' object='vstafs_stage1_5_exec-asm.obj' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o vstafs_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
+ 
+ xfs_stage1_5_exec-start.o: start.S
+-	$(CCAS) $(xfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o xfs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT xfs_stage1_5_exec-start.o -MD -MP -MF $(DEPDIR)/xfs_stage1_5_exec-start.Tpo -c -o xfs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/xfs_stage1_5_exec-start.Tpo $(DEPDIR)/xfs_stage1_5_exec-start.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='start.S' object='xfs_stage1_5_exec-start.o' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o xfs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
+ 
+ xfs_stage1_5_exec-start.obj: start.S
+-	$(CCAS) $(xfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o xfs_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT xfs_stage1_5_exec-start.obj -MD -MP -MF $(DEPDIR)/xfs_stage1_5_exec-start.Tpo -c -o xfs_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/xfs_stage1_5_exec-start.Tpo $(DEPDIR)/xfs_stage1_5_exec-start.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='start.S' object='xfs_stage1_5_exec-start.obj' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o xfs_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
+ 
+ xfs_stage1_5_exec-asm.o: asm.S
+-	$(CCAS) $(xfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o xfs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT xfs_stage1_5_exec-asm.o -MD -MP -MF $(DEPDIR)/xfs_stage1_5_exec-asm.Tpo -c -o xfs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/xfs_stage1_5_exec-asm.Tpo $(DEPDIR)/xfs_stage1_5_exec-asm.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='asm.S' object='xfs_stage1_5_exec-asm.o' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o xfs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
+ 
+ xfs_stage1_5_exec-asm.obj: asm.S
+-	$(CCAS) $(xfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o xfs_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
++ at am__fastdepCCAS_TRUE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -MT xfs_stage1_5_exec-asm.obj -MD -MP -MF $(DEPDIR)/xfs_stage1_5_exec-asm.Tpo -c -o xfs_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
++ at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/xfs_stage1_5_exec-asm.Tpo $(DEPDIR)/xfs_stage1_5_exec-asm.Po
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='asm.S' object='xfs_stage1_5_exec-asm.obj' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCCAS_FALSE@	$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o xfs_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
+ 
+ .c.o:
+- at am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(COMPILE) -c $<
+ 
+ .c.obj:
+- at am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ 
+ libgrub_a-boot.o: boot.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-boot.o -MD -MP -MF "$(DEPDIR)/libgrub_a-boot.Tpo" -c -o libgrub_a-boot.o `test -f 'boot.c' || echo '$(srcdir)/'`boot.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-boot.Tpo" "$(DEPDIR)/libgrub_a-boot.Po"; else rm -f "$(DEPDIR)/libgrub_a-boot.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-boot.o -MD -MP -MF $(DEPDIR)/libgrub_a-boot.Tpo -c -o libgrub_a-boot.o `test -f 'boot.c' || echo '$(srcdir)/'`boot.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-boot.Tpo $(DEPDIR)/libgrub_a-boot.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='boot.c' object='libgrub_a-boot.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-boot.o `test -f 'boot.c' || echo '$(srcdir)/'`boot.c
+ 
+ libgrub_a-boot.obj: boot.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-boot.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-boot.Tpo" -c -o libgrub_a-boot.obj `if test -f 'boot.c'; then $(CYGPATH_W) 'boot.c'; else $(CYGPATH_W) '$(srcdir)/boot.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-boot.Tpo" "$(DEPDIR)/libgrub_a-boot.Po"; else rm -f "$(DEPDIR)/libgrub_a-boot.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-boot.obj -MD -MP -MF $(DEPDIR)/libgrub_a-boot.Tpo -c -o libgrub_a-boot.obj `if test -f 'boot.c'; then $(CYGPATH_W) 'boot.c'; else $(CYGPATH_W) '$(srcdir)/boot.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-boot.Tpo $(DEPDIR)/libgrub_a-boot.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='boot.c' object='libgrub_a-boot.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-boot.obj `if test -f 'boot.c'; then $(CYGPATH_W) 'boot.c'; else $(CYGPATH_W) '$(srcdir)/boot.c'; fi`
+ 
+ libgrub_a-builtins.o: builtins.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-builtins.o -MD -MP -MF "$(DEPDIR)/libgrub_a-builtins.Tpo" -c -o libgrub_a-builtins.o `test -f 'builtins.c' || echo '$(srcdir)/'`builtins.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-builtins.Tpo" "$(DEPDIR)/libgrub_a-builtins.Po"; else rm -f "$(DEPDIR)/libgrub_a-builtins.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-builtins.o -MD -MP -MF $(DEPDIR)/libgrub_a-builtins.Tpo -c -o libgrub_a-builtins.o `test -f 'builtins.c' || echo '$(srcdir)/'`builtins.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-builtins.Tpo $(DEPDIR)/libgrub_a-builtins.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='builtins.c' object='libgrub_a-builtins.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-builtins.o `test -f 'builtins.c' || echo '$(srcdir)/'`builtins.c
+ 
+ libgrub_a-builtins.obj: builtins.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-builtins.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-builtins.Tpo" -c -o libgrub_a-builtins.obj `if test -f 'builtins.c'; then $(CYGPATH_W) 'builtins.c'; else $(CYGPATH_W) '$(srcdir)/builtins.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-builtins.Tpo" "$(DEPDIR)/libgrub_a-builtins.Po"; else rm -f "$(DEPDIR)/libgrub_a-builtins.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-builtins.obj -MD -MP -MF $(DEPDIR)/libgrub_a-builtins.Tpo -c -o libgrub_a-builtins.obj `if test -f 'builtins.c'; then $(CYGPATH_W) 'builtins.c'; else $(CYGPATH_W) '$(srcdir)/builtins.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-builtins.Tpo $(DEPDIR)/libgrub_a-builtins.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='builtins.c' object='libgrub_a-builtins.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-builtins.obj `if test -f 'builtins.c'; then $(CYGPATH_W) 'builtins.c'; else $(CYGPATH_W) '$(srcdir)/builtins.c'; fi`
+ 
+ libgrub_a-char_io.o: char_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-char_io.o -MD -MP -MF "$(DEPDIR)/libgrub_a-char_io.Tpo" -c -o libgrub_a-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-char_io.Tpo" "$(DEPDIR)/libgrub_a-char_io.Po"; else rm -f "$(DEPDIR)/libgrub_a-char_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-char_io.o -MD -MP -MF $(DEPDIR)/libgrub_a-char_io.Tpo -c -o libgrub_a-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-char_io.Tpo $(DEPDIR)/libgrub_a-char_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='char_io.c' object='libgrub_a-char_io.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
+ 
+ libgrub_a-char_io.obj: char_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-char_io.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-char_io.Tpo" -c -o libgrub_a-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-char_io.Tpo" "$(DEPDIR)/libgrub_a-char_io.Po"; else rm -f "$(DEPDIR)/libgrub_a-char_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-char_io.obj -MD -MP -MF $(DEPDIR)/libgrub_a-char_io.Tpo -c -o libgrub_a-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-char_io.Tpo $(DEPDIR)/libgrub_a-char_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='char_io.c' object='libgrub_a-char_io.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
+ 
+ libgrub_a-cmdline.o: cmdline.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-cmdline.o -MD -MP -MF "$(DEPDIR)/libgrub_a-cmdline.Tpo" -c -o libgrub_a-cmdline.o `test -f 'cmdline.c' || echo '$(srcdir)/'`cmdline.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-cmdline.Tpo" "$(DEPDIR)/libgrub_a-cmdline.Po"; else rm -f "$(DEPDIR)/libgrub_a-cmdline.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-cmdline.o -MD -MP -MF $(DEPDIR)/libgrub_a-cmdline.Tpo -c -o libgrub_a-cmdline.o `test -f 'cmdline.c' || echo '$(srcdir)/'`cmdline.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-cmdline.Tpo $(DEPDIR)/libgrub_a-cmdline.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='cmdline.c' object='libgrub_a-cmdline.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-cmdline.o `test -f 'cmdline.c' || echo '$(srcdir)/'`cmdline.c
+ 
+ libgrub_a-cmdline.obj: cmdline.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-cmdline.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-cmdline.Tpo" -c -o libgrub_a-cmdline.obj `if test -f 'cmdline.c'; then $(CYGPATH_W) 'cmdline.c'; else $(CYGPATH_W) '$(srcdir)/cmdline.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-cmdline.Tpo" "$(DEPDIR)/libgrub_a-cmdline.Po"; else rm -f "$(DEPDIR)/libgrub_a-cmdline.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-cmdline.obj -MD -MP -MF $(DEPDIR)/libgrub_a-cmdline.Tpo -c -o libgrub_a-cmdline.obj `if test -f 'cmdline.c'; then $(CYGPATH_W) 'cmdline.c'; else $(CYGPATH_W) '$(srcdir)/cmdline.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-cmdline.Tpo $(DEPDIR)/libgrub_a-cmdline.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='cmdline.c' object='libgrub_a-cmdline.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-cmdline.obj `if test -f 'cmdline.c'; then $(CYGPATH_W) 'cmdline.c'; else $(CYGPATH_W) '$(srcdir)/cmdline.c'; fi`
+ 
+ libgrub_a-common.o: common.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-common.o -MD -MP -MF "$(DEPDIR)/libgrub_a-common.Tpo" -c -o libgrub_a-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-common.Tpo" "$(DEPDIR)/libgrub_a-common.Po"; else rm -f "$(DEPDIR)/libgrub_a-common.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-common.o -MD -MP -MF $(DEPDIR)/libgrub_a-common.Tpo -c -o libgrub_a-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-common.Tpo $(DEPDIR)/libgrub_a-common.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='common.c' object='libgrub_a-common.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
+ 
+ libgrub_a-common.obj: common.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-common.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-common.Tpo" -c -o libgrub_a-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-common.Tpo" "$(DEPDIR)/libgrub_a-common.Po"; else rm -f "$(DEPDIR)/libgrub_a-common.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-common.obj -MD -MP -MF $(DEPDIR)/libgrub_a-common.Tpo -c -o libgrub_a-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-common.Tpo $(DEPDIR)/libgrub_a-common.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='common.c' object='libgrub_a-common.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
+ 
+ libgrub_a-disk_io.o: disk_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-disk_io.o -MD -MP -MF "$(DEPDIR)/libgrub_a-disk_io.Tpo" -c -o libgrub_a-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-disk_io.Tpo" "$(DEPDIR)/libgrub_a-disk_io.Po"; else rm -f "$(DEPDIR)/libgrub_a-disk_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-disk_io.o -MD -MP -MF $(DEPDIR)/libgrub_a-disk_io.Tpo -c -o libgrub_a-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-disk_io.Tpo $(DEPDIR)/libgrub_a-disk_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='disk_io.c' object='libgrub_a-disk_io.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
+ 
+ libgrub_a-disk_io.obj: disk_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-disk_io.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-disk_io.Tpo" -c -o libgrub_a-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-disk_io.Tpo" "$(DEPDIR)/libgrub_a-disk_io.Po"; else rm -f "$(DEPDIR)/libgrub_a-disk_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-disk_io.obj -MD -MP -MF $(DEPDIR)/libgrub_a-disk_io.Tpo -c -o libgrub_a-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-disk_io.Tpo $(DEPDIR)/libgrub_a-disk_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='disk_io.c' object='libgrub_a-disk_io.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
+ 
+ libgrub_a-fsys_ext2fs.o: fsys_ext2fs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_ext2fs.o -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_ext2fs.Tpo" -c -o libgrub_a-fsys_ext2fs.o `test -f 'fsys_ext2fs.c' || echo '$(srcdir)/'`fsys_ext2fs.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-fsys_ext2fs.Tpo" "$(DEPDIR)/libgrub_a-fsys_ext2fs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_ext2fs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_ext2fs.o -MD -MP -MF $(DEPDIR)/libgrub_a-fsys_ext2fs.Tpo -c -o libgrub_a-fsys_ext2fs.o `test -f 'fsys_ext2fs.c' || echo '$(srcdir)/'`fsys_ext2fs.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-fsys_ext2fs.Tpo $(DEPDIR)/libgrub_a-fsys_ext2fs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_ext2fs.c' object='libgrub_a-fsys_ext2fs.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_ext2fs.o `test -f 'fsys_ext2fs.c' || echo '$(srcdir)/'`fsys_ext2fs.c
+ 
+ libgrub_a-fsys_ext2fs.obj: fsys_ext2fs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_ext2fs.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_ext2fs.Tpo" -c -o libgrub_a-fsys_ext2fs.obj `if test -f 'fsys_ext2fs.c'; then $(CYGPATH_W) 'fsys_ext2fs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ext2fs.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-fsys_ext2fs.Tpo" "$(DEPDIR)/libgrub_a-fsys_ext2fs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_ext2fs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_ext2fs.obj -MD -MP -MF $(DEPDIR)/libgrub_a-fsys_ext2fs.Tpo -c -o libgrub_a-fsys_ext2fs.obj `if test -f 'fsys_ext2fs.c'; then $(CYGPATH_W) 'fsys_ext2fs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ext2fs.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-fsys_ext2fs.Tpo $(DEPDIR)/libgrub_a-fsys_ext2fs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_ext2fs.c' object='libgrub_a-fsys_ext2fs.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_ext2fs.obj `if test -f 'fsys_ext2fs.c'; then $(CYGPATH_W) 'fsys_ext2fs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ext2fs.c'; fi`
+ 
+ libgrub_a-fsys_fat.o: fsys_fat.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_fat.o -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_fat.Tpo" -c -o libgrub_a-fsys_fat.o `test -f 'fsys_fat.c' || echo '$(srcdir)/'`fsys_fat.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-fsys_fat.Tpo" "$(DEPDIR)/libgrub_a-fsys_fat.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_fat.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_fat.o -MD -MP -MF $(DEPDIR)/libgrub_a-fsys_fat.Tpo -c -o libgrub_a-fsys_fat.o `test -f 'fsys_fat.c' || echo '$(srcdir)/'`fsys_fat.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-fsys_fat.Tpo $(DEPDIR)/libgrub_a-fsys_fat.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_fat.c' object='libgrub_a-fsys_fat.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_fat.o `test -f 'fsys_fat.c' || echo '$(srcdir)/'`fsys_fat.c
+ 
+ libgrub_a-fsys_fat.obj: fsys_fat.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_fat.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_fat.Tpo" -c -o libgrub_a-fsys_fat.obj `if test -f 'fsys_fat.c'; then $(CYGPATH_W) 'fsys_fat.c'; else $(CYGPATH_W) '$(srcdir)/fsys_fat.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-fsys_fat.Tpo" "$(DEPDIR)/libgrub_a-fsys_fat.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_fat.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_fat.obj -MD -MP -MF $(DEPDIR)/libgrub_a-fsys_fat.Tpo -c -o libgrub_a-fsys_fat.obj `if test -f 'fsys_fat.c'; then $(CYGPATH_W) 'fsys_fat.c'; else $(CYGPATH_W) '$(srcdir)/fsys_fat.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-fsys_fat.Tpo $(DEPDIR)/libgrub_a-fsys_fat.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_fat.c' object='libgrub_a-fsys_fat.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_fat.obj `if test -f 'fsys_fat.c'; then $(CYGPATH_W) 'fsys_fat.c'; else $(CYGPATH_W) '$(srcdir)/fsys_fat.c'; fi`
+ 
+ libgrub_a-fsys_ffs.o: fsys_ffs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_ffs.o -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_ffs.Tpo" -c -o libgrub_a-fsys_ffs.o `test -f 'fsys_ffs.c' || echo '$(srcdir)/'`fsys_ffs.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-fsys_ffs.Tpo" "$(DEPDIR)/libgrub_a-fsys_ffs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_ffs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_ffs.o -MD -MP -MF $(DEPDIR)/libgrub_a-fsys_ffs.Tpo -c -o libgrub_a-fsys_ffs.o `test -f 'fsys_ffs.c' || echo '$(srcdir)/'`fsys_ffs.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-fsys_ffs.Tpo $(DEPDIR)/libgrub_a-fsys_ffs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_ffs.c' object='libgrub_a-fsys_ffs.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_ffs.o `test -f 'fsys_ffs.c' || echo '$(srcdir)/'`fsys_ffs.c
+ 
+ libgrub_a-fsys_ffs.obj: fsys_ffs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_ffs.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_ffs.Tpo" -c -o libgrub_a-fsys_ffs.obj `if test -f 'fsys_ffs.c'; then $(CYGPATH_W) 'fsys_ffs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ffs.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-fsys_ffs.Tpo" "$(DEPDIR)/libgrub_a-fsys_ffs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_ffs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_ffs.obj -MD -MP -MF $(DEPDIR)/libgrub_a-fsys_ffs.Tpo -c -o libgrub_a-fsys_ffs.obj `if test -f 'fsys_ffs.c'; then $(CYGPATH_W) 'fsys_ffs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ffs.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-fsys_ffs.Tpo $(DEPDIR)/libgrub_a-fsys_ffs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_ffs.c' object='libgrub_a-fsys_ffs.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_ffs.obj `if test -f 'fsys_ffs.c'; then $(CYGPATH_W) 'fsys_ffs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ffs.c'; fi`
+ 
+ libgrub_a-fsys_iso9660.o: fsys_iso9660.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_iso9660.o -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_iso9660.Tpo" -c -o libgrub_a-fsys_iso9660.o `test -f 'fsys_iso9660.c' || echo '$(srcdir)/'`fsys_iso9660.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-fsys_iso9660.Tpo" "$(DEPDIR)/libgrub_a-fsys_iso9660.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_iso9660.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_iso9660.o -MD -MP -MF $(DEPDIR)/libgrub_a-fsys_iso9660.Tpo -c -o libgrub_a-fsys_iso9660.o `test -f 'fsys_iso9660.c' || echo '$(srcdir)/'`fsys_iso9660.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-fsys_iso9660.Tpo $(DEPDIR)/libgrub_a-fsys_iso9660.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_iso9660.c' object='libgrub_a-fsys_iso9660.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_iso9660.o `test -f 'fsys_iso9660.c' || echo '$(srcdir)/'`fsys_iso9660.c
+ 
+ libgrub_a-fsys_iso9660.obj: fsys_iso9660.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_iso9660.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_iso9660.Tpo" -c -o libgrub_a-fsys_iso9660.obj `if test -f 'fsys_iso9660.c'; then $(CYGPATH_W) 'fsys_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/fsys_iso9660.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-fsys_iso9660.Tpo" "$(DEPDIR)/libgrub_a-fsys_iso9660.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_iso9660.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_iso9660.obj -MD -MP -MF $(DEPDIR)/libgrub_a-fsys_iso9660.Tpo -c -o libgrub_a-fsys_iso9660.obj `if test -f 'fsys_iso9660.c'; then $(CYGPATH_W) 'fsys_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/fsys_iso9660.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-fsys_iso9660.Tpo $(DEPDIR)/libgrub_a-fsys_iso9660.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_iso9660.c' object='libgrub_a-fsys_iso9660.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_iso9660.obj `if test -f 'fsys_iso9660.c'; then $(CYGPATH_W) 'fsys_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/fsys_iso9660.c'; fi`
+ 
+ libgrub_a-fsys_jfs.o: fsys_jfs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_jfs.o -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_jfs.Tpo" -c -o libgrub_a-fsys_jfs.o `test -f 'fsys_jfs.c' || echo '$(srcdir)/'`fsys_jfs.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-fsys_jfs.Tpo" "$(DEPDIR)/libgrub_a-fsys_jfs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_jfs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_jfs.o -MD -MP -MF $(DEPDIR)/libgrub_a-fsys_jfs.Tpo -c -o libgrub_a-fsys_jfs.o `test -f 'fsys_jfs.c' || echo '$(srcdir)/'`fsys_jfs.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-fsys_jfs.Tpo $(DEPDIR)/libgrub_a-fsys_jfs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_jfs.c' object='libgrub_a-fsys_jfs.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_jfs.o `test -f 'fsys_jfs.c' || echo '$(srcdir)/'`fsys_jfs.c
+ 
+ libgrub_a-fsys_jfs.obj: fsys_jfs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_jfs.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_jfs.Tpo" -c -o libgrub_a-fsys_jfs.obj `if test -f 'fsys_jfs.c'; then $(CYGPATH_W) 'fsys_jfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_jfs.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-fsys_jfs.Tpo" "$(DEPDIR)/libgrub_a-fsys_jfs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_jfs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_jfs.obj -MD -MP -MF $(DEPDIR)/libgrub_a-fsys_jfs.Tpo -c -o libgrub_a-fsys_jfs.obj `if test -f 'fsys_jfs.c'; then $(CYGPATH_W) 'fsys_jfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_jfs.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-fsys_jfs.Tpo $(DEPDIR)/libgrub_a-fsys_jfs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_jfs.c' object='libgrub_a-fsys_jfs.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_jfs.obj `if test -f 'fsys_jfs.c'; then $(CYGPATH_W) 'fsys_jfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_jfs.c'; fi`
+ 
+ libgrub_a-fsys_minix.o: fsys_minix.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_minix.o -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_minix.Tpo" -c -o libgrub_a-fsys_minix.o `test -f 'fsys_minix.c' || echo '$(srcdir)/'`fsys_minix.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-fsys_minix.Tpo" "$(DEPDIR)/libgrub_a-fsys_minix.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_minix.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_minix.o -MD -MP -MF $(DEPDIR)/libgrub_a-fsys_minix.Tpo -c -o libgrub_a-fsys_minix.o `test -f 'fsys_minix.c' || echo '$(srcdir)/'`fsys_minix.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-fsys_minix.Tpo $(DEPDIR)/libgrub_a-fsys_minix.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_minix.c' object='libgrub_a-fsys_minix.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_minix.o `test -f 'fsys_minix.c' || echo '$(srcdir)/'`fsys_minix.c
+ 
+ libgrub_a-fsys_minix.obj: fsys_minix.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_minix.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_minix.Tpo" -c -o libgrub_a-fsys_minix.obj `if test -f 'fsys_minix.c'; then $(CYGPATH_W) 'fsys_minix.c'; else $(CYGPATH_W) '$(srcdir)/fsys_minix.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-fsys_minix.Tpo" "$(DEPDIR)/libgrub_a-fsys_minix.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_minix.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_minix.obj -MD -MP -MF $(DEPDIR)/libgrub_a-fsys_minix.Tpo -c -o libgrub_a-fsys_minix.obj `if test -f 'fsys_minix.c'; then $(CYGPATH_W) 'fsys_minix.c'; else $(CYGPATH_W) '$(srcdir)/fsys_minix.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-fsys_minix.Tpo $(DEPDIR)/libgrub_a-fsys_minix.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_minix.c' object='libgrub_a-fsys_minix.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_minix.obj `if test -f 'fsys_minix.c'; then $(CYGPATH_W) 'fsys_minix.c'; else $(CYGPATH_W) '$(srcdir)/fsys_minix.c'; fi`
+ 
+ libgrub_a-fsys_reiserfs.o: fsys_reiserfs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_reiserfs.o -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_reiserfs.Tpo" -c -o libgrub_a-fsys_reiserfs.o `test -f 'fsys_reiserfs.c' || echo '$(srcdir)/'`fsys_reiserfs.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-fsys_reiserfs.Tpo" "$(DEPDIR)/libgrub_a-fsys_reiserfs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_reiserfs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_reiserfs.o -MD -MP -MF $(DEPDIR)/libgrub_a-fsys_reiserfs.Tpo -c -o libgrub_a-fsys_reiserfs.o `test -f 'fsys_reiserfs.c' || echo '$(srcdir)/'`fsys_reiserfs.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-fsys_reiserfs.Tpo $(DEPDIR)/libgrub_a-fsys_reiserfs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_reiserfs.c' object='libgrub_a-fsys_reiserfs.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_reiserfs.o `test -f 'fsys_reiserfs.c' || echo '$(srcdir)/'`fsys_reiserfs.c
+ 
+ libgrub_a-fsys_reiserfs.obj: fsys_reiserfs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_reiserfs.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_reiserfs.Tpo" -c -o libgrub_a-fsys_reiserfs.obj `if test -f 'fsys_reiserfs.c'; then $(CYGPATH_W) 'fsys_reiserfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_reiserfs.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-fsys_reiserfs.Tpo" "$(DEPDIR)/libgrub_a-fsys_reiserfs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_reiserfs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_reiserfs.obj -MD -MP -MF $(DEPDIR)/libgrub_a-fsys_reiserfs.Tpo -c -o libgrub_a-fsys_reiserfs.obj `if test -f 'fsys_reiserfs.c'; then $(CYGPATH_W) 'fsys_reiserfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_reiserfs.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-fsys_reiserfs.Tpo $(DEPDIR)/libgrub_a-fsys_reiserfs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_reiserfs.c' object='libgrub_a-fsys_reiserfs.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_reiserfs.obj `if test -f 'fsys_reiserfs.c'; then $(CYGPATH_W) 'fsys_reiserfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_reiserfs.c'; fi`
+ 
+ libgrub_a-fsys_ufs2.o: fsys_ufs2.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_ufs2.o -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_ufs2.Tpo" -c -o libgrub_a-fsys_ufs2.o `test -f 'fsys_ufs2.c' || echo '$(srcdir)/'`fsys_ufs2.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-fsys_ufs2.Tpo" "$(DEPDIR)/libgrub_a-fsys_ufs2.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_ufs2.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_ufs2.o -MD -MP -MF $(DEPDIR)/libgrub_a-fsys_ufs2.Tpo -c -o libgrub_a-fsys_ufs2.o `test -f 'fsys_ufs2.c' || echo '$(srcdir)/'`fsys_ufs2.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-fsys_ufs2.Tpo $(DEPDIR)/libgrub_a-fsys_ufs2.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_ufs2.c' object='libgrub_a-fsys_ufs2.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_ufs2.o `test -f 'fsys_ufs2.c' || echo '$(srcdir)/'`fsys_ufs2.c
+ 
+ libgrub_a-fsys_ufs2.obj: fsys_ufs2.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_ufs2.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_ufs2.Tpo" -c -o libgrub_a-fsys_ufs2.obj `if test -f 'fsys_ufs2.c'; then $(CYGPATH_W) 'fsys_ufs2.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ufs2.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-fsys_ufs2.Tpo" "$(DEPDIR)/libgrub_a-fsys_ufs2.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_ufs2.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_ufs2.obj -MD -MP -MF $(DEPDIR)/libgrub_a-fsys_ufs2.Tpo -c -o libgrub_a-fsys_ufs2.obj `if test -f 'fsys_ufs2.c'; then $(CYGPATH_W) 'fsys_ufs2.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ufs2.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-fsys_ufs2.Tpo $(DEPDIR)/libgrub_a-fsys_ufs2.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_ufs2.c' object='libgrub_a-fsys_ufs2.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_ufs2.obj `if test -f 'fsys_ufs2.c'; then $(CYGPATH_W) 'fsys_ufs2.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ufs2.c'; fi`
+ 
+ libgrub_a-fsys_vstafs.o: fsys_vstafs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_vstafs.o -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_vstafs.Tpo" -c -o libgrub_a-fsys_vstafs.o `test -f 'fsys_vstafs.c' || echo '$(srcdir)/'`fsys_vstafs.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-fsys_vstafs.Tpo" "$(DEPDIR)/libgrub_a-fsys_vstafs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_vstafs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_vstafs.o -MD -MP -MF $(DEPDIR)/libgrub_a-fsys_vstafs.Tpo -c -o libgrub_a-fsys_vstafs.o `test -f 'fsys_vstafs.c' || echo '$(srcdir)/'`fsys_vstafs.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-fsys_vstafs.Tpo $(DEPDIR)/libgrub_a-fsys_vstafs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_vstafs.c' object='libgrub_a-fsys_vstafs.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_vstafs.o `test -f 'fsys_vstafs.c' || echo '$(srcdir)/'`fsys_vstafs.c
+ 
+ libgrub_a-fsys_vstafs.obj: fsys_vstafs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_vstafs.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_vstafs.Tpo" -c -o libgrub_a-fsys_vstafs.obj `if test -f 'fsys_vstafs.c'; then $(CYGPATH_W) 'fsys_vstafs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_vstafs.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-fsys_vstafs.Tpo" "$(DEPDIR)/libgrub_a-fsys_vstafs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_vstafs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_vstafs.obj -MD -MP -MF $(DEPDIR)/libgrub_a-fsys_vstafs.Tpo -c -o libgrub_a-fsys_vstafs.obj `if test -f 'fsys_vstafs.c'; then $(CYGPATH_W) 'fsys_vstafs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_vstafs.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-fsys_vstafs.Tpo $(DEPDIR)/libgrub_a-fsys_vstafs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_vstafs.c' object='libgrub_a-fsys_vstafs.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_vstafs.obj `if test -f 'fsys_vstafs.c'; then $(CYGPATH_W) 'fsys_vstafs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_vstafs.c'; fi`
+ 
+ libgrub_a-fsys_xfs.o: fsys_xfs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_xfs.o -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_xfs.Tpo" -c -o libgrub_a-fsys_xfs.o `test -f 'fsys_xfs.c' || echo '$(srcdir)/'`fsys_xfs.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-fsys_xfs.Tpo" "$(DEPDIR)/libgrub_a-fsys_xfs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_xfs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_xfs.o -MD -MP -MF $(DEPDIR)/libgrub_a-fsys_xfs.Tpo -c -o libgrub_a-fsys_xfs.o `test -f 'fsys_xfs.c' || echo '$(srcdir)/'`fsys_xfs.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-fsys_xfs.Tpo $(DEPDIR)/libgrub_a-fsys_xfs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_xfs.c' object='libgrub_a-fsys_xfs.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_xfs.o `test -f 'fsys_xfs.c' || echo '$(srcdir)/'`fsys_xfs.c
+ 
+ libgrub_a-fsys_xfs.obj: fsys_xfs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_xfs.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_xfs.Tpo" -c -o libgrub_a-fsys_xfs.obj `if test -f 'fsys_xfs.c'; then $(CYGPATH_W) 'fsys_xfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_xfs.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-fsys_xfs.Tpo" "$(DEPDIR)/libgrub_a-fsys_xfs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_xfs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_xfs.obj -MD -MP -MF $(DEPDIR)/libgrub_a-fsys_xfs.Tpo -c -o libgrub_a-fsys_xfs.obj `if test -f 'fsys_xfs.c'; then $(CYGPATH_W) 'fsys_xfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_xfs.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-fsys_xfs.Tpo $(DEPDIR)/libgrub_a-fsys_xfs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_xfs.c' object='libgrub_a-fsys_xfs.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_xfs.obj `if test -f 'fsys_xfs.c'; then $(CYGPATH_W) 'fsys_xfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_xfs.c'; fi`
+ 
+ libgrub_a-gunzip.o: gunzip.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-gunzip.o -MD -MP -MF "$(DEPDIR)/libgrub_a-gunzip.Tpo" -c -o libgrub_a-gunzip.o `test -f 'gunzip.c' || echo '$(srcdir)/'`gunzip.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-gunzip.Tpo" "$(DEPDIR)/libgrub_a-gunzip.Po"; else rm -f "$(DEPDIR)/libgrub_a-gunzip.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-gunzip.o -MD -MP -MF $(DEPDIR)/libgrub_a-gunzip.Tpo -c -o libgrub_a-gunzip.o `test -f 'gunzip.c' || echo '$(srcdir)/'`gunzip.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-gunzip.Tpo $(DEPDIR)/libgrub_a-gunzip.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gunzip.c' object='libgrub_a-gunzip.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-gunzip.o `test -f 'gunzip.c' || echo '$(srcdir)/'`gunzip.c
+ 
+ libgrub_a-gunzip.obj: gunzip.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-gunzip.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-gunzip.Tpo" -c -o libgrub_a-gunzip.obj `if test -f 'gunzip.c'; then $(CYGPATH_W) 'gunzip.c'; else $(CYGPATH_W) '$(srcdir)/gunzip.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-gunzip.Tpo" "$(DEPDIR)/libgrub_a-gunzip.Po"; else rm -f "$(DEPDIR)/libgrub_a-gunzip.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-gunzip.obj -MD -MP -MF $(DEPDIR)/libgrub_a-gunzip.Tpo -c -o libgrub_a-gunzip.obj `if test -f 'gunzip.c'; then $(CYGPATH_W) 'gunzip.c'; else $(CYGPATH_W) '$(srcdir)/gunzip.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-gunzip.Tpo $(DEPDIR)/libgrub_a-gunzip.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gunzip.c' object='libgrub_a-gunzip.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-gunzip.obj `if test -f 'gunzip.c'; then $(CYGPATH_W) 'gunzip.c'; else $(CYGPATH_W) '$(srcdir)/gunzip.c'; fi`
+ 
+ libgrub_a-md5.o: md5.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-md5.o -MD -MP -MF "$(DEPDIR)/libgrub_a-md5.Tpo" -c -o libgrub_a-md5.o `test -f 'md5.c' || echo '$(srcdir)/'`md5.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-md5.Tpo" "$(DEPDIR)/libgrub_a-md5.Po"; else rm -f "$(DEPDIR)/libgrub_a-md5.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-md5.o -MD -MP -MF $(DEPDIR)/libgrub_a-md5.Tpo -c -o libgrub_a-md5.o `test -f 'md5.c' || echo '$(srcdir)/'`md5.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-md5.Tpo $(DEPDIR)/libgrub_a-md5.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='md5.c' object='libgrub_a-md5.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-md5.o `test -f 'md5.c' || echo '$(srcdir)/'`md5.c
+ 
+ libgrub_a-md5.obj: md5.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-md5.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-md5.Tpo" -c -o libgrub_a-md5.obj `if test -f 'md5.c'; then $(CYGPATH_W) 'md5.c'; else $(CYGPATH_W) '$(srcdir)/md5.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-md5.Tpo" "$(DEPDIR)/libgrub_a-md5.Po"; else rm -f "$(DEPDIR)/libgrub_a-md5.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-md5.obj -MD -MP -MF $(DEPDIR)/libgrub_a-md5.Tpo -c -o libgrub_a-md5.obj `if test -f 'md5.c'; then $(CYGPATH_W) 'md5.c'; else $(CYGPATH_W) '$(srcdir)/md5.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-md5.Tpo $(DEPDIR)/libgrub_a-md5.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='md5.c' object='libgrub_a-md5.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-md5.obj `if test -f 'md5.c'; then $(CYGPATH_W) 'md5.c'; else $(CYGPATH_W) '$(srcdir)/md5.c'; fi`
+ 
+ libgrub_a-serial.o: serial.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-serial.o -MD -MP -MF "$(DEPDIR)/libgrub_a-serial.Tpo" -c -o libgrub_a-serial.o `test -f 'serial.c' || echo '$(srcdir)/'`serial.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-serial.Tpo" "$(DEPDIR)/libgrub_a-serial.Po"; else rm -f "$(DEPDIR)/libgrub_a-serial.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-serial.o -MD -MP -MF $(DEPDIR)/libgrub_a-serial.Tpo -c -o libgrub_a-serial.o `test -f 'serial.c' || echo '$(srcdir)/'`serial.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-serial.Tpo $(DEPDIR)/libgrub_a-serial.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='serial.c' object='libgrub_a-serial.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-serial.o `test -f 'serial.c' || echo '$(srcdir)/'`serial.c
+ 
+ libgrub_a-serial.obj: serial.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-serial.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-serial.Tpo" -c -o libgrub_a-serial.obj `if test -f 'serial.c'; then $(CYGPATH_W) 'serial.c'; else $(CYGPATH_W) '$(srcdir)/serial.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-serial.Tpo" "$(DEPDIR)/libgrub_a-serial.Po"; else rm -f "$(DEPDIR)/libgrub_a-serial.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-serial.obj -MD -MP -MF $(DEPDIR)/libgrub_a-serial.Tpo -c -o libgrub_a-serial.obj `if test -f 'serial.c'; then $(CYGPATH_W) 'serial.c'; else $(CYGPATH_W) '$(srcdir)/serial.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-serial.Tpo $(DEPDIR)/libgrub_a-serial.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='serial.c' object='libgrub_a-serial.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-serial.obj `if test -f 'serial.c'; then $(CYGPATH_W) 'serial.c'; else $(CYGPATH_W) '$(srcdir)/serial.c'; fi`
+ 
+ libgrub_a-stage2.o: stage2.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-stage2.o -MD -MP -MF "$(DEPDIR)/libgrub_a-stage2.Tpo" -c -o libgrub_a-stage2.o `test -f 'stage2.c' || echo '$(srcdir)/'`stage2.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-stage2.Tpo" "$(DEPDIR)/libgrub_a-stage2.Po"; else rm -f "$(DEPDIR)/libgrub_a-stage2.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-stage2.o -MD -MP -MF $(DEPDIR)/libgrub_a-stage2.Tpo -c -o libgrub_a-stage2.o `test -f 'stage2.c' || echo '$(srcdir)/'`stage2.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-stage2.Tpo $(DEPDIR)/libgrub_a-stage2.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='stage2.c' object='libgrub_a-stage2.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-stage2.o `test -f 'stage2.c' || echo '$(srcdir)/'`stage2.c
+ 
+ libgrub_a-stage2.obj: stage2.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-stage2.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-stage2.Tpo" -c -o libgrub_a-stage2.obj `if test -f 'stage2.c'; then $(CYGPATH_W) 'stage2.c'; else $(CYGPATH_W) '$(srcdir)/stage2.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-stage2.Tpo" "$(DEPDIR)/libgrub_a-stage2.Po"; else rm -f "$(DEPDIR)/libgrub_a-stage2.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-stage2.obj -MD -MP -MF $(DEPDIR)/libgrub_a-stage2.Tpo -c -o libgrub_a-stage2.obj `if test -f 'stage2.c'; then $(CYGPATH_W) 'stage2.c'; else $(CYGPATH_W) '$(srcdir)/stage2.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-stage2.Tpo $(DEPDIR)/libgrub_a-stage2.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='stage2.c' object='libgrub_a-stage2.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-stage2.obj `if test -f 'stage2.c'; then $(CYGPATH_W) 'stage2.c'; else $(CYGPATH_W) '$(srcdir)/stage2.c'; fi`
+ 
+ libgrub_a-terminfo.o: terminfo.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-terminfo.o -MD -MP -MF "$(DEPDIR)/libgrub_a-terminfo.Tpo" -c -o libgrub_a-terminfo.o `test -f 'terminfo.c' || echo '$(srcdir)/'`terminfo.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-terminfo.Tpo" "$(DEPDIR)/libgrub_a-terminfo.Po"; else rm -f "$(DEPDIR)/libgrub_a-terminfo.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-terminfo.o -MD -MP -MF $(DEPDIR)/libgrub_a-terminfo.Tpo -c -o libgrub_a-terminfo.o `test -f 'terminfo.c' || echo '$(srcdir)/'`terminfo.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-terminfo.Tpo $(DEPDIR)/libgrub_a-terminfo.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='terminfo.c' object='libgrub_a-terminfo.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-terminfo.o `test -f 'terminfo.c' || echo '$(srcdir)/'`terminfo.c
+ 
+ libgrub_a-terminfo.obj: terminfo.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-terminfo.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-terminfo.Tpo" -c -o libgrub_a-terminfo.obj `if test -f 'terminfo.c'; then $(CYGPATH_W) 'terminfo.c'; else $(CYGPATH_W) '$(srcdir)/terminfo.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-terminfo.Tpo" "$(DEPDIR)/libgrub_a-terminfo.Po"; else rm -f "$(DEPDIR)/libgrub_a-terminfo.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-terminfo.obj -MD -MP -MF $(DEPDIR)/libgrub_a-terminfo.Tpo -c -o libgrub_a-terminfo.obj `if test -f 'terminfo.c'; then $(CYGPATH_W) 'terminfo.c'; else $(CYGPATH_W) '$(srcdir)/terminfo.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-terminfo.Tpo $(DEPDIR)/libgrub_a-terminfo.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='terminfo.c' object='libgrub_a-terminfo.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-terminfo.obj `if test -f 'terminfo.c'; then $(CYGPATH_W) 'terminfo.c'; else $(CYGPATH_W) '$(srcdir)/terminfo.c'; fi`
+ 
+ libgrub_a-tparm.o: tparm.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-tparm.o -MD -MP -MF "$(DEPDIR)/libgrub_a-tparm.Tpo" -c -o libgrub_a-tparm.o `test -f 'tparm.c' || echo '$(srcdir)/'`tparm.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-tparm.Tpo" "$(DEPDIR)/libgrub_a-tparm.Po"; else rm -f "$(DEPDIR)/libgrub_a-tparm.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-tparm.o -MD -MP -MF $(DEPDIR)/libgrub_a-tparm.Tpo -c -o libgrub_a-tparm.o `test -f 'tparm.c' || echo '$(srcdir)/'`tparm.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-tparm.Tpo $(DEPDIR)/libgrub_a-tparm.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='tparm.c' object='libgrub_a-tparm.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-tparm.o `test -f 'tparm.c' || echo '$(srcdir)/'`tparm.c
+ 
+ libgrub_a-tparm.obj: tparm.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-tparm.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-tparm.Tpo" -c -o libgrub_a-tparm.obj `if test -f 'tparm.c'; then $(CYGPATH_W) 'tparm.c'; else $(CYGPATH_W) '$(srcdir)/tparm.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libgrub_a-tparm.Tpo" "$(DEPDIR)/libgrub_a-tparm.Po"; else rm -f "$(DEPDIR)/libgrub_a-tparm.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-tparm.obj -MD -MP -MF $(DEPDIR)/libgrub_a-tparm.Tpo -c -o libgrub_a-tparm.obj `if test -f 'tparm.c'; then $(CYGPATH_W) 'tparm.c'; else $(CYGPATH_W) '$(srcdir)/tparm.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-tparm.Tpo $(DEPDIR)/libgrub_a-tparm.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='tparm.c' object='libgrub_a-tparm.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-tparm.obj `if test -f 'tparm.c'; then $(CYGPATH_W) 'tparm.c'; else $(CYGPATH_W) '$(srcdir)/tparm.c'; fi`
+ 
++libgrub_a-graphics.o: graphics.c
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-graphics.o -MD -MP -MF $(DEPDIR)/libgrub_a-graphics.Tpo -c -o libgrub_a-graphics.o `test -f 'graphics.c' || echo '$(srcdir)/'`graphics.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-graphics.Tpo $(DEPDIR)/libgrub_a-graphics.Po
++ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='graphics.c' object='libgrub_a-graphics.o' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-graphics.o `test -f 'graphics.c' || echo '$(srcdir)/'`graphics.c
++
++libgrub_a-graphics.obj: graphics.c
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-graphics.obj -MD -MP -MF $(DEPDIR)/libgrub_a-graphics.Tpo -c -o libgrub_a-graphics.obj `if test -f 'graphics.c'; then $(CYGPATH_W) 'graphics.c'; else $(CYGPATH_W) '$(srcdir)/graphics.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libgrub_a-graphics.Tpo $(DEPDIR)/libgrub_a-graphics.Po
++ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='graphics.c' object='libgrub_a-graphics.obj' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-graphics.obj `if test -f 'graphics.c'; then $(CYGPATH_W) 'graphics.c'; else $(CYGPATH_W) '$(srcdir)/graphics.c'; fi`
++
+ diskless_exec-bios.o: bios.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-bios.o -MD -MP -MF "$(DEPDIR)/diskless_exec-bios.Tpo" -c -o diskless_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-bios.Tpo" "$(DEPDIR)/diskless_exec-bios.Po"; else rm -f "$(DEPDIR)/diskless_exec-bios.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-bios.o -MD -MP -MF $(DEPDIR)/diskless_exec-bios.Tpo -c -o diskless_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-bios.Tpo $(DEPDIR)/diskless_exec-bios.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='bios.c' object='diskless_exec-bios.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
+ 
+ diskless_exec-bios.obj: bios.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-bios.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-bios.Tpo" -c -o diskless_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-bios.Tpo" "$(DEPDIR)/diskless_exec-bios.Po"; else rm -f "$(DEPDIR)/diskless_exec-bios.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-bios.obj -MD -MP -MF $(DEPDIR)/diskless_exec-bios.Tpo -c -o diskless_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-bios.Tpo $(DEPDIR)/diskless_exec-bios.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='bios.c' object='diskless_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
+ 
+ diskless_exec-boot.o: boot.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-boot.o -MD -MP -MF "$(DEPDIR)/diskless_exec-boot.Tpo" -c -o diskless_exec-boot.o `test -f 'boot.c' || echo '$(srcdir)/'`boot.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-boot.Tpo" "$(DEPDIR)/diskless_exec-boot.Po"; else rm -f "$(DEPDIR)/diskless_exec-boot.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-boot.o -MD -MP -MF $(DEPDIR)/diskless_exec-boot.Tpo -c -o diskless_exec-boot.o `test -f 'boot.c' || echo '$(srcdir)/'`boot.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-boot.Tpo $(DEPDIR)/diskless_exec-boot.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='boot.c' object='diskless_exec-boot.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-boot.o `test -f 'boot.c' || echo '$(srcdir)/'`boot.c
+ 
+ diskless_exec-boot.obj: boot.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-boot.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-boot.Tpo" -c -o diskless_exec-boot.obj `if test -f 'boot.c'; then $(CYGPATH_W) 'boot.c'; else $(CYGPATH_W) '$(srcdir)/boot.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-boot.Tpo" "$(DEPDIR)/diskless_exec-boot.Po"; else rm -f "$(DEPDIR)/diskless_exec-boot.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-boot.obj -MD -MP -MF $(DEPDIR)/diskless_exec-boot.Tpo -c -o diskless_exec-boot.obj `if test -f 'boot.c'; then $(CYGPATH_W) 'boot.c'; else $(CYGPATH_W) '$(srcdir)/boot.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-boot.Tpo $(DEPDIR)/diskless_exec-boot.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='boot.c' object='diskless_exec-boot.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-boot.obj `if test -f 'boot.c'; then $(CYGPATH_W) 'boot.c'; else $(CYGPATH_W) '$(srcdir)/boot.c'; fi`
+ 
+ diskless_exec-builtins.o: builtins.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-builtins.o -MD -MP -MF "$(DEPDIR)/diskless_exec-builtins.Tpo" -c -o diskless_exec-builtins.o `test -f 'builtins.c' || echo '$(srcdir)/'`builtins.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-builtins.Tpo" "$(DEPDIR)/diskless_exec-builtins.Po"; else rm -f "$(DEPDIR)/diskless_exec-builtins.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-builtins.o -MD -MP -MF $(DEPDIR)/diskless_exec-builtins.Tpo -c -o diskless_exec-builtins.o `test -f 'builtins.c' || echo '$(srcdir)/'`builtins.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-builtins.Tpo $(DEPDIR)/diskless_exec-builtins.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='builtins.c' object='diskless_exec-builtins.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-builtins.o `test -f 'builtins.c' || echo '$(srcdir)/'`builtins.c
+ 
+ diskless_exec-builtins.obj: builtins.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-builtins.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-builtins.Tpo" -c -o diskless_exec-builtins.obj `if test -f 'builtins.c'; then $(CYGPATH_W) 'builtins.c'; else $(CYGPATH_W) '$(srcdir)/builtins.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-builtins.Tpo" "$(DEPDIR)/diskless_exec-builtins.Po"; else rm -f "$(DEPDIR)/diskless_exec-builtins.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-builtins.obj -MD -MP -MF $(DEPDIR)/diskless_exec-builtins.Tpo -c -o diskless_exec-builtins.obj `if test -f 'builtins.c'; then $(CYGPATH_W) 'builtins.c'; else $(CYGPATH_W) '$(srcdir)/builtins.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-builtins.Tpo $(DEPDIR)/diskless_exec-builtins.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='builtins.c' object='diskless_exec-builtins.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-builtins.obj `if test -f 'builtins.c'; then $(CYGPATH_W) 'builtins.c'; else $(CYGPATH_W) '$(srcdir)/builtins.c'; fi`
+ 
+ diskless_exec-char_io.o: char_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-char_io.o -MD -MP -MF "$(DEPDIR)/diskless_exec-char_io.Tpo" -c -o diskless_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-char_io.Tpo" "$(DEPDIR)/diskless_exec-char_io.Po"; else rm -f "$(DEPDIR)/diskless_exec-char_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-char_io.o -MD -MP -MF $(DEPDIR)/diskless_exec-char_io.Tpo -c -o diskless_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-char_io.Tpo $(DEPDIR)/diskless_exec-char_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='char_io.c' object='diskless_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
+ 
+ diskless_exec-char_io.obj: char_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-char_io.Tpo" -c -o diskless_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-char_io.Tpo" "$(DEPDIR)/diskless_exec-char_io.Po"; else rm -f "$(DEPDIR)/diskless_exec-char_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-char_io.obj -MD -MP -MF $(DEPDIR)/diskless_exec-char_io.Tpo -c -o diskless_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-char_io.Tpo $(DEPDIR)/diskless_exec-char_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='char_io.c' object='diskless_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
+ 
+ diskless_exec-cmdline.o: cmdline.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-cmdline.o -MD -MP -MF "$(DEPDIR)/diskless_exec-cmdline.Tpo" -c -o diskless_exec-cmdline.o `test -f 'cmdline.c' || echo '$(srcdir)/'`cmdline.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-cmdline.Tpo" "$(DEPDIR)/diskless_exec-cmdline.Po"; else rm -f "$(DEPDIR)/diskless_exec-cmdline.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-cmdline.o -MD -MP -MF $(DEPDIR)/diskless_exec-cmdline.Tpo -c -o diskless_exec-cmdline.o `test -f 'cmdline.c' || echo '$(srcdir)/'`cmdline.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-cmdline.Tpo $(DEPDIR)/diskless_exec-cmdline.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='cmdline.c' object='diskless_exec-cmdline.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-cmdline.o `test -f 'cmdline.c' || echo '$(srcdir)/'`cmdline.c
+ 
+ diskless_exec-cmdline.obj: cmdline.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-cmdline.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-cmdline.Tpo" -c -o diskless_exec-cmdline.obj `if test -f 'cmdline.c'; then $(CYGPATH_W) 'cmdline.c'; else $(CYGPATH_W) '$(srcdir)/cmdline.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-cmdline.Tpo" "$(DEPDIR)/diskless_exec-cmdline.Po"; else rm -f "$(DEPDIR)/diskless_exec-cmdline.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-cmdline.obj -MD -MP -MF $(DEPDIR)/diskless_exec-cmdline.Tpo -c -o diskless_exec-cmdline.obj `if test -f 'cmdline.c'; then $(CYGPATH_W) 'cmdline.c'; else $(CYGPATH_W) '$(srcdir)/cmdline.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-cmdline.Tpo $(DEPDIR)/diskless_exec-cmdline.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='cmdline.c' object='diskless_exec-cmdline.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-cmdline.obj `if test -f 'cmdline.c'; then $(CYGPATH_W) 'cmdline.c'; else $(CYGPATH_W) '$(srcdir)/cmdline.c'; fi`
+ 
+ diskless_exec-common.o: common.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-common.o -MD -MP -MF "$(DEPDIR)/diskless_exec-common.Tpo" -c -o diskless_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-common.Tpo" "$(DEPDIR)/diskless_exec-common.Po"; else rm -f "$(DEPDIR)/diskless_exec-common.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-common.o -MD -MP -MF $(DEPDIR)/diskless_exec-common.Tpo -c -o diskless_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-common.Tpo $(DEPDIR)/diskless_exec-common.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='common.c' object='diskless_exec-common.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
+ 
+ diskless_exec-common.obj: common.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-common.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-common.Tpo" -c -o diskless_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-common.Tpo" "$(DEPDIR)/diskless_exec-common.Po"; else rm -f "$(DEPDIR)/diskless_exec-common.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-common.obj -MD -MP -MF $(DEPDIR)/diskless_exec-common.Tpo -c -o diskless_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-common.Tpo $(DEPDIR)/diskless_exec-common.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='common.c' object='diskless_exec-common.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
+ 
+ diskless_exec-console.o: console.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-console.o -MD -MP -MF "$(DEPDIR)/diskless_exec-console.Tpo" -c -o diskless_exec-console.o `test -f 'console.c' || echo '$(srcdir)/'`console.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-console.Tpo" "$(DEPDIR)/diskless_exec-console.Po"; else rm -f "$(DEPDIR)/diskless_exec-console.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-console.o -MD -MP -MF $(DEPDIR)/diskless_exec-console.Tpo -c -o diskless_exec-console.o `test -f 'console.c' || echo '$(srcdir)/'`console.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-console.Tpo $(DEPDIR)/diskless_exec-console.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='console.c' object='diskless_exec-console.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-console.o `test -f 'console.c' || echo '$(srcdir)/'`console.c
+ 
+ diskless_exec-console.obj: console.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-console.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-console.Tpo" -c -o diskless_exec-console.obj `if test -f 'console.c'; then $(CYGPATH_W) 'console.c'; else $(CYGPATH_W) '$(srcdir)/console.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-console.Tpo" "$(DEPDIR)/diskless_exec-console.Po"; else rm -f "$(DEPDIR)/diskless_exec-console.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-console.obj -MD -MP -MF $(DEPDIR)/diskless_exec-console.Tpo -c -o diskless_exec-console.obj `if test -f 'console.c'; then $(CYGPATH_W) 'console.c'; else $(CYGPATH_W) '$(srcdir)/console.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-console.Tpo $(DEPDIR)/diskless_exec-console.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='console.c' object='diskless_exec-console.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-console.obj `if test -f 'console.c'; then $(CYGPATH_W) 'console.c'; else $(CYGPATH_W) '$(srcdir)/console.c'; fi`
+ 
+ diskless_exec-disk_io.o: disk_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/diskless_exec-disk_io.Tpo" -c -o diskless_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-disk_io.Tpo" "$(DEPDIR)/diskless_exec-disk_io.Po"; else rm -f "$(DEPDIR)/diskless_exec-disk_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-disk_io.o -MD -MP -MF $(DEPDIR)/diskless_exec-disk_io.Tpo -c -o diskless_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-disk_io.Tpo $(DEPDIR)/diskless_exec-disk_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='disk_io.c' object='diskless_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
+ 
+ diskless_exec-disk_io.obj: disk_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-disk_io.Tpo" -c -o diskless_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-disk_io.Tpo" "$(DEPDIR)/diskless_exec-disk_io.Po"; else rm -f "$(DEPDIR)/diskless_exec-disk_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-disk_io.obj -MD -MP -MF $(DEPDIR)/diskless_exec-disk_io.Tpo -c -o diskless_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-disk_io.Tpo $(DEPDIR)/diskless_exec-disk_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='disk_io.c' object='diskless_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
+ 
+ diskless_exec-fsys_ext2fs.o: fsys_ext2fs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_ext2fs.o -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_ext2fs.Tpo" -c -o diskless_exec-fsys_ext2fs.o `test -f 'fsys_ext2fs.c' || echo '$(srcdir)/'`fsys_ext2fs.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-fsys_ext2fs.Tpo" "$(DEPDIR)/diskless_exec-fsys_ext2fs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_ext2fs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_ext2fs.o -MD -MP -MF $(DEPDIR)/diskless_exec-fsys_ext2fs.Tpo -c -o diskless_exec-fsys_ext2fs.o `test -f 'fsys_ext2fs.c' || echo '$(srcdir)/'`fsys_ext2fs.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-fsys_ext2fs.Tpo $(DEPDIR)/diskless_exec-fsys_ext2fs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_ext2fs.c' object='diskless_exec-fsys_ext2fs.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_ext2fs.o `test -f 'fsys_ext2fs.c' || echo '$(srcdir)/'`fsys_ext2fs.c
+ 
+ diskless_exec-fsys_ext2fs.obj: fsys_ext2fs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_ext2fs.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_ext2fs.Tpo" -c -o diskless_exec-fsys_ext2fs.obj `if test -f 'fsys_ext2fs.c'; then $(CYGPATH_W) 'fsys_ext2fs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ext2fs.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-fsys_ext2fs.Tpo" "$(DEPDIR)/diskless_exec-fsys_ext2fs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_ext2fs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_ext2fs.obj -MD -MP -MF $(DEPDIR)/diskless_exec-fsys_ext2fs.Tpo -c -o diskless_exec-fsys_ext2fs.obj `if test -f 'fsys_ext2fs.c'; then $(CYGPATH_W) 'fsys_ext2fs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ext2fs.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-fsys_ext2fs.Tpo $(DEPDIR)/diskless_exec-fsys_ext2fs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_ext2fs.c' object='diskless_exec-fsys_ext2fs.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_ext2fs.obj `if test -f 'fsys_ext2fs.c'; then $(CYGPATH_W) 'fsys_ext2fs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ext2fs.c'; fi`
+ 
+ diskless_exec-fsys_fat.o: fsys_fat.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_fat.o -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_fat.Tpo" -c -o diskless_exec-fsys_fat.o `test -f 'fsys_fat.c' || echo '$(srcdir)/'`fsys_fat.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-fsys_fat.Tpo" "$(DEPDIR)/diskless_exec-fsys_fat.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_fat.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_fat.o -MD -MP -MF $(DEPDIR)/diskless_exec-fsys_fat.Tpo -c -o diskless_exec-fsys_fat.o `test -f 'fsys_fat.c' || echo '$(srcdir)/'`fsys_fat.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-fsys_fat.Tpo $(DEPDIR)/diskless_exec-fsys_fat.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_fat.c' object='diskless_exec-fsys_fat.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_fat.o `test -f 'fsys_fat.c' || echo '$(srcdir)/'`fsys_fat.c
+ 
+ diskless_exec-fsys_fat.obj: fsys_fat.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_fat.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_fat.Tpo" -c -o diskless_exec-fsys_fat.obj `if test -f 'fsys_fat.c'; then $(CYGPATH_W) 'fsys_fat.c'; else $(CYGPATH_W) '$(srcdir)/fsys_fat.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-fsys_fat.Tpo" "$(DEPDIR)/diskless_exec-fsys_fat.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_fat.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_fat.obj -MD -MP -MF $(DEPDIR)/diskless_exec-fsys_fat.Tpo -c -o diskless_exec-fsys_fat.obj `if test -f 'fsys_fat.c'; then $(CYGPATH_W) 'fsys_fat.c'; else $(CYGPATH_W) '$(srcdir)/fsys_fat.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-fsys_fat.Tpo $(DEPDIR)/diskless_exec-fsys_fat.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_fat.c' object='diskless_exec-fsys_fat.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_fat.obj `if test -f 'fsys_fat.c'; then $(CYGPATH_W) 'fsys_fat.c'; else $(CYGPATH_W) '$(srcdir)/fsys_fat.c'; fi`
+ 
+ diskless_exec-fsys_ffs.o: fsys_ffs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_ffs.o -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_ffs.Tpo" -c -o diskless_exec-fsys_ffs.o `test -f 'fsys_ffs.c' || echo '$(srcdir)/'`fsys_ffs.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-fsys_ffs.Tpo" "$(DEPDIR)/diskless_exec-fsys_ffs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_ffs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_ffs.o -MD -MP -MF $(DEPDIR)/diskless_exec-fsys_ffs.Tpo -c -o diskless_exec-fsys_ffs.o `test -f 'fsys_ffs.c' || echo '$(srcdir)/'`fsys_ffs.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-fsys_ffs.Tpo $(DEPDIR)/diskless_exec-fsys_ffs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_ffs.c' object='diskless_exec-fsys_ffs.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_ffs.o `test -f 'fsys_ffs.c' || echo '$(srcdir)/'`fsys_ffs.c
+ 
+ diskless_exec-fsys_ffs.obj: fsys_ffs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_ffs.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_ffs.Tpo" -c -o diskless_exec-fsys_ffs.obj `if test -f 'fsys_ffs.c'; then $(CYGPATH_W) 'fsys_ffs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ffs.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-fsys_ffs.Tpo" "$(DEPDIR)/diskless_exec-fsys_ffs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_ffs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_ffs.obj -MD -MP -MF $(DEPDIR)/diskless_exec-fsys_ffs.Tpo -c -o diskless_exec-fsys_ffs.obj `if test -f 'fsys_ffs.c'; then $(CYGPATH_W) 'fsys_ffs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ffs.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-fsys_ffs.Tpo $(DEPDIR)/diskless_exec-fsys_ffs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_ffs.c' object='diskless_exec-fsys_ffs.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_ffs.obj `if test -f 'fsys_ffs.c'; then $(CYGPATH_W) 'fsys_ffs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ffs.c'; fi`
+ 
+ diskless_exec-fsys_iso9660.o: fsys_iso9660.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_iso9660.o -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_iso9660.Tpo" -c -o diskless_exec-fsys_iso9660.o `test -f 'fsys_iso9660.c' || echo '$(srcdir)/'`fsys_iso9660.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-fsys_iso9660.Tpo" "$(DEPDIR)/diskless_exec-fsys_iso9660.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_iso9660.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_iso9660.o -MD -MP -MF $(DEPDIR)/diskless_exec-fsys_iso9660.Tpo -c -o diskless_exec-fsys_iso9660.o `test -f 'fsys_iso9660.c' || echo '$(srcdir)/'`fsys_iso9660.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-fsys_iso9660.Tpo $(DEPDIR)/diskless_exec-fsys_iso9660.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_iso9660.c' object='diskless_exec-fsys_iso9660.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_iso9660.o `test -f 'fsys_iso9660.c' || echo '$(srcdir)/'`fsys_iso9660.c
+ 
+ diskless_exec-fsys_iso9660.obj: fsys_iso9660.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_iso9660.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_iso9660.Tpo" -c -o diskless_exec-fsys_iso9660.obj `if test -f 'fsys_iso9660.c'; then $(CYGPATH_W) 'fsys_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/fsys_iso9660.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-fsys_iso9660.Tpo" "$(DEPDIR)/diskless_exec-fsys_iso9660.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_iso9660.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_iso9660.obj -MD -MP -MF $(DEPDIR)/diskless_exec-fsys_iso9660.Tpo -c -o diskless_exec-fsys_iso9660.obj `if test -f 'fsys_iso9660.c'; then $(CYGPATH_W) 'fsys_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/fsys_iso9660.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-fsys_iso9660.Tpo $(DEPDIR)/diskless_exec-fsys_iso9660.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_iso9660.c' object='diskless_exec-fsys_iso9660.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_iso9660.obj `if test -f 'fsys_iso9660.c'; then $(CYGPATH_W) 'fsys_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/fsys_iso9660.c'; fi`
+ 
+ diskless_exec-fsys_jfs.o: fsys_jfs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_jfs.o -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_jfs.Tpo" -c -o diskless_exec-fsys_jfs.o `test -f 'fsys_jfs.c' || echo '$(srcdir)/'`fsys_jfs.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-fsys_jfs.Tpo" "$(DEPDIR)/diskless_exec-fsys_jfs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_jfs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_jfs.o -MD -MP -MF $(DEPDIR)/diskless_exec-fsys_jfs.Tpo -c -o diskless_exec-fsys_jfs.o `test -f 'fsys_jfs.c' || echo '$(srcdir)/'`fsys_jfs.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-fsys_jfs.Tpo $(DEPDIR)/diskless_exec-fsys_jfs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_jfs.c' object='diskless_exec-fsys_jfs.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_jfs.o `test -f 'fsys_jfs.c' || echo '$(srcdir)/'`fsys_jfs.c
+ 
+ diskless_exec-fsys_jfs.obj: fsys_jfs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_jfs.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_jfs.Tpo" -c -o diskless_exec-fsys_jfs.obj `if test -f 'fsys_jfs.c'; then $(CYGPATH_W) 'fsys_jfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_jfs.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-fsys_jfs.Tpo" "$(DEPDIR)/diskless_exec-fsys_jfs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_jfs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_jfs.obj -MD -MP -MF $(DEPDIR)/diskless_exec-fsys_jfs.Tpo -c -o diskless_exec-fsys_jfs.obj `if test -f 'fsys_jfs.c'; then $(CYGPATH_W) 'fsys_jfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_jfs.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-fsys_jfs.Tpo $(DEPDIR)/diskless_exec-fsys_jfs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_jfs.c' object='diskless_exec-fsys_jfs.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_jfs.obj `if test -f 'fsys_jfs.c'; then $(CYGPATH_W) 'fsys_jfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_jfs.c'; fi`
+ 
+ diskless_exec-fsys_minix.o: fsys_minix.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_minix.o -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_minix.Tpo" -c -o diskless_exec-fsys_minix.o `test -f 'fsys_minix.c' || echo '$(srcdir)/'`fsys_minix.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-fsys_minix.Tpo" "$(DEPDIR)/diskless_exec-fsys_minix.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_minix.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_minix.o -MD -MP -MF $(DEPDIR)/diskless_exec-fsys_minix.Tpo -c -o diskless_exec-fsys_minix.o `test -f 'fsys_minix.c' || echo '$(srcdir)/'`fsys_minix.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-fsys_minix.Tpo $(DEPDIR)/diskless_exec-fsys_minix.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_minix.c' object='diskless_exec-fsys_minix.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_minix.o `test -f 'fsys_minix.c' || echo '$(srcdir)/'`fsys_minix.c
+ 
+ diskless_exec-fsys_minix.obj: fsys_minix.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_minix.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_minix.Tpo" -c -o diskless_exec-fsys_minix.obj `if test -f 'fsys_minix.c'; then $(CYGPATH_W) 'fsys_minix.c'; else $(CYGPATH_W) '$(srcdir)/fsys_minix.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-fsys_minix.Tpo" "$(DEPDIR)/diskless_exec-fsys_minix.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_minix.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_minix.obj -MD -MP -MF $(DEPDIR)/diskless_exec-fsys_minix.Tpo -c -o diskless_exec-fsys_minix.obj `if test -f 'fsys_minix.c'; then $(CYGPATH_W) 'fsys_minix.c'; else $(CYGPATH_W) '$(srcdir)/fsys_minix.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-fsys_minix.Tpo $(DEPDIR)/diskless_exec-fsys_minix.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_minix.c' object='diskless_exec-fsys_minix.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_minix.obj `if test -f 'fsys_minix.c'; then $(CYGPATH_W) 'fsys_minix.c'; else $(CYGPATH_W) '$(srcdir)/fsys_minix.c'; fi`
+ 
+ diskless_exec-fsys_reiserfs.o: fsys_reiserfs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_reiserfs.o -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_reiserfs.Tpo" -c -o diskless_exec-fsys_reiserfs.o `test -f 'fsys_reiserfs.c' || echo '$(srcdir)/'`fsys_reiserfs.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-fsys_reiserfs.Tpo" "$(DEPDIR)/diskless_exec-fsys_reiserfs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_reiserfs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_reiserfs.o -MD -MP -MF $(DEPDIR)/diskless_exec-fsys_reiserfs.Tpo -c -o diskless_exec-fsys_reiserfs.o `test -f 'fsys_reiserfs.c' || echo '$(srcdir)/'`fsys_reiserfs.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-fsys_reiserfs.Tpo $(DEPDIR)/diskless_exec-fsys_reiserfs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_reiserfs.c' object='diskless_exec-fsys_reiserfs.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_reiserfs.o `test -f 'fsys_reiserfs.c' || echo '$(srcdir)/'`fsys_reiserfs.c
+ 
+ diskless_exec-fsys_reiserfs.obj: fsys_reiserfs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_reiserfs.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_reiserfs.Tpo" -c -o diskless_exec-fsys_reiserfs.obj `if test -f 'fsys_reiserfs.c'; then $(CYGPATH_W) 'fsys_reiserfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_reiserfs.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-fsys_reiserfs.Tpo" "$(DEPDIR)/diskless_exec-fsys_reiserfs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_reiserfs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_reiserfs.obj -MD -MP -MF $(DEPDIR)/diskless_exec-fsys_reiserfs.Tpo -c -o diskless_exec-fsys_reiserfs.obj `if test -f 'fsys_reiserfs.c'; then $(CYGPATH_W) 'fsys_reiserfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_reiserfs.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-fsys_reiserfs.Tpo $(DEPDIR)/diskless_exec-fsys_reiserfs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_reiserfs.c' object='diskless_exec-fsys_reiserfs.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_reiserfs.obj `if test -f 'fsys_reiserfs.c'; then $(CYGPATH_W) 'fsys_reiserfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_reiserfs.c'; fi`
+ 
+ diskless_exec-fsys_ufs2.o: fsys_ufs2.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_ufs2.o -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_ufs2.Tpo" -c -o diskless_exec-fsys_ufs2.o `test -f 'fsys_ufs2.c' || echo '$(srcdir)/'`fsys_ufs2.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-fsys_ufs2.Tpo" "$(DEPDIR)/diskless_exec-fsys_ufs2.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_ufs2.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_ufs2.o -MD -MP -MF $(DEPDIR)/diskless_exec-fsys_ufs2.Tpo -c -o diskless_exec-fsys_ufs2.o `test -f 'fsys_ufs2.c' || echo '$(srcdir)/'`fsys_ufs2.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-fsys_ufs2.Tpo $(DEPDIR)/diskless_exec-fsys_ufs2.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_ufs2.c' object='diskless_exec-fsys_ufs2.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_ufs2.o `test -f 'fsys_ufs2.c' || echo '$(srcdir)/'`fsys_ufs2.c
+ 
+ diskless_exec-fsys_ufs2.obj: fsys_ufs2.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_ufs2.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_ufs2.Tpo" -c -o diskless_exec-fsys_ufs2.obj `if test -f 'fsys_ufs2.c'; then $(CYGPATH_W) 'fsys_ufs2.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ufs2.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-fsys_ufs2.Tpo" "$(DEPDIR)/diskless_exec-fsys_ufs2.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_ufs2.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_ufs2.obj -MD -MP -MF $(DEPDIR)/diskless_exec-fsys_ufs2.Tpo -c -o diskless_exec-fsys_ufs2.obj `if test -f 'fsys_ufs2.c'; then $(CYGPATH_W) 'fsys_ufs2.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ufs2.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-fsys_ufs2.Tpo $(DEPDIR)/diskless_exec-fsys_ufs2.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_ufs2.c' object='diskless_exec-fsys_ufs2.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_ufs2.obj `if test -f 'fsys_ufs2.c'; then $(CYGPATH_W) 'fsys_ufs2.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ufs2.c'; fi`
+ 
+ diskless_exec-fsys_vstafs.o: fsys_vstafs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_vstafs.o -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_vstafs.Tpo" -c -o diskless_exec-fsys_vstafs.o `test -f 'fsys_vstafs.c' || echo '$(srcdir)/'`fsys_vstafs.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-fsys_vstafs.Tpo" "$(DEPDIR)/diskless_exec-fsys_vstafs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_vstafs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_vstafs.o -MD -MP -MF $(DEPDIR)/diskless_exec-fsys_vstafs.Tpo -c -o diskless_exec-fsys_vstafs.o `test -f 'fsys_vstafs.c' || echo '$(srcdir)/'`fsys_vstafs.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-fsys_vstafs.Tpo $(DEPDIR)/diskless_exec-fsys_vstafs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_vstafs.c' object='diskless_exec-fsys_vstafs.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_vstafs.o `test -f 'fsys_vstafs.c' || echo '$(srcdir)/'`fsys_vstafs.c
+ 
+ diskless_exec-fsys_vstafs.obj: fsys_vstafs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_vstafs.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_vstafs.Tpo" -c -o diskless_exec-fsys_vstafs.obj `if test -f 'fsys_vstafs.c'; then $(CYGPATH_W) 'fsys_vstafs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_vstafs.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-fsys_vstafs.Tpo" "$(DEPDIR)/diskless_exec-fsys_vstafs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_vstafs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_vstafs.obj -MD -MP -MF $(DEPDIR)/diskless_exec-fsys_vstafs.Tpo -c -o diskless_exec-fsys_vstafs.obj `if test -f 'fsys_vstafs.c'; then $(CYGPATH_W) 'fsys_vstafs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_vstafs.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-fsys_vstafs.Tpo $(DEPDIR)/diskless_exec-fsys_vstafs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_vstafs.c' object='diskless_exec-fsys_vstafs.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_vstafs.obj `if test -f 'fsys_vstafs.c'; then $(CYGPATH_W) 'fsys_vstafs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_vstafs.c'; fi`
+ 
+ diskless_exec-fsys_xfs.o: fsys_xfs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_xfs.o -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_xfs.Tpo" -c -o diskless_exec-fsys_xfs.o `test -f 'fsys_xfs.c' || echo '$(srcdir)/'`fsys_xfs.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-fsys_xfs.Tpo" "$(DEPDIR)/diskless_exec-fsys_xfs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_xfs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_xfs.o -MD -MP -MF $(DEPDIR)/diskless_exec-fsys_xfs.Tpo -c -o diskless_exec-fsys_xfs.o `test -f 'fsys_xfs.c' || echo '$(srcdir)/'`fsys_xfs.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-fsys_xfs.Tpo $(DEPDIR)/diskless_exec-fsys_xfs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_xfs.c' object='diskless_exec-fsys_xfs.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_xfs.o `test -f 'fsys_xfs.c' || echo '$(srcdir)/'`fsys_xfs.c
+ 
+ diskless_exec-fsys_xfs.obj: fsys_xfs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_xfs.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_xfs.Tpo" -c -o diskless_exec-fsys_xfs.obj `if test -f 'fsys_xfs.c'; then $(CYGPATH_W) 'fsys_xfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_xfs.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-fsys_xfs.Tpo" "$(DEPDIR)/diskless_exec-fsys_xfs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_xfs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_xfs.obj -MD -MP -MF $(DEPDIR)/diskless_exec-fsys_xfs.Tpo -c -o diskless_exec-fsys_xfs.obj `if test -f 'fsys_xfs.c'; then $(CYGPATH_W) 'fsys_xfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_xfs.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-fsys_xfs.Tpo $(DEPDIR)/diskless_exec-fsys_xfs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_xfs.c' object='diskless_exec-fsys_xfs.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_xfs.obj `if test -f 'fsys_xfs.c'; then $(CYGPATH_W) 'fsys_xfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_xfs.c'; fi`
+ 
+ diskless_exec-gunzip.o: gunzip.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-gunzip.o -MD -MP -MF "$(DEPDIR)/diskless_exec-gunzip.Tpo" -c -o diskless_exec-gunzip.o `test -f 'gunzip.c' || echo '$(srcdir)/'`gunzip.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-gunzip.Tpo" "$(DEPDIR)/diskless_exec-gunzip.Po"; else rm -f "$(DEPDIR)/diskless_exec-gunzip.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-gunzip.o -MD -MP -MF $(DEPDIR)/diskless_exec-gunzip.Tpo -c -o diskless_exec-gunzip.o `test -f 'gunzip.c' || echo '$(srcdir)/'`gunzip.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-gunzip.Tpo $(DEPDIR)/diskless_exec-gunzip.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gunzip.c' object='diskless_exec-gunzip.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-gunzip.o `test -f 'gunzip.c' || echo '$(srcdir)/'`gunzip.c
+ 
+ diskless_exec-gunzip.obj: gunzip.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-gunzip.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-gunzip.Tpo" -c -o diskless_exec-gunzip.obj `if test -f 'gunzip.c'; then $(CYGPATH_W) 'gunzip.c'; else $(CYGPATH_W) '$(srcdir)/gunzip.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-gunzip.Tpo" "$(DEPDIR)/diskless_exec-gunzip.Po"; else rm -f "$(DEPDIR)/diskless_exec-gunzip.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-gunzip.obj -MD -MP -MF $(DEPDIR)/diskless_exec-gunzip.Tpo -c -o diskless_exec-gunzip.obj `if test -f 'gunzip.c'; then $(CYGPATH_W) 'gunzip.c'; else $(CYGPATH_W) '$(srcdir)/gunzip.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-gunzip.Tpo $(DEPDIR)/diskless_exec-gunzip.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gunzip.c' object='diskless_exec-gunzip.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-gunzip.obj `if test -f 'gunzip.c'; then $(CYGPATH_W) 'gunzip.c'; else $(CYGPATH_W) '$(srcdir)/gunzip.c'; fi`
+ 
+ diskless_exec-hercules.o: hercules.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-hercules.o -MD -MP -MF "$(DEPDIR)/diskless_exec-hercules.Tpo" -c -o diskless_exec-hercules.o `test -f 'hercules.c' || echo '$(srcdir)/'`hercules.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-hercules.Tpo" "$(DEPDIR)/diskless_exec-hercules.Po"; else rm -f "$(DEPDIR)/diskless_exec-hercules.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-hercules.o -MD -MP -MF $(DEPDIR)/diskless_exec-hercules.Tpo -c -o diskless_exec-hercules.o `test -f 'hercules.c' || echo '$(srcdir)/'`hercules.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-hercules.Tpo $(DEPDIR)/diskless_exec-hercules.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='hercules.c' object='diskless_exec-hercules.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-hercules.o `test -f 'hercules.c' || echo '$(srcdir)/'`hercules.c
+ 
+ diskless_exec-hercules.obj: hercules.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-hercules.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-hercules.Tpo" -c -o diskless_exec-hercules.obj `if test -f 'hercules.c'; then $(CYGPATH_W) 'hercules.c'; else $(CYGPATH_W) '$(srcdir)/hercules.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-hercules.Tpo" "$(DEPDIR)/diskless_exec-hercules.Po"; else rm -f "$(DEPDIR)/diskless_exec-hercules.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-hercules.obj -MD -MP -MF $(DEPDIR)/diskless_exec-hercules.Tpo -c -o diskless_exec-hercules.obj `if test -f 'hercules.c'; then $(CYGPATH_W) 'hercules.c'; else $(CYGPATH_W) '$(srcdir)/hercules.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-hercules.Tpo $(DEPDIR)/diskless_exec-hercules.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='hercules.c' object='diskless_exec-hercules.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-hercules.obj `if test -f 'hercules.c'; then $(CYGPATH_W) 'hercules.c'; else $(CYGPATH_W) '$(srcdir)/hercules.c'; fi`
+ 
+ diskless_exec-md5.o: md5.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-md5.o -MD -MP -MF "$(DEPDIR)/diskless_exec-md5.Tpo" -c -o diskless_exec-md5.o `test -f 'md5.c' || echo '$(srcdir)/'`md5.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-md5.Tpo" "$(DEPDIR)/diskless_exec-md5.Po"; else rm -f "$(DEPDIR)/diskless_exec-md5.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-md5.o -MD -MP -MF $(DEPDIR)/diskless_exec-md5.Tpo -c -o diskless_exec-md5.o `test -f 'md5.c' || echo '$(srcdir)/'`md5.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-md5.Tpo $(DEPDIR)/diskless_exec-md5.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='md5.c' object='diskless_exec-md5.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-md5.o `test -f 'md5.c' || echo '$(srcdir)/'`md5.c
+ 
+ diskless_exec-md5.obj: md5.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-md5.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-md5.Tpo" -c -o diskless_exec-md5.obj `if test -f 'md5.c'; then $(CYGPATH_W) 'md5.c'; else $(CYGPATH_W) '$(srcdir)/md5.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-md5.Tpo" "$(DEPDIR)/diskless_exec-md5.Po"; else rm -f "$(DEPDIR)/diskless_exec-md5.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-md5.obj -MD -MP -MF $(DEPDIR)/diskless_exec-md5.Tpo -c -o diskless_exec-md5.obj `if test -f 'md5.c'; then $(CYGPATH_W) 'md5.c'; else $(CYGPATH_W) '$(srcdir)/md5.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-md5.Tpo $(DEPDIR)/diskless_exec-md5.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='md5.c' object='diskless_exec-md5.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-md5.obj `if test -f 'md5.c'; then $(CYGPATH_W) 'md5.c'; else $(CYGPATH_W) '$(srcdir)/md5.c'; fi`
+ 
+ diskless_exec-serial.o: serial.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-serial.o -MD -MP -MF "$(DEPDIR)/diskless_exec-serial.Tpo" -c -o diskless_exec-serial.o `test -f 'serial.c' || echo '$(srcdir)/'`serial.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-serial.Tpo" "$(DEPDIR)/diskless_exec-serial.Po"; else rm -f "$(DEPDIR)/diskless_exec-serial.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-serial.o -MD -MP -MF $(DEPDIR)/diskless_exec-serial.Tpo -c -o diskless_exec-serial.o `test -f 'serial.c' || echo '$(srcdir)/'`serial.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-serial.Tpo $(DEPDIR)/diskless_exec-serial.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='serial.c' object='diskless_exec-serial.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-serial.o `test -f 'serial.c' || echo '$(srcdir)/'`serial.c
+ 
+ diskless_exec-serial.obj: serial.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-serial.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-serial.Tpo" -c -o diskless_exec-serial.obj `if test -f 'serial.c'; then $(CYGPATH_W) 'serial.c'; else $(CYGPATH_W) '$(srcdir)/serial.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-serial.Tpo" "$(DEPDIR)/diskless_exec-serial.Po"; else rm -f "$(DEPDIR)/diskless_exec-serial.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-serial.obj -MD -MP -MF $(DEPDIR)/diskless_exec-serial.Tpo -c -o diskless_exec-serial.obj `if test -f 'serial.c'; then $(CYGPATH_W) 'serial.c'; else $(CYGPATH_W) '$(srcdir)/serial.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-serial.Tpo $(DEPDIR)/diskless_exec-serial.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='serial.c' object='diskless_exec-serial.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-serial.obj `if test -f 'serial.c'; then $(CYGPATH_W) 'serial.c'; else $(CYGPATH_W) '$(srcdir)/serial.c'; fi`
+ 
+ diskless_exec-smp-imps.o: smp-imps.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-smp-imps.o -MD -MP -MF "$(DEPDIR)/diskless_exec-smp-imps.Tpo" -c -o diskless_exec-smp-imps.o `test -f 'smp-imps.c' || echo '$(srcdir)/'`smp-imps.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-smp-imps.Tpo" "$(DEPDIR)/diskless_exec-smp-imps.Po"; else rm -f "$(DEPDIR)/diskless_exec-smp-imps.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-smp-imps.o -MD -MP -MF $(DEPDIR)/diskless_exec-smp-imps.Tpo -c -o diskless_exec-smp-imps.o `test -f 'smp-imps.c' || echo '$(srcdir)/'`smp-imps.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-smp-imps.Tpo $(DEPDIR)/diskless_exec-smp-imps.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='smp-imps.c' object='diskless_exec-smp-imps.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-smp-imps.o `test -f 'smp-imps.c' || echo '$(srcdir)/'`smp-imps.c
+ 
+ diskless_exec-smp-imps.obj: smp-imps.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-smp-imps.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-smp-imps.Tpo" -c -o diskless_exec-smp-imps.obj `if test -f 'smp-imps.c'; then $(CYGPATH_W) 'smp-imps.c'; else $(CYGPATH_W) '$(srcdir)/smp-imps.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-smp-imps.Tpo" "$(DEPDIR)/diskless_exec-smp-imps.Po"; else rm -f "$(DEPDIR)/diskless_exec-smp-imps.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-smp-imps.obj -MD -MP -MF $(DEPDIR)/diskless_exec-smp-imps.Tpo -c -o diskless_exec-smp-imps.obj `if test -f 'smp-imps.c'; then $(CYGPATH_W) 'smp-imps.c'; else $(CYGPATH_W) '$(srcdir)/smp-imps.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-smp-imps.Tpo $(DEPDIR)/diskless_exec-smp-imps.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='smp-imps.c' object='diskless_exec-smp-imps.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-smp-imps.obj `if test -f 'smp-imps.c'; then $(CYGPATH_W) 'smp-imps.c'; else $(CYGPATH_W) '$(srcdir)/smp-imps.c'; fi`
+ 
+ diskless_exec-stage2.o: stage2.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-stage2.o -MD -MP -MF "$(DEPDIR)/diskless_exec-stage2.Tpo" -c -o diskless_exec-stage2.o `test -f 'stage2.c' || echo '$(srcdir)/'`stage2.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-stage2.Tpo" "$(DEPDIR)/diskless_exec-stage2.Po"; else rm -f "$(DEPDIR)/diskless_exec-stage2.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-stage2.o -MD -MP -MF $(DEPDIR)/diskless_exec-stage2.Tpo -c -o diskless_exec-stage2.o `test -f 'stage2.c' || echo '$(srcdir)/'`stage2.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-stage2.Tpo $(DEPDIR)/diskless_exec-stage2.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='stage2.c' object='diskless_exec-stage2.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-stage2.o `test -f 'stage2.c' || echo '$(srcdir)/'`stage2.c
+ 
+ diskless_exec-stage2.obj: stage2.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-stage2.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-stage2.Tpo" -c -o diskless_exec-stage2.obj `if test -f 'stage2.c'; then $(CYGPATH_W) 'stage2.c'; else $(CYGPATH_W) '$(srcdir)/stage2.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-stage2.Tpo" "$(DEPDIR)/diskless_exec-stage2.Po"; else rm -f "$(DEPDIR)/diskless_exec-stage2.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-stage2.obj -MD -MP -MF $(DEPDIR)/diskless_exec-stage2.Tpo -c -o diskless_exec-stage2.obj `if test -f 'stage2.c'; then $(CYGPATH_W) 'stage2.c'; else $(CYGPATH_W) '$(srcdir)/stage2.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-stage2.Tpo $(DEPDIR)/diskless_exec-stage2.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='stage2.c' object='diskless_exec-stage2.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-stage2.obj `if test -f 'stage2.c'; then $(CYGPATH_W) 'stage2.c'; else $(CYGPATH_W) '$(srcdir)/stage2.c'; fi`
+ 
+ diskless_exec-terminfo.o: terminfo.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-terminfo.o -MD -MP -MF "$(DEPDIR)/diskless_exec-terminfo.Tpo" -c -o diskless_exec-terminfo.o `test -f 'terminfo.c' || echo '$(srcdir)/'`terminfo.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-terminfo.Tpo" "$(DEPDIR)/diskless_exec-terminfo.Po"; else rm -f "$(DEPDIR)/diskless_exec-terminfo.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-terminfo.o -MD -MP -MF $(DEPDIR)/diskless_exec-terminfo.Tpo -c -o diskless_exec-terminfo.o `test -f 'terminfo.c' || echo '$(srcdir)/'`terminfo.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-terminfo.Tpo $(DEPDIR)/diskless_exec-terminfo.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='terminfo.c' object='diskless_exec-terminfo.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-terminfo.o `test -f 'terminfo.c' || echo '$(srcdir)/'`terminfo.c
+ 
+ diskless_exec-terminfo.obj: terminfo.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-terminfo.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-terminfo.Tpo" -c -o diskless_exec-terminfo.obj `if test -f 'terminfo.c'; then $(CYGPATH_W) 'terminfo.c'; else $(CYGPATH_W) '$(srcdir)/terminfo.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-terminfo.Tpo" "$(DEPDIR)/diskless_exec-terminfo.Po"; else rm -f "$(DEPDIR)/diskless_exec-terminfo.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-terminfo.obj -MD -MP -MF $(DEPDIR)/diskless_exec-terminfo.Tpo -c -o diskless_exec-terminfo.obj `if test -f 'terminfo.c'; then $(CYGPATH_W) 'terminfo.c'; else $(CYGPATH_W) '$(srcdir)/terminfo.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-terminfo.Tpo $(DEPDIR)/diskless_exec-terminfo.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='terminfo.c' object='diskless_exec-terminfo.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-terminfo.obj `if test -f 'terminfo.c'; then $(CYGPATH_W) 'terminfo.c'; else $(CYGPATH_W) '$(srcdir)/terminfo.c'; fi`
+ 
+ diskless_exec-tparm.o: tparm.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-tparm.o -MD -MP -MF "$(DEPDIR)/diskless_exec-tparm.Tpo" -c -o diskless_exec-tparm.o `test -f 'tparm.c' || echo '$(srcdir)/'`tparm.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-tparm.Tpo" "$(DEPDIR)/diskless_exec-tparm.Po"; else rm -f "$(DEPDIR)/diskless_exec-tparm.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-tparm.o -MD -MP -MF $(DEPDIR)/diskless_exec-tparm.Tpo -c -o diskless_exec-tparm.o `test -f 'tparm.c' || echo '$(srcdir)/'`tparm.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-tparm.Tpo $(DEPDIR)/diskless_exec-tparm.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='tparm.c' object='diskless_exec-tparm.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-tparm.o `test -f 'tparm.c' || echo '$(srcdir)/'`tparm.c
+ 
+ diskless_exec-tparm.obj: tparm.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-tparm.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-tparm.Tpo" -c -o diskless_exec-tparm.obj `if test -f 'tparm.c'; then $(CYGPATH_W) 'tparm.c'; else $(CYGPATH_W) '$(srcdir)/tparm.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/diskless_exec-tparm.Tpo" "$(DEPDIR)/diskless_exec-tparm.Po"; else rm -f "$(DEPDIR)/diskless_exec-tparm.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-tparm.obj -MD -MP -MF $(DEPDIR)/diskless_exec-tparm.Tpo -c -o diskless_exec-tparm.obj `if test -f 'tparm.c'; then $(CYGPATH_W) 'tparm.c'; else $(CYGPATH_W) '$(srcdir)/tparm.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-tparm.Tpo $(DEPDIR)/diskless_exec-tparm.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='tparm.c' object='diskless_exec-tparm.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-tparm.obj `if test -f 'tparm.c'; then $(CYGPATH_W) 'tparm.c'; else $(CYGPATH_W) '$(srcdir)/tparm.c'; fi`
+ 
++diskless_exec-graphics.o: graphics.c
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-graphics.o -MD -MP -MF $(DEPDIR)/diskless_exec-graphics.Tpo -c -o diskless_exec-graphics.o `test -f 'graphics.c' || echo '$(srcdir)/'`graphics.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-graphics.Tpo $(DEPDIR)/diskless_exec-graphics.Po
++ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='graphics.c' object='diskless_exec-graphics.o' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-graphics.o `test -f 'graphics.c' || echo '$(srcdir)/'`graphics.c
++
++diskless_exec-graphics.obj: graphics.c
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-graphics.obj -MD -MP -MF $(DEPDIR)/diskless_exec-graphics.Tpo -c -o diskless_exec-graphics.obj `if test -f 'graphics.c'; then $(CYGPATH_W) 'graphics.c'; else $(CYGPATH_W) '$(srcdir)/graphics.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/diskless_exec-graphics.Tpo $(DEPDIR)/diskless_exec-graphics.Po
++ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='graphics.c' object='diskless_exec-graphics.obj' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-graphics.obj `if test -f 'graphics.c'; then $(CYGPATH_W) 'graphics.c'; else $(CYGPATH_W) '$(srcdir)/graphics.c'; fi`
++
+ e2fs_stage1_5_exec-common.o: common.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-common.Tpo" -c -o e2fs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/e2fs_stage1_5_exec-common.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-common.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-common.o -MD -MP -MF $(DEPDIR)/e2fs_stage1_5_exec-common.Tpo -c -o e2fs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/e2fs_stage1_5_exec-common.Tpo $(DEPDIR)/e2fs_stage1_5_exec-common.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='common.c' object='e2fs_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
+ 
+ e2fs_stage1_5_exec-common.obj: common.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-common.obj -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-common.Tpo" -c -o e2fs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/e2fs_stage1_5_exec-common.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-common.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-common.obj -MD -MP -MF $(DEPDIR)/e2fs_stage1_5_exec-common.Tpo -c -o e2fs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/e2fs_stage1_5_exec-common.Tpo $(DEPDIR)/e2fs_stage1_5_exec-common.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='common.c' object='e2fs_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
+ 
+ e2fs_stage1_5_exec-char_io.o: char_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-char_io.o -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-char_io.Tpo" -c -o e2fs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/e2fs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-char_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-char_io.o -MD -MP -MF $(DEPDIR)/e2fs_stage1_5_exec-char_io.Tpo -c -o e2fs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/e2fs_stage1_5_exec-char_io.Tpo $(DEPDIR)/e2fs_stage1_5_exec-char_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='char_io.c' object='e2fs_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
+ 
+ e2fs_stage1_5_exec-char_io.obj: char_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-char_io.Tpo" -c -o e2fs_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/e2fs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-char_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-char_io.obj -MD -MP -MF $(DEPDIR)/e2fs_stage1_5_exec-char_io.Tpo -c -o e2fs_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/e2fs_stage1_5_exec-char_io.Tpo $(DEPDIR)/e2fs_stage1_5_exec-char_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='char_io.c' object='e2fs_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
+ 
+ e2fs_stage1_5_exec-disk_io.o: disk_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-disk_io.Tpo" -c -o e2fs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/e2fs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-disk_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-disk_io.o -MD -MP -MF $(DEPDIR)/e2fs_stage1_5_exec-disk_io.Tpo -c -o e2fs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/e2fs_stage1_5_exec-disk_io.Tpo $(DEPDIR)/e2fs_stage1_5_exec-disk_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='disk_io.c' object='e2fs_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
+ 
+ e2fs_stage1_5_exec-disk_io.obj: disk_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-disk_io.Tpo" -c -o e2fs_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/e2fs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-disk_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-disk_io.obj -MD -MP -MF $(DEPDIR)/e2fs_stage1_5_exec-disk_io.Tpo -c -o e2fs_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/e2fs_stage1_5_exec-disk_io.Tpo $(DEPDIR)/e2fs_stage1_5_exec-disk_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='disk_io.c' object='e2fs_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
+ 
+ e2fs_stage1_5_exec-stage1_5.o: stage1_5.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-stage1_5.o -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Tpo" -c -o e2fs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-stage1_5.o -MD -MP -MF $(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Tpo -c -o e2fs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Tpo $(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='stage1_5.c' object='e2fs_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c
+ 
+ e2fs_stage1_5_exec-stage1_5.obj: stage1_5.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-stage1_5.obj -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Tpo" -c -o e2fs_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-stage1_5.obj -MD -MP -MF $(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Tpo -c -o e2fs_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Tpo $(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='stage1_5.c' object='e2fs_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`
+ 
+ e2fs_stage1_5_exec-fsys_ext2fs.o: fsys_ext2fs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-fsys_ext2fs.o -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Tpo" -c -o e2fs_stage1_5_exec-fsys_ext2fs.o `test -f 'fsys_ext2fs.c' || echo '$(srcdir)/'`fsys_ext2fs.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-fsys_ext2fs.o -MD -MP -MF $(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Tpo -c -o e2fs_stage1_5_exec-fsys_ext2fs.o `test -f 'fsys_ext2fs.c' || echo '$(srcdir)/'`fsys_ext2fs.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Tpo $(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_ext2fs.c' object='e2fs_stage1_5_exec-fsys_ext2fs.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-fsys_ext2fs.o `test -f 'fsys_ext2fs.c' || echo '$(srcdir)/'`fsys_ext2fs.c
+ 
+ e2fs_stage1_5_exec-fsys_ext2fs.obj: fsys_ext2fs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-fsys_ext2fs.obj -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Tpo" -c -o e2fs_stage1_5_exec-fsys_ext2fs.obj `if test -f 'fsys_ext2fs.c'; then $(CYGPATH_W) 'fsys_ext2fs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ext2fs.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-fsys_ext2fs.obj -MD -MP -MF $(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Tpo -c -o e2fs_stage1_5_exec-fsys_ext2fs.obj `if test -f 'fsys_ext2fs.c'; then $(CYGPATH_W) 'fsys_ext2fs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ext2fs.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Tpo $(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_ext2fs.c' object='e2fs_stage1_5_exec-fsys_ext2fs.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-fsys_ext2fs.obj `if test -f 'fsys_ext2fs.c'; then $(CYGPATH_W) 'fsys_ext2fs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ext2fs.c'; fi`
+ 
+ e2fs_stage1_5_exec-bios.o: bios.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-bios.o -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-bios.Tpo" -c -o e2fs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/e2fs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-bios.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-bios.o -MD -MP -MF $(DEPDIR)/e2fs_stage1_5_exec-bios.Tpo -c -o e2fs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/e2fs_stage1_5_exec-bios.Tpo $(DEPDIR)/e2fs_stage1_5_exec-bios.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='bios.c' object='e2fs_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
+ 
+ e2fs_stage1_5_exec-bios.obj: bios.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-bios.obj -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-bios.Tpo" -c -o e2fs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/e2fs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-bios.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-bios.obj -MD -MP -MF $(DEPDIR)/e2fs_stage1_5_exec-bios.Tpo -c -o e2fs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/e2fs_stage1_5_exec-bios.Tpo $(DEPDIR)/e2fs_stage1_5_exec-bios.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='bios.c' object='e2fs_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
+ 
+ fat_stage1_5_exec-common.o: common.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-common.Tpo" -c -o fat_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/fat_stage1_5_exec-common.Tpo" "$(DEPDIR)/fat_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-common.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-common.o -MD -MP -MF $(DEPDIR)/fat_stage1_5_exec-common.Tpo -c -o fat_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/fat_stage1_5_exec-common.Tpo $(DEPDIR)/fat_stage1_5_exec-common.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='common.c' object='fat_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
+ 
+ fat_stage1_5_exec-common.obj: common.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-common.obj -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-common.Tpo" -c -o fat_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/fat_stage1_5_exec-common.Tpo" "$(DEPDIR)/fat_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-common.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-common.obj -MD -MP -MF $(DEPDIR)/fat_stage1_5_exec-common.Tpo -c -o fat_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/fat_stage1_5_exec-common.Tpo $(DEPDIR)/fat_stage1_5_exec-common.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='common.c' object='fat_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
+ 
+ fat_stage1_5_exec-char_io.o: char_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-char_io.o -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-char_io.Tpo" -c -o fat_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/fat_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/fat_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-char_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-char_io.o -MD -MP -MF $(DEPDIR)/fat_stage1_5_exec-char_io.Tpo -c -o fat_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/fat_stage1_5_exec-char_io.Tpo $(DEPDIR)/fat_stage1_5_exec-char_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='char_io.c' object='fat_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
+ 
+ fat_stage1_5_exec-char_io.obj: char_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-char_io.Tpo" -c -o fat_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/fat_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/fat_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-char_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-char_io.obj -MD -MP -MF $(DEPDIR)/fat_stage1_5_exec-char_io.Tpo -c -o fat_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/fat_stage1_5_exec-char_io.Tpo $(DEPDIR)/fat_stage1_5_exec-char_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='char_io.c' object='fat_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
+ 
+ fat_stage1_5_exec-disk_io.o: disk_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-disk_io.Tpo" -c -o fat_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/fat_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/fat_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-disk_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-disk_io.o -MD -MP -MF $(DEPDIR)/fat_stage1_5_exec-disk_io.Tpo -c -o fat_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/fat_stage1_5_exec-disk_io.Tpo $(DEPDIR)/fat_stage1_5_exec-disk_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='disk_io.c' object='fat_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
+ 
+ fat_stage1_5_exec-disk_io.obj: disk_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-disk_io.Tpo" -c -o fat_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/fat_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/fat_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-disk_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-disk_io.obj -MD -MP -MF $(DEPDIR)/fat_stage1_5_exec-disk_io.Tpo -c -o fat_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/fat_stage1_5_exec-disk_io.Tpo $(DEPDIR)/fat_stage1_5_exec-disk_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='disk_io.c' object='fat_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
+ 
+ fat_stage1_5_exec-stage1_5.o: stage1_5.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-stage1_5.o -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-stage1_5.Tpo" -c -o fat_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/fat_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/fat_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-stage1_5.o -MD -MP -MF $(DEPDIR)/fat_stage1_5_exec-stage1_5.Tpo -c -o fat_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/fat_stage1_5_exec-stage1_5.Tpo $(DEPDIR)/fat_stage1_5_exec-stage1_5.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='stage1_5.c' object='fat_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c
+ 
+ fat_stage1_5_exec-stage1_5.obj: stage1_5.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-stage1_5.obj -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-stage1_5.Tpo" -c -o fat_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/fat_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/fat_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-stage1_5.obj -MD -MP -MF $(DEPDIR)/fat_stage1_5_exec-stage1_5.Tpo -c -o fat_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/fat_stage1_5_exec-stage1_5.Tpo $(DEPDIR)/fat_stage1_5_exec-stage1_5.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='stage1_5.c' object='fat_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`
+ 
+ fat_stage1_5_exec-fsys_fat.o: fsys_fat.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-fsys_fat.o -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-fsys_fat.Tpo" -c -o fat_stage1_5_exec-fsys_fat.o `test -f 'fsys_fat.c' || echo '$(srcdir)/'`fsys_fat.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/fat_stage1_5_exec-fsys_fat.Tpo" "$(DEPDIR)/fat_stage1_5_exec-fsys_fat.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-fsys_fat.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-fsys_fat.o -MD -MP -MF $(DEPDIR)/fat_stage1_5_exec-fsys_fat.Tpo -c -o fat_stage1_5_exec-fsys_fat.o `test -f 'fsys_fat.c' || echo '$(srcdir)/'`fsys_fat.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/fat_stage1_5_exec-fsys_fat.Tpo $(DEPDIR)/fat_stage1_5_exec-fsys_fat.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_fat.c' object='fat_stage1_5_exec-fsys_fat.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-fsys_fat.o `test -f 'fsys_fat.c' || echo '$(srcdir)/'`fsys_fat.c
+ 
+ fat_stage1_5_exec-fsys_fat.obj: fsys_fat.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-fsys_fat.obj -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-fsys_fat.Tpo" -c -o fat_stage1_5_exec-fsys_fat.obj `if test -f 'fsys_fat.c'; then $(CYGPATH_W) 'fsys_fat.c'; else $(CYGPATH_W) '$(srcdir)/fsys_fat.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/fat_stage1_5_exec-fsys_fat.Tpo" "$(DEPDIR)/fat_stage1_5_exec-fsys_fat.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-fsys_fat.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-fsys_fat.obj -MD -MP -MF $(DEPDIR)/fat_stage1_5_exec-fsys_fat.Tpo -c -o fat_stage1_5_exec-fsys_fat.obj `if test -f 'fsys_fat.c'; then $(CYGPATH_W) 'fsys_fat.c'; else $(CYGPATH_W) '$(srcdir)/fsys_fat.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/fat_stage1_5_exec-fsys_fat.Tpo $(DEPDIR)/fat_stage1_5_exec-fsys_fat.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_fat.c' object='fat_stage1_5_exec-fsys_fat.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-fsys_fat.obj `if test -f 'fsys_fat.c'; then $(CYGPATH_W) 'fsys_fat.c'; else $(CYGPATH_W) '$(srcdir)/fsys_fat.c'; fi`
+ 
+ fat_stage1_5_exec-bios.o: bios.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-bios.o -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-bios.Tpo" -c -o fat_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/fat_stage1_5_exec-bios.Tpo" "$(DEPDIR)/fat_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-bios.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-bios.o -MD -MP -MF $(DEPDIR)/fat_stage1_5_exec-bios.Tpo -c -o fat_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/fat_stage1_5_exec-bios.Tpo $(DEPDIR)/fat_stage1_5_exec-bios.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='bios.c' object='fat_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
+ 
+ fat_stage1_5_exec-bios.obj: bios.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-bios.obj -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-bios.Tpo" -c -o fat_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/fat_stage1_5_exec-bios.Tpo" "$(DEPDIR)/fat_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-bios.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-bios.obj -MD -MP -MF $(DEPDIR)/fat_stage1_5_exec-bios.Tpo -c -o fat_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/fat_stage1_5_exec-bios.Tpo $(DEPDIR)/fat_stage1_5_exec-bios.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='bios.c' object='fat_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
+ 
+ ffs_stage1_5_exec-common.o: common.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-common.Tpo" -c -o ffs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/ffs_stage1_5_exec-common.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-common.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-common.o -MD -MP -MF $(DEPDIR)/ffs_stage1_5_exec-common.Tpo -c -o ffs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/ffs_stage1_5_exec-common.Tpo $(DEPDIR)/ffs_stage1_5_exec-common.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='common.c' object='ffs_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ffs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
+ 
+ ffs_stage1_5_exec-common.obj: common.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-common.obj -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-common.Tpo" -c -o ffs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/ffs_stage1_5_exec-common.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-common.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-common.obj -MD -MP -MF $(DEPDIR)/ffs_stage1_5_exec-common.Tpo -c -o ffs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/ffs_stage1_5_exec-common.Tpo $(DEPDIR)/ffs_stage1_5_exec-common.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='common.c' object='ffs_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ffs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
+ 
+ ffs_stage1_5_exec-char_io.o: char_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-char_io.o -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-char_io.Tpo" -c -o ffs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/ffs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-char_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-char_io.o -MD -MP -MF $(DEPDIR)/ffs_stage1_5_exec-char_io.Tpo -c -o ffs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/ffs_stage1_5_exec-char_io.Tpo $(DEPDIR)/ffs_stage1_5_exec-char_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='char_io.c' object='ffs_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ffs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
+ 
+ ffs_stage1_5_exec-char_io.obj: char_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-char_io.Tpo" -c -o ffs_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/ffs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-char_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-char_io.obj -MD -MP -MF $(DEPDIR)/ffs_stage1_5_exec-char_io.Tpo -c -o ffs_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/ffs_stage1_5_exec-char_io.Tpo $(DEPDIR)/ffs_stage1_5_exec-char_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='char_io.c' object='ffs_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ffs_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
+ 
+ ffs_stage1_5_exec-disk_io.o: disk_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-disk_io.Tpo" -c -o ffs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/ffs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-disk_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-disk_io.o -MD -MP -MF $(DEPDIR)/ffs_stage1_5_exec-disk_io.Tpo -c -o ffs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/ffs_stage1_5_exec-disk_io.Tpo $(DEPDIR)/ffs_stage1_5_exec-disk_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='disk_io.c' object='ffs_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ffs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
+ 
+ ffs_stage1_5_exec-disk_io.obj: disk_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-disk_io.Tpo" -c -o ffs_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/ffs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-disk_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-disk_io.obj -MD -MP -MF $(DEPDIR)/ffs_stage1_5_exec-disk_io.Tpo -c -o ffs_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/ffs_stage1_5_exec-disk_io.Tpo $(DEPDIR)/ffs_stage1_5_exec-disk_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='disk_io.c' object='ffs_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ffs_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
+ 
+ ffs_stage1_5_exec-stage1_5.o: stage1_5.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-stage1_5.o -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-stage1_5.Tpo" -c -o ffs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/ffs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-stage1_5.o -MD -MP -MF $(DEPDIR)/ffs_stage1_5_exec-stage1_5.Tpo -c -o ffs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/ffs_stage1_5_exec-stage1_5.Tpo $(DEPDIR)/ffs_stage1_5_exec-stage1_5.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='stage1_5.c' object='ffs_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ffs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c
+ 
+ ffs_stage1_5_exec-stage1_5.obj: stage1_5.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-stage1_5.obj -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-stage1_5.Tpo" -c -o ffs_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/ffs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-stage1_5.obj -MD -MP -MF $(DEPDIR)/ffs_stage1_5_exec-stage1_5.Tpo -c -o ffs_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/ffs_stage1_5_exec-stage1_5.Tpo $(DEPDIR)/ffs_stage1_5_exec-stage1_5.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='stage1_5.c' object='ffs_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ffs_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`
+ 
+ ffs_stage1_5_exec-fsys_ffs.o: fsys_ffs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-fsys_ffs.o -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Tpo" -c -o ffs_stage1_5_exec-fsys_ffs.o `test -f 'fsys_ffs.c' || echo '$(srcdir)/'`fsys_ffs.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-fsys_ffs.o -MD -MP -MF $(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Tpo -c -o ffs_stage1_5_exec-fsys_ffs.o `test -f 'fsys_ffs.c' || echo '$(srcdir)/'`fsys_ffs.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Tpo $(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_ffs.c' object='ffs_stage1_5_exec-fsys_ffs.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ffs_stage1_5_exec-fsys_ffs.o `test -f 'fsys_ffs.c' || echo '$(srcdir)/'`fsys_ffs.c
+ 
+ ffs_stage1_5_exec-fsys_ffs.obj: fsys_ffs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-fsys_ffs.obj -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Tpo" -c -o ffs_stage1_5_exec-fsys_ffs.obj `if test -f 'fsys_ffs.c'; then $(CYGPATH_W) 'fsys_ffs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ffs.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-fsys_ffs.obj -MD -MP -MF $(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Tpo -c -o ffs_stage1_5_exec-fsys_ffs.obj `if test -f 'fsys_ffs.c'; then $(CYGPATH_W) 'fsys_ffs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ffs.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Tpo $(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_ffs.c' object='ffs_stage1_5_exec-fsys_ffs.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ffs_stage1_5_exec-fsys_ffs.obj `if test -f 'fsys_ffs.c'; then $(CYGPATH_W) 'fsys_ffs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ffs.c'; fi`
+ 
+ ffs_stage1_5_exec-bios.o: bios.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-bios.o -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-bios.Tpo" -c -o ffs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/ffs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-bios.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-bios.o -MD -MP -MF $(DEPDIR)/ffs_stage1_5_exec-bios.Tpo -c -o ffs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/ffs_stage1_5_exec-bios.Tpo $(DEPDIR)/ffs_stage1_5_exec-bios.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='bios.c' object='ffs_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ffs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
+ 
+ ffs_stage1_5_exec-bios.obj: bios.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-bios.obj -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-bios.Tpo" -c -o ffs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/ffs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-bios.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-bios.obj -MD -MP -MF $(DEPDIR)/ffs_stage1_5_exec-bios.Tpo -c -o ffs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/ffs_stage1_5_exec-bios.Tpo $(DEPDIR)/ffs_stage1_5_exec-bios.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='bios.c' object='ffs_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ffs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
+ 
+ iso9660_stage1_5_exec-common.o: common.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-common.Tpo" -c -o iso9660_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/iso9660_stage1_5_exec-common.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-common.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-common.o -MD -MP -MF $(DEPDIR)/iso9660_stage1_5_exec-common.Tpo -c -o iso9660_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/iso9660_stage1_5_exec-common.Tpo $(DEPDIR)/iso9660_stage1_5_exec-common.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='common.c' object='iso9660_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
+ 
+ iso9660_stage1_5_exec-common.obj: common.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-common.obj -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-common.Tpo" -c -o iso9660_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/iso9660_stage1_5_exec-common.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-common.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-common.obj -MD -MP -MF $(DEPDIR)/iso9660_stage1_5_exec-common.Tpo -c -o iso9660_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/iso9660_stage1_5_exec-common.Tpo $(DEPDIR)/iso9660_stage1_5_exec-common.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='common.c' object='iso9660_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
+ 
+ iso9660_stage1_5_exec-char_io.o: char_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-char_io.o -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-char_io.Tpo" -c -o iso9660_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/iso9660_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-char_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-char_io.o -MD -MP -MF $(DEPDIR)/iso9660_stage1_5_exec-char_io.Tpo -c -o iso9660_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/iso9660_stage1_5_exec-char_io.Tpo $(DEPDIR)/iso9660_stage1_5_exec-char_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='char_io.c' object='iso9660_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
+ 
+ iso9660_stage1_5_exec-char_io.obj: char_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-char_io.Tpo" -c -o iso9660_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/iso9660_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-char_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-char_io.obj -MD -MP -MF $(DEPDIR)/iso9660_stage1_5_exec-char_io.Tpo -c -o iso9660_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/iso9660_stage1_5_exec-char_io.Tpo $(DEPDIR)/iso9660_stage1_5_exec-char_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='char_io.c' object='iso9660_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
+ 
+ iso9660_stage1_5_exec-disk_io.o: disk_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Tpo" -c -o iso9660_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-disk_io.o -MD -MP -MF $(DEPDIR)/iso9660_stage1_5_exec-disk_io.Tpo -c -o iso9660_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/iso9660_stage1_5_exec-disk_io.Tpo $(DEPDIR)/iso9660_stage1_5_exec-disk_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='disk_io.c' object='iso9660_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
+ 
+ iso9660_stage1_5_exec-disk_io.obj: disk_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Tpo" -c -o iso9660_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-disk_io.obj -MD -MP -MF $(DEPDIR)/iso9660_stage1_5_exec-disk_io.Tpo -c -o iso9660_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/iso9660_stage1_5_exec-disk_io.Tpo $(DEPDIR)/iso9660_stage1_5_exec-disk_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='disk_io.c' object='iso9660_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
+ 
+ iso9660_stage1_5_exec-stage1_5.o: stage1_5.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-stage1_5.o -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Tpo" -c -o iso9660_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-stage1_5.o -MD -MP -MF $(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Tpo -c -o iso9660_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Tpo $(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='stage1_5.c' object='iso9660_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c
+ 
+ iso9660_stage1_5_exec-stage1_5.obj: stage1_5.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-stage1_5.obj -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Tpo" -c -o iso9660_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-stage1_5.obj -MD -MP -MF $(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Tpo -c -o iso9660_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Tpo $(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='stage1_5.c' object='iso9660_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`
+ 
+ iso9660_stage1_5_exec-fsys_iso9660.o: fsys_iso9660.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-fsys_iso9660.o -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Tpo" -c -o iso9660_stage1_5_exec-fsys_iso9660.o `test -f 'fsys_iso9660.c' || echo '$(srcdir)/'`fsys_iso9660.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-fsys_iso9660.o -MD -MP -MF $(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Tpo -c -o iso9660_stage1_5_exec-fsys_iso9660.o `test -f 'fsys_iso9660.c' || echo '$(srcdir)/'`fsys_iso9660.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Tpo $(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_iso9660.c' object='iso9660_stage1_5_exec-fsys_iso9660.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-fsys_iso9660.o `test -f 'fsys_iso9660.c' || echo '$(srcdir)/'`fsys_iso9660.c
+ 
+ iso9660_stage1_5_exec-fsys_iso9660.obj: fsys_iso9660.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-fsys_iso9660.obj -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Tpo" -c -o iso9660_stage1_5_exec-fsys_iso9660.obj `if test -f 'fsys_iso9660.c'; then $(CYGPATH_W) 'fsys_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/fsys_iso9660.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-fsys_iso9660.obj -MD -MP -MF $(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Tpo -c -o iso9660_stage1_5_exec-fsys_iso9660.obj `if test -f 'fsys_iso9660.c'; then $(CYGPATH_W) 'fsys_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/fsys_iso9660.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Tpo $(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_iso9660.c' object='iso9660_stage1_5_exec-fsys_iso9660.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-fsys_iso9660.obj `if test -f 'fsys_iso9660.c'; then $(CYGPATH_W) 'fsys_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/fsys_iso9660.c'; fi`
+ 
+ iso9660_stage1_5_exec-bios.o: bios.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-bios.o -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-bios.Tpo" -c -o iso9660_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/iso9660_stage1_5_exec-bios.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-bios.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-bios.o -MD -MP -MF $(DEPDIR)/iso9660_stage1_5_exec-bios.Tpo -c -o iso9660_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/iso9660_stage1_5_exec-bios.Tpo $(DEPDIR)/iso9660_stage1_5_exec-bios.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='bios.c' object='iso9660_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
+ 
+ iso9660_stage1_5_exec-bios.obj: bios.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-bios.obj -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-bios.Tpo" -c -o iso9660_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/iso9660_stage1_5_exec-bios.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-bios.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-bios.obj -MD -MP -MF $(DEPDIR)/iso9660_stage1_5_exec-bios.Tpo -c -o iso9660_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/iso9660_stage1_5_exec-bios.Tpo $(DEPDIR)/iso9660_stage1_5_exec-bios.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='bios.c' object='iso9660_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
+ 
+ jfs_stage1_5_exec-common.o: common.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-common.Tpo" -c -o jfs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/jfs_stage1_5_exec-common.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-common.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-common.o -MD -MP -MF $(DEPDIR)/jfs_stage1_5_exec-common.Tpo -c -o jfs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/jfs_stage1_5_exec-common.Tpo $(DEPDIR)/jfs_stage1_5_exec-common.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='common.c' object='jfs_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
+ 
+ jfs_stage1_5_exec-common.obj: common.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-common.obj -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-common.Tpo" -c -o jfs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/jfs_stage1_5_exec-common.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-common.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-common.obj -MD -MP -MF $(DEPDIR)/jfs_stage1_5_exec-common.Tpo -c -o jfs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/jfs_stage1_5_exec-common.Tpo $(DEPDIR)/jfs_stage1_5_exec-common.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='common.c' object='jfs_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
+ 
+ jfs_stage1_5_exec-char_io.o: char_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-char_io.o -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-char_io.Tpo" -c -o jfs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/jfs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-char_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-char_io.o -MD -MP -MF $(DEPDIR)/jfs_stage1_5_exec-char_io.Tpo -c -o jfs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/jfs_stage1_5_exec-char_io.Tpo $(DEPDIR)/jfs_stage1_5_exec-char_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='char_io.c' object='jfs_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
+ 
+ jfs_stage1_5_exec-char_io.obj: char_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-char_io.Tpo" -c -o jfs_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/jfs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-char_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-char_io.obj -MD -MP -MF $(DEPDIR)/jfs_stage1_5_exec-char_io.Tpo -c -o jfs_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/jfs_stage1_5_exec-char_io.Tpo $(DEPDIR)/jfs_stage1_5_exec-char_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='char_io.c' object='jfs_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
+ 
+ jfs_stage1_5_exec-disk_io.o: disk_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-disk_io.Tpo" -c -o jfs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/jfs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-disk_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-disk_io.o -MD -MP -MF $(DEPDIR)/jfs_stage1_5_exec-disk_io.Tpo -c -o jfs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/jfs_stage1_5_exec-disk_io.Tpo $(DEPDIR)/jfs_stage1_5_exec-disk_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='disk_io.c' object='jfs_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
+ 
+ jfs_stage1_5_exec-disk_io.obj: disk_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-disk_io.Tpo" -c -o jfs_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/jfs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-disk_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-disk_io.obj -MD -MP -MF $(DEPDIR)/jfs_stage1_5_exec-disk_io.Tpo -c -o jfs_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/jfs_stage1_5_exec-disk_io.Tpo $(DEPDIR)/jfs_stage1_5_exec-disk_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='disk_io.c' object='jfs_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
+ 
+ jfs_stage1_5_exec-stage1_5.o: stage1_5.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-stage1_5.o -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Tpo" -c -o jfs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-stage1_5.o -MD -MP -MF $(DEPDIR)/jfs_stage1_5_exec-stage1_5.Tpo -c -o jfs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/jfs_stage1_5_exec-stage1_5.Tpo $(DEPDIR)/jfs_stage1_5_exec-stage1_5.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='stage1_5.c' object='jfs_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c
+ 
+ jfs_stage1_5_exec-stage1_5.obj: stage1_5.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-stage1_5.obj -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Tpo" -c -o jfs_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-stage1_5.obj -MD -MP -MF $(DEPDIR)/jfs_stage1_5_exec-stage1_5.Tpo -c -o jfs_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/jfs_stage1_5_exec-stage1_5.Tpo $(DEPDIR)/jfs_stage1_5_exec-stage1_5.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='stage1_5.c' object='jfs_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`
+ 
+ jfs_stage1_5_exec-fsys_jfs.o: fsys_jfs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-fsys_jfs.o -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Tpo" -c -o jfs_stage1_5_exec-fsys_jfs.o `test -f 'fsys_jfs.c' || echo '$(srcdir)/'`fsys_jfs.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-fsys_jfs.o -MD -MP -MF $(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Tpo -c -o jfs_stage1_5_exec-fsys_jfs.o `test -f 'fsys_jfs.c' || echo '$(srcdir)/'`fsys_jfs.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Tpo $(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_jfs.c' object='jfs_stage1_5_exec-fsys_jfs.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-fsys_jfs.o `test -f 'fsys_jfs.c' || echo '$(srcdir)/'`fsys_jfs.c
+ 
+ jfs_stage1_5_exec-fsys_jfs.obj: fsys_jfs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-fsys_jfs.obj -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Tpo" -c -o jfs_stage1_5_exec-fsys_jfs.obj `if test -f 'fsys_jfs.c'; then $(CYGPATH_W) 'fsys_jfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_jfs.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-fsys_jfs.obj -MD -MP -MF $(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Tpo -c -o jfs_stage1_5_exec-fsys_jfs.obj `if test -f 'fsys_jfs.c'; then $(CYGPATH_W) 'fsys_jfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_jfs.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Tpo $(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_jfs.c' object='jfs_stage1_5_exec-fsys_jfs.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-fsys_jfs.obj `if test -f 'fsys_jfs.c'; then $(CYGPATH_W) 'fsys_jfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_jfs.c'; fi`
+ 
+ jfs_stage1_5_exec-bios.o: bios.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-bios.o -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-bios.Tpo" -c -o jfs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/jfs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-bios.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-bios.o -MD -MP -MF $(DEPDIR)/jfs_stage1_5_exec-bios.Tpo -c -o jfs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/jfs_stage1_5_exec-bios.Tpo $(DEPDIR)/jfs_stage1_5_exec-bios.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='bios.c' object='jfs_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
+ 
+ jfs_stage1_5_exec-bios.obj: bios.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-bios.obj -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-bios.Tpo" -c -o jfs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/jfs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-bios.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-bios.obj -MD -MP -MF $(DEPDIR)/jfs_stage1_5_exec-bios.Tpo -c -o jfs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/jfs_stage1_5_exec-bios.Tpo $(DEPDIR)/jfs_stage1_5_exec-bios.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='bios.c' object='jfs_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
+ 
+ minix_stage1_5_exec-common.o: common.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-common.Tpo" -c -o minix_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/minix_stage1_5_exec-common.Tpo" "$(DEPDIR)/minix_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-common.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-common.o -MD -MP -MF $(DEPDIR)/minix_stage1_5_exec-common.Tpo -c -o minix_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/minix_stage1_5_exec-common.Tpo $(DEPDIR)/minix_stage1_5_exec-common.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='common.c' object='minix_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
+ 
+ minix_stage1_5_exec-common.obj: common.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-common.obj -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-common.Tpo" -c -o minix_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/minix_stage1_5_exec-common.Tpo" "$(DEPDIR)/minix_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-common.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-common.obj -MD -MP -MF $(DEPDIR)/minix_stage1_5_exec-common.Tpo -c -o minix_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/minix_stage1_5_exec-common.Tpo $(DEPDIR)/minix_stage1_5_exec-common.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='common.c' object='minix_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
+ 
+ minix_stage1_5_exec-char_io.o: char_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-char_io.o -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-char_io.Tpo" -c -o minix_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/minix_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/minix_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-char_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-char_io.o -MD -MP -MF $(DEPDIR)/minix_stage1_5_exec-char_io.Tpo -c -o minix_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/minix_stage1_5_exec-char_io.Tpo $(DEPDIR)/minix_stage1_5_exec-char_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='char_io.c' object='minix_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
+ 
+ minix_stage1_5_exec-char_io.obj: char_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-char_io.Tpo" -c -o minix_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/minix_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/minix_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-char_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-char_io.obj -MD -MP -MF $(DEPDIR)/minix_stage1_5_exec-char_io.Tpo -c -o minix_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/minix_stage1_5_exec-char_io.Tpo $(DEPDIR)/minix_stage1_5_exec-char_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='char_io.c' object='minix_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
+ 
+ minix_stage1_5_exec-disk_io.o: disk_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-disk_io.Tpo" -c -o minix_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/minix_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/minix_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-disk_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-disk_io.o -MD -MP -MF $(DEPDIR)/minix_stage1_5_exec-disk_io.Tpo -c -o minix_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/minix_stage1_5_exec-disk_io.Tpo $(DEPDIR)/minix_stage1_5_exec-disk_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='disk_io.c' object='minix_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
+ 
+ minix_stage1_5_exec-disk_io.obj: disk_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-disk_io.Tpo" -c -o minix_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/minix_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/minix_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-disk_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-disk_io.obj -MD -MP -MF $(DEPDIR)/minix_stage1_5_exec-disk_io.Tpo -c -o minix_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/minix_stage1_5_exec-disk_io.Tpo $(DEPDIR)/minix_stage1_5_exec-disk_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='disk_io.c' object='minix_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
+ 
+ minix_stage1_5_exec-stage1_5.o: stage1_5.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-stage1_5.o -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-stage1_5.Tpo" -c -o minix_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/minix_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/minix_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-stage1_5.o -MD -MP -MF $(DEPDIR)/minix_stage1_5_exec-stage1_5.Tpo -c -o minix_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/minix_stage1_5_exec-stage1_5.Tpo $(DEPDIR)/minix_stage1_5_exec-stage1_5.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='stage1_5.c' object='minix_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c
+ 
+ minix_stage1_5_exec-stage1_5.obj: stage1_5.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-stage1_5.obj -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-stage1_5.Tpo" -c -o minix_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/minix_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/minix_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-stage1_5.obj -MD -MP -MF $(DEPDIR)/minix_stage1_5_exec-stage1_5.Tpo -c -o minix_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/minix_stage1_5_exec-stage1_5.Tpo $(DEPDIR)/minix_stage1_5_exec-stage1_5.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='stage1_5.c' object='minix_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`
+ 
+ minix_stage1_5_exec-fsys_minix.o: fsys_minix.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-fsys_minix.o -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-fsys_minix.Tpo" -c -o minix_stage1_5_exec-fsys_minix.o `test -f 'fsys_minix.c' || echo '$(srcdir)/'`fsys_minix.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/minix_stage1_5_exec-fsys_minix.Tpo" "$(DEPDIR)/minix_stage1_5_exec-fsys_minix.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-fsys_minix.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-fsys_minix.o -MD -MP -MF $(DEPDIR)/minix_stage1_5_exec-fsys_minix.Tpo -c -o minix_stage1_5_exec-fsys_minix.o `test -f 'fsys_minix.c' || echo '$(srcdir)/'`fsys_minix.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/minix_stage1_5_exec-fsys_minix.Tpo $(DEPDIR)/minix_stage1_5_exec-fsys_minix.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_minix.c' object='minix_stage1_5_exec-fsys_minix.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-fsys_minix.o `test -f 'fsys_minix.c' || echo '$(srcdir)/'`fsys_minix.c
+ 
+ minix_stage1_5_exec-fsys_minix.obj: fsys_minix.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-fsys_minix.obj -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-fsys_minix.Tpo" -c -o minix_stage1_5_exec-fsys_minix.obj `if test -f 'fsys_minix.c'; then $(CYGPATH_W) 'fsys_minix.c'; else $(CYGPATH_W) '$(srcdir)/fsys_minix.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/minix_stage1_5_exec-fsys_minix.Tpo" "$(DEPDIR)/minix_stage1_5_exec-fsys_minix.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-fsys_minix.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-fsys_minix.obj -MD -MP -MF $(DEPDIR)/minix_stage1_5_exec-fsys_minix.Tpo -c -o minix_stage1_5_exec-fsys_minix.obj `if test -f 'fsys_minix.c'; then $(CYGPATH_W) 'fsys_minix.c'; else $(CYGPATH_W) '$(srcdir)/fsys_minix.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/minix_stage1_5_exec-fsys_minix.Tpo $(DEPDIR)/minix_stage1_5_exec-fsys_minix.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_minix.c' object='minix_stage1_5_exec-fsys_minix.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-fsys_minix.obj `if test -f 'fsys_minix.c'; then $(CYGPATH_W) 'fsys_minix.c'; else $(CYGPATH_W) '$(srcdir)/fsys_minix.c'; fi`
+ 
+ minix_stage1_5_exec-bios.o: bios.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-bios.o -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-bios.Tpo" -c -o minix_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/minix_stage1_5_exec-bios.Tpo" "$(DEPDIR)/minix_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-bios.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-bios.o -MD -MP -MF $(DEPDIR)/minix_stage1_5_exec-bios.Tpo -c -o minix_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/minix_stage1_5_exec-bios.Tpo $(DEPDIR)/minix_stage1_5_exec-bios.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='bios.c' object='minix_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
+ 
+ minix_stage1_5_exec-bios.obj: bios.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-bios.obj -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-bios.Tpo" -c -o minix_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/minix_stage1_5_exec-bios.Tpo" "$(DEPDIR)/minix_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-bios.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-bios.obj -MD -MP -MF $(DEPDIR)/minix_stage1_5_exec-bios.Tpo -c -o minix_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/minix_stage1_5_exec-bios.Tpo $(DEPDIR)/minix_stage1_5_exec-bios.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='bios.c' object='minix_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
+ 
+ pre_stage2_exec-bios.o: bios.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-bios.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-bios.Tpo" -c -o pre_stage2_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-bios.Tpo" "$(DEPDIR)/pre_stage2_exec-bios.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-bios.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-bios.o -MD -MP -MF $(DEPDIR)/pre_stage2_exec-bios.Tpo -c -o pre_stage2_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-bios.Tpo $(DEPDIR)/pre_stage2_exec-bios.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='bios.c' object='pre_stage2_exec-bios.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
+ 
+ pre_stage2_exec-bios.obj: bios.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-bios.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-bios.Tpo" -c -o pre_stage2_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-bios.Tpo" "$(DEPDIR)/pre_stage2_exec-bios.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-bios.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-bios.obj -MD -MP -MF $(DEPDIR)/pre_stage2_exec-bios.Tpo -c -o pre_stage2_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-bios.Tpo $(DEPDIR)/pre_stage2_exec-bios.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='bios.c' object='pre_stage2_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
+ 
+ pre_stage2_exec-boot.o: boot.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-boot.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-boot.Tpo" -c -o pre_stage2_exec-boot.o `test -f 'boot.c' || echo '$(srcdir)/'`boot.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-boot.Tpo" "$(DEPDIR)/pre_stage2_exec-boot.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-boot.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-boot.o -MD -MP -MF $(DEPDIR)/pre_stage2_exec-boot.Tpo -c -o pre_stage2_exec-boot.o `test -f 'boot.c' || echo '$(srcdir)/'`boot.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-boot.Tpo $(DEPDIR)/pre_stage2_exec-boot.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='boot.c' object='pre_stage2_exec-boot.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-boot.o `test -f 'boot.c' || echo '$(srcdir)/'`boot.c
+ 
+ pre_stage2_exec-boot.obj: boot.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-boot.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-boot.Tpo" -c -o pre_stage2_exec-boot.obj `if test -f 'boot.c'; then $(CYGPATH_W) 'boot.c'; else $(CYGPATH_W) '$(srcdir)/boot.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-boot.Tpo" "$(DEPDIR)/pre_stage2_exec-boot.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-boot.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-boot.obj -MD -MP -MF $(DEPDIR)/pre_stage2_exec-boot.Tpo -c -o pre_stage2_exec-boot.obj `if test -f 'boot.c'; then $(CYGPATH_W) 'boot.c'; else $(CYGPATH_W) '$(srcdir)/boot.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-boot.Tpo $(DEPDIR)/pre_stage2_exec-boot.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='boot.c' object='pre_stage2_exec-boot.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-boot.obj `if test -f 'boot.c'; then $(CYGPATH_W) 'boot.c'; else $(CYGPATH_W) '$(srcdir)/boot.c'; fi`
+ 
+ pre_stage2_exec-builtins.o: builtins.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-builtins.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-builtins.Tpo" -c -o pre_stage2_exec-builtins.o `test -f 'builtins.c' || echo '$(srcdir)/'`builtins.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-builtins.Tpo" "$(DEPDIR)/pre_stage2_exec-builtins.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-builtins.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-builtins.o -MD -MP -MF $(DEPDIR)/pre_stage2_exec-builtins.Tpo -c -o pre_stage2_exec-builtins.o `test -f 'builtins.c' || echo '$(srcdir)/'`builtins.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-builtins.Tpo $(DEPDIR)/pre_stage2_exec-builtins.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='builtins.c' object='pre_stage2_exec-builtins.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-builtins.o `test -f 'builtins.c' || echo '$(srcdir)/'`builtins.c
+ 
+ pre_stage2_exec-builtins.obj: builtins.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-builtins.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-builtins.Tpo" -c -o pre_stage2_exec-builtins.obj `if test -f 'builtins.c'; then $(CYGPATH_W) 'builtins.c'; else $(CYGPATH_W) '$(srcdir)/builtins.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-builtins.Tpo" "$(DEPDIR)/pre_stage2_exec-builtins.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-builtins.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-builtins.obj -MD -MP -MF $(DEPDIR)/pre_stage2_exec-builtins.Tpo -c -o pre_stage2_exec-builtins.obj `if test -f 'builtins.c'; then $(CYGPATH_W) 'builtins.c'; else $(CYGPATH_W) '$(srcdir)/builtins.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-builtins.Tpo $(DEPDIR)/pre_stage2_exec-builtins.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='builtins.c' object='pre_stage2_exec-builtins.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-builtins.obj `if test -f 'builtins.c'; then $(CYGPATH_W) 'builtins.c'; else $(CYGPATH_W) '$(srcdir)/builtins.c'; fi`
+ 
+ pre_stage2_exec-char_io.o: char_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-char_io.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-char_io.Tpo" -c -o pre_stage2_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-char_io.Tpo" "$(DEPDIR)/pre_stage2_exec-char_io.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-char_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-char_io.o -MD -MP -MF $(DEPDIR)/pre_stage2_exec-char_io.Tpo -c -o pre_stage2_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-char_io.Tpo $(DEPDIR)/pre_stage2_exec-char_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='char_io.c' object='pre_stage2_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
+ 
+ pre_stage2_exec-char_io.obj: char_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-char_io.Tpo" -c -o pre_stage2_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-char_io.Tpo" "$(DEPDIR)/pre_stage2_exec-char_io.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-char_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-char_io.obj -MD -MP -MF $(DEPDIR)/pre_stage2_exec-char_io.Tpo -c -o pre_stage2_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-char_io.Tpo $(DEPDIR)/pre_stage2_exec-char_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='char_io.c' object='pre_stage2_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
+ 
+ pre_stage2_exec-cmdline.o: cmdline.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-cmdline.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-cmdline.Tpo" -c -o pre_stage2_exec-cmdline.o `test -f 'cmdline.c' || echo '$(srcdir)/'`cmdline.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-cmdline.Tpo" "$(DEPDIR)/pre_stage2_exec-cmdline.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-cmdline.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-cmdline.o -MD -MP -MF $(DEPDIR)/pre_stage2_exec-cmdline.Tpo -c -o pre_stage2_exec-cmdline.o `test -f 'cmdline.c' || echo '$(srcdir)/'`cmdline.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-cmdline.Tpo $(DEPDIR)/pre_stage2_exec-cmdline.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='cmdline.c' object='pre_stage2_exec-cmdline.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-cmdline.o `test -f 'cmdline.c' || echo '$(srcdir)/'`cmdline.c
+ 
+ pre_stage2_exec-cmdline.obj: cmdline.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-cmdline.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-cmdline.Tpo" -c -o pre_stage2_exec-cmdline.obj `if test -f 'cmdline.c'; then $(CYGPATH_W) 'cmdline.c'; else $(CYGPATH_W) '$(srcdir)/cmdline.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-cmdline.Tpo" "$(DEPDIR)/pre_stage2_exec-cmdline.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-cmdline.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-cmdline.obj -MD -MP -MF $(DEPDIR)/pre_stage2_exec-cmdline.Tpo -c -o pre_stage2_exec-cmdline.obj `if test -f 'cmdline.c'; then $(CYGPATH_W) 'cmdline.c'; else $(CYGPATH_W) '$(srcdir)/cmdline.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-cmdline.Tpo $(DEPDIR)/pre_stage2_exec-cmdline.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='cmdline.c' object='pre_stage2_exec-cmdline.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-cmdline.obj `if test -f 'cmdline.c'; then $(CYGPATH_W) 'cmdline.c'; else $(CYGPATH_W) '$(srcdir)/cmdline.c'; fi`
+ 
+ pre_stage2_exec-common.o: common.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-common.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-common.Tpo" -c -o pre_stage2_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-common.Tpo" "$(DEPDIR)/pre_stage2_exec-common.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-common.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-common.o -MD -MP -MF $(DEPDIR)/pre_stage2_exec-common.Tpo -c -o pre_stage2_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-common.Tpo $(DEPDIR)/pre_stage2_exec-common.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='common.c' object='pre_stage2_exec-common.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
+ 
+ pre_stage2_exec-common.obj: common.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-common.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-common.Tpo" -c -o pre_stage2_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-common.Tpo" "$(DEPDIR)/pre_stage2_exec-common.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-common.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-common.obj -MD -MP -MF $(DEPDIR)/pre_stage2_exec-common.Tpo -c -o pre_stage2_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-common.Tpo $(DEPDIR)/pre_stage2_exec-common.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='common.c' object='pre_stage2_exec-common.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
+ 
+ pre_stage2_exec-console.o: console.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-console.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-console.Tpo" -c -o pre_stage2_exec-console.o `test -f 'console.c' || echo '$(srcdir)/'`console.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-console.Tpo" "$(DEPDIR)/pre_stage2_exec-console.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-console.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-console.o -MD -MP -MF $(DEPDIR)/pre_stage2_exec-console.Tpo -c -o pre_stage2_exec-console.o `test -f 'console.c' || echo '$(srcdir)/'`console.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-console.Tpo $(DEPDIR)/pre_stage2_exec-console.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='console.c' object='pre_stage2_exec-console.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-console.o `test -f 'console.c' || echo '$(srcdir)/'`console.c
+ 
+ pre_stage2_exec-console.obj: console.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-console.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-console.Tpo" -c -o pre_stage2_exec-console.obj `if test -f 'console.c'; then $(CYGPATH_W) 'console.c'; else $(CYGPATH_W) '$(srcdir)/console.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-console.Tpo" "$(DEPDIR)/pre_stage2_exec-console.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-console.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-console.obj -MD -MP -MF $(DEPDIR)/pre_stage2_exec-console.Tpo -c -o pre_stage2_exec-console.obj `if test -f 'console.c'; then $(CYGPATH_W) 'console.c'; else $(CYGPATH_W) '$(srcdir)/console.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-console.Tpo $(DEPDIR)/pre_stage2_exec-console.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='console.c' object='pre_stage2_exec-console.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-console.obj `if test -f 'console.c'; then $(CYGPATH_W) 'console.c'; else $(CYGPATH_W) '$(srcdir)/console.c'; fi`
+ 
+ pre_stage2_exec-disk_io.o: disk_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-disk_io.Tpo" -c -o pre_stage2_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-disk_io.Tpo" "$(DEPDIR)/pre_stage2_exec-disk_io.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-disk_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-disk_io.o -MD -MP -MF $(DEPDIR)/pre_stage2_exec-disk_io.Tpo -c -o pre_stage2_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-disk_io.Tpo $(DEPDIR)/pre_stage2_exec-disk_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='disk_io.c' object='pre_stage2_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
+ 
+ pre_stage2_exec-disk_io.obj: disk_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-disk_io.Tpo" -c -o pre_stage2_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-disk_io.Tpo" "$(DEPDIR)/pre_stage2_exec-disk_io.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-disk_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-disk_io.obj -MD -MP -MF $(DEPDIR)/pre_stage2_exec-disk_io.Tpo -c -o pre_stage2_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-disk_io.Tpo $(DEPDIR)/pre_stage2_exec-disk_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='disk_io.c' object='pre_stage2_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
+ 
+ pre_stage2_exec-fsys_ext2fs.o: fsys_ext2fs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_ext2fs.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Tpo" -c -o pre_stage2_exec-fsys_ext2fs.o `test -f 'fsys_ext2fs.c' || echo '$(srcdir)/'`fsys_ext2fs.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_ext2fs.o -MD -MP -MF $(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Tpo -c -o pre_stage2_exec-fsys_ext2fs.o `test -f 'fsys_ext2fs.c' || echo '$(srcdir)/'`fsys_ext2fs.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Tpo $(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_ext2fs.c' object='pre_stage2_exec-fsys_ext2fs.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_ext2fs.o `test -f 'fsys_ext2fs.c' || echo '$(srcdir)/'`fsys_ext2fs.c
+ 
+ pre_stage2_exec-fsys_ext2fs.obj: fsys_ext2fs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_ext2fs.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Tpo" -c -o pre_stage2_exec-fsys_ext2fs.obj `if test -f 'fsys_ext2fs.c'; then $(CYGPATH_W) 'fsys_ext2fs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ext2fs.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_ext2fs.obj -MD -MP -MF $(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Tpo -c -o pre_stage2_exec-fsys_ext2fs.obj `if test -f 'fsys_ext2fs.c'; then $(CYGPATH_W) 'fsys_ext2fs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ext2fs.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Tpo $(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_ext2fs.c' object='pre_stage2_exec-fsys_ext2fs.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_ext2fs.obj `if test -f 'fsys_ext2fs.c'; then $(CYGPATH_W) 'fsys_ext2fs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ext2fs.c'; fi`
+ 
+ pre_stage2_exec-fsys_fat.o: fsys_fat.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_fat.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_fat.Tpo" -c -o pre_stage2_exec-fsys_fat.o `test -f 'fsys_fat.c' || echo '$(srcdir)/'`fsys_fat.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_fat.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_fat.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_fat.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_fat.o -MD -MP -MF $(DEPDIR)/pre_stage2_exec-fsys_fat.Tpo -c -o pre_stage2_exec-fsys_fat.o `test -f 'fsys_fat.c' || echo '$(srcdir)/'`fsys_fat.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-fsys_fat.Tpo $(DEPDIR)/pre_stage2_exec-fsys_fat.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_fat.c' object='pre_stage2_exec-fsys_fat.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_fat.o `test -f 'fsys_fat.c' || echo '$(srcdir)/'`fsys_fat.c
+ 
+ pre_stage2_exec-fsys_fat.obj: fsys_fat.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_fat.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_fat.Tpo" -c -o pre_stage2_exec-fsys_fat.obj `if test -f 'fsys_fat.c'; then $(CYGPATH_W) 'fsys_fat.c'; else $(CYGPATH_W) '$(srcdir)/fsys_fat.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_fat.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_fat.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_fat.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_fat.obj -MD -MP -MF $(DEPDIR)/pre_stage2_exec-fsys_fat.Tpo -c -o pre_stage2_exec-fsys_fat.obj `if test -f 'fsys_fat.c'; then $(CYGPATH_W) 'fsys_fat.c'; else $(CYGPATH_W) '$(srcdir)/fsys_fat.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-fsys_fat.Tpo $(DEPDIR)/pre_stage2_exec-fsys_fat.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_fat.c' object='pre_stage2_exec-fsys_fat.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_fat.obj `if test -f 'fsys_fat.c'; then $(CYGPATH_W) 'fsys_fat.c'; else $(CYGPATH_W) '$(srcdir)/fsys_fat.c'; fi`
+ 
+ pre_stage2_exec-fsys_ffs.o: fsys_ffs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_ffs.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_ffs.Tpo" -c -o pre_stage2_exec-fsys_ffs.o `test -f 'fsys_ffs.c' || echo '$(srcdir)/'`fsys_ffs.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_ffs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_ffs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_ffs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_ffs.o -MD -MP -MF $(DEPDIR)/pre_stage2_exec-fsys_ffs.Tpo -c -o pre_stage2_exec-fsys_ffs.o `test -f 'fsys_ffs.c' || echo '$(srcdir)/'`fsys_ffs.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-fsys_ffs.Tpo $(DEPDIR)/pre_stage2_exec-fsys_ffs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_ffs.c' object='pre_stage2_exec-fsys_ffs.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_ffs.o `test -f 'fsys_ffs.c' || echo '$(srcdir)/'`fsys_ffs.c
+ 
+ pre_stage2_exec-fsys_ffs.obj: fsys_ffs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_ffs.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_ffs.Tpo" -c -o pre_stage2_exec-fsys_ffs.obj `if test -f 'fsys_ffs.c'; then $(CYGPATH_W) 'fsys_ffs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ffs.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_ffs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_ffs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_ffs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_ffs.obj -MD -MP -MF $(DEPDIR)/pre_stage2_exec-fsys_ffs.Tpo -c -o pre_stage2_exec-fsys_ffs.obj `if test -f 'fsys_ffs.c'; then $(CYGPATH_W) 'fsys_ffs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ffs.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-fsys_ffs.Tpo $(DEPDIR)/pre_stage2_exec-fsys_ffs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_ffs.c' object='pre_stage2_exec-fsys_ffs.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_ffs.obj `if test -f 'fsys_ffs.c'; then $(CYGPATH_W) 'fsys_ffs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ffs.c'; fi`
+ 
+ pre_stage2_exec-fsys_iso9660.o: fsys_iso9660.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_iso9660.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Tpo" -c -o pre_stage2_exec-fsys_iso9660.o `test -f 'fsys_iso9660.c' || echo '$(srcdir)/'`fsys_iso9660.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_iso9660.o -MD -MP -MF $(DEPDIR)/pre_stage2_exec-fsys_iso9660.Tpo -c -o pre_stage2_exec-fsys_iso9660.o `test -f 'fsys_iso9660.c' || echo '$(srcdir)/'`fsys_iso9660.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-fsys_iso9660.Tpo $(DEPDIR)/pre_stage2_exec-fsys_iso9660.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_iso9660.c' object='pre_stage2_exec-fsys_iso9660.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_iso9660.o `test -f 'fsys_iso9660.c' || echo '$(srcdir)/'`fsys_iso9660.c
+ 
+ pre_stage2_exec-fsys_iso9660.obj: fsys_iso9660.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_iso9660.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Tpo" -c -o pre_stage2_exec-fsys_iso9660.obj `if test -f 'fsys_iso9660.c'; then $(CYGPATH_W) 'fsys_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/fsys_iso9660.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_iso9660.obj -MD -MP -MF $(DEPDIR)/pre_stage2_exec-fsys_iso9660.Tpo -c -o pre_stage2_exec-fsys_iso9660.obj `if test -f 'fsys_iso9660.c'; then $(CYGPATH_W) 'fsys_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/fsys_iso9660.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-fsys_iso9660.Tpo $(DEPDIR)/pre_stage2_exec-fsys_iso9660.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_iso9660.c' object='pre_stage2_exec-fsys_iso9660.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_iso9660.obj `if test -f 'fsys_iso9660.c'; then $(CYGPATH_W) 'fsys_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/fsys_iso9660.c'; fi`
+ 
+ pre_stage2_exec-fsys_jfs.o: fsys_jfs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_jfs.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_jfs.Tpo" -c -o pre_stage2_exec-fsys_jfs.o `test -f 'fsys_jfs.c' || echo '$(srcdir)/'`fsys_jfs.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_jfs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_jfs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_jfs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_jfs.o -MD -MP -MF $(DEPDIR)/pre_stage2_exec-fsys_jfs.Tpo -c -o pre_stage2_exec-fsys_jfs.o `test -f 'fsys_jfs.c' || echo '$(srcdir)/'`fsys_jfs.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-fsys_jfs.Tpo $(DEPDIR)/pre_stage2_exec-fsys_jfs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_jfs.c' object='pre_stage2_exec-fsys_jfs.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_jfs.o `test -f 'fsys_jfs.c' || echo '$(srcdir)/'`fsys_jfs.c
+ 
+ pre_stage2_exec-fsys_jfs.obj: fsys_jfs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_jfs.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_jfs.Tpo" -c -o pre_stage2_exec-fsys_jfs.obj `if test -f 'fsys_jfs.c'; then $(CYGPATH_W) 'fsys_jfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_jfs.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_jfs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_jfs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_jfs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_jfs.obj -MD -MP -MF $(DEPDIR)/pre_stage2_exec-fsys_jfs.Tpo -c -o pre_stage2_exec-fsys_jfs.obj `if test -f 'fsys_jfs.c'; then $(CYGPATH_W) 'fsys_jfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_jfs.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-fsys_jfs.Tpo $(DEPDIR)/pre_stage2_exec-fsys_jfs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_jfs.c' object='pre_stage2_exec-fsys_jfs.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_jfs.obj `if test -f 'fsys_jfs.c'; then $(CYGPATH_W) 'fsys_jfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_jfs.c'; fi`
+ 
+ pre_stage2_exec-fsys_minix.o: fsys_minix.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_minix.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_minix.Tpo" -c -o pre_stage2_exec-fsys_minix.o `test -f 'fsys_minix.c' || echo '$(srcdir)/'`fsys_minix.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_minix.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_minix.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_minix.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_minix.o -MD -MP -MF $(DEPDIR)/pre_stage2_exec-fsys_minix.Tpo -c -o pre_stage2_exec-fsys_minix.o `test -f 'fsys_minix.c' || echo '$(srcdir)/'`fsys_minix.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-fsys_minix.Tpo $(DEPDIR)/pre_stage2_exec-fsys_minix.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_minix.c' object='pre_stage2_exec-fsys_minix.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_minix.o `test -f 'fsys_minix.c' || echo '$(srcdir)/'`fsys_minix.c
+ 
+ pre_stage2_exec-fsys_minix.obj: fsys_minix.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_minix.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_minix.Tpo" -c -o pre_stage2_exec-fsys_minix.obj `if test -f 'fsys_minix.c'; then $(CYGPATH_W) 'fsys_minix.c'; else $(CYGPATH_W) '$(srcdir)/fsys_minix.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_minix.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_minix.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_minix.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_minix.obj -MD -MP -MF $(DEPDIR)/pre_stage2_exec-fsys_minix.Tpo -c -o pre_stage2_exec-fsys_minix.obj `if test -f 'fsys_minix.c'; then $(CYGPATH_W) 'fsys_minix.c'; else $(CYGPATH_W) '$(srcdir)/fsys_minix.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-fsys_minix.Tpo $(DEPDIR)/pre_stage2_exec-fsys_minix.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_minix.c' object='pre_stage2_exec-fsys_minix.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_minix.obj `if test -f 'fsys_minix.c'; then $(CYGPATH_W) 'fsys_minix.c'; else $(CYGPATH_W) '$(srcdir)/fsys_minix.c'; fi`
+ 
+ pre_stage2_exec-fsys_reiserfs.o: fsys_reiserfs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_reiserfs.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Tpo" -c -o pre_stage2_exec-fsys_reiserfs.o `test -f 'fsys_reiserfs.c' || echo '$(srcdir)/'`fsys_reiserfs.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_reiserfs.o -MD -MP -MF $(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Tpo -c -o pre_stage2_exec-fsys_reiserfs.o `test -f 'fsys_reiserfs.c' || echo '$(srcdir)/'`fsys_reiserfs.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Tpo $(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_reiserfs.c' object='pre_stage2_exec-fsys_reiserfs.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_reiserfs.o `test -f 'fsys_reiserfs.c' || echo '$(srcdir)/'`fsys_reiserfs.c
+ 
+ pre_stage2_exec-fsys_reiserfs.obj: fsys_reiserfs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_reiserfs.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Tpo" -c -o pre_stage2_exec-fsys_reiserfs.obj `if test -f 'fsys_reiserfs.c'; then $(CYGPATH_W) 'fsys_reiserfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_reiserfs.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_reiserfs.obj -MD -MP -MF $(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Tpo -c -o pre_stage2_exec-fsys_reiserfs.obj `if test -f 'fsys_reiserfs.c'; then $(CYGPATH_W) 'fsys_reiserfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_reiserfs.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Tpo $(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_reiserfs.c' object='pre_stage2_exec-fsys_reiserfs.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_reiserfs.obj `if test -f 'fsys_reiserfs.c'; then $(CYGPATH_W) 'fsys_reiserfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_reiserfs.c'; fi`
+ 
+ pre_stage2_exec-fsys_ufs2.o: fsys_ufs2.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_ufs2.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_ufs2.Tpo" -c -o pre_stage2_exec-fsys_ufs2.o `test -f 'fsys_ufs2.c' || echo '$(srcdir)/'`fsys_ufs2.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_ufs2.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_ufs2.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_ufs2.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_ufs2.o -MD -MP -MF $(DEPDIR)/pre_stage2_exec-fsys_ufs2.Tpo -c -o pre_stage2_exec-fsys_ufs2.o `test -f 'fsys_ufs2.c' || echo '$(srcdir)/'`fsys_ufs2.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-fsys_ufs2.Tpo $(DEPDIR)/pre_stage2_exec-fsys_ufs2.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_ufs2.c' object='pre_stage2_exec-fsys_ufs2.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_ufs2.o `test -f 'fsys_ufs2.c' || echo '$(srcdir)/'`fsys_ufs2.c
+ 
+ pre_stage2_exec-fsys_ufs2.obj: fsys_ufs2.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_ufs2.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_ufs2.Tpo" -c -o pre_stage2_exec-fsys_ufs2.obj `if test -f 'fsys_ufs2.c'; then $(CYGPATH_W) 'fsys_ufs2.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ufs2.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_ufs2.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_ufs2.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_ufs2.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_ufs2.obj -MD -MP -MF $(DEPDIR)/pre_stage2_exec-fsys_ufs2.Tpo -c -o pre_stage2_exec-fsys_ufs2.obj `if test -f 'fsys_ufs2.c'; then $(CYGPATH_W) 'fsys_ufs2.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ufs2.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-fsys_ufs2.Tpo $(DEPDIR)/pre_stage2_exec-fsys_ufs2.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_ufs2.c' object='pre_stage2_exec-fsys_ufs2.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_ufs2.obj `if test -f 'fsys_ufs2.c'; then $(CYGPATH_W) 'fsys_ufs2.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ufs2.c'; fi`
+ 
+ pre_stage2_exec-fsys_vstafs.o: fsys_vstafs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_vstafs.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Tpo" -c -o pre_stage2_exec-fsys_vstafs.o `test -f 'fsys_vstafs.c' || echo '$(srcdir)/'`fsys_vstafs.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_vstafs.o -MD -MP -MF $(DEPDIR)/pre_stage2_exec-fsys_vstafs.Tpo -c -o pre_stage2_exec-fsys_vstafs.o `test -f 'fsys_vstafs.c' || echo '$(srcdir)/'`fsys_vstafs.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-fsys_vstafs.Tpo $(DEPDIR)/pre_stage2_exec-fsys_vstafs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_vstafs.c' object='pre_stage2_exec-fsys_vstafs.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_vstafs.o `test -f 'fsys_vstafs.c' || echo '$(srcdir)/'`fsys_vstafs.c
+ 
+ pre_stage2_exec-fsys_vstafs.obj: fsys_vstafs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_vstafs.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Tpo" -c -o pre_stage2_exec-fsys_vstafs.obj `if test -f 'fsys_vstafs.c'; then $(CYGPATH_W) 'fsys_vstafs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_vstafs.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_vstafs.obj -MD -MP -MF $(DEPDIR)/pre_stage2_exec-fsys_vstafs.Tpo -c -o pre_stage2_exec-fsys_vstafs.obj `if test -f 'fsys_vstafs.c'; then $(CYGPATH_W) 'fsys_vstafs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_vstafs.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-fsys_vstafs.Tpo $(DEPDIR)/pre_stage2_exec-fsys_vstafs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_vstafs.c' object='pre_stage2_exec-fsys_vstafs.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_vstafs.obj `if test -f 'fsys_vstafs.c'; then $(CYGPATH_W) 'fsys_vstafs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_vstafs.c'; fi`
+ 
+ pre_stage2_exec-fsys_xfs.o: fsys_xfs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_xfs.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_xfs.Tpo" -c -o pre_stage2_exec-fsys_xfs.o `test -f 'fsys_xfs.c' || echo '$(srcdir)/'`fsys_xfs.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_xfs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_xfs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_xfs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_xfs.o -MD -MP -MF $(DEPDIR)/pre_stage2_exec-fsys_xfs.Tpo -c -o pre_stage2_exec-fsys_xfs.o `test -f 'fsys_xfs.c' || echo '$(srcdir)/'`fsys_xfs.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-fsys_xfs.Tpo $(DEPDIR)/pre_stage2_exec-fsys_xfs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_xfs.c' object='pre_stage2_exec-fsys_xfs.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_xfs.o `test -f 'fsys_xfs.c' || echo '$(srcdir)/'`fsys_xfs.c
+ 
+ pre_stage2_exec-fsys_xfs.obj: fsys_xfs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_xfs.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_xfs.Tpo" -c -o pre_stage2_exec-fsys_xfs.obj `if test -f 'fsys_xfs.c'; then $(CYGPATH_W) 'fsys_xfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_xfs.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_xfs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_xfs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_xfs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_xfs.obj -MD -MP -MF $(DEPDIR)/pre_stage2_exec-fsys_xfs.Tpo -c -o pre_stage2_exec-fsys_xfs.obj `if test -f 'fsys_xfs.c'; then $(CYGPATH_W) 'fsys_xfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_xfs.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-fsys_xfs.Tpo $(DEPDIR)/pre_stage2_exec-fsys_xfs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_xfs.c' object='pre_stage2_exec-fsys_xfs.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_xfs.obj `if test -f 'fsys_xfs.c'; then $(CYGPATH_W) 'fsys_xfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_xfs.c'; fi`
+ 
+ pre_stage2_exec-gunzip.o: gunzip.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-gunzip.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-gunzip.Tpo" -c -o pre_stage2_exec-gunzip.o `test -f 'gunzip.c' || echo '$(srcdir)/'`gunzip.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-gunzip.Tpo" "$(DEPDIR)/pre_stage2_exec-gunzip.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-gunzip.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-gunzip.o -MD -MP -MF $(DEPDIR)/pre_stage2_exec-gunzip.Tpo -c -o pre_stage2_exec-gunzip.o `test -f 'gunzip.c' || echo '$(srcdir)/'`gunzip.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-gunzip.Tpo $(DEPDIR)/pre_stage2_exec-gunzip.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gunzip.c' object='pre_stage2_exec-gunzip.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-gunzip.o `test -f 'gunzip.c' || echo '$(srcdir)/'`gunzip.c
+ 
+ pre_stage2_exec-gunzip.obj: gunzip.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-gunzip.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-gunzip.Tpo" -c -o pre_stage2_exec-gunzip.obj `if test -f 'gunzip.c'; then $(CYGPATH_W) 'gunzip.c'; else $(CYGPATH_W) '$(srcdir)/gunzip.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-gunzip.Tpo" "$(DEPDIR)/pre_stage2_exec-gunzip.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-gunzip.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-gunzip.obj -MD -MP -MF $(DEPDIR)/pre_stage2_exec-gunzip.Tpo -c -o pre_stage2_exec-gunzip.obj `if test -f 'gunzip.c'; then $(CYGPATH_W) 'gunzip.c'; else $(CYGPATH_W) '$(srcdir)/gunzip.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-gunzip.Tpo $(DEPDIR)/pre_stage2_exec-gunzip.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gunzip.c' object='pre_stage2_exec-gunzip.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-gunzip.obj `if test -f 'gunzip.c'; then $(CYGPATH_W) 'gunzip.c'; else $(CYGPATH_W) '$(srcdir)/gunzip.c'; fi`
+ 
+ pre_stage2_exec-hercules.o: hercules.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-hercules.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-hercules.Tpo" -c -o pre_stage2_exec-hercules.o `test -f 'hercules.c' || echo '$(srcdir)/'`hercules.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-hercules.Tpo" "$(DEPDIR)/pre_stage2_exec-hercules.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-hercules.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-hercules.o -MD -MP -MF $(DEPDIR)/pre_stage2_exec-hercules.Tpo -c -o pre_stage2_exec-hercules.o `test -f 'hercules.c' || echo '$(srcdir)/'`hercules.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-hercules.Tpo $(DEPDIR)/pre_stage2_exec-hercules.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='hercules.c' object='pre_stage2_exec-hercules.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-hercules.o `test -f 'hercules.c' || echo '$(srcdir)/'`hercules.c
+ 
+ pre_stage2_exec-hercules.obj: hercules.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-hercules.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-hercules.Tpo" -c -o pre_stage2_exec-hercules.obj `if test -f 'hercules.c'; then $(CYGPATH_W) 'hercules.c'; else $(CYGPATH_W) '$(srcdir)/hercules.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-hercules.Tpo" "$(DEPDIR)/pre_stage2_exec-hercules.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-hercules.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-hercules.obj -MD -MP -MF $(DEPDIR)/pre_stage2_exec-hercules.Tpo -c -o pre_stage2_exec-hercules.obj `if test -f 'hercules.c'; then $(CYGPATH_W) 'hercules.c'; else $(CYGPATH_W) '$(srcdir)/hercules.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-hercules.Tpo $(DEPDIR)/pre_stage2_exec-hercules.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='hercules.c' object='pre_stage2_exec-hercules.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-hercules.obj `if test -f 'hercules.c'; then $(CYGPATH_W) 'hercules.c'; else $(CYGPATH_W) '$(srcdir)/hercules.c'; fi`
+ 
+ pre_stage2_exec-md5.o: md5.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-md5.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-md5.Tpo" -c -o pre_stage2_exec-md5.o `test -f 'md5.c' || echo '$(srcdir)/'`md5.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-md5.Tpo" "$(DEPDIR)/pre_stage2_exec-md5.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-md5.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-md5.o -MD -MP -MF $(DEPDIR)/pre_stage2_exec-md5.Tpo -c -o pre_stage2_exec-md5.o `test -f 'md5.c' || echo '$(srcdir)/'`md5.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-md5.Tpo $(DEPDIR)/pre_stage2_exec-md5.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='md5.c' object='pre_stage2_exec-md5.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-md5.o `test -f 'md5.c' || echo '$(srcdir)/'`md5.c
+ 
+ pre_stage2_exec-md5.obj: md5.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-md5.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-md5.Tpo" -c -o pre_stage2_exec-md5.obj `if test -f 'md5.c'; then $(CYGPATH_W) 'md5.c'; else $(CYGPATH_W) '$(srcdir)/md5.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-md5.Tpo" "$(DEPDIR)/pre_stage2_exec-md5.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-md5.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-md5.obj -MD -MP -MF $(DEPDIR)/pre_stage2_exec-md5.Tpo -c -o pre_stage2_exec-md5.obj `if test -f 'md5.c'; then $(CYGPATH_W) 'md5.c'; else $(CYGPATH_W) '$(srcdir)/md5.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-md5.Tpo $(DEPDIR)/pre_stage2_exec-md5.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='md5.c' object='pre_stage2_exec-md5.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-md5.obj `if test -f 'md5.c'; then $(CYGPATH_W) 'md5.c'; else $(CYGPATH_W) '$(srcdir)/md5.c'; fi`
+ 
+ pre_stage2_exec-serial.o: serial.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-serial.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-serial.Tpo" -c -o pre_stage2_exec-serial.o `test -f 'serial.c' || echo '$(srcdir)/'`serial.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-serial.Tpo" "$(DEPDIR)/pre_stage2_exec-serial.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-serial.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-serial.o -MD -MP -MF $(DEPDIR)/pre_stage2_exec-serial.Tpo -c -o pre_stage2_exec-serial.o `test -f 'serial.c' || echo '$(srcdir)/'`serial.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-serial.Tpo $(DEPDIR)/pre_stage2_exec-serial.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='serial.c' object='pre_stage2_exec-serial.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-serial.o `test -f 'serial.c' || echo '$(srcdir)/'`serial.c
+ 
+ pre_stage2_exec-serial.obj: serial.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-serial.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-serial.Tpo" -c -o pre_stage2_exec-serial.obj `if test -f 'serial.c'; then $(CYGPATH_W) 'serial.c'; else $(CYGPATH_W) '$(srcdir)/serial.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-serial.Tpo" "$(DEPDIR)/pre_stage2_exec-serial.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-serial.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-serial.obj -MD -MP -MF $(DEPDIR)/pre_stage2_exec-serial.Tpo -c -o pre_stage2_exec-serial.obj `if test -f 'serial.c'; then $(CYGPATH_W) 'serial.c'; else $(CYGPATH_W) '$(srcdir)/serial.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-serial.Tpo $(DEPDIR)/pre_stage2_exec-serial.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='serial.c' object='pre_stage2_exec-serial.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-serial.obj `if test -f 'serial.c'; then $(CYGPATH_W) 'serial.c'; else $(CYGPATH_W) '$(srcdir)/serial.c'; fi`
+ 
+ pre_stage2_exec-smp-imps.o: smp-imps.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-smp-imps.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-smp-imps.Tpo" -c -o pre_stage2_exec-smp-imps.o `test -f 'smp-imps.c' || echo '$(srcdir)/'`smp-imps.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-smp-imps.Tpo" "$(DEPDIR)/pre_stage2_exec-smp-imps.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-smp-imps.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-smp-imps.o -MD -MP -MF $(DEPDIR)/pre_stage2_exec-smp-imps.Tpo -c -o pre_stage2_exec-smp-imps.o `test -f 'smp-imps.c' || echo '$(srcdir)/'`smp-imps.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-smp-imps.Tpo $(DEPDIR)/pre_stage2_exec-smp-imps.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='smp-imps.c' object='pre_stage2_exec-smp-imps.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-smp-imps.o `test -f 'smp-imps.c' || echo '$(srcdir)/'`smp-imps.c
+ 
+ pre_stage2_exec-smp-imps.obj: smp-imps.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-smp-imps.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-smp-imps.Tpo" -c -o pre_stage2_exec-smp-imps.obj `if test -f 'smp-imps.c'; then $(CYGPATH_W) 'smp-imps.c'; else $(CYGPATH_W) '$(srcdir)/smp-imps.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-smp-imps.Tpo" "$(DEPDIR)/pre_stage2_exec-smp-imps.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-smp-imps.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-smp-imps.obj -MD -MP -MF $(DEPDIR)/pre_stage2_exec-smp-imps.Tpo -c -o pre_stage2_exec-smp-imps.obj `if test -f 'smp-imps.c'; then $(CYGPATH_W) 'smp-imps.c'; else $(CYGPATH_W) '$(srcdir)/smp-imps.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-smp-imps.Tpo $(DEPDIR)/pre_stage2_exec-smp-imps.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='smp-imps.c' object='pre_stage2_exec-smp-imps.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-smp-imps.obj `if test -f 'smp-imps.c'; then $(CYGPATH_W) 'smp-imps.c'; else $(CYGPATH_W) '$(srcdir)/smp-imps.c'; fi`
+ 
+ pre_stage2_exec-stage2.o: stage2.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-stage2.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-stage2.Tpo" -c -o pre_stage2_exec-stage2.o `test -f 'stage2.c' || echo '$(srcdir)/'`stage2.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-stage2.Tpo" "$(DEPDIR)/pre_stage2_exec-stage2.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-stage2.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-stage2.o -MD -MP -MF $(DEPDIR)/pre_stage2_exec-stage2.Tpo -c -o pre_stage2_exec-stage2.o `test -f 'stage2.c' || echo '$(srcdir)/'`stage2.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-stage2.Tpo $(DEPDIR)/pre_stage2_exec-stage2.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='stage2.c' object='pre_stage2_exec-stage2.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-stage2.o `test -f 'stage2.c' || echo '$(srcdir)/'`stage2.c
+ 
+ pre_stage2_exec-stage2.obj: stage2.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-stage2.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-stage2.Tpo" -c -o pre_stage2_exec-stage2.obj `if test -f 'stage2.c'; then $(CYGPATH_W) 'stage2.c'; else $(CYGPATH_W) '$(srcdir)/stage2.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-stage2.Tpo" "$(DEPDIR)/pre_stage2_exec-stage2.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-stage2.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-stage2.obj -MD -MP -MF $(DEPDIR)/pre_stage2_exec-stage2.Tpo -c -o pre_stage2_exec-stage2.obj `if test -f 'stage2.c'; then $(CYGPATH_W) 'stage2.c'; else $(CYGPATH_W) '$(srcdir)/stage2.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-stage2.Tpo $(DEPDIR)/pre_stage2_exec-stage2.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='stage2.c' object='pre_stage2_exec-stage2.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-stage2.obj `if test -f 'stage2.c'; then $(CYGPATH_W) 'stage2.c'; else $(CYGPATH_W) '$(srcdir)/stage2.c'; fi`
+ 
+ pre_stage2_exec-terminfo.o: terminfo.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-terminfo.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-terminfo.Tpo" -c -o pre_stage2_exec-terminfo.o `test -f 'terminfo.c' || echo '$(srcdir)/'`terminfo.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-terminfo.Tpo" "$(DEPDIR)/pre_stage2_exec-terminfo.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-terminfo.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-terminfo.o -MD -MP -MF $(DEPDIR)/pre_stage2_exec-terminfo.Tpo -c -o pre_stage2_exec-terminfo.o `test -f 'terminfo.c' || echo '$(srcdir)/'`terminfo.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-terminfo.Tpo $(DEPDIR)/pre_stage2_exec-terminfo.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='terminfo.c' object='pre_stage2_exec-terminfo.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-terminfo.o `test -f 'terminfo.c' || echo '$(srcdir)/'`terminfo.c
+ 
+ pre_stage2_exec-terminfo.obj: terminfo.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-terminfo.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-terminfo.Tpo" -c -o pre_stage2_exec-terminfo.obj `if test -f 'terminfo.c'; then $(CYGPATH_W) 'terminfo.c'; else $(CYGPATH_W) '$(srcdir)/terminfo.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-terminfo.Tpo" "$(DEPDIR)/pre_stage2_exec-terminfo.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-terminfo.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-terminfo.obj -MD -MP -MF $(DEPDIR)/pre_stage2_exec-terminfo.Tpo -c -o pre_stage2_exec-terminfo.obj `if test -f 'terminfo.c'; then $(CYGPATH_W) 'terminfo.c'; else $(CYGPATH_W) '$(srcdir)/terminfo.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-terminfo.Tpo $(DEPDIR)/pre_stage2_exec-terminfo.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='terminfo.c' object='pre_stage2_exec-terminfo.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-terminfo.obj `if test -f 'terminfo.c'; then $(CYGPATH_W) 'terminfo.c'; else $(CYGPATH_W) '$(srcdir)/terminfo.c'; fi`
+ 
+ pre_stage2_exec-tparm.o: tparm.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-tparm.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-tparm.Tpo" -c -o pre_stage2_exec-tparm.o `test -f 'tparm.c' || echo '$(srcdir)/'`tparm.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-tparm.Tpo" "$(DEPDIR)/pre_stage2_exec-tparm.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-tparm.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-tparm.o -MD -MP -MF $(DEPDIR)/pre_stage2_exec-tparm.Tpo -c -o pre_stage2_exec-tparm.o `test -f 'tparm.c' || echo '$(srcdir)/'`tparm.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-tparm.Tpo $(DEPDIR)/pre_stage2_exec-tparm.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='tparm.c' object='pre_stage2_exec-tparm.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-tparm.o `test -f 'tparm.c' || echo '$(srcdir)/'`tparm.c
+ 
+ pre_stage2_exec-tparm.obj: tparm.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-tparm.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-tparm.Tpo" -c -o pre_stage2_exec-tparm.obj `if test -f 'tparm.c'; then $(CYGPATH_W) 'tparm.c'; else $(CYGPATH_W) '$(srcdir)/tparm.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/pre_stage2_exec-tparm.Tpo" "$(DEPDIR)/pre_stage2_exec-tparm.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-tparm.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-tparm.obj -MD -MP -MF $(DEPDIR)/pre_stage2_exec-tparm.Tpo -c -o pre_stage2_exec-tparm.obj `if test -f 'tparm.c'; then $(CYGPATH_W) 'tparm.c'; else $(CYGPATH_W) '$(srcdir)/tparm.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-tparm.Tpo $(DEPDIR)/pre_stage2_exec-tparm.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='tparm.c' object='pre_stage2_exec-tparm.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-tparm.obj `if test -f 'tparm.c'; then $(CYGPATH_W) 'tparm.c'; else $(CYGPATH_W) '$(srcdir)/tparm.c'; fi`
+ 
++pre_stage2_exec-graphics.o: graphics.c
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-graphics.o -MD -MP -MF $(DEPDIR)/pre_stage2_exec-graphics.Tpo -c -o pre_stage2_exec-graphics.o `test -f 'graphics.c' || echo '$(srcdir)/'`graphics.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-graphics.Tpo $(DEPDIR)/pre_stage2_exec-graphics.Po
++ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='graphics.c' object='pre_stage2_exec-graphics.o' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-graphics.o `test -f 'graphics.c' || echo '$(srcdir)/'`graphics.c
++
++pre_stage2_exec-graphics.obj: graphics.c
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-graphics.obj -MD -MP -MF $(DEPDIR)/pre_stage2_exec-graphics.Tpo -c -o pre_stage2_exec-graphics.obj `if test -f 'graphics.c'; then $(CYGPATH_W) 'graphics.c'; else $(CYGPATH_W) '$(srcdir)/graphics.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/pre_stage2_exec-graphics.Tpo $(DEPDIR)/pre_stage2_exec-graphics.Po
++ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='graphics.c' object='pre_stage2_exec-graphics.obj' libtool=no @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-graphics.obj `if test -f 'graphics.c'; then $(CYGPATH_W) 'graphics.c'; else $(CYGPATH_W) '$(srcdir)/graphics.c'; fi`
++
+ reiserfs_stage1_5_exec-common.o: common.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-common.Tpo" -c -o reiserfs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/reiserfs_stage1_5_exec-common.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-common.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-common.o -MD -MP -MF $(DEPDIR)/reiserfs_stage1_5_exec-common.Tpo -c -o reiserfs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/reiserfs_stage1_5_exec-common.Tpo $(DEPDIR)/reiserfs_stage1_5_exec-common.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='common.c' object='reiserfs_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
+ 
+ reiserfs_stage1_5_exec-common.obj: common.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-common.obj -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-common.Tpo" -c -o reiserfs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/reiserfs_stage1_5_exec-common.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-common.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-common.obj -MD -MP -MF $(DEPDIR)/reiserfs_stage1_5_exec-common.Tpo -c -o reiserfs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/reiserfs_stage1_5_exec-common.Tpo $(DEPDIR)/reiserfs_stage1_5_exec-common.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='common.c' object='reiserfs_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
+ 
+ reiserfs_stage1_5_exec-char_io.o: char_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-char_io.o -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-char_io.Tpo" -c -o reiserfs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/reiserfs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-char_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-char_io.o -MD -MP -MF $(DEPDIR)/reiserfs_stage1_5_exec-char_io.Tpo -c -o reiserfs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/reiserfs_stage1_5_exec-char_io.Tpo $(DEPDIR)/reiserfs_stage1_5_exec-char_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='char_io.c' object='reiserfs_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
+ 
+ reiserfs_stage1_5_exec-char_io.obj: char_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-char_io.Tpo" -c -o reiserfs_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/reiserfs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-char_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-char_io.obj -MD -MP -MF $(DEPDIR)/reiserfs_stage1_5_exec-char_io.Tpo -c -o reiserfs_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/reiserfs_stage1_5_exec-char_io.Tpo $(DEPDIR)/reiserfs_stage1_5_exec-char_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='char_io.c' object='reiserfs_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
+ 
+ reiserfs_stage1_5_exec-disk_io.o: disk_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Tpo" -c -o reiserfs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-disk_io.o -MD -MP -MF $(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Tpo -c -o reiserfs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Tpo $(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='disk_io.c' object='reiserfs_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
+ 
+ reiserfs_stage1_5_exec-disk_io.obj: disk_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Tpo" -c -o reiserfs_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-disk_io.obj -MD -MP -MF $(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Tpo -c -o reiserfs_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Tpo $(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='disk_io.c' object='reiserfs_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
+ 
+ reiserfs_stage1_5_exec-stage1_5.o: stage1_5.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-stage1_5.o -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Tpo" -c -o reiserfs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-stage1_5.o -MD -MP -MF $(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Tpo -c -o reiserfs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Tpo $(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='stage1_5.c' object='reiserfs_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c
+ 
+ reiserfs_stage1_5_exec-stage1_5.obj: stage1_5.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-stage1_5.obj -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Tpo" -c -o reiserfs_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-stage1_5.obj -MD -MP -MF $(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Tpo -c -o reiserfs_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Tpo $(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='stage1_5.c' object='reiserfs_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`
+ 
+ reiserfs_stage1_5_exec-fsys_reiserfs.o: fsys_reiserfs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-fsys_reiserfs.o -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Tpo" -c -o reiserfs_stage1_5_exec-fsys_reiserfs.o `test -f 'fsys_reiserfs.c' || echo '$(srcdir)/'`fsys_reiserfs.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-fsys_reiserfs.o -MD -MP -MF $(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Tpo -c -o reiserfs_stage1_5_exec-fsys_reiserfs.o `test -f 'fsys_reiserfs.c' || echo '$(srcdir)/'`fsys_reiserfs.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Tpo $(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_reiserfs.c' object='reiserfs_stage1_5_exec-fsys_reiserfs.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-fsys_reiserfs.o `test -f 'fsys_reiserfs.c' || echo '$(srcdir)/'`fsys_reiserfs.c
+ 
+ reiserfs_stage1_5_exec-fsys_reiserfs.obj: fsys_reiserfs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-fsys_reiserfs.obj -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Tpo" -c -o reiserfs_stage1_5_exec-fsys_reiserfs.obj `if test -f 'fsys_reiserfs.c'; then $(CYGPATH_W) 'fsys_reiserfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_reiserfs.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-fsys_reiserfs.obj -MD -MP -MF $(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Tpo -c -o reiserfs_stage1_5_exec-fsys_reiserfs.obj `if test -f 'fsys_reiserfs.c'; then $(CYGPATH_W) 'fsys_reiserfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_reiserfs.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Tpo $(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_reiserfs.c' object='reiserfs_stage1_5_exec-fsys_reiserfs.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-fsys_reiserfs.obj `if test -f 'fsys_reiserfs.c'; then $(CYGPATH_W) 'fsys_reiserfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_reiserfs.c'; fi`
+ 
+ reiserfs_stage1_5_exec-bios.o: bios.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-bios.o -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-bios.Tpo" -c -o reiserfs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/reiserfs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-bios.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-bios.o -MD -MP -MF $(DEPDIR)/reiserfs_stage1_5_exec-bios.Tpo -c -o reiserfs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/reiserfs_stage1_5_exec-bios.Tpo $(DEPDIR)/reiserfs_stage1_5_exec-bios.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='bios.c' object='reiserfs_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
+ 
+ reiserfs_stage1_5_exec-bios.obj: bios.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-bios.obj -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-bios.Tpo" -c -o reiserfs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/reiserfs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-bios.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-bios.obj -MD -MP -MF $(DEPDIR)/reiserfs_stage1_5_exec-bios.Tpo -c -o reiserfs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/reiserfs_stage1_5_exec-bios.Tpo $(DEPDIR)/reiserfs_stage1_5_exec-bios.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='bios.c' object='reiserfs_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
+ 
+ ufs2_stage1_5_exec-common.o: common.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-common.Tpo" -c -o ufs2_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/ufs2_stage1_5_exec-common.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-common.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-common.o -MD -MP -MF $(DEPDIR)/ufs2_stage1_5_exec-common.Tpo -c -o ufs2_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/ufs2_stage1_5_exec-common.Tpo $(DEPDIR)/ufs2_stage1_5_exec-common.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='common.c' object='ufs2_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
+ 
+ ufs2_stage1_5_exec-common.obj: common.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-common.obj -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-common.Tpo" -c -o ufs2_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/ufs2_stage1_5_exec-common.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-common.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-common.obj -MD -MP -MF $(DEPDIR)/ufs2_stage1_5_exec-common.Tpo -c -o ufs2_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/ufs2_stage1_5_exec-common.Tpo $(DEPDIR)/ufs2_stage1_5_exec-common.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='common.c' object='ufs2_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
+ 
+ ufs2_stage1_5_exec-char_io.o: char_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-char_io.o -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-char_io.Tpo" -c -o ufs2_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/ufs2_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-char_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-char_io.o -MD -MP -MF $(DEPDIR)/ufs2_stage1_5_exec-char_io.Tpo -c -o ufs2_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/ufs2_stage1_5_exec-char_io.Tpo $(DEPDIR)/ufs2_stage1_5_exec-char_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='char_io.c' object='ufs2_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
+ 
+ ufs2_stage1_5_exec-char_io.obj: char_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-char_io.Tpo" -c -o ufs2_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/ufs2_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-char_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-char_io.obj -MD -MP -MF $(DEPDIR)/ufs2_stage1_5_exec-char_io.Tpo -c -o ufs2_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/ufs2_stage1_5_exec-char_io.Tpo $(DEPDIR)/ufs2_stage1_5_exec-char_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='char_io.c' object='ufs2_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
+ 
+ ufs2_stage1_5_exec-disk_io.o: disk_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-disk_io.Tpo" -c -o ufs2_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/ufs2_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-disk_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-disk_io.o -MD -MP -MF $(DEPDIR)/ufs2_stage1_5_exec-disk_io.Tpo -c -o ufs2_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/ufs2_stage1_5_exec-disk_io.Tpo $(DEPDIR)/ufs2_stage1_5_exec-disk_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='disk_io.c' object='ufs2_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
+ 
+ ufs2_stage1_5_exec-disk_io.obj: disk_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-disk_io.Tpo" -c -o ufs2_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/ufs2_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-disk_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-disk_io.obj -MD -MP -MF $(DEPDIR)/ufs2_stage1_5_exec-disk_io.Tpo -c -o ufs2_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/ufs2_stage1_5_exec-disk_io.Tpo $(DEPDIR)/ufs2_stage1_5_exec-disk_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='disk_io.c' object='ufs2_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
+ 
+ ufs2_stage1_5_exec-stage1_5.o: stage1_5.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-stage1_5.o -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Tpo" -c -o ufs2_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-stage1_5.o -MD -MP -MF $(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Tpo -c -o ufs2_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Tpo $(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='stage1_5.c' object='ufs2_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c
+ 
+ ufs2_stage1_5_exec-stage1_5.obj: stage1_5.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-stage1_5.obj -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Tpo" -c -o ufs2_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-stage1_5.obj -MD -MP -MF $(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Tpo -c -o ufs2_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Tpo $(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='stage1_5.c' object='ufs2_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`
+ 
+ ufs2_stage1_5_exec-fsys_ufs2.o: fsys_ufs2.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-fsys_ufs2.o -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Tpo" -c -o ufs2_stage1_5_exec-fsys_ufs2.o `test -f 'fsys_ufs2.c' || echo '$(srcdir)/'`fsys_ufs2.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-fsys_ufs2.o -MD -MP -MF $(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Tpo -c -o ufs2_stage1_5_exec-fsys_ufs2.o `test -f 'fsys_ufs2.c' || echo '$(srcdir)/'`fsys_ufs2.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Tpo $(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_ufs2.c' object='ufs2_stage1_5_exec-fsys_ufs2.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-fsys_ufs2.o `test -f 'fsys_ufs2.c' || echo '$(srcdir)/'`fsys_ufs2.c
+ 
+ ufs2_stage1_5_exec-fsys_ufs2.obj: fsys_ufs2.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-fsys_ufs2.obj -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Tpo" -c -o ufs2_stage1_5_exec-fsys_ufs2.obj `if test -f 'fsys_ufs2.c'; then $(CYGPATH_W) 'fsys_ufs2.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ufs2.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-fsys_ufs2.obj -MD -MP -MF $(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Tpo -c -o ufs2_stage1_5_exec-fsys_ufs2.obj `if test -f 'fsys_ufs2.c'; then $(CYGPATH_W) 'fsys_ufs2.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ufs2.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Tpo $(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_ufs2.c' object='ufs2_stage1_5_exec-fsys_ufs2.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-fsys_ufs2.obj `if test -f 'fsys_ufs2.c'; then $(CYGPATH_W) 'fsys_ufs2.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ufs2.c'; fi`
+ 
+ ufs2_stage1_5_exec-bios.o: bios.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-bios.o -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-bios.Tpo" -c -o ufs2_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/ufs2_stage1_5_exec-bios.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-bios.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-bios.o -MD -MP -MF $(DEPDIR)/ufs2_stage1_5_exec-bios.Tpo -c -o ufs2_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/ufs2_stage1_5_exec-bios.Tpo $(DEPDIR)/ufs2_stage1_5_exec-bios.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='bios.c' object='ufs2_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
+ 
+ ufs2_stage1_5_exec-bios.obj: bios.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-bios.obj -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-bios.Tpo" -c -o ufs2_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/ufs2_stage1_5_exec-bios.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-bios.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-bios.obj -MD -MP -MF $(DEPDIR)/ufs2_stage1_5_exec-bios.Tpo -c -o ufs2_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/ufs2_stage1_5_exec-bios.Tpo $(DEPDIR)/ufs2_stage1_5_exec-bios.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='bios.c' object='ufs2_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
+ 
+ vstafs_stage1_5_exec-common.o: common.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-common.Tpo" -c -o vstafs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/vstafs_stage1_5_exec-common.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-common.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-common.o -MD -MP -MF $(DEPDIR)/vstafs_stage1_5_exec-common.Tpo -c -o vstafs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/vstafs_stage1_5_exec-common.Tpo $(DEPDIR)/vstafs_stage1_5_exec-common.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='common.c' object='vstafs_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
+ 
+ vstafs_stage1_5_exec-common.obj: common.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-common.obj -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-common.Tpo" -c -o vstafs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/vstafs_stage1_5_exec-common.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-common.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-common.obj -MD -MP -MF $(DEPDIR)/vstafs_stage1_5_exec-common.Tpo -c -o vstafs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/vstafs_stage1_5_exec-common.Tpo $(DEPDIR)/vstafs_stage1_5_exec-common.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='common.c' object='vstafs_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
+ 
+ vstafs_stage1_5_exec-char_io.o: char_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-char_io.o -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-char_io.Tpo" -c -o vstafs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/vstafs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-char_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-char_io.o -MD -MP -MF $(DEPDIR)/vstafs_stage1_5_exec-char_io.Tpo -c -o vstafs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/vstafs_stage1_5_exec-char_io.Tpo $(DEPDIR)/vstafs_stage1_5_exec-char_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='char_io.c' object='vstafs_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
+ 
+ vstafs_stage1_5_exec-char_io.obj: char_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-char_io.Tpo" -c -o vstafs_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/vstafs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-char_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-char_io.obj -MD -MP -MF $(DEPDIR)/vstafs_stage1_5_exec-char_io.Tpo -c -o vstafs_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/vstafs_stage1_5_exec-char_io.Tpo $(DEPDIR)/vstafs_stage1_5_exec-char_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='char_io.c' object='vstafs_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
+ 
+ vstafs_stage1_5_exec-disk_io.o: disk_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-disk_io.Tpo" -c -o vstafs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/vstafs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-disk_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-disk_io.o -MD -MP -MF $(DEPDIR)/vstafs_stage1_5_exec-disk_io.Tpo -c -o vstafs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/vstafs_stage1_5_exec-disk_io.Tpo $(DEPDIR)/vstafs_stage1_5_exec-disk_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='disk_io.c' object='vstafs_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
+ 
+ vstafs_stage1_5_exec-disk_io.obj: disk_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-disk_io.Tpo" -c -o vstafs_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/vstafs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-disk_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-disk_io.obj -MD -MP -MF $(DEPDIR)/vstafs_stage1_5_exec-disk_io.Tpo -c -o vstafs_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/vstafs_stage1_5_exec-disk_io.Tpo $(DEPDIR)/vstafs_stage1_5_exec-disk_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='disk_io.c' object='vstafs_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
+ 
+ vstafs_stage1_5_exec-stage1_5.o: stage1_5.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-stage1_5.o -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Tpo" -c -o vstafs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-stage1_5.o -MD -MP -MF $(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Tpo -c -o vstafs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Tpo $(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='stage1_5.c' object='vstafs_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c
+ 
+ vstafs_stage1_5_exec-stage1_5.obj: stage1_5.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-stage1_5.obj -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Tpo" -c -o vstafs_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-stage1_5.obj -MD -MP -MF $(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Tpo -c -o vstafs_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Tpo $(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='stage1_5.c' object='vstafs_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`
+ 
+ vstafs_stage1_5_exec-fsys_vstafs.o: fsys_vstafs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-fsys_vstafs.o -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Tpo" -c -o vstafs_stage1_5_exec-fsys_vstafs.o `test -f 'fsys_vstafs.c' || echo '$(srcdir)/'`fsys_vstafs.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-fsys_vstafs.o -MD -MP -MF $(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Tpo -c -o vstafs_stage1_5_exec-fsys_vstafs.o `test -f 'fsys_vstafs.c' || echo '$(srcdir)/'`fsys_vstafs.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Tpo $(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_vstafs.c' object='vstafs_stage1_5_exec-fsys_vstafs.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-fsys_vstafs.o `test -f 'fsys_vstafs.c' || echo '$(srcdir)/'`fsys_vstafs.c
+ 
+ vstafs_stage1_5_exec-fsys_vstafs.obj: fsys_vstafs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-fsys_vstafs.obj -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Tpo" -c -o vstafs_stage1_5_exec-fsys_vstafs.obj `if test -f 'fsys_vstafs.c'; then $(CYGPATH_W) 'fsys_vstafs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_vstafs.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-fsys_vstafs.obj -MD -MP -MF $(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Tpo -c -o vstafs_stage1_5_exec-fsys_vstafs.obj `if test -f 'fsys_vstafs.c'; then $(CYGPATH_W) 'fsys_vstafs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_vstafs.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Tpo $(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_vstafs.c' object='vstafs_stage1_5_exec-fsys_vstafs.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-fsys_vstafs.obj `if test -f 'fsys_vstafs.c'; then $(CYGPATH_W) 'fsys_vstafs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_vstafs.c'; fi`
+ 
+ vstafs_stage1_5_exec-bios.o: bios.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-bios.o -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-bios.Tpo" -c -o vstafs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/vstafs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-bios.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-bios.o -MD -MP -MF $(DEPDIR)/vstafs_stage1_5_exec-bios.Tpo -c -o vstafs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/vstafs_stage1_5_exec-bios.Tpo $(DEPDIR)/vstafs_stage1_5_exec-bios.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='bios.c' object='vstafs_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
+ 
+ vstafs_stage1_5_exec-bios.obj: bios.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-bios.obj -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-bios.Tpo" -c -o vstafs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/vstafs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-bios.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-bios.obj -MD -MP -MF $(DEPDIR)/vstafs_stage1_5_exec-bios.Tpo -c -o vstafs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/vstafs_stage1_5_exec-bios.Tpo $(DEPDIR)/vstafs_stage1_5_exec-bios.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='bios.c' object='vstafs_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
+ 
+ xfs_stage1_5_exec-common.o: common.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-common.Tpo" -c -o xfs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/xfs_stage1_5_exec-common.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-common.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-common.o -MD -MP -MF $(DEPDIR)/xfs_stage1_5_exec-common.Tpo -c -o xfs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/xfs_stage1_5_exec-common.Tpo $(DEPDIR)/xfs_stage1_5_exec-common.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='common.c' object='xfs_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
+ 
+ xfs_stage1_5_exec-common.obj: common.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-common.obj -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-common.Tpo" -c -o xfs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/xfs_stage1_5_exec-common.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-common.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-common.obj -MD -MP -MF $(DEPDIR)/xfs_stage1_5_exec-common.Tpo -c -o xfs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/xfs_stage1_5_exec-common.Tpo $(DEPDIR)/xfs_stage1_5_exec-common.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='common.c' object='xfs_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
+ 
+ xfs_stage1_5_exec-char_io.o: char_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-char_io.o -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-char_io.Tpo" -c -o xfs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/xfs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-char_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-char_io.o -MD -MP -MF $(DEPDIR)/xfs_stage1_5_exec-char_io.Tpo -c -o xfs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/xfs_stage1_5_exec-char_io.Tpo $(DEPDIR)/xfs_stage1_5_exec-char_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='char_io.c' object='xfs_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
+ 
+ xfs_stage1_5_exec-char_io.obj: char_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-char_io.Tpo" -c -o xfs_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/xfs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-char_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-char_io.obj -MD -MP -MF $(DEPDIR)/xfs_stage1_5_exec-char_io.Tpo -c -o xfs_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/xfs_stage1_5_exec-char_io.Tpo $(DEPDIR)/xfs_stage1_5_exec-char_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='char_io.c' object='xfs_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
+ 
+ xfs_stage1_5_exec-disk_io.o: disk_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-disk_io.Tpo" -c -o xfs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/xfs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-disk_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-disk_io.o -MD -MP -MF $(DEPDIR)/xfs_stage1_5_exec-disk_io.Tpo -c -o xfs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/xfs_stage1_5_exec-disk_io.Tpo $(DEPDIR)/xfs_stage1_5_exec-disk_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='disk_io.c' object='xfs_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
+ 
+ xfs_stage1_5_exec-disk_io.obj: disk_io.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-disk_io.Tpo" -c -o xfs_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/xfs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-disk_io.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-disk_io.obj -MD -MP -MF $(DEPDIR)/xfs_stage1_5_exec-disk_io.Tpo -c -o xfs_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/xfs_stage1_5_exec-disk_io.Tpo $(DEPDIR)/xfs_stage1_5_exec-disk_io.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='disk_io.c' object='xfs_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
+ 
+ xfs_stage1_5_exec-stage1_5.o: stage1_5.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-stage1_5.o -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Tpo" -c -o xfs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-stage1_5.o -MD -MP -MF $(DEPDIR)/xfs_stage1_5_exec-stage1_5.Tpo -c -o xfs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/xfs_stage1_5_exec-stage1_5.Tpo $(DEPDIR)/xfs_stage1_5_exec-stage1_5.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='stage1_5.c' object='xfs_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c
+ 
+ xfs_stage1_5_exec-stage1_5.obj: stage1_5.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-stage1_5.obj -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Tpo" -c -o xfs_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-stage1_5.obj -MD -MP -MF $(DEPDIR)/xfs_stage1_5_exec-stage1_5.Tpo -c -o xfs_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/xfs_stage1_5_exec-stage1_5.Tpo $(DEPDIR)/xfs_stage1_5_exec-stage1_5.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='stage1_5.c' object='xfs_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`
+ 
+ xfs_stage1_5_exec-fsys_xfs.o: fsys_xfs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-fsys_xfs.o -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Tpo" -c -o xfs_stage1_5_exec-fsys_xfs.o `test -f 'fsys_xfs.c' || echo '$(srcdir)/'`fsys_xfs.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-fsys_xfs.o -MD -MP -MF $(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Tpo -c -o xfs_stage1_5_exec-fsys_xfs.o `test -f 'fsys_xfs.c' || echo '$(srcdir)/'`fsys_xfs.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Tpo $(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_xfs.c' object='xfs_stage1_5_exec-fsys_xfs.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-fsys_xfs.o `test -f 'fsys_xfs.c' || echo '$(srcdir)/'`fsys_xfs.c
+ 
+ xfs_stage1_5_exec-fsys_xfs.obj: fsys_xfs.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-fsys_xfs.obj -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Tpo" -c -o xfs_stage1_5_exec-fsys_xfs.obj `if test -f 'fsys_xfs.c'; then $(CYGPATH_W) 'fsys_xfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_xfs.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-fsys_xfs.obj -MD -MP -MF $(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Tpo -c -o xfs_stage1_5_exec-fsys_xfs.obj `if test -f 'fsys_xfs.c'; then $(CYGPATH_W) 'fsys_xfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_xfs.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Tpo $(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fsys_xfs.c' object='xfs_stage1_5_exec-fsys_xfs.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-fsys_xfs.obj `if test -f 'fsys_xfs.c'; then $(CYGPATH_W) 'fsys_xfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_xfs.c'; fi`
+ 
+ xfs_stage1_5_exec-bios.o: bios.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-bios.o -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-bios.Tpo" -c -o xfs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/xfs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-bios.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-bios.o -MD -MP -MF $(DEPDIR)/xfs_stage1_5_exec-bios.Tpo -c -o xfs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/xfs_stage1_5_exec-bios.Tpo $(DEPDIR)/xfs_stage1_5_exec-bios.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='bios.c' object='xfs_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
+ 
+ xfs_stage1_5_exec-bios.obj: bios.c
+- at am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-bios.obj -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-bios.Tpo" -c -o xfs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/xfs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-bios.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-bios.obj -MD -MP -MF $(DEPDIR)/xfs_stage1_5_exec-bios.Tpo -c -o xfs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/xfs_stage1_5_exec-bios.Tpo $(DEPDIR)/xfs_stage1_5_exec-bios.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='bios.c' object='xfs_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
+-uninstall-info-am:
+-install-pkglibDATA: $(pkglib_DATA)
++install-pkgdataDATA: $(pkgdata_DATA)
+ 	@$(NORMAL_INSTALL)
+-	test -z "$(pkglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkglibdir)"
+-	@list='$(pkglib_DATA)'; for p in $$list; do \
++	test -z "$(pkgdatadir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdatadir)"
++	@list='$(pkgdata_DATA)'; for p in $$list; do \
+ 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ 	  f=$(am__strip_dir) \
+-	  echo " $(pkglibDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \
+-	  $(pkglibDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \
++	  echo " $(pkgdataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgdatadir)/$$f'"; \
++	  $(pkgdataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgdatadir)/$$f"; \
+ 	done
+ 
+-uninstall-pkglibDATA:
++uninstall-pkgdataDATA:
+ 	@$(NORMAL_UNINSTALL)
+-	@list='$(pkglib_DATA)'; for p in $$list; do \
++	@list='$(pkgdata_DATA)'; for p in $$list; do \
+ 	  f=$(am__strip_dir) \
+-	  echo " rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
+-	  rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
++	  echo " rm -f '$(DESTDIR)$(pkgdatadir)/$$f'"; \
++	  rm -f "$(DESTDIR)$(pkgdatadir)/$$f"; \
+ 	done
+ 
+ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+@@ -3002,9 +3319,9 @@ distclean-tags:
+ 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+ 
+ check-TESTS: $(TESTS)
+-	@failed=0; all=0; xfail=0; xpass=0; skip=0; \
++	@failed=0; all=0; xfail=0; xpass=0; skip=0; ws='[	 ]'; \
+ 	srcdir=$(srcdir); export srcdir; \
+-	list='$(TESTS)'; \
++	list=' $(TESTS) '; \
+ 	if test -n "$$list"; then \
+ 	  for tst in $$list; do \
+ 	    if test -f ./$$tst; then dir=./; \
+@@ -3013,7 +3330,7 @@ check-TESTS: $(TESTS)
+ 	    if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
+ 	      all=`expr $$all + 1`; \
+ 	      case " $(XFAIL_TESTS) " in \
+-	      *" $$tst "*) \
++	      *$$ws$$tst$$ws*) \
+ 		xpass=`expr $$xpass + 1`; \
+ 		failed=`expr $$failed + 1`; \
+ 		echo "XPASS: $$tst"; \
+@@ -3025,7 +3342,7 @@ check-TESTS: $(TESTS)
+ 	    elif test $$? -ne 77; then \
+ 	      all=`expr $$all + 1`; \
+ 	      case " $(XFAIL_TESTS) " in \
+-	      *" $$tst "*) \
++	      *$$ws$$tst$$ws*) \
+ 		xfail=`expr $$xfail + 1`; \
+ 		echo "XFAIL: $$tst"; \
+ 	      ;; \
+@@ -3075,22 +3392,21 @@ check-TESTS: $(TESTS)
+ 	else :; fi
+ 
+ distdir: $(DISTFILES)
+-	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+-	list='$(DISTFILES)'; for file in $$list; do \
+-	  case $$file in \
+-	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+-	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+-	  esac; \
++	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
++	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
++	list='$(DISTFILES)'; \
++	  dist_files=`for file in $$list; do echo $$file; done | \
++	  sed -e "s|^$$srcdirstrip/||;t" \
++	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
++	case $$dist_files in \
++	  */*) $(MKDIR_P) `echo "$$dist_files" | \
++			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
++			   sort -u` ;; \
++	esac; \
++	for file in $$dist_files; do \
+ 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+-	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+-	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+-	    dir="/$$dir"; \
+-	    $(mkdir_p) "$(distdir)$$dir"; \
+-	  else \
+-	    dir=''; \
+-	  fi; \
+ 	  if test -d $$d/$$file; then \
++	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ 	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ 	    fi; \
+@@ -3108,8 +3424,8 @@ check: $(BUILT_SOURCES)
+ all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(SCRIPTS) $(DATA) \
+ 		$(HEADERS)
+ installdirs:
+-	for dir in "$(DESTDIR)$(pkglibdir)"; do \
+-	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
++	for dir in "$(DESTDIR)$(pkgdatadir)"; do \
++	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ 	done
+ install: $(BUILT_SOURCES)
+ 	$(MAKE) $(AM_MAKEFLAGS) install-am
+@@ -3160,14 +3476,22 @@ info: info-am
+ 
+ info-am:
+ 
+-install-data-am:
++install-data-am: install-pkgdataDATA
++
++install-dvi: install-dvi-am
++
++install-exec-am:
+ 
+-install-exec-am: install-pkglibDATA
++install-html: install-html-am
+ 
+ install-info: install-info-am
+ 
+ install-man:
+ 
++install-pdf: install-pdf-am
++
++install-ps: install-ps-am
++
+ installcheck-am:
+ 
+ maintainer-clean: maintainer-clean-am
+@@ -3187,19 +3511,22 @@ ps: ps-am
+ 
+ ps-am:
+ 
+-uninstall-am: uninstall-info-am uninstall-pkglibDATA
++uninstall-am: uninstall-pkgdataDATA
++
++.MAKE: install-am install-strip
+ 
+ .PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
+ 	clean-generic clean-noinstLIBRARIES clean-noinstPROGRAMS ctags \
+ 	distclean distclean-compile distclean-generic distclean-tags \
+ 	distdir dvi dvi-am html html-am info info-am install \
+-	install-am install-data install-data-am install-exec \
+-	install-exec-am install-info install-info-am install-man \
+-	install-pkglibDATA install-strip installcheck installcheck-am \
++	install-am install-data install-data-am install-dvi \
++	install-dvi-am install-exec install-exec-am install-html \
++	install-html-am install-info install-info-am install-man \
++	install-pdf install-pdf-am install-pkgdataDATA install-ps \
++	install-ps-am install-strip installcheck installcheck-am \
+ 	installdirs maintainer-clean maintainer-clean-generic \
+ 	mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
+-	ps ps-am tags uninstall uninstall-am uninstall-info-am \
+-	uninstall-pkglibDATA
++	ps ps-am tags uninstall uninstall-am uninstall-pkgdataDATA
+ 
+ 
+ stage2_size.h: pre_stage2
+diff --git a/stage2/asm.S b/stage2/asm.S
+index 34b6e7d..5c4dd5e 100644
+--- a/stage2/asm.S
++++ b/stage2/asm.S
+@@ -98,7 +98,7 @@ VARIABLE(version_string)
+ 	.string VERSION
+ VARIABLE(config_file)
+ #ifndef STAGE1_5
+-	.string "/boot/grub/menu.lst"
++	.string "/boot/grub/grub.conf"
+ #else   /* STAGE1_5 */
+ 	.long	0xffffffff
+ 	.string "/boot/grub/stage2"
+@@ -1622,36 +1622,78 @@ ENTRY(set_vbe_mode)
+  */
+ 
+ ENTRY(gateA20)
++	pushl	%ebx
++	pushl	%edx
++	call	testA20
++	jnz	1f
++	call	A20_BIOS
++	call	testA20
++	jnz	1f
++	call	A20_PORT92
++	call	testA20
++	jnz	1f
++	call	A20_KBDCTL
++	call	testA20
++	jnz	1f
++	movl	$0,%eax
++	jmp	2f
++1:
++	movl	$-1,%eax
++2:
++	popl	%edx
++	popl	%ebx
++	ret
++
++testA20:
++	movl	0x500,%eax
++	movl	0x100500,%ebx
++	notl	%eax
++	movl	%eax,0x100500
++	cmpl	%eax,0x500
++	pushfl
++	movl	%ebx,0x100500
++	notl	%eax
++	movl	%eax,0x500
++	popfl
++	ret
++
++A20_BIOS:
+ 	/* first, try a BIOS call */
+-	pushl	%ebp
+-	movl	8(%esp), %edx
+ 	
+ 	call	EXT_C(prot_to_real)
+ 	
+ 	.code16
+-	movw	$0x2400, %ax
+-	testw	%dx, %dx
+-	jz	1f
+-	incw	%ax
++	movw	$0x2401, %ax
+ 1:	stc
+ 	int	$0x15
+-	jnc	2f
+-
+-	/* set non-zero if failed */
+-	movb	$1, %ah
+-
+-	/* save the status */
+-2:	movb	%ah, %dl
+ 
+ 	DATA32	call	EXT_C(real_to_prot)
+ 	.code32
++	ret
+ 
+-	popl	%ebp
+-	testb	%dl, %dl
+-	jnz	3f
++A20_PORT92:
++	/*
++	* try to switch gateA20 using PORT92, the "Fast A20 and Init"
++	* register
++	*/
++	mov	$0x92, %dx
++	inb	%dx, %al
++	/* skip the port92 code if it's unimplemented (read returns 0xff) */
++	cmpb	$0xff, %al
++	jz	6f
++
++	/* set bit1, the ALT_A20_GATE bit */
++	orb	$2, %al
++	/*     	and     $0xfd, %al */
++
++	/* clear the INIT_NOW bit; don't accidently reset the machine */
++	and	$0xfe, %al
++	outb	%al, %dx
++6:
+ 	ret
+ 
+-3:	/* use keyboard controller */
++A20_KBDCTL:
++	/* use keyboard controller */
+ 	pushl	%eax
+ 
+ 	call    gloop1
+@@ -1665,11 +1707,7 @@ gloopint1:
+ 	jnz	gloopint1
+ 
+ 	movb	$KB_OUTPUT_MASK, %al
+-	cmpb	$0, 0x8(%esp)
+-	jz	gdoit
+-
+ 	orb	$KB_A20_ENABLE, %al
+-gdoit:
+ 	outb	$K_RDWR
+ 
+ 	call	gloop1
+@@ -1994,8 +2032,25 @@ ENTRY(console_getkey)
+ 	call	EXT_C(prot_to_real)
+ 	.code16
+ 
++.again:
++	mov	$0x11, %ah		/* poll kbd */
+ 	int	$0x16
+ 
++	jz	.again
++#if 0
++/* XXX handle serial here? -- pj */
++	jnz	.kbd
++#endif
++.kbd:
++	mov	$0x10, %ah
++	int	$0x16
++	cmp	$0xe0, %al
++	jnz	.not_ext
++	xor	%al, %al
++.not_ext:
++	and	%al, %al
++	jz	.func_key
++.func_key:
+ 	movw	%ax, %dx		/* real_to_prot uses %eax */
+ 	call	translate_keycode
+ 	call	remap_ascii_char
+@@ -2003,7 +2058,7 @@ ENTRY(console_getkey)
+ 	DATA32	call	EXT_C(real_to_prot)
+ 	.code32
+ 
+-	movw	%dx, %ax
++	mov	%dx, %ax
+ 
+ 	pop	%ebp
+ 	ret
+@@ -2029,7 +2084,7 @@ ENTRY(console_checkkey)
+ 	call	EXT_C(prot_to_real)	/* enter real mode */
+ 	.code16
+ 
+-	movb	$0x1, %ah
++	movb	$0x11, %ah
+ 	int	$0x16
+ 
+ 	DATA32	jz	notpending
+@@ -2051,6 +2106,37 @@ pending:
+ 	pop	%ebp
+ 	ret
+ 
++
++/*
++ * int console_keystatus (void)
++ * BIOS call "INT 16H Function 02H" to get keyboard modifier status
++ *	Call with	%ah = 0x2
++ *	Return:		%al = keyboard state:
++ *				bit 3: alt key down
++ *				bit 2: ctrl key down
++ *				bit 1: left shift key down
++ *				bit 0: right shift key down
++ */
++ENTRY(console_keystatus)
++	push	%ebp
++
++	call	EXT_C(prot_to_real)
++	.code16
++	
++	movb	$0x12, %ah
++	int	$0x16
++	movw	%ax, %dx
++
++	DATA32	call	EXT_C(real_to_prot)
++	.code32
++
++	movw	%dx, %ax
++	
++	/* Mask out numlock, capslock and insert state. */
++	andl	$0x0f0f, %eax
++	pop	%ebp
++	ret
++	
+ 	
+ /*
+  * int console_getxy (void)
+@@ -2216,6 +2302,156 @@ ENTRY(console_setcursor)
+ 	pop	%ebx
+ 	pop	%ebp
+ 	ret
++
++/* graphics mode functions */
++#ifdef SUPPORT_GRAPHICS
++VARIABLE(cursorX)
++.word	0
++VARIABLE(cursorY)
++.word	0
++VARIABLE(cursorCount)
++.word 0
++VARIABLE(cursorBuf)
++.byte	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
++
++	
++/*
++ * int set_videomode(mode)
++ * BIOS call "INT 10H Function 0h" to set video mode
++ *	Call with	%ah = 0x0
++ *			%al = video mode
++ *      Returns old videomode.
++ */
++ENTRY(set_videomode)
++	push	%ebp
++	push	%ebx
++	push	%ecx
++
++	movb	0x10(%esp), %cl
++
++	call	EXT_C(prot_to_real)
++	.code16
++
++	xorw	%bx, %bx
++	movb	$0xf, %ah
++	int	$0x10			/* Get Current Video mode */
++	movb	%al, %ch
++	xorb	%ah, %ah
++	movb	%cl, %al
++        int	$0x10			/* Set Video mode */
++
++	DATA32	call	EXT_C(real_to_prot)
++	.code32
++
++	xorb	%ah, %ah
++	movb	%ch, %al
++
++	pop	%ecx
++	pop	%ebx
++	pop	%ebp
++	ret
++
++
++/*
++ * unsigned char * graphics_get_font()
++ * BIOS call "INT 10H Function 11h" to set font
++ *      Call with       %ah = 0x11
++ */
++ENTRY(graphics_get_font)
++	push	%ebp
++	push	%ebx
++	push	%ecx
++	push	%edx
++
++	call	EXT_C(prot_to_real)
++	.code16
++
++	movw	$0x1130, %ax
++	movb	$6, %bh		/* font 8x16 */
++	int	$0x10
++	movw	%bp, %dx
++	movw	%es, %cx
++
++	DATA32	call	EXT_C(real_to_prot)
++	.code32
++
++	xorl	%eax, %eax
++	movw	%cx, %ax
++	shll	$4, %eax
++	movw	%dx, %ax
++
++	pop	%edx
++	pop	%ecx
++	pop	%ebx
++	pop	%ebp
++	ret
++	
++
++	
++/*
++ * graphics_set_palette(index, red, green, blue)
++ * BIOS call "INT 10H Function 10h" to set individual dac register
++ *	Call with	%ah = 0x10
++ *			%bx = register number
++ *			%ch = new value for green (0-63)
++ *			%cl = new value for blue (0-63)
++ *			%dh = new value for red (0-63)
++ */
++
++ENTRY(graphics_set_palette)
++	push	%ebp
++	push	%eax
++	push	%ebx
++	push	%ecx
++	push	%edx
++
++	movw	$0x3c8, %bx		/* address write mode register */
++
++	/* wait vertical retrace */
++
++	movw	$0x3da, %dx
++l1b:	inb	%dx, %al	/* wait vertical active display */
++	test	$8, %al
++	jnz	l1b
++
++l2b:	inb	%dx, %al	/* wait vertical retrace */
++	test	$8, %al
++	jnz	l2b
++
++	mov	%bx, %dx
++	movb	0x18(%esp), %al		/* index */
++	outb	%al, %dx
++	inc	%dx
++
++	movb	0x1c(%esp), %al		/* red */
++	outb	%al, %dx
++
++	movb	0x20(%esp), %al		/* green */
++	outb	%al, %dx
++
++	movb	0x24(%esp), %al		/* blue */
++	outb	%al, %dx
++
++	movw	0x18(%esp), %bx
++
++	call	EXT_C(prot_to_real)
++	.code16
++
++	movb	%bl, %bh
++	movw	$0x1000, %ax
++	int	$0x10
++
++	DATA32	call	EXT_C(real_to_prot)
++	.code32	
++
++	pop	%edx
++	pop	%ecx
++	pop	%ebx
++	pop	%eax
++	pop	%ebp
++	ret
++
++#endif /* SUPPORT_GRAPHICS */
+ 		
+ /*
+  * getrtsecs()
+diff --git a/stage2/boot.c b/stage2/boot.c
+index 4185d23..e30daf8 100644
+--- a/stage2/boot.c
++++ b/stage2/boot.c
+@@ -25,10 +25,14 @@
+ #include "imgact_aout.h"
+ #include "i386-elf.h"
+ 
++#ifndef PLATFORM_EFI
+ static int cur_addr;
++#endif
+ entry_func entry_addr;
++#ifndef PLATFORM_EFI
+ static struct mod_list mll[99];
+ static int linux_mem_size;
++#endif
+ 
+ /*
+  *  The next two functions, 'load_image' and 'load_module', are the building
+@@ -40,6 +44,9 @@ kernel_t
+ load_image (char *kernel, char *arg, kernel_t suggested_type,
+ 	    unsigned long load_flags)
+ {
++#ifdef PLATFORM_EFI
++      return grub_load_linux (kernel, arg);
++#else
+   int len, i, exec_type = 0, align_4k = 1;
+   entry_func real_entry_addr = 0;
+   kernel_t type = KERNEL_TYPE_NONE;
+@@ -221,6 +228,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+     {
+       int big_linux = 0;
+       int setup_sects = lh->setup_sects;
++      int cmdline_size = 0xff;
+ 
+       if (lh->header == LINUX_MAGIC_SIGNATURE && lh->version >= 0x0200)
+ 	{
+@@ -248,6 +256,14 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+ 	      lh->cl_offset = LINUX_CL_OFFSET;
+ 	      lh->setup_move_size = LINUX_SETUP_MOVE_SIZE;
+ 	    }
++
++	  if (lh->version >= 0x0206)
++	    {
++	      cmdline_size = lh->cmdline_size;
++	      if (cmdline_size > (LINUX_CL_END_OFFSET - LINUX_CL_OFFSET))
++		cmdline_size = LINUX_CL_END_OFFSET - LINUX_CL_OFFSET;
++	    }
++
+ 	}
+       else
+ 	{
+@@ -265,7 +281,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+ 	setup_sects = LINUX_DEFAULT_SETUP_SECTS;
+ 
+       data_len = setup_sects << 9;
+-      text_len = filemax - data_len - SECTOR_SIZE;
++      text_len = filemax - data_len - get_sector_size(current_drive);
+ 
+       linux_data_tmp_addr = (char *) LINUX_BZIMAGE_ADDR + text_len;
+       
+@@ -280,8 +296,12 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+ 	errnum = ERR_WONT_FIT;
+       else
+ 	{
+-	  grub_printf ("   [Linux-%s, setup=0x%x, size=0x%x]\n",
+-		       (big_linux ? "bzImage" : "zImage"), data_len, text_len);
++	  grub_verbose_printf ("   [Linux-%s, setup=0x%x, size=0x%x]\n",
++			       (big_linux ? "bzImage" : "zImage"),
++			       data_len, text_len);
++
++	  if (silent_grub)
++	    lh->vid_mode = 0x0f04;
+ 
+ 	  /* Video mode selection support. What a mess!  */
+ 	  /* NOTE: Even the word "mess" is not still enough to
+@@ -375,14 +395,15 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+       
+ 	  /* It is possible that DATA_LEN + SECTOR_SIZE is greater than
+ 	     MULTIBOOT_SEARCH, so the data may have been read partially.  */
+-	  if (data_len + SECTOR_SIZE <= MULTIBOOT_SEARCH)
++	  if (data_len + get_sector_size(current_drive) <= MULTIBOOT_SEARCH)
+ 	    grub_memmove (linux_data_tmp_addr, buffer,
+-			  data_len + SECTOR_SIZE);
++			  data_len + get_sector_size(current_drive));
+ 	  else
+ 	    {
+ 	      grub_memmove (linux_data_tmp_addr, buffer, MULTIBOOT_SEARCH);
+ 	      grub_read (linux_data_tmp_addr + MULTIBOOT_SEARCH,
+-			 data_len + SECTOR_SIZE - MULTIBOOT_SEARCH);
++			 data_len + get_sector_size(current_drive)
++			 - MULTIBOOT_SEARCH);
+ 	    }
+ 	  
+ 	  if (lh->header != LINUX_MAGIC_SIGNATURE ||
+@@ -404,7 +425,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+ 	    char *src = skip_to (0, arg);
+ 	    char *dest = linux_data_tmp_addr + LINUX_CL_OFFSET;
+ 	
+-	    while (dest < linux_data_tmp_addr + LINUX_CL_END_OFFSET && *src)
++	    while (dest < linux_data_tmp_addr + LINUX_CL_OFFSET + cmdline_size && *src)
+ 	      *(dest++) = *(src++);
+ 	
+ 	    /* Old Linux kernels have problems determining the amount of
+@@ -425,7 +446,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+ 	    if (! grub_strstr (arg, "mem=")
+ 		&& ! (load_flags & KERNEL_LOAD_NO_MEM_OPTION)
+ 		&& lh->version < 0x0203		/* kernel version < 2.4.18 */
+-		&& dest + 15 < linux_data_tmp_addr + LINUX_CL_END_OFFSET)
++		&& dest + 15 < linux_data_tmp_addr + LINUX_CL_OFFSET + cmdline_size)
+ 	      {
+ 		*dest++ = ' ';
+ 		*dest++ = 'm';
+@@ -441,7 +462,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+ 	  }
+       
+ 	  /* offset into file */
+-	  grub_seek (data_len + SECTOR_SIZE);
++	  grub_seek (data_len + get_sector_size(current_drive));
+       
+ 	  cur_addr = (int) linux_data_tmp_addr + LINUX_SETUP_MOVE_SIZE;
+ 	  grub_read ((char *) LINUX_BZIMAGE_ADDR, text_len);
+@@ -487,7 +508,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+   mbi.syms.a.addr = 0;
+   mbi.syms.a.pad = 0;
+ 
+-  printf ("   [%s-%s", str2, str);
++  verbose_printf ("   [%s-%s", str2, str);
+ 
+   str = "";
+ 
+@@ -496,7 +517,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+       if (flags & MULTIBOOT_AOUT_KLUDGE)
+ 	str = "-and-data";
+ 
+-      printf (", loadaddr=0x%x, text%s=0x%x", cur_addr, str, text_len);
++      verbose_printf (", loadaddr=0x%x, text%s=0x%x", cur_addr, str, text_len);
+ 
+       /* read text, then read data */
+       if (grub_read ((char *) RAW_ADDR (cur_addr), text_len) == text_len)
+@@ -509,9 +530,9 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+ 	      if (align_4k)
+ 		cur_addr = (cur_addr + 0xFFF) & 0xFFFFF000;
+ 	      else
+-		printf (", C");
++		verbose_printf (", C");
+ 
+-	      printf (", data=0x%x", data_len);
++	      verbose_printf (", data=0x%x", data_len);
+ 
+ 	      if ((grub_read ((char *) RAW_ADDR (cur_addr), data_len)
+ 		   != data_len)
+@@ -525,7 +546,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+ 	      memset ((char *) RAW_ADDR (cur_addr), 0, bss_len);
+ 	      cur_addr += bss_len;
+ 
+-	      printf (", bss=0x%x", bss_len);
++	      verbose_printf (", bss=0x%x", bss_len);
+ 	    }
+ 	}
+       else if (!errnum)
+@@ -545,7 +566,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+ 	  *((int *) RAW_ADDR (cur_addr)) = pu.aout->a_syms;
+ 	  cur_addr += sizeof (int);
+ 	  
+-	  printf (", symtab=0x%x", pu.aout->a_syms);
++	  verbose_printf (", symtab=0x%x", pu.aout->a_syms);
+ 
+ 	  if (grub_read ((char *) RAW_ADDR (cur_addr), pu.aout->a_syms)
+ 	      == pu.aout->a_syms)
+@@ -562,7 +583,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+ 
+ 		  i -= sizeof (int);
+ 
+-		  printf (", strtab=0x%x", i);
++		  verbose_printf (", strtab=0x%x", i);
+ 
+ 		  symtab_err = (grub_read ((char *) RAW_ADDR (cur_addr), i)
+ 				!= i);
+@@ -576,7 +597,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+ 
+ 	  if (symtab_err)
+ 	    {
+-	      printf ("(bad)");
++	      verbose_printf ("(bad)");
+ 	      cur_addr = orig_addr;
+ 	      mbi.syms.a.tabsize = 0;
+ 	      mbi.syms.a.strsize = 0;
+@@ -630,7 +651,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+ 	      /* mark memory as used */
+ 	      if (cur_addr < memaddr + memsiz)
+ 		cur_addr = memaddr + memsiz;
+-	      printf (", <0x%x:0x%x:0x%x>", memaddr, filesiz,
++	      verbose_printf (", <0x%x:0x%x:0x%x>", memaddr, filesiz,
+ 		      memsiz - filesiz);
+ 	      /* increment number of segments */
+ 	      loaded++;
+@@ -676,7 +697,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+ 		  shdr = (Elf32_Shdr *) mbi.syms.e.addr;
+ 		  cur_addr += tab_size;
+ 		  
+-		  printf (", shtab=0x%x", cur_addr);
++		  verbose_printf (", shtab=0x%x", cur_addr);
+   		  
+ 		  for (i = 0; i < mbi.syms.e.num; i++)
+ 		    {
+@@ -718,7 +739,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+ 	      
+ 	      if (symtab_err) 
+ 		{
+-		  printf ("(bad)");
++		  verbose_printf ("(bad)");
+ 		  mbi.syms.e.num = 0;
+ 		  mbi.syms.e.size = 0;
+ 		  mbi.syms.e.addr = 0;
+@@ -733,7 +754,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+ 
+   if (! errnum)
+     {
+-      grub_printf (", entry=0x%x]\n", (unsigned) entry_addr);
++      grub_verbose_printf (", entry=0x%x]\n", (unsigned) entry_addr);
+       
+       /* If the entry address is physically different from that of the ELF
+ 	 header, correct it here.  */
+@@ -756,8 +777,10 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+     }
+   
+   return type;
++#endif
+ }
+ 
++#ifndef PLATFORM_EFI
+ int
+ load_module (char *module, char *arg)
+ {
+@@ -776,7 +799,7 @@ load_module (char *module, char *arg)
+       return 0;
+     }
+ 
+-  printf ("   [Multiboot-module @ 0x%x, 0x%x bytes]\n", cur_addr, len);
++  verbose_printf ("   [Multiboot-module @ 0x%x, 0x%x bytes]\n", cur_addr, len);
+ 
+   /* these two simply need to be set if any modules are loaded at all */
+   mbi.flags |= MB_INFO_MODS;
+@@ -794,11 +817,19 @@ load_module (char *module, char *arg)
+   grub_close ();
+   return 1;
+ }
++#endif
+ 
+ int
+ load_initrd (char *initrd)
+ {
+-  int len;
++#ifdef PLATFORM_EFI
++#ifndef NO_DECOMPRESSION
++  no_decompression = 1;
++#endif
++  return grub_load_initrd (initrd);
++#else
++  int len, next_addr;
++  char *singleimage, *pos;
+   unsigned long moveto;
+   unsigned long max_addr;
+   struct linux_kernel_header *lh
+@@ -807,16 +838,24 @@ load_initrd (char *initrd)
+ #ifndef NO_DECOMPRESSION
+   no_decompression = 1;
+ #endif
+-  
+-  if (! grub_open (initrd))
+-    goto fail;
++  len = 0;
++  next_addr = cur_addr;
+ 
+-  len = grub_read ((char *) cur_addr, -1);
+-  if (! len)
+-    {
+-      grub_close ();
+-      goto fail;
+-    }
++  /* loop over all initrd images and concatenate them in memory */
++  singleimage = strtok_r(initrd," \t",&pos);
++  while (singleimage) {
++    if (! grub_open (singleimage))
++      continue;
++
++    len += grub_read ((char *) next_addr, -1);
++    grub_close ();
++
++    next_addr = cur_addr + len;
++    singleimage = strtok_r(NULL," \t",&pos);
++  }
++
++  if (!len)
++    goto fail;
+ 
+   if (linux_mem_size)
+     moveto = linux_mem_size;
+@@ -824,8 +863,12 @@ load_initrd (char *initrd)
+     moveto = (mbi.mem_upper + 0x400) << 10;
+   
+   moveto = (moveto - len) & 0xfffff000;
++#if 0
+   max_addr = (lh->header == LINUX_MAGIC_SIGNATURE && lh->version >= 0x0203
+ 	      ? lh->initrd_addr_max : LINUX_INITRD_MAX_ADDRESS);
++#else
++  max_addr = LINUX_INITRD_MAX_ADDRESS;
++#endif
+   if (moveto + len >= max_addr)
+     moveto = (max_addr - len) & 0xfffff000;
+   
+@@ -836,13 +879,12 @@ load_initrd (char *initrd)
+   moveto -= 0x10000;
+   memmove ((void *) RAW_ADDR (moveto), (void *) cur_addr, len);
+ 
+-  printf ("   [Linux-initrd @ 0x%x, 0x%x bytes]\n", moveto, len);
++  verbose_printf ("   [Linux-initrd @ 0x%x, 0x%x bytes]\n", moveto, len);
+ 
+   /* FIXME: Should check if the kernel supports INITRD.  */
+   lh->ramdisk_image = RAW_ADDR (moveto);
+   lh->ramdisk_size = len;
+ 
+-  grub_close ();
+ 
+  fail:
+   
+@@ -851,9 +893,11 @@ load_initrd (char *initrd)
+ #endif
+ 
+   return ! errnum;
++#endif
+ }
+ 
+ 
++#ifndef PLATFORM_EFI
+ #ifdef GRUB_UTIL
+ /* Dummy function to fake the *BSD boot.  */
+ static void
+@@ -1018,3 +1062,5 @@ bsd_boot (kernel_t type, int bootdev, char *arg)
+ 		     extended_memory, mbi.mem_lower);
+     }
+ }
++#endif
++
+diff --git a/stage2/btrfs.h b/stage2/btrfs.h
+new file mode 100644
+index 0000000..79d879e
+--- /dev/null
++++ b/stage2/btrfs.h
+@@ -0,0 +1,1414 @@
++/* btrfs.h - an extraction from btrfs-progs-0.18/ctree.h into one file
++ *
++ * Copyright (C) 2007 Oracle.  All rights reserved.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public
++ * License v2 as published by the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ * General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public
++ * License along with this program; if not, write to the
++ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
++ * Boston, MA 021110-1307, USA.
++ */
++
++/* include/asm-i386/types.h */
++
++typedef __signed__ char __s8;
++typedef unsigned char __u8;
++typedef __signed__ short __s16;
++typedef unsigned short __u16;
++typedef __signed__ int __s32;
++typedef unsigned int __u32;
++typedef unsigned long long __u64;
++typedef __signed__ long long __s64;
++
++typedef __s8 s8;
++typedef __u8 u8;
++typedef __u16 u16;
++typedef __u32 u32;
++typedef __u64 u64;
++typedef __s64 s64;
++
++#define __bitwise
++
++typedef u16 __bitwise __le16;
++typedef u32 __bitwise __le32;
++typedef u64 __bitwise __le64;
++
++/* linux/posix_type.h */
++typedef long linux_off_t;
++
++/* linux/little_endian.h */
++#define cpu_to_le64(x) ((__u64) (x))
++#define le64_to_cpu(x) ((__u64) (x))
++#define cpu_to_le32(x) ((__u32) (x))
++#define le32_to_cpu(x) ((__u32) (x))
++#define cpu_to_le16(x) ((__u16) (x))
++#define le16_to_cpu(x) ((__u16) (x))
++#define le8_to_cpu(x) ((__u8) (x))
++#define cpu_to_le8(x) ((__u8) (x))
++
++/* linux/stat.h */
++#define S_IFMT  00170000
++#define S_IFLNK  0120000
++#define S_IFREG  0100000
++#define S_IFDIR  0040000
++#define S_ISLNK(m)	(((m) & S_IFMT) == S_IFLNK)
++#define S_ISREG(m)      (((m) & S_IFMT) == S_IFREG)
++#define S_ISDIR(m)      (((m) & S_IFMT) == S_IFDIR)
++
++struct btrfs_root;
++#define BTRFS_MAGIC "_BHRfS_M"
++
++#define BTRFS_SUPER_INFO_OFFSET (64 * 1024)
++#define BTRFS_SUPER_INFO_SIZE 4096
++
++#define BTRFS_SUPER_MIRROR_MAX	 3
++#define BTRFS_SUPER_MIRROR_SHIFT 12
++
++#define PATH_MAX                1024	/* include/linux/limits.h */
++#define MAX_LINK_COUNT             5	/* number of symbolic links
++					   to follow */
++#define BTRFS_MAX_LEVEL 8
++#define BTRFS_ROOT_TREE_OBJECTID 1ULL
++#define BTRFS_EXTENT_TREE_OBJECTID 2ULL
++#define BTRFS_CHUNK_TREE_OBJECTID 3ULL
++#define BTRFS_DEV_TREE_OBJECTID 4ULL
++#define BTRFS_FS_TREE_OBJECTID 5ULL
++#define BTRFS_ROOT_TREE_DIR_OBJECTID 6ULL
++#define BTRFS_CSUM_TREE_OBJECTID 7ULL
++
++#define BTRFS_ORPHAN_OBJECTID -5ULL
++#define BTRFS_TREE_LOG_OBJECTID -6ULL
++#define BTRFS_TREE_LOG_FIXUP_OBJECTID -7ULL
++#define BTRFS_TREE_RELOC_OBJECTID -8ULL
++#define BTRFS_DATA_RELOC_TREE_OBJECTID -9ULL
++#define BTRFS_EXTENT_CSUM_OBJECTID -10ULL
++
++#define BTRFS_MULTIPLE_OBJECTIDS -255ULL
++#define BTRFS_FIRST_FREE_OBJECTID 256ULL
++#define BTRFS_LAST_FREE_OBJECTID -256ULL
++#define BTRFS_FIRST_CHUNK_TREE_OBJECTID 256ULL
++#define BTRFS_DEV_ITEMS_OBJECTID 1ULL
++
++
++#define BTRFS_NAME_LEN 255
++#define BTRFS_CSUM_SIZE 32
++#define BTRFS_CSUM_TYPE_CRC32	0
++
++static int btrfs_csum_sizes[] = { 4, 0 };
++
++/* four bytes for CRC32 */
++#define BTRFS_CRC32_SIZE 4
++#define BTRFS_EMPTY_DIR_SIZE 0
++
++#define BTRFS_FT_UNKNOWN	0
++#define BTRFS_FT_REG_FILE	1
++#define BTRFS_FT_DIR		2
++#define BTRFS_FT_CHRDEV		3
++#define BTRFS_FT_BLKDEV		4
++#define BTRFS_FT_FIFO		5
++#define BTRFS_FT_SOCK		6
++#define BTRFS_FT_SYMLINK	7
++#define BTRFS_FT_XATTR		8
++#define BTRFS_FT_MAX		9
++
++#define BTRFS_UUID_SIZE 16
++
++#define BTRFS_DEFAULT_NUM_DEVICES     1
++#define BTRFS_DEFAULT_NODE_SIZE       4096
++#define BTRFS_DEFAULT_LEAF_SIZE       4096
++#define BTRFS_NUM_CACHED_DEVICES      128
++
++#define WARN_ON(c)
++#define cassert(cond) ({ switch (-1) { case (cond): case 0: break; } })
++#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
++
++#define offsetof(type, memb) \
++	((unsigned long)(&((type *)0)->memb))
++
++struct btrfs_disk_key {
++	__le64 objectid;
++	u8 type;
++	__le64 offset;
++} __attribute__ ((__packed__));
++
++/* cpu key */
++struct btrfs_key {
++	u64 objectid;
++	u8 type;
++	u64 offset;
++} __attribute__ ((__packed__));
++
++/* this represents a divice in a chunk tree */
++struct btrfs_dev_item {
++	__le64 devid; /* internal device id */
++	__le64 total_bytes; /* size of the device */
++	__le64 bytes_used;
++	__le32 io_align; /* optimal io alignment */
++	__le32 io_width; /* optimal io width */
++	__le32 sector_size; /* minimal io size */
++	__le64 type; /* type and info about this device */
++	__le64 generation; /* expected generation */
++        __le64 start_offset; /* of the partition on a device */
++
++	/* info for allocation decisions */
++	__le32 dev_group;
++
++        u8 seek_speed; /* 0-100 (100 is fastest) */
++	u8 bandwidth;  /* 0-100 (100 is fastest) */
++
++        u8 uuid[BTRFS_UUID_SIZE]; /* dev uuid generated by btrfs */
++	u8 fsid[BTRFS_UUID_SIZE]; /* uuid of the host FS */
++} __attribute__ ((__packed__));
++
++struct btrfs_stripe {
++	__le64 devid;
++	__le64 offset;
++	u8 dev_uuid[BTRFS_UUID_SIZE];
++} __attribute__ ((__packed__));
++
++struct btrfs_chunk {
++	/* size of this chunk in bytes */
++	__le64 length;
++	__le64 owner; /* objectid of the root referincing this chunk */
++	__le64 stripe_len;
++	__le64 type;
++	__le32 io_align; /* optimal io alignment for this chunk */
++	__le32 io_width; /* optimal io width for this chunk */
++	__le32 sector_size; /* minimal io size for this chunk */
++	__le16 num_stripes;
++	__le16 sub_stripes; /* sub stripes (for raid10) */
++	struct btrfs_stripe stripe;
++} __attribute__ ((__packed__));
++
++static inline unsigned long btrfs_chunk_item_size(int num_stripes)
++{
++	return sizeof(struct btrfs_chunk) +
++		sizeof(struct btrfs_stripe) * (num_stripes - 1);
++}
++
++#define BTRFS_FSID_SIZE 16
++#define BTRFS_HEADER_FLAG_WRITTEN (1 << 0)
++
++struct btrfs_header {
++	/* these first four must match the super block */
++	u8 csum[BTRFS_CSUM_SIZE];
++	u8 fsid[BTRFS_FSID_SIZE]; /* uuid of the host fs */
++	__le64 bytenr; /* which block this node is supposed to live in */
++	__le64 flags;
++
++	/* allowed to be different from the super from here on down */
++	u8 chunk_tree_uuid[BTRFS_UUID_SIZE];
++	__le64 generation;
++	__le64 owner;
++	__le32 nritems;
++	u8 level;
++} __attribute__ ((__packed__));
++
++#define BTRFS_NODEPTRS_PER_BLOCK(r) (((r)->nodesize - \
++			        sizeof(struct btrfs_header)) / \
++			        sizeof(struct btrfs_key_ptr))
++#define __BTRFS_LEAF_DATA_SIZE(bs) ((bs) - sizeof(struct btrfs_header))
++#define BTRFS_LEAF_DATA_SIZE(r) (__BTRFS_LEAF_DATA_SIZE(r->leafsize))
++#define BTRFS_MAX_INLINE_DATA_SIZE(r) (BTRFS_LEAF_DATA_SIZE(r) - \
++					sizeof(struct btrfs_item) - \
++					sizeof(struct btrfs_file_extent_item))
++
++#define BTRFS_SUPER_FLAG_SEEDING	(1ULL << 32)
++#define BTRFS_SUPER_FLAG_METADUMP	(1ULL << 33)
++
++/*
++ * a portion of superblock which is used
++ * for chunk translation (up to 14 chunks
++ * with 3 stripes each.
++ */
++#define BTRFS_SYSTEM_CHUNK_ARRAY_SIZE 2048
++#define BTRFS_LABEL_SIZE 256
++
++/*
++ * the super block basically lists the main trees of the FS
++ * it currently lacks any block count etc etc
++ */
++struct btrfs_super_block {
++	u8 csum[BTRFS_CSUM_SIZE];
++	/* the first 3 fields must match struct btrfs_header */
++	u8 fsid[BTRFS_FSID_SIZE];    /* FS specific uuid */
++	__le64 bytenr; /* this block number */
++	__le64 flags;
++
++	/* allowed to be different from the btrfs_header from here own down */
++	__le64 magic;
++	__le64 generation;
++	__le64 root;        /* tree root */
++	__le64 chunk_root;
++	__le64 log_root;
++
++	/* this will help find the new super based on the log root */
++	__le64 log_root_transid;
++	__le64 total_bytes;
++	__le64 bytes_used;
++	__le64 root_dir_objectid;
++	__le64 num_devices;
++	__le32 sectorsize;
++	__le32 nodesize;
++	__le32 leafsize;
++	__le32 stripesize;
++	__le32 sys_chunk_array_size;
++	__le64 chunk_root_generation;
++	__le64 compat_flags;
++	__le64 compat_ro_flags;
++	__le64 incompat_flags;
++	__le16 csum_type;
++	u8 root_level;
++	u8 chunk_root_level;
++	u8 log_root_level;
++	struct btrfs_dev_item dev_item;
++
++	char label[BTRFS_LABEL_SIZE];
++
++	/* future expansion */
++	__le64 reserved[32];
++	u8 sys_chunk_array[BTRFS_SYSTEM_CHUNK_ARRAY_SIZE];
++} __attribute__ ((__packed__));
++
++/*
++ * Compat flags that we support.  If any incompat flags are set other than the
++ * ones specified below then we will fail to mount
++ */
++#define BTRFS_FEATURE_COMPAT_SUPP	0x0
++#define BTRFS_FEATURE_COMPAT_RO_SUPP	0x0
++#define BTRFS_FEATURE_INCOMPAT_SUPP	0x0
++
++/* Item header for per-leaf lookup */
++struct btrfs_item {
++	struct btrfs_disk_key key;
++	__le32 offset;
++	__le32 size;
++} __attribute__ ((__packed__));
++
++/*
++ * Format of the leaves:
++ * [item0, item1....itemN] [free space] [dataN...data1, data0]
++ */
++struct btrfs_leaf {
++	struct btrfs_header header;
++	struct btrfs_item items[];
++} __attribute__ ((__packed__));
++
++/*
++ * keys-pointers pairs for per-node (non-leaf) lookup
++ */
++struct btrfs_key_ptr {
++	struct btrfs_disk_key key;
++	__le64 blockptr;
++	__le64 generation;
++} __attribute__ ((__packed__));
++
++struct btrfs_node {
++	struct btrfs_header header;
++	struct btrfs_key_ptr ptrs[];
++} __attribute__ ((__packed__));
++
++struct btrfs_device {
++	/* the internal btrfs device id */
++	u64 devid;
++	/* the internal grub device representation */
++	unsigned long drive;
++	unsigned long part;
++	unsigned long length;
++};
++
++struct extent_buffer {
++	/* metadata */
++	struct btrfs_device dev;
++	u64 start;
++	u64 dev_bytenr;
++	u32 len;
++	/* data */
++	char *data;
++};
++
++static inline void read_extent_buffer(struct extent_buffer *eb,
++				      void *dst, unsigned long start,
++				      unsigned long len)
++{
++	memcpy(dst, eb->data + start, len);
++}
++
++static inline void write_extent_buffer(struct extent_buffer *eb,
++				       const void *src, unsigned long start,
++				       unsigned long len)
++{
++	memcpy(eb->data + start, src, len);
++}
++
++/*
++ * NOTE:
++ * don't increase a number of levels for grub-0.97!
++ */
++typedef enum {
++	FIRST_EXTERNAL_LOOKUP_POOL,
++	SECOND_EXTERNAL_LOOKUP_POOL,
++	INTERNAL_LOOKUP_POOL,
++	LAST_LOOKUP_POOL
++} lookup_pool_id;
++
++/*             Relationship between lookup pools:
++ *  depth
++ *
++ *    ^             +----> INTERNAL <----+
++ *    |             |                    |
++ *    |             |                    |
++ *    -        FIRST_EXTERNAL     SECOND_EXTERNAL
++ */
++
++struct btrfs_path {
++	lookup_pool_id lpid;
++	struct extent_buffer nodes[BTRFS_MAX_LEVEL];
++	int slots[BTRFS_MAX_LEVEL];
++};
++
++/*
++ * items in the extent btree are used to record the objectid of the
++ * owner of the block and the number of references
++ */
++struct btrfs_extent_item {
++	__le32 refs;
++} __attribute__ ((__packed__));
++
++struct btrfs_extent_ref {
++	__le64 root;
++	__le64 generation;
++	__le64 objectid;
++	__le32 num_refs;
++} __attribute__ ((__packed__));
++
++/* dev extents record free space on individual devices.  The owner
++ * field points back to the chunk allocation mapping tree that allocated
++ * the extent.  The chunk tree uuid field is a way to double check the owner
++ */
++struct btrfs_dev_extent {
++	__le64 chunk_tree;
++	__le64 chunk_objectid;
++	__le64 chunk_offset;
++	__le64 length;
++	u8 chunk_tree_uuid[BTRFS_UUID_SIZE];
++} __attribute__ ((__packed__));
++
++struct btrfs_inode_ref {
++	__le64 index;
++	__le16 name_len;
++	/* name goes here */
++} __attribute__ ((__packed__));
++
++struct btrfs_timespec {
++	__le64 sec;
++	__le32 nsec;
++} __attribute__ ((__packed__));
++
++typedef enum {
++	BTRFS_COMPRESS_NONE = 0,
++	BTRFS_COMPRESS_ZLIB = 1,
++	BTRFS_COMPRESS_LAST = 2,
++} btrfs_compression_type;
++
++/* we don't understand any encryption methods right now */
++typedef enum {
++	BTRFS_ENCRYPTION_NONE = 0,
++	BTRFS_ENCRYPTION_LAST = 1,
++} btrfs_encryption_type;
++
++struct btrfs_inode_item {
++	/* nfs style generation number */
++	__le64 generation;
++	/* transid that last touched this inode */
++	__le64 transid;
++	__le64 size;
++	__le64 nbytes;
++	__le64 block_group;
++	__le32 nlink;
++	__le32 uid;
++	__le32 gid;
++	__le32 mode;
++	__le64 rdev;
++	__le64 flags;
++
++	/* modification sequence number for NFS */
++	__le64 sequence;
++
++	/*
++	 * a little future expansion, for more than this we can
++	 * just grow the inode item and version it
++	 */
++	__le64 reserved[4];
++	struct btrfs_timespec atime;
++	struct btrfs_timespec ctime;
++	struct btrfs_timespec mtime;
++	struct btrfs_timespec otime;
++} __attribute__ ((__packed__));
++
++struct btrfs_dir_item {
++	struct btrfs_disk_key location;
++	__le64 transid;
++	__le16 data_len;
++	__le16 name_len;
++	u8 type;
++} __attribute__ ((__packed__));
++
++struct btrfs_root_item {
++	struct btrfs_inode_item inode;
++	__le64 generation;
++	__le64 root_dirid;
++	__le64 bytenr;
++	__le64 byte_limit;
++	__le64 bytes_used;
++	__le64 last_snapshot;
++	__le64 flags;
++	__le32 refs;
++	struct btrfs_disk_key drop_progress;
++	u8 drop_level;
++	u8 level;
++} __attribute__ ((__packed__));
++
++/*
++ * this is used for both forward and backward root refs
++ */
++struct btrfs_root_ref {
++	__le64 dirid;
++	__le64 sequence;
++	__le16 name_len;
++} __attribute__ ((__packed__));
++
++#define BTRFS_FILE_EXTENT_INLINE 0
++#define BTRFS_FILE_EXTENT_REG 1
++#define BTRFS_FILE_EXTENT_PREALLOC 2
++
++struct btrfs_file_extent_item {
++	/*
++	 * transaction id that created this extent
++	 */
++	__le64 generation;
++	/*
++	 * max number of bytes to hold this extent in ram
++	 * when we split a compressed extent we can't know how big
++	 * each of the resulting pieces will be.  So, this is
++	 * an upper limit on the size of the extent in ram instead of
++	 * an exact limit.
++	 */
++	__le64 ram_bytes;
++
++	/*
++	 * 32 bits for the various ways we might encode the data,
++	 * including compression and encryption.  If any of these
++	 * are set to something a given disk format doesn't understand
++	 * it is treated like an incompat flag for reading and writing,
++	 * but not for stat.
++	 */
++	u8 compression;
++	u8 encryption;
++	__le16 other_encoding; /* spare for later use */
++
++	/* are we inline data or a real extent? */
++	u8 type;
++
++	/*
++	 * disk space consumed by the extent, checksum blocks are included
++	 * in these numbers
++	 */
++	__le64 disk_bytenr;
++	__le64 disk_num_bytes;
++	/*
++	 * the logical offset in file blocks (no csums)
++	 * this extent record is for.  This allows a file extent to point
++	 * into the middle of an existing extent on disk, sharing it
++	 * between two snapshots (useful if some bytes in the middle of the
++	 * extent have changed
++	 */
++	__le64 offset;
++	/*
++	 * the logical number of file blocks (no csums included)
++	 */
++	__le64 num_bytes;
++
++} __attribute__ ((__packed__));
++
++struct btrfs_csum_item {
++	u8 csum;
++} __attribute__ ((__packed__));
++
++/* tag for the radix tree of block groups in ram */
++#define BTRFS_BLOCK_GROUP_DATA     (1 << 0)
++#define BTRFS_BLOCK_GROUP_SYSTEM   (1 << 1)
++#define BTRFS_BLOCK_GROUP_METADATA (1 << 2)
++#define BTRFS_BLOCK_GROUP_RAID0    (1 << 3)
++#define BTRFS_BLOCK_GROUP_RAID1    (1 << 4)
++#define BTRFS_BLOCK_GROUP_DUP	   (1 << 5)
++#define BTRFS_BLOCK_GROUP_RAID10   (1 << 6)
++
++struct btrfs_block_group_item {
++	__le64 used;
++	__le64 chunk_objectid;
++	__le64 flags;
++} __attribute__ ((__packed__));
++
++/*
++ * in ram representation of the tree.  extent_root is used for all allocations
++ * and for the extent tree extent_root root.
++ */
++struct btrfs_root {
++	struct extent_buffer   node;
++	char                   data[4096];
++	struct btrfs_root_item root_item;
++	u64 objectid;
++
++	/* data allocations are done in sectorsize units */
++	u32 sectorsize;
++
++	/* node allocations are done in nodesize units */
++	u32 nodesize;
++
++	/* leaf allocations are done in leafsize units */
++	u32 leafsize;
++
++	/* leaf allocations are done in leafsize units */
++	u32 stripesize;
++};
++
++struct btrfs_file_info {
++	struct btrfs_key key;
++};
++
++struct btrfs_root;
++struct btrfs_fs_devices;
++struct btrfs_fs_info {
++	u8 fsid[BTRFS_FSID_SIZE];
++	struct btrfs_root fs_root;
++	struct btrfs_root tree_root;
++	struct btrfs_root chunk_root;
++
++	struct btrfs_file_info file_info; /* currently opened file */
++	struct btrfs_path paths [LAST_LOOKUP_POOL];
++
++	char mbr[SECTOR_SIZE];
++
++	int sb_mirror;
++	u64 sb_transid;
++	struct btrfs_device sb_dev;
++   	struct btrfs_super_block sb_copy;
++
++	struct btrfs_device devices[BTRFS_NUM_CACHED_DEVICES + 1];
++};
++
++/*
++ * inode items have the data typically returned from stat and store other
++ * info about object characteristics.  There is one for every file and dir in
++ * the FS
++ */
++#define BTRFS_INODE_ITEM_KEY		1
++#define BTRFS_INODE_REF_KEY		12
++#define BTRFS_XATTR_ITEM_KEY		24
++#define BTRFS_ORPHAN_ITEM_KEY		48
++
++#define BTRFS_DIR_LOG_ITEM_KEY  60
++#define BTRFS_DIR_LOG_INDEX_KEY 72
++/*
++ * dir items are the name -> inode pointers in a directory.  There is one
++ * for every name in a directory.
++ */
++#define BTRFS_DIR_ITEM_KEY	84
++#define BTRFS_DIR_INDEX_KEY	96
++
++/*
++ * extent data is for file data
++ */
++#define BTRFS_EXTENT_DATA_KEY	108
++
++/*
++ * csum items have the checksums for data in the extents
++ */
++#define BTRFS_CSUM_ITEM_KEY	120
++/*
++ * extent csums are stored in a separate tree and hold csums for
++ * an entire extent on disk.
++ */
++#define BTRFS_EXTENT_CSUM_KEY	128
++
++/*
++ * root items point to tree roots.  There are typically in the root
++ * tree used by the super block to find all the other trees
++ */
++#define BTRFS_ROOT_ITEM_KEY	132
++
++/*
++ * root backrefs tie subvols and snapshots to the directory entries that
++ * reference them
++ */
++#define BTRFS_ROOT_BACKREF_KEY	144
++
++/*
++ * root refs make a fast index for listing all of the snapshots and
++ * subvolumes referenced by a given root.  They point directly to the
++ * directory item in the root that references the subvol
++ */
++#define BTRFS_ROOT_REF_KEY	156
++
++/*
++ * extent items are in the extent map tree.  These record which blocks
++ * are used, and how many references there are to each block
++ */
++#define BTRFS_EXTENT_ITEM_KEY	168
++#define BTRFS_EXTENT_REF_KEY	180
++
++/*
++ * block groups give us hints into the extent allocation trees.  Which
++ * blocks are free etc etc
++ */
++#define BTRFS_BLOCK_GROUP_ITEM_KEY 192
++
++#define BTRFS_DEV_EXTENT_KEY	204
++#define BTRFS_DEV_ITEM_KEY	216
++#define BTRFS_CHUNK_ITEM_KEY	228
++
++/*
++ * string items are for debugging.  They just store a short string of
++ * data in the FS
++ */
++#define BTRFS_STRING_ITEM_KEY	253
++/*
++ * Inode flags
++ */
++#define BTRFS_INODE_NODATASUM		(1 << 0)
++#define BTRFS_INODE_NODATACOW		(1 << 1)
++#define BTRFS_INODE_READONLY		(1 << 2)
++
++#define read_eb_member(eb, ptr, type, member, result) (			\
++	read_extent_buffer(eb, (char *)(result),			\
++			   ((unsigned long)(ptr)) +			\
++			    offsetof(type, member),			\
++			   sizeof(((type *)0)->member)))
++
++#define BTRFS_SETGET_HEADER_FUNCS(name, type, member, bits)		\
++static inline u##bits btrfs_##name(struct extent_buffer *eb)		\
++{									\
++	struct btrfs_header *h = (struct btrfs_header *)eb->data;	\
++	return le##bits##_to_cpu(h->member);				\
++}									\
++static inline void btrfs_set_##name(struct extent_buffer *eb,		\
++				    u##bits val)			\
++{									\
++	struct btrfs_header *h = (struct btrfs_header *)eb->data;	\
++	h->member = cpu_to_le##bits(val);				\
++}
++
++#define BTRFS_SETGET_FUNCS(name, type, member, bits)			\
++static inline u##bits btrfs_##name(struct extent_buffer *eb,		\
++				   type *s)				\
++{									\
++	unsigned long offset = (unsigned long)s;			\
++	type *p = (type *) (eb->data + offset);				\
++	return le##bits##_to_cpu(p->member);				\
++}									\
++static inline void btrfs_set_##name(struct extent_buffer *eb,		\
++				    type *s, u##bits val)		\
++{									\
++	unsigned long offset = (unsigned long)s;			\
++	type *p = (type *) (eb->data + offset);				\
++	p->member = cpu_to_le##bits(val);				\
++}
++
++#define BTRFS_SETGET_STACK_FUNCS(name, type, member, bits)		\
++static inline u##bits btrfs_##name(type *s)				\
++{									\
++	return le##bits##_to_cpu(s->member);				\
++}									\
++static inline void btrfs_set_##name(type *s, u##bits val)		\
++{									\
++	s->member = cpu_to_le##bits(val);				\
++}
++
++BTRFS_SETGET_FUNCS(device_type, struct btrfs_dev_item, type, 64);
++BTRFS_SETGET_FUNCS(device_total_bytes, struct btrfs_dev_item, total_bytes, 64);
++BTRFS_SETGET_FUNCS(device_bytes_used, struct btrfs_dev_item, bytes_used, 64);
++BTRFS_SETGET_FUNCS(device_io_align, struct btrfs_dev_item, io_align, 32);
++BTRFS_SETGET_FUNCS(device_io_width, struct btrfs_dev_item, io_width, 32);
++BTRFS_SETGET_FUNCS(device_start_offset, struct btrfs_dev_item,
++		   start_offset, 64);
++BTRFS_SETGET_FUNCS(device_sector_size, struct btrfs_dev_item, sector_size, 32);
++BTRFS_SETGET_FUNCS(device_id, struct btrfs_dev_item, devid, 64);
++BTRFS_SETGET_FUNCS(device_group, struct btrfs_dev_item, dev_group, 32);
++BTRFS_SETGET_FUNCS(device_seek_speed, struct btrfs_dev_item, seek_speed, 8);
++BTRFS_SETGET_FUNCS(device_bandwidth, struct btrfs_dev_item, bandwidth, 8);
++BTRFS_SETGET_FUNCS(device_generation, struct btrfs_dev_item, generation, 64);
++
++BTRFS_SETGET_STACK_FUNCS(stack_device_type, struct btrfs_dev_item, type, 64);
++BTRFS_SETGET_STACK_FUNCS(stack_device_total_bytes, struct btrfs_dev_item,
++			 total_bytes, 64);
++BTRFS_SETGET_STACK_FUNCS(stack_device_bytes_used, struct btrfs_dev_item,
++			 bytes_used, 64);
++BTRFS_SETGET_STACK_FUNCS(stack_device_io_align, struct btrfs_dev_item,
++			 io_align, 32);
++BTRFS_SETGET_STACK_FUNCS(stack_device_io_width, struct btrfs_dev_item,
++			 io_width, 32);
++BTRFS_SETGET_STACK_FUNCS(stack_device_sector_size, struct btrfs_dev_item,
++			 sector_size, 32);
++BTRFS_SETGET_STACK_FUNCS(stack_device_id, struct btrfs_dev_item, devid, 64);
++BTRFS_SETGET_STACK_FUNCS(stack_device_group, struct btrfs_dev_item,
++			 dev_group, 32);
++BTRFS_SETGET_STACK_FUNCS(stack_device_seek_speed, struct btrfs_dev_item,
++			 seek_speed, 8);
++BTRFS_SETGET_STACK_FUNCS(stack_device_bandwidth, struct btrfs_dev_item,
++			 bandwidth, 8);
++BTRFS_SETGET_STACK_FUNCS(stack_device_generation, struct btrfs_dev_item,
++			 generation, 64);
++
++static inline char *btrfs_device_uuid(struct btrfs_dev_item *d)
++{
++	return (char *)d + offsetof(struct btrfs_dev_item, uuid);
++}
++
++static inline char *btrfs_device_fsid(struct btrfs_dev_item *d)
++{
++	return (char *)d + offsetof(struct btrfs_dev_item, fsid);
++}
++
++BTRFS_SETGET_FUNCS(chunk_length, struct btrfs_chunk, length, 64);
++BTRFS_SETGET_FUNCS(chunk_owner, struct btrfs_chunk, owner, 64);
++BTRFS_SETGET_FUNCS(chunk_stripe_len, struct btrfs_chunk, stripe_len, 64);
++BTRFS_SETGET_FUNCS(chunk_io_align, struct btrfs_chunk, io_align, 32);
++BTRFS_SETGET_FUNCS(chunk_io_width, struct btrfs_chunk, io_width, 32);
++BTRFS_SETGET_FUNCS(chunk_sector_size, struct btrfs_chunk, sector_size, 32);
++BTRFS_SETGET_FUNCS(chunk_type, struct btrfs_chunk, type, 64);
++BTRFS_SETGET_FUNCS(chunk_num_stripes, struct btrfs_chunk, num_stripes, 16);
++BTRFS_SETGET_FUNCS(chunk_sub_stripes, struct btrfs_chunk, sub_stripes, 16);
++BTRFS_SETGET_FUNCS(stripe_devid, struct btrfs_stripe, devid, 64);
++BTRFS_SETGET_FUNCS(stripe_offset, struct btrfs_stripe, offset, 64);
++
++static inline char *btrfs_stripe_dev_uuid(struct btrfs_stripe *s)
++{
++	return (char *)s + offsetof(struct btrfs_stripe, dev_uuid);
++}
++
++BTRFS_SETGET_STACK_FUNCS(stack_chunk_length, struct btrfs_chunk, length, 64);
++BTRFS_SETGET_STACK_FUNCS(stack_chunk_owner, struct btrfs_chunk, owner, 64);
++BTRFS_SETGET_STACK_FUNCS(stack_chunk_stripe_len, struct btrfs_chunk,
++			 stripe_len, 64);
++BTRFS_SETGET_STACK_FUNCS(stack_chunk_io_align, struct btrfs_chunk,
++			 io_align, 32);
++BTRFS_SETGET_STACK_FUNCS(stack_chunk_io_width, struct btrfs_chunk,
++			 io_width, 32);
++BTRFS_SETGET_STACK_FUNCS(stack_chunk_sector_size, struct btrfs_chunk,
++			 sector_size, 32);
++BTRFS_SETGET_STACK_FUNCS(stack_chunk_type, struct btrfs_chunk, type, 64);
++BTRFS_SETGET_STACK_FUNCS(stack_chunk_num_stripes, struct btrfs_chunk,
++			 num_stripes, 16);
++BTRFS_SETGET_STACK_FUNCS(stack_chunk_sub_stripes, struct btrfs_chunk,
++			 sub_stripes, 16);
++BTRFS_SETGET_STACK_FUNCS(stack_stripe_devid, struct btrfs_stripe, devid, 64);
++BTRFS_SETGET_STACK_FUNCS(stack_stripe_offset, struct btrfs_stripe, offset, 64);
++
++static inline struct btrfs_stripe *btrfs_stripe_nr(struct btrfs_chunk *c,
++						   int nr)
++{
++	unsigned long offset = (unsigned long)c;
++	offset += offsetof(struct btrfs_chunk, stripe);
++	offset += nr * sizeof(struct btrfs_stripe);
++	return (struct btrfs_stripe *)offset;
++}
++
++static inline char *btrfs_stripe_dev_uuid_nr(struct btrfs_chunk *c, int nr)
++{
++	return btrfs_stripe_dev_uuid(btrfs_stripe_nr(c, nr));
++}
++
++static inline u64 btrfs_stripe_offset_nr(struct extent_buffer *eb,
++					 struct btrfs_chunk *c, int nr)
++{
++	return btrfs_stripe_offset(eb, btrfs_stripe_nr(c, nr));
++}
++
++static inline void btrfs_set_stripe_offset_nr(struct extent_buffer *eb,
++					     struct btrfs_chunk *c, int nr,
++					     u64 val)
++{
++	btrfs_set_stripe_offset(eb, btrfs_stripe_nr(c, nr), val);
++}
++
++static inline u64 btrfs_stripe_devid_nr(struct extent_buffer *eb,
++					 struct btrfs_chunk *c, int nr)
++{
++	return btrfs_stripe_devid(eb, btrfs_stripe_nr(c, nr));
++}
++
++static inline void btrfs_set_stripe_devid_nr(struct extent_buffer *eb,
++					     struct btrfs_chunk *c, int nr,
++					     u64 val)
++{
++	btrfs_set_stripe_devid(eb, btrfs_stripe_nr(c, nr), val);
++}
++
++/* struct btrfs_block_group_item */
++BTRFS_SETGET_STACK_FUNCS(block_group_used, struct btrfs_block_group_item,
++			 used, 64);
++BTRFS_SETGET_FUNCS(disk_block_group_used, struct btrfs_block_group_item,
++			 used, 64);
++BTRFS_SETGET_STACK_FUNCS(block_group_chunk_objectid,
++			struct btrfs_block_group_item, chunk_objectid, 64);
++
++BTRFS_SETGET_FUNCS(disk_block_group_chunk_objectid,
++		   struct btrfs_block_group_item, chunk_objectid, 64);
++BTRFS_SETGET_FUNCS(disk_block_group_flags,
++		   struct btrfs_block_group_item, flags, 64);
++BTRFS_SETGET_STACK_FUNCS(block_group_flags,
++			struct btrfs_block_group_item, flags, 64);
++
++/* struct btrfs_inode_ref */
++BTRFS_SETGET_FUNCS(inode_ref_name_len, struct btrfs_inode_ref, name_len, 16);
++BTRFS_SETGET_FUNCS(inode_ref_index, struct btrfs_inode_ref, index, 64);
++
++/* struct btrfs_inode_item */
++BTRFS_SETGET_FUNCS(inode_generation, struct btrfs_inode_item, generation, 64);
++BTRFS_SETGET_FUNCS(inode_sequence, struct btrfs_inode_item, sequence, 64);
++BTRFS_SETGET_FUNCS(inode_transid, struct btrfs_inode_item, transid, 64);
++BTRFS_SETGET_FUNCS(inode_size, struct btrfs_inode_item, size, 64);
++BTRFS_SETGET_FUNCS(inode_nbytes, struct btrfs_inode_item, nbytes, 64);
++BTRFS_SETGET_FUNCS(inode_block_group, struct btrfs_inode_item, block_group, 64);
++BTRFS_SETGET_FUNCS(inode_nlink, struct btrfs_inode_item, nlink, 32);
++BTRFS_SETGET_FUNCS(inode_uid, struct btrfs_inode_item, uid, 32);
++BTRFS_SETGET_FUNCS(inode_gid, struct btrfs_inode_item, gid, 32);
++BTRFS_SETGET_FUNCS(inode_mode, struct btrfs_inode_item, mode, 32);
++BTRFS_SETGET_FUNCS(inode_rdev, struct btrfs_inode_item, rdev, 64);
++BTRFS_SETGET_FUNCS(inode_flags, struct btrfs_inode_item, flags, 64);
++
++BTRFS_SETGET_STACK_FUNCS(stack_inode_generation,
++			 struct btrfs_inode_item, generation, 64);
++BTRFS_SETGET_STACK_FUNCS(stack_inode_sequence,
++			 struct btrfs_inode_item, generation, 64);
++BTRFS_SETGET_STACK_FUNCS(stack_inode_size,
++			 struct btrfs_inode_item, size, 64);
++BTRFS_SETGET_STACK_FUNCS(stack_inode_nbytes,
++			 struct btrfs_inode_item, nbytes, 64);
++BTRFS_SETGET_STACK_FUNCS(stack_inode_block_group,
++			 struct btrfs_inode_item, block_group, 64);
++BTRFS_SETGET_STACK_FUNCS(stack_inode_nlink,
++			 struct btrfs_inode_item, nlink, 32);
++BTRFS_SETGET_STACK_FUNCS(stack_inode_uid,
++			 struct btrfs_inode_item, uid, 32);
++BTRFS_SETGET_STACK_FUNCS(stack_inode_gid,
++			 struct btrfs_inode_item, gid, 32);
++BTRFS_SETGET_STACK_FUNCS(stack_inode_mode,
++			 struct btrfs_inode_item, mode, 32);
++BTRFS_SETGET_STACK_FUNCS(stack_inode_rdev,
++			 struct btrfs_inode_item, rdev, 64);
++BTRFS_SETGET_STACK_FUNCS(stack_inode_flags,
++			 struct btrfs_inode_item, flags, 64);
++
++BTRFS_SETGET_FUNCS(timespec_sec, struct btrfs_timespec, sec, 64);
++BTRFS_SETGET_FUNCS(timespec_nsec, struct btrfs_timespec, nsec, 32);
++BTRFS_SETGET_STACK_FUNCS(stack_timespec_sec, struct btrfs_timespec,
++			 sec, 64);
++BTRFS_SETGET_STACK_FUNCS(stack_timespec_nsec, struct btrfs_timespec,
++			 nsec, 32);
++
++/* struct btrfs_dev_extent */
++BTRFS_SETGET_FUNCS(dev_extent_chunk_tree, struct btrfs_dev_extent,
++		   chunk_tree, 64);
++BTRFS_SETGET_FUNCS(dev_extent_chunk_objectid, struct btrfs_dev_extent,
++		   chunk_objectid, 64);
++BTRFS_SETGET_FUNCS(dev_extent_chunk_offset, struct btrfs_dev_extent,
++		   chunk_offset, 64);
++BTRFS_SETGET_FUNCS(dev_extent_length, struct btrfs_dev_extent, length, 64);
++
++static inline u8 *btrfs_dev_extent_chunk_tree_uuid(struct btrfs_dev_extent *dev)
++{
++	unsigned long ptr = offsetof(struct btrfs_dev_extent, chunk_tree_uuid);
++	return (u8 *)((unsigned long)dev + ptr);
++}
++
++/* struct btrfs_extent_ref */
++BTRFS_SETGET_FUNCS(ref_root, struct btrfs_extent_ref, root, 64);
++BTRFS_SETGET_FUNCS(ref_generation, struct btrfs_extent_ref, generation, 64);
++BTRFS_SETGET_FUNCS(ref_objectid, struct btrfs_extent_ref, objectid, 64);
++BTRFS_SETGET_FUNCS(ref_num_refs, struct btrfs_extent_ref, num_refs, 32);
++
++BTRFS_SETGET_STACK_FUNCS(stack_ref_root, struct btrfs_extent_ref, root, 64);
++BTRFS_SETGET_STACK_FUNCS(stack_ref_generation, struct btrfs_extent_ref,
++			 generation, 64);
++BTRFS_SETGET_STACK_FUNCS(stack_ref_objectid, struct btrfs_extent_ref,
++			 objectid, 64);
++BTRFS_SETGET_STACK_FUNCS(stack_ref_num_refs, struct btrfs_extent_ref,
++			 num_refs, 32);
++
++/* struct btrfs_extent_item */
++BTRFS_SETGET_FUNCS(extent_refs, struct btrfs_extent_item, refs, 32);
++BTRFS_SETGET_STACK_FUNCS(stack_extent_refs, struct btrfs_extent_item,
++			 refs, 32);
++
++/* struct btrfs_node */
++BTRFS_SETGET_FUNCS(key_blockptr, struct btrfs_key_ptr, blockptr, 64);
++BTRFS_SETGET_FUNCS(key_generation, struct btrfs_key_ptr, generation, 64);
++
++static inline u64 btrfs_node_blockptr(struct extent_buffer *eb, int nr)
++{
++	unsigned long ptr;
++	ptr = offsetof(struct btrfs_node, ptrs) +
++		sizeof(struct btrfs_key_ptr) * nr;
++	return btrfs_key_blockptr(eb, (struct btrfs_key_ptr *)ptr);
++}
++
++static inline void btrfs_set_node_blockptr(struct extent_buffer *eb,
++					   int nr, u64 val)
++{
++	unsigned long ptr;
++	ptr = offsetof(struct btrfs_node, ptrs) +
++		sizeof(struct btrfs_key_ptr) * nr;
++	btrfs_set_key_blockptr(eb, (struct btrfs_key_ptr *)ptr, val);
++}
++
++static inline u64 btrfs_node_ptr_generation(struct extent_buffer *eb, int nr)
++{
++	unsigned long ptr;
++	ptr = offsetof(struct btrfs_node, ptrs) +
++		sizeof(struct btrfs_key_ptr) * nr;
++	return btrfs_key_generation(eb, (struct btrfs_key_ptr *)ptr);
++}
++
++static inline void btrfs_set_node_ptr_generation(struct extent_buffer *eb,
++						 int nr, u64 val)
++{
++	unsigned long ptr;
++	ptr = offsetof(struct btrfs_node, ptrs) +
++		sizeof(struct btrfs_key_ptr) * nr;
++	btrfs_set_key_generation(eb, (struct btrfs_key_ptr *)ptr, val);
++}
++
++static inline unsigned long btrfs_node_key_ptr_offset(int nr)
++{
++	return offsetof(struct btrfs_node, ptrs) +
++		sizeof(struct btrfs_key_ptr) * nr;
++}
++
++static inline void btrfs_node_key(struct extent_buffer *eb,
++				  struct btrfs_disk_key *disk_key, int nr)
++{
++	unsigned long ptr;
++	ptr = btrfs_node_key_ptr_offset(nr);
++	read_eb_member(eb, (struct btrfs_key_ptr *)ptr,
++		       struct btrfs_key_ptr, key, disk_key);
++}
++
++/* struct btrfs_item */
++BTRFS_SETGET_FUNCS(item_offset, struct btrfs_item, offset, 32);
++BTRFS_SETGET_FUNCS(item_size, struct btrfs_item, size, 32);
++
++static inline unsigned long btrfs_item_nr_offset(int nr)
++{
++	return offsetof(struct btrfs_leaf, items) +
++		sizeof(struct btrfs_item) * nr;
++}
++
++static inline struct btrfs_item *btrfs_item_nr(struct extent_buffer *eb,
++					       int nr)
++{
++	return (struct btrfs_item *)btrfs_item_nr_offset(nr);
++}
++
++static inline u32 btrfs_item_end(struct extent_buffer *eb,
++				 struct btrfs_item *item)
++{
++	return btrfs_item_offset(eb, item) + btrfs_item_size(eb, item);
++}
++
++static inline u32 btrfs_item_end_nr(struct extent_buffer *eb, int nr)
++{
++	return btrfs_item_end(eb, btrfs_item_nr(eb, nr));
++}
++
++static inline u32 btrfs_item_offset_nr(struct extent_buffer *eb, int nr)
++{
++	return btrfs_item_offset(eb, btrfs_item_nr(eb, nr));
++}
++
++static inline u32 btrfs_item_size_nr(struct extent_buffer *eb, int nr)
++{
++	return btrfs_item_size(eb, btrfs_item_nr(eb, nr));
++}
++
++static inline void btrfs_item_key(struct extent_buffer *eb,
++			   struct btrfs_disk_key *disk_key, int nr)
++{
++	struct btrfs_item *item = btrfs_item_nr(eb, nr);
++	read_eb_member(eb, item, struct btrfs_item, key, disk_key);
++}
++
++/*
++ * struct btrfs_root_ref
++ */
++BTRFS_SETGET_FUNCS(root_ref_dirid, struct btrfs_root_ref, dirid, 64);
++BTRFS_SETGET_FUNCS(root_ref_sequence, struct btrfs_root_ref, sequence, 64);
++BTRFS_SETGET_FUNCS(root_ref_name_len, struct btrfs_root_ref, name_len, 16);
++
++/* struct btrfs_dir_item */
++BTRFS_SETGET_FUNCS(dir_data_len, struct btrfs_dir_item, data_len, 16);
++BTRFS_SETGET_FUNCS(dir_type, struct btrfs_dir_item, type, 8);
++BTRFS_SETGET_FUNCS(dir_name_len, struct btrfs_dir_item, name_len, 16);
++BTRFS_SETGET_FUNCS(dir_transid, struct btrfs_dir_item, transid, 64);
++
++static inline void btrfs_dir_item_key(struct extent_buffer *eb,
++				      struct btrfs_dir_item *item,
++				      struct btrfs_disk_key *key)
++{
++	read_eb_member(eb, item, struct btrfs_dir_item, location, key);
++}
++
++/* struct btrfs_disk_key */
++BTRFS_SETGET_STACK_FUNCS(disk_key_objectid, struct btrfs_disk_key,
++			 objectid, 64);
++BTRFS_SETGET_STACK_FUNCS(disk_key_offset, struct btrfs_disk_key, offset, 64);
++BTRFS_SETGET_STACK_FUNCS(disk_key_type, struct btrfs_disk_key, type, 8);
++
++static inline void btrfs_disk_key_to_cpu(struct btrfs_key *cpu,
++					 struct btrfs_disk_key *disk)
++{
++	cpu->offset = le64_to_cpu(disk->offset);
++	cpu->type = disk->type;
++	cpu->objectid = le64_to_cpu(disk->objectid);
++}
++
++static inline void btrfs_cpu_key_to_disk(struct btrfs_disk_key *disk,
++					 struct btrfs_key *cpu)
++{
++	disk->offset = cpu_to_le64(cpu->offset);
++	disk->type = cpu->type;
++	disk->objectid = cpu_to_le64(cpu->objectid);
++}
++
++static inline void btrfs_node_key_to_cpu(struct extent_buffer *eb,
++				  struct btrfs_key *key, int nr)
++{
++	struct btrfs_disk_key disk_key;
++	btrfs_node_key(eb, &disk_key, nr);
++	btrfs_disk_key_to_cpu(key, &disk_key);
++}
++
++static inline void btrfs_item_key_to_cpu(struct extent_buffer *eb,
++				  struct btrfs_key *key, int nr)
++{
++	struct btrfs_disk_key disk_key;
++	btrfs_item_key(eb, &disk_key, nr);
++	btrfs_disk_key_to_cpu(key, &disk_key);
++}
++
++static inline void btrfs_dir_item_key_to_cpu(struct extent_buffer *eb,
++				      struct btrfs_dir_item *item,
++				      struct btrfs_key *key)
++{
++	struct btrfs_disk_key disk_key;
++	btrfs_dir_item_key(eb, item, &disk_key);
++	btrfs_disk_key_to_cpu(key, &disk_key);
++}
++
++static inline u8 btrfs_key_type(struct btrfs_key *key)
++{
++	return key->type;
++}
++
++static inline void btrfs_set_key_type(struct btrfs_key *key, u8 val)
++{
++	key->type = val;
++}
++
++static inline u64 btrfs_super_devid(struct btrfs_super_block *disk_super)
++{
++	return le64_to_cpu(disk_super->dev_item.devid);
++}
++
++/* struct btrfs_header */
++BTRFS_SETGET_HEADER_FUNCS(header_bytenr, struct btrfs_header, bytenr, 64);
++BTRFS_SETGET_HEADER_FUNCS(header_generation, struct btrfs_header,
++			  generation, 64);
++BTRFS_SETGET_HEADER_FUNCS(header_owner, struct btrfs_header, owner, 64);
++BTRFS_SETGET_HEADER_FUNCS(header_nritems, struct btrfs_header, nritems, 32);
++BTRFS_SETGET_HEADER_FUNCS(header_flags, struct btrfs_header, flags, 64);
++BTRFS_SETGET_HEADER_FUNCS(header_level, struct btrfs_header, level, 8);
++
++/* struct btrfs_root_item */
++BTRFS_SETGET_FUNCS(disk_root_generation, struct btrfs_root_item,
++		   generation, 64);
++BTRFS_SETGET_FUNCS(disk_root_refs, struct btrfs_root_item, refs, 32);
++BTRFS_SETGET_FUNCS(disk_root_bytenr, struct btrfs_root_item, bytenr, 64);
++BTRFS_SETGET_FUNCS(disk_root_level, struct btrfs_root_item, level, 8);
++
++BTRFS_SETGET_STACK_FUNCS(root_generation, struct btrfs_root_item,
++			 generation, 64);
++BTRFS_SETGET_STACK_FUNCS(root_bytenr, struct btrfs_root_item, bytenr, 64);
++BTRFS_SETGET_STACK_FUNCS(root_level, struct btrfs_root_item, level, 8);
++BTRFS_SETGET_STACK_FUNCS(root_dirid, struct btrfs_root_item, root_dirid, 64);
++BTRFS_SETGET_STACK_FUNCS(root_refs, struct btrfs_root_item, refs, 32);
++BTRFS_SETGET_STACK_FUNCS(root_flags, struct btrfs_root_item, flags, 64);
++BTRFS_SETGET_STACK_FUNCS(root_used, struct btrfs_root_item, bytes_used, 64);
++BTRFS_SETGET_STACK_FUNCS(root_limit, struct btrfs_root_item, byte_limit, 64);
++BTRFS_SETGET_STACK_FUNCS(root_last_snapshot, struct btrfs_root_item,
++			 last_snapshot, 64);
++
++/* struct btrfs_super_block */
++
++BTRFS_SETGET_STACK_FUNCS(super_bytenr, struct btrfs_super_block, bytenr, 64);
++BTRFS_SETGET_STACK_FUNCS(super_flags, struct btrfs_super_block, flags, 64);
++BTRFS_SETGET_STACK_FUNCS(super_generation, struct btrfs_super_block,
++			 generation, 64);
++BTRFS_SETGET_STACK_FUNCS(super_root, struct btrfs_super_block, root, 64);
++BTRFS_SETGET_STACK_FUNCS(super_sys_array_size,
++			 struct btrfs_super_block, sys_chunk_array_size, 32);
++BTRFS_SETGET_STACK_FUNCS(super_chunk_root_generation,
++			 struct btrfs_super_block, chunk_root_generation, 64);
++BTRFS_SETGET_STACK_FUNCS(super_root_level, struct btrfs_super_block,
++			 root_level, 8);
++BTRFS_SETGET_STACK_FUNCS(super_chunk_root, struct btrfs_super_block,
++			 chunk_root, 64);
++BTRFS_SETGET_STACK_FUNCS(super_chunk_root_level, struct btrfs_super_block,
++			 chunk_root_level, 8);
++BTRFS_SETGET_STACK_FUNCS(super_log_root, struct btrfs_super_block,
++			 log_root, 64);
++BTRFS_SETGET_STACK_FUNCS(super_log_root_transid, struct btrfs_super_block,
++			 log_root_transid, 64);
++BTRFS_SETGET_STACK_FUNCS(super_log_root_level, struct btrfs_super_block,
++			 log_root_level, 8);
++BTRFS_SETGET_STACK_FUNCS(super_total_bytes, struct btrfs_super_block,
++			 total_bytes, 64);
++BTRFS_SETGET_STACK_FUNCS(super_bytes_used, struct btrfs_super_block,
++			 bytes_used, 64);
++BTRFS_SETGET_STACK_FUNCS(super_sectorsize, struct btrfs_super_block,
++			 sectorsize, 32);
++BTRFS_SETGET_STACK_FUNCS(super_nodesize, struct btrfs_super_block,
++			 nodesize, 32);
++BTRFS_SETGET_STACK_FUNCS(super_leafsize, struct btrfs_super_block,
++			 leafsize, 32);
++BTRFS_SETGET_STACK_FUNCS(super_stripesize, struct btrfs_super_block,
++			 stripesize, 32);
++BTRFS_SETGET_STACK_FUNCS(super_root_dir, struct btrfs_super_block,
++			 root_dir_objectid, 64);
++BTRFS_SETGET_STACK_FUNCS(super_num_devices, struct btrfs_super_block,
++			 num_devices, 64);
++BTRFS_SETGET_STACK_FUNCS(super_compat_flags, struct btrfs_super_block,
++			 compat_flags, 64);
++BTRFS_SETGET_STACK_FUNCS(super_compat_ro_flags, struct btrfs_super_block,
++			 compat_flags, 64);
++BTRFS_SETGET_STACK_FUNCS(super_incompat_flags, struct btrfs_super_block,
++			 incompat_flags, 64);
++BTRFS_SETGET_STACK_FUNCS(super_csum_type, struct btrfs_super_block,
++			 csum_type, 16);
++
++static inline int btrfs_super_csum_size(struct btrfs_super_block *s)
++{
++	int t = btrfs_super_csum_type(s);
++	//BUG_ON(t >= ARRAY_SIZE(btrfs_csum_sizes));
++	return btrfs_csum_sizes[t];
++}
++
++static inline unsigned long btrfs_leaf_data(struct extent_buffer *l)
++{
++	return offsetof(struct btrfs_leaf, items);
++}
++
++/* struct btrfs_file_extent_item */
++BTRFS_SETGET_FUNCS(file_extent_type, struct btrfs_file_extent_item, type, 8);
++
++static inline unsigned long btrfs_file_extent_inline_start(struct
++						   btrfs_file_extent_item *e)
++{
++	unsigned long offset = (unsigned long)e;
++	offset += offsetof(struct btrfs_file_extent_item, disk_bytenr);
++	return offset;
++}
++
++static inline u32 btrfs_file_extent_calc_inline_size(u32 datasize)
++{
++	return offsetof(struct btrfs_file_extent_item, disk_bytenr) + datasize;
++}
++
++BTRFS_SETGET_FUNCS(file_extent_disk_bytenr, struct btrfs_file_extent_item,
++		   disk_bytenr, 64);
++BTRFS_SETGET_FUNCS(file_extent_generation, struct btrfs_file_extent_item,
++		   generation, 64);
++BTRFS_SETGET_FUNCS(file_extent_disk_num_bytes, struct btrfs_file_extent_item,
++		   disk_num_bytes, 64);
++BTRFS_SETGET_FUNCS(file_extent_offset, struct btrfs_file_extent_item,
++		  offset, 64);
++BTRFS_SETGET_FUNCS(file_extent_num_bytes, struct btrfs_file_extent_item,
++		   num_bytes, 64);
++BTRFS_SETGET_FUNCS(file_extent_ram_bytes, struct btrfs_file_extent_item,
++		   ram_bytes, 64);
++BTRFS_SETGET_FUNCS(file_extent_compression, struct btrfs_file_extent_item,
++		   compression, 8);
++BTRFS_SETGET_FUNCS(file_extent_encryption, struct btrfs_file_extent_item,
++		   encryption, 8);
++BTRFS_SETGET_FUNCS(file_extent_other_encoding, struct btrfs_file_extent_item,
++		   other_encoding, 16);
++
++/* this returns the number of file bytes represented by the inline item.
++ * If an item is compressed, this is the uncompressed size
++ */
++static inline u32 btrfs_file_extent_inline_len(struct extent_buffer *eb,
++					struct btrfs_file_extent_item *e)
++{
++       return btrfs_file_extent_ram_bytes(eb, e);
++}
++
++/*
++ * this returns the number of bytes used by the item on disk, minus the
++ * size of any extent headers.  If a file is compressed on disk, this is
++ * the compressed size
++ */
++static inline u32 btrfs_file_extent_inline_item_len(struct extent_buffer *eb,
++						    struct btrfs_item *e)
++{
++       unsigned long offset;
++       offset = offsetof(struct btrfs_file_extent_item, disk_bytenr);
++       return btrfs_item_size(eb, e) - offset;
++}
++
++static inline u32 btrfs_level_size(struct btrfs_root *root, int level) {
++	if (level == 0)
++		return root->leafsize;
++	return root->nodesize;
++}
++
++static inline u32 btrfs_root_level_size(struct btrfs_super_block *sb) {
++	return btrfs_super_root_level(sb) == 0 ?
++		btrfs_super_leafsize(sb) :
++		btrfs_super_nodesize(sb);
++}
++
++static inline u32 btrfs_chunk_root_level_size(struct btrfs_super_block *sb) {
++	return btrfs_super_chunk_root_level(sb) == 0 ?
++		btrfs_super_leafsize(sb) :
++		btrfs_super_nodesize(sb);
++}
++
++/* helper function to cast into the data area of the leaf. */
++#define btrfs_item_ptr(leaf, slot, type) \
++	((type *)(btrfs_leaf_data(leaf) + \
++	btrfs_item_offset_nr(leaf, slot)))
++
++#define btrfs_item_ptr_offset(leaf, slot) \
++	((unsigned long)(btrfs_leaf_data(leaf) + \
++	btrfs_item_offset_nr(leaf, slot)))
++
++/*volumes.h */
++
++struct btrfs_fs_devices {
++	u8 fsid[BTRFS_FSID_SIZE]; /* FS specific uuid */
++
++	/* the device with this id has the most recent coyp of the super */
++	u64 latest_devid;
++	u64 latest_trans;
++	u64 lowest_devid;
++	int latest_bdev;
++	int lowest_bdev;
++	int seeding;
++	struct btrfs_fs_devices *seed;
++};
++
++struct btrfs_bio_stripe {
++	struct btrfs_device dev;
++	u64 physical;
++};
++
++#define MAX_NRSTRIPES 8
++struct btrfs_multi_bio {
++	int error;
++	int num_stripes;
++	struct btrfs_bio_stripe stripes[MAX_NRSTRIPES];
++};
++
++#define btrfs_multi_bio_size(n) (sizeof(struct btrfs_multi_bio) + \
++			    (sizeof(struct btrfs_bio_stripe) * (n)))
++
++static int aux_tree_lookup(struct btrfs_root *root,
++			   struct btrfs_key *key,
++			   struct btrfs_path *path);
++
++struct cache_extent {
++	u64 start;
++	u64 size;
++};
++
++struct map_lookup {
++	struct cache_extent ce;
++	u64 type;
++	int io_align;
++	int io_width;
++	int stripe_len;
++	int sector_size;
++	int num_stripes;
++	int sub_stripes;
++        struct btrfs_bio_stripe stripes[MAX_NRSTRIPES];
++};
++
++/* "VFS" things */
++
++/* file types recognized by grub */
++typedef enum {
++	BTRFS_REGULAR_FILE,
++	BTRFS_DIRECTORY_FILE,
++	BTRFS_SYMLINK_FILE,
++	BTRFS_UNKNOWN_FILE
++} btrfs_file_type;
++
++static inline int coord_is_root(struct btrfs_root *root,
++				struct btrfs_path *path)
++{
++	return btrfs_header_bytenr(&path->nodes[0]) ==
++		btrfs_header_bytenr(&root->node);
++}
++
++static inline btrfs_file_type btrfs_get_file_type (int mode)
++{
++	if (S_ISLNK(mode))
++		return BTRFS_SYMLINK_FILE;
++	if (S_ISREG(mode))
++		return BTRFS_REGULAR_FILE;
++	if (S_ISDIR(mode))
++		return BTRFS_DIRECTORY_FILE;
++	return BTRFS_UNKNOWN_FILE;
++}
++
++#define min_t(type,x,y)							\
++	({ type __x = (x); type __y = (y); __x < __y ? __x: __y; })
++#define max_t(type,x,y)							\
++	({ type __x = (x); type __y = (y); __x > __y ? __x: __y; })
++
++
++int sys_array_lookup(struct map_lookup *map, u64 logical);
++int tree_chunk_lookup(struct map_lookup *map,
++		      u64 logical);
++int __btrfs_map_block(u64 logical, u64 *length,
++		      struct btrfs_multi_bio *multi_ret, int mirror_num);
++int read_tree_block(struct btrfs_root *root,
++		    struct extent_buffer *eb,
++		    u64 bytenr, /* logical */
++		    u32 blocksize,
++		    u64 parent_transid,
++		    lookup_pool_id lpid);
++int check_read_chunk(struct btrfs_key *key,
++		     struct extent_buffer *leaf,
++		     struct btrfs_chunk *chunk,
++		     struct map_lookup *map,
++		     u64 logical);
++/*
++  Local variables:
++  c-indentation-style: "K&R"
++  mode-name: "LC"
++  c-basic-offset: 8
++  tab-width: 8
++  fill-column: 80
++  scroll-step: 1
++  End:
++*/
+diff --git a/stage2/builtins.c b/stage2/builtins.c
+index 3e08a86..6c6e3fa 100644
+--- a/stage2/builtins.c
++++ b/stage2/builtins.c
+@@ -56,6 +56,9 @@ static int bootdev;
+ /* True when the debug mode is turned on, and false
+    when it is turned off.  */
+ int debug = 0;
++int debug_graphics = 0;
++/* Print what we're booting */
++int grub_verbose = 0;
+ /* The default entry.  */
+ int default_entry = 0;
+ /* The fallback entry.  */
+@@ -117,6 +120,27 @@ check_password (char *entered, char* expected, password_t type)
+     case PASSWORD_MD5:
+       return check_md5_password (entered, expected);
+ #endif
++
++    case PASSWORD_ENCRYPTED:
++      if (grub_memcmp (expected, "$1$", 3) == 0)
++	return check_md5_password (entered, expected);
++      else if (grub_memcmp (expected, "$5$", 3) == 0)
++	{
++	  char *hashed;
++
++	  hashed = sha256_crypt (entered, expected);
++	  return hashed == NULL || strcmp (expected, hashed);
++	}
++      else if (grub_memcmp (expected, "$6$", 3) == 0)
++	{
++	  char *hashed;
++
++	  hashed = sha512_crypt (entered, expected);
++	  return hashed == NULL || strcmp (expected, hashed);
++	}
++      else
++	return strcmp (entered, expected);
++
+     default: 
+       /* unsupported password type: be secure */
+       return 1;
+@@ -131,62 +155,98 @@ disk_read_print_func (int sector, int offset, int length)
+ }
+ 
+ 
++/* blocklist_read_helper nee disk_read_blocklist_func was a nested
++ * function, to which pointers were taken and exposed globally.  Even
++ * in the GNU-C nested functions extension, they have local linkage,
++ * and aren't guaranteed to be accessable *at all* outside of their 
++ * containing scope.
++ *
++ * Above and beyond all of that, the variables within blocklist_func_context
++ * are originally local variables, with local (not even static) linkage,
++ * from within blocklist_func.  These were each referenced by
++ * disk_read_blocklist_func, which is only called from other functions
++ * through a globally scoped pointer.
++ * 
++ * The documentation in GCC actually uses the words "all hell will break
++ * loose" to describe this scenario.
++ *
++ * Also, "start_sector" was also used uninitialized, but gcc doesn't warn
++ * about it (possibly because of the scoping madness?)
++ */
++   
++static struct {
++	int start_sector;
++	int num_sectors;
++	int num_entries;
++	int last_length;
++} blocklist_func_context = {
++	.start_sector = 0,
++	.num_sectors = 0,
++	.num_entries = 0,
++	.last_length = 0
++};
++
++/* Collect contiguous blocks into one entry as many as possible,
++   and print the blocklist notation on the screen.  */
++static void
++blocklist_read_helper (int sector, int offset, int length)
++{
++  int *start_sector = &blocklist_func_context.start_sector;
++  int *num_sectors = &blocklist_func_context.num_sectors;
++  int *num_entries = &blocklist_func_context.num_entries;
++  int *last_length = &blocklist_func_context.last_length;
++  int sector_size = get_sector_size(current_drive);
++
++  if (*num_sectors > 0)
++  {
++    if (*start_sector + *num_sectors == sector
++      && offset == 0 && *last_length == sector_size)
++    {
++      *num_sectors++;
++      *last_length = length;
++      return;
++    }
++    else
++    {
++      if (*last_length == sector_size)
++        grub_printf ("%s%d+%d", *num_entries ? "," : "",
++          *start_sector - part_start, *num_sectors);
++      else if (*num_sectors > 1)
++        grub_printf ("%s%d+%d,%d[0-%d]", *num_entries ? "," : "",
++          *start_sector - part_start, *num_sectors-1,
++          *start_sector + *num_sectors-1 - part_start, 
++          *last_length);
++      else
++        grub_printf ("%s%d[0-%d]", *num_entries ? "," : "",
++          *start_sector - part_start, *last_length);
++      *num_entries++;
++      *num_sectors = 0;
++    }
++  }
++
++  if (offset > 0)
++  {
++    grub_printf("%s%d[%d-%d]", *num_entries ? "," : "",
++          sector-part_start, offset, offset+length);
++    *num_entries++;
++  }
++  else
++  {
++    *start_sector = sector;
++    *num_sectors = 1;
++    *last_length = length;
++  }
++}
++
+ /* blocklist */
+ static int
+ blocklist_func (char *arg, int flags)
+ {
+   char *dummy = (char *) RAW_ADDR (0x100000);
+-  int start_sector;
+-  int num_sectors = 0;
+-  int num_entries = 0;
+-  int last_length = 0;
+-
+-  auto void disk_read_blocklist_func (int sector, int offset, int length);
+-  
+-  /* Collect contiguous blocks into one entry as many as possible,
+-     and print the blocklist notation on the screen.  */
+-  auto void disk_read_blocklist_func (int sector, int offset, int length)
+-    {
+-      if (num_sectors > 0)
+-	{
+-	  if (start_sector + num_sectors == sector
+-	      && offset == 0 && last_length == SECTOR_SIZE)
+-	    {
+-	      num_sectors++;
+-	      last_length = length;
+-	      return;
+-	    }
+-	  else
+-	    {
+-	      if (last_length == SECTOR_SIZE)
+-		grub_printf ("%s%d+%d", num_entries ? "," : "",
+-			     start_sector - part_start, num_sectors);
+-	      else if (num_sectors > 1)
+-		grub_printf ("%s%d+%d,%d[0-%d]", num_entries ? "," : "",
+-			     start_sector - part_start, num_sectors-1,
+-			     start_sector + num_sectors-1 - part_start, 
+-			     last_length);
+-	      else
+-		grub_printf ("%s%d[0-%d]", num_entries ? "," : "",
+-			     start_sector - part_start, last_length);
+-	      num_entries++;
+-	      num_sectors = 0;
+-	    }
+-	}
+ 
+-      if (offset > 0)
+-	{
+-	  grub_printf("%s%d[%d-%d]", num_entries ? "," : "",
+-		      sector-part_start, offset, offset+length);
+-	  num_entries++;
+-	}
+-      else
+-	{
+-	  start_sector = sector;
+-	  num_sectors = 1;
+-	  last_length = length;
+-	}
+-    }
++  int *start_sector = &blocklist_func_context.start_sector;
++  int *num_sectors = &blocklist_func_context.num_sectors;
++  int *num_entries = &blocklist_func_context.num_entries;
+ 
+   /* Open the file.  */
+   if (! grub_open (arg))
+@@ -206,15 +266,15 @@ blocklist_func (char *arg, int flags)
+   grub_printf (")");
+ 
+   /* Read in the whole file to DUMMY.  */
+-  disk_read_hook = disk_read_blocklist_func;
++  disk_read_hook = blocklist_read_helper;
+   if (! grub_read (dummy, -1))
+     goto fail;
+ 
+   /* The last entry may not be printed yet.  Don't check if it is a
+    * full sector, since it doesn't matter if we read too much. */
+-  if (num_sectors > 0)
+-    grub_printf ("%s%d+%d", num_entries ? "," : "",
+-		 start_sector - part_start, num_sectors);
++  if (*num_sectors > 0)
++    grub_printf ("%s%d+%d", *num_entries ? "," : "",
++		 *start_sector - part_start, *num_sectors);
+ 
+   grub_printf ("\n");
+   
+@@ -237,12 +297,25 @@ static struct builtin builtin_blocklist =
+ static int
+ boot_func (char *arg, int flags)
+ {
++  struct term_entry *prev_term = current_term;
+   /* Clear the int15 handler if we can boot the kernel successfully.
+      This assumes that the boot code never fails only if KERNEL_TYPE is
+      not KERNEL_TYPE_NONE. Is this assumption is bad?  */
+   if (kernel_type != KERNEL_TYPE_NONE)
+     unset_int15_handler ();
+ 
++  /* if our terminal needed initialization, we should shut it down
++   * before booting the kernel, but we want to save what it was so
++   * we can come back if needed */
++  if (current_term->shutdown) 
++    {
++      (*current_term->shutdown)();
++      current_term = term_table; /* assumption: console is first */
++    }
++
++  if (silent_grub)
++    setcursor(0);
++
+ #ifdef SUPPORT_NETBOOT
+   /* Shut down the networking.  */
+   cleanup_net ();
+@@ -250,11 +323,13 @@ boot_func (char *arg, int flags)
+   
+   switch (kernel_type)
+     {
++#ifndef PLATFORM_EFI
+     case KERNEL_TYPE_FREEBSD:
+     case KERNEL_TYPE_NETBSD:
+       /* *BSD */
+       bsd_boot (kernel_type, bootdev, (char *) mbi.cmdline);
+       break;
++#endif
+ 
+     case KERNEL_TYPE_LINUX:
+       /* Linux */
+@@ -296,16 +371,25 @@ boot_func (char *arg, int flags)
+       chain_stage1 (0, BOOTSEC_LOCATION, boot_part_addr);
+       break;
+ 
++#ifndef PLATFORM_EFI
+     case KERNEL_TYPE_MULTIBOOT:
+       /* Multiboot */
+       multi_boot ((int) entry_addr, (int) &mbi);
+       break;
++#endif
+ 
+     default:
+       errnum = ERR_BOOT_COMMAND;
+       return 1;
+     }
+ 
++  /* if we get back here, we should go back to what our term was before */
++  current_term = prev_term;
++  if (current_term->startup)
++      /* if our terminal fails to initialize, fall back to console since
++       * it should always work */
++      if ((*current_term->startup)() == 0)
++          current_term = term_table; /* we know that console is first */
+   return 0;
+ }
+ 
+@@ -402,6 +486,10 @@ static struct builtin builtin_cat =
+ static int
+ chainloader_func (char *arg, int flags)
+ {
++#ifdef PLATFORM_EFI
++  kernel_type = grub_chainloader(arg);
++  return kernel_type == KERNEL_TYPE_NONE;
++#else
+   int force = 0;
+   char *file = arg;
+ 
+@@ -458,6 +546,7 @@ chainloader_func (char *arg, int flags)
+   errnum = ERR_NONE;
+   
+   return 0;
++#endif
+ }
+ 
+ static struct builtin builtin_chainloader =
+@@ -564,89 +653,88 @@ static struct builtin builtin_cmp =
+ /* Set new colors used for the menu interface. Support two methods to
+    specify a color name: a direct integer representation and a symbolic
+    color name. An example of the latter is "blink-light-gray/blue".  */
+-static int
+-color_func (char *arg, int flags)
+-{
+-  char *normal;
+-  char *highlight;
+-  int new_normal_color;
+-  int new_highlight_color;
+-  static char *color_list[16] =
+-  {
+-    "black",
+-    "blue",
+-    "green",
+-    "cyan",
+-    "red",
+-    "magenta",
+-    "brown",
+-    "light-gray",
+-    "dark-gray",
+-    "light-blue",
+-    "light-green",
+-    "light-cyan",
+-    "light-red",
+-    "light-magenta",
+-    "yellow",
+-    "white"
+-  };
++static const char * const color_list[16] =
++{
++  "black",
++  "blue",
++  "green",
++  "cyan",
++  "red",
++  "magenta",
++  "brown",
++  "light-gray",
++  "dark-gray",
++  "light-blue",
++  "light-green",
++  "light-cyan",
++  "light-red",
++  "light-magenta",
++  "yellow",
++  "white"
++};
+ 
+-  auto int color_number (char *str);
++/* Convert the color name STR into the magical number.  */
++static int color_number (char *str)
++{
++  char *ptr;
++  int i;
++  int color = 0;
+   
+-  /* Convert the color name STR into the magical number.  */
+-  auto int color_number (char *str)
+-    {
+-      char *ptr;
+-      int i;
+-      int color = 0;
+-      
+-      /* Find the separator.  */
+-      for (ptr = str; *ptr && *ptr != '/'; ptr++)
+-	;
++  /* Find the separator.  */
++  for (ptr = str; *ptr && *ptr != '/'; ptr++)
++    ;
+ 
+-      /* If not found, return -1.  */
+-      if (! *ptr)
+-	return -1;
++  /* If not found, return -1.  */
++  if (! *ptr)
++    return -1;
+ 
+-      /* Terminate the string STR.  */
+-      *ptr++ = 0;
++  /* Terminate the string STR.  */
++  *ptr++ = 0;
+ 
+-      /* If STR contains the prefix "blink-", then set the `blink' bit
+-	 in COLOR.  */
+-      if (substring ("blink-", str) <= 0)
+-	{
+-	  color = 0x80;
+-	  str += 6;
+-	}
+-      
+-      /* Search for the color name.  */
+-      for (i = 0; i < 16; i++)
+-	if (grub_strcmp (color_list[i], str) == 0)
+-	  {
+-	    color |= i;
+-	    break;
+-	  }
++  /* If STR contains the prefix "blink-", then set the `blink' bit
++     in COLOR.  */
++  if (substring ("blink-", str) <= 0)
++    {
++      color = 0x80;
++      str += 6;
++    }
++  
++  /* Search for the color name.  */
++  for (i = 0; i < 16; i++)
++    if (grub_strcmp (color_list[i], str) == 0)
++      {
++        color |= i;
++        break;
++      }
+ 
+-      if (i == 16)
+-	return -1;
++  if (i == 16)
++    return -1;
+ 
+-      str = ptr;
+-      nul_terminate (str);
++  str = ptr;
++  nul_terminate (str);
+ 
+-      /* Search for the color name.  */      
+-      for (i = 0; i < 8; i++)
+-	if (grub_strcmp (color_list[i], str) == 0)
+-	  {
+-	    color |= i << 4;
+-	    break;
+-	  }
++  /* Search for the color name.  */      
++  for (i = 0; i < 8; i++)
++    if (grub_strcmp (color_list[i], str) == 0)
++      {
++        color |= i << 4;
++        break;
++      }
+ 
+-      if (i == 8)
+-	return -1;
++  if (i == 8)
++    return -1;
++
++  return color;
++}
++
++static int
++color_func (char *arg, int flags)
++{
++  char *normal;
++  char *highlight;
++  int new_normal_color;
++  int new_highlight_color;
+ 
+-      return color;
+-    }
+-      
+   normal = arg;
+   highlight = skip_to (0, arg);
+ 
+@@ -690,7 +778,6 @@ static struct builtin builtin_color =
+   " But only the first eight names can be used for BG. You can prefix"
+   " \"blink-\" to FG if you want a blinking foreground color."
+ };
+-
+ 
+ /* configfile */
+ static int
+@@ -737,14 +824,18 @@ static struct builtin builtin_configfile =
+ static int
+ debug_func (char *arg, int flags)
+ {
+-  if (debug)
++  int *whichdebug = &debug;
++  if (arg && !strcmp(arg, "--graphics"))
++    whichdebug = &debug_graphics;
++
++  if (*whichdebug)
+     {
+-      debug = 0;
++      *whichdebug = 0;
+       grub_printf (" Debug mode is turned off\n");
+     }
+   else
+     {
+-      debug = 1;
++      *whichdebug = 1;
+       grub_printf (" Debug mode is turned on\n");
+     }
+ 
+@@ -755,17 +846,61 @@ static struct builtin builtin_debug =
+ {
+   "debug",
+   debug_func,
+-  BUILTIN_CMDLINE,
++  BUILTIN_CMDLINE | BUILTIN_MENU,
+   "debug",
+   "Turn on/off the debug mode."
+ };
+ 
+ 
++/* verbose */
++static int
++verbose_func (char *arg, int flags)
++{
++  if (grub_verbose)
++    {
++      grub_verbose = 0;
++      grub_printf (" Verbose mode is turned off\n");
++    }
++  else
++    {
++      grub_verbose = 1;
++      grub_printf (" Verbose mode is turned on\n");
++    }
++
++  return 0;
++}
++
++static struct builtin builtin_verbose =
++{
++  "verbose",
++  verbose_func,
++  BUILTIN_CMDLINE | BUILTIN_MENU,
++  "verbose",
++  "Turn on/off verbose output."
++};
++
++
++#if !defined(SUPPORT_DISKLESS) && !defined(GRUB_UTIL) && !defined(PLATFORM_EFI)
++static int savedefault_helper(int);
++#endif
+ /* default */
+ static int
+ default_func (char *arg, int flags)
+ {
+ #ifndef SUPPORT_DISKLESS
++#ifndef GRUB_UTIL
++#ifndef PLATFORM_EFI
++  /* Has a forced once-only default been specified? */
++  if ((saved_entryno & STAGE2_ONCEONLY_ENTRY) != 0)
++    {
++      int old_defaults=saved_entryno & ~STAGE2_ONCEONLY_ENTRY;
++      grub_timeout = 0;
++      default_entry = old_defaults >> 8;
++      savedefault_helper(old_defaults & 0xff);
++      return 0;
++    }
++#endif
++#endif
+   if (grub_strcmp (arg, "saved") == 0)
+     {
+       default_entry = saved_entryno;
+@@ -792,7 +927,7 @@ static struct builtin builtin_default =
+ };
+ 
+ 
+-#ifdef GRUB_UTIL
++#if defined(GRUB_UTIL) || defined(PLATFORM_EFI)
+ /* device */
+ static int
+ device_func (char *arg, int flags)
+@@ -800,16 +935,17 @@ device_func (char *arg, int flags)
+   char *drive = arg;
+   char *device;
+ 
+-  /* Get the drive number from DRIVE.  */
+-  if (! set_device (drive))
+-    return 1;
+-
+   /* Get the device argument.  */
+   device = skip_to (0, drive);
+-  
++
++  nul_terminate (drive);
+   /* Terminate DEVICE.  */
+   nul_terminate (device);
+ 
++  /* Get the drive number from DRIVE.  */
++  if (! set_device (drive))
++    return 1;
++
+   if (! *device || ! check_device (device))
+     {
+       errnum = ERR_FILE_NOT_FOUND;
+@@ -817,7 +953,7 @@ device_func (char *arg, int flags)
+     }
+ 
+   assign_device_name (current_drive, device);
+-  
++
+   return 0;
+ }
+ 
+@@ -828,9 +964,20 @@ static struct builtin builtin_device =
+   BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
+   "device DRIVE DEVICE",
+   "Specify DEVICE as the actual drive for a BIOS drive DRIVE. This command"
+-  " can be used only in the grub shell."
++  " can be used only in the grub shell and in EFI."
+ };
+-#endif /* GRUB_UTIL */
++#endif /* defined(GRUB_UTIL) || defined(PLATFORM_EFI) */
++#ifdef PLATFORM_EFI
++static struct builtin builtin_efimap =
++{
++  "efimap",
++  device_func,
++  BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "efimap DRIVE DEVICE",
++  "Specify DEVICE as the actual drive for a BIOS drive DRIVE. This command"
++  " can be used only in EFI."
++};
++#endif /* PLATFORM_EFI */
+ 
+ 
+ #ifdef SUPPORT_NETBOOT
+@@ -852,6 +999,139 @@ static struct builtin builtin_dhcp =
+ };
+ #endif /* SUPPORT_NETBOOT */
+ 
++static int terminal_func (char *arg, int flags);
++
++#ifdef SUPPORT_GRAPHICS
++
++static int splashimage_func(char *arg, int flags) {
++    char splashimage[64];
++    int i;
++    
++    /* filename can only be 64 characters due to our buffer size */
++    if (strlen(arg) > 63)
++	return 1;
++    if (flags == BUILTIN_CMDLINE) {
++	if (!grub_open(arg))
++	    return 1;
++	grub_close();
++    }
++
++    strcpy(splashimage, arg);
++
++    /* get rid of TERM_NEED_INIT from the graphics terminal. */
++    for (i = 0; term_table[i].name; i++) {
++	if (grub_strcmp (term_table[i].name, "graphics") == 0) {
++	    term_table[i].flags &= ~TERM_NEED_INIT;
++	    break;
++	}
++    }
++    
++    graphics_set_splash(splashimage);
++
++    if (flags == BUILTIN_CMDLINE && graphics_inited) {
++	graphics_end();
++	graphics_init();
++	graphics_cls();
++    }
++
++    /* FIXME: should we be explicitly switching the terminal as a 
++     * side effect here? */
++    terminal_func("graphics", flags);
++
++    return 0;
++}
++
++static struct builtin builtin_splashimage =
++{
++  "splashimage",
++  splashimage_func,
++  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
++  "splashimage FILE",
++  "Load FILE as the background image when in graphics mode."
++};
++
++
++/* foreground */
++static int
++foreground_func(char *arg, int flags)
++{
++    if (grub_strlen(arg) == 6) {
++	int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2;
++	int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2;
++	int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2;
++
++	foreground = (r << 16) | (g << 8) | b;
++	if (graphics_inited)
++	    graphics_set_palette(15, r, g, b);
++
++	return (0);
++    }
++
++    return (1);
++}
++
++static struct builtin builtin_foreground =
++{
++  "foreground",
++  foreground_func,
++  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
++  "foreground RRGGBB",
++  "Sets the foreground color when in graphics mode."
++  "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal."
++};
++
++
++/* background */
++static int
++background_func(char *arg, int flags)
++{
++    if (grub_strlen(arg) == 6) {
++	int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2;
++	int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2;
++	int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2;
++
++	background = (r << 16) | (g << 8) | b;
++	if (graphics_inited)
++	    graphics_set_palette(0, r, g, b);
++	return (0);
++    }
++
++    return (1);
++}
++
++static struct builtin builtin_background =
++{
++  "background",
++  background_func,
++  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
++  "background RRGGBB",
++  "Sets the background color when in graphics mode."
++  "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal."
++};
++
++#endif /* SUPPORT_GRAPHICS */
++
++
++/* clear */
++static int 
++clear_func() 
++{
++  if (current_term->cls)
++    current_term->cls();
++
++  return 0;
++}
++
++static struct builtin builtin_clear =
++{
++  "clear",
++  clear_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "clear",
++  "Clear the screen"
++};
++
++#ifndef PLATFORM_EFI
+ 
+ /* displayapm */
+ static int
+@@ -893,6 +1173,7 @@ static struct builtin builtin_displayapm =
+   "displayapm",
+   "Display APM BIOS information."
+ };
++#endif /* !PLATFORM_EFI */
+ 
+ 
+ /* displaymem */
+@@ -912,11 +1193,11 @@ displaymem_func (char *arg, int flags)
+   if (mbi.flags & MB_INFO_MEM_MAP)
+     {
+       struct AddrRangeDesc *map = (struct AddrRangeDesc *) mbi.mmap_addr;
+-      int end_addr = mbi.mmap_addr + mbi.mmap_length;
++      unsigned long end_addr = mbi.mmap_addr + mbi.mmap_length;
+ 
+       grub_printf (" [Address Range Descriptor entries "
+ 		   "immediately follow (values are 64-bit)]\n");
+-      while (end_addr > (int) map)
++      while (end_addr > (unsigned long) map)
+ 	{
+ 	  char *str;
+ 
+@@ -924,15 +1205,10 @@ displaymem_func (char *arg, int flags)
+ 	    str = "Usable RAM";
+ 	  else
+ 	    str = "Reserved";
+-	  grub_printf ("   %s:  Base Address:  0x%x X 4GB + 0x%x,\n"
+-		       "      Length:   0x%x X 4GB + 0x%x bytes\n",
+-		       str,
+-		       (unsigned long) (map->BaseAddr >> 32),
+-		       (unsigned long) (map->BaseAddr & 0xFFFFFFFF),
+-		       (unsigned long) (map->Length >> 32),
+-		       (unsigned long) (map->Length & 0xFFFFFFFF));
+-
+-	  map = ((struct AddrRangeDesc *) (((int) map) + 4 + map->size));
++	  grub_printf ("   %s:  Base Address: 0x%lx Length: 0x%lx bytes\n",
++	  		str, map->BaseAddr, map->Length);
++
++	  map = ((struct AddrRangeDesc *) (((unsigned long) map) + 4 + map->size));
+ 	}
+     }
+ 
+@@ -1009,6 +1285,7 @@ static struct builtin builtin_dump =
+   };
+ #endif /* GRUB_UTIL */
+ 
++#ifndef PLATFORM_EFI
+ 
+ static char embed_info[32];
+ /* embed */
+@@ -1143,6 +1420,7 @@ static struct builtin builtin_embed =
+   " is a drive, or in the \"bootloader\" area if DEVICE is a FFS partition."
+   " Print the number of sectors which STAGE1_5 occupies if successful."
+ };
++#endif /* ! PLATFORM_EFI */
+ 
+ 
+ /* fallback */
+@@ -1233,14 +1511,16 @@ find_func (char *arg, int flags)
+   for (drive = 0x80; drive < 0x88; drive++)
+     {
+       unsigned long part = 0xFFFFFF;
+-      unsigned long start, len, offset, ext_offset;
+-      int type, entry;
+-      char buf[SECTOR_SIZE];
++      unsigned long start, len, offset, ext_offset, gpt_offset;
++      int type, entry, gpt_count, gpt_size;
++      int sector_size = get_sector_size(drive);
++      char buf[sector_size];
+ 
+       current_drive = drive;
+       while (next_partition (drive, 0xFFFFFF, &part, &type,
+ 			     &start, &len, &offset, &entry,
+-			     &ext_offset, buf))
++                            &ext_offset, &gpt_offset,
++                            &gpt_count, &gpt_size, buf))
+ 	{
+ 	  if (type != PC_SLICE_TYPE_NONE
+ 	      && ! IS_PC_SLICE_TYPE_BSD (type)
+@@ -1679,6 +1959,7 @@ static struct builtin builtin_ifconfig =
+ };
+ #endif /* SUPPORT_NETBOOT */
+ 
++#ifndef PLATFORM_EFI
+ 
+ /* impsprobe */
+ static int
+@@ -1706,6 +1987,7 @@ static struct builtin builtin_impsprobe =
+   " configuration table and boot the various CPUs which are found into"
+   " a tight loop."
+ };
++#endif /* ! PLATFORM_EFI */
+ 
+ 
+ /* initrd */
+@@ -1738,8 +2020,82 @@ static struct builtin builtin_initrd =
+   " appropriate parameters in the Linux setup area in memory."
+ };
+ 
++#ifndef PLATFORM_EFI
+ 
+ /* install */
++static struct {
++	int saved_sector;
++	int installaddr;
++	int installlist;
++	int last_length;
++	char *stage2_first_buffer;
++} install_func_context = {
++	.saved_sector = 0,
++	.installaddr = 0,
++	.installlist = 0,
++	.last_length = SECTOR_SIZE,
++	.stage2_first_buffer = NULL,
++};
++
++/* Save the first sector of Stage2 in STAGE2_SECT.  */
++/* Formerly disk_read_savesect_func with local scope inside install_func */
++static void
++install_savesect_helper(int sector, int offset, int length)
++{
++  if (debug)
++    printf ("[%d]", sector);
++
++  /* ReiserFS has files which sometimes contain data not aligned
++     on sector boundaries.  Returning an error is better than
++     silently failing. */
++  if (offset != 0 || length != SECTOR_SIZE)
++    errnum = ERR_UNALIGNED;
++
++  install_func_context.saved_sector = sector;
++}
++
++/* Write SECTOR to INSTALLLIST, and update INSTALLADDR and  INSTALLSECT.  */
++/* Formerly disk_read_blocklist_func with local scope inside install_func */
++static void
++install_blocklist_helper (int sector, int offset, int length)
++{
++  int *installaddr = &install_func_context.installaddr;
++  int *installlist = &install_func_context.installlist;
++  char **stage2_first_buffer = &install_func_context.stage2_first_buffer;
++  /* Was the last sector full? */
++  int *last_length = &install_func_context.last_length;
++
++  if (debug)
++    printf("[%d]", sector);
++
++  if (offset != 0 || *last_length != SECTOR_SIZE)
++    {
++      /* We found a non-sector-aligned data block. */
++      errnum = ERR_UNALIGNED;
++      return;
++    }
++
++  *last_length = length;
++
++  if (*((unsigned long *) (*installlist - 4))
++      + *((unsigned short *) *installlist) != sector
++      || *installlist == (int) *stage2_first_buffer + SECTOR_SIZE + 4)
++    {
++      *installlist -= 8;
++
++      if (*((unsigned long *) (*installlist - 8)))
++        errnum = ERR_WONT_FIT;
++      else
++        {
++          *((unsigned short *) (*installlist + 2)) = (*installaddr >> 4);
++          *((unsigned long *) (*installlist - 4)) = sector;
++        }
++    }
++
++  *((unsigned short *) *installlist) += 1;
++  *installaddr += 512;
++}
++
+ static int
+ install_func (char *arg, int flags)
+ {
+@@ -1747,8 +2103,12 @@ install_func (char *arg, int flags)
+   char *stage1_buffer = (char *) RAW_ADDR (0x100000);
+   char *stage2_buffer = stage1_buffer + SECTOR_SIZE;
+   char *old_sect = stage2_buffer + SECTOR_SIZE;
+-  char *stage2_first_buffer = old_sect + SECTOR_SIZE;
+-  char *stage2_second_buffer = stage2_first_buffer + SECTOR_SIZE;
++  /* stage2_first_buffer used to be defined as:
++   * char *stage2_first_buffer = old_sect + SECTOR_SIZE;  */
++  char **stage2_first_buffer = &install_func_context.stage2_first_buffer;
++  /* and stage2_second_buffer was:
++   * char *stage2_second_buffer = stage2_first_buffer + SECTOR_SIZE; */
++  char *stage2_second_buffer = old_sect + SECTOR_SIZE + SECTOR_SIZE;
+   /* XXX: Probably SECTOR_SIZE is reasonable.  */
+   char *config_filename = stage2_second_buffer + SECTOR_SIZE;
+   char *dummy = config_filename + SECTOR_SIZE;
+@@ -1757,10 +2117,11 @@ install_func (char *arg, int flags)
+   int src_drive, src_partition, src_part_start;
+   int i;
+   struct geometry dest_geom, src_geom;
+-  int saved_sector;
++  int *saved_sector = &install_func_context.saved_sector;
+   int stage2_first_sector, stage2_second_sector;
+   char *ptr;
+-  int installaddr, installlist;
++  int *installaddr = &install_func_context.installaddr;
++  int *installlist = &install_func_context.installlist;
+   /* Point to the location of the name of a configuration file in Stage 2.  */
+   char *config_file_location;
+   /* If FILE is a Stage 1.5?  */
+@@ -1769,68 +2130,18 @@ install_func (char *arg, int flags)
+   int is_open = 0;
+   /* If LBA is forced?  */
+   int is_force_lba = 0;
+-  /* Was the last sector full? */
+-  int last_length = SECTOR_SIZE;
++  int *last_length = &install_func_context.last_length;
+   
++  /* Reset state.  */
++  *last_length = SECTOR_SIZE;
++
++  *stage2_first_buffer = old_sect + SECTOR_SIZE;
+ #ifdef GRUB_UTIL
+   /* If the Stage 2 is in a partition mounted by an OS, this will store
+      the filename under the OS.  */
+   char *stage2_os_file = 0;
+ #endif /* GRUB_UTIL */
+   
+-  auto void disk_read_savesect_func (int sector, int offset, int length);
+-  auto void disk_read_blocklist_func (int sector, int offset, int length);
+-  
+-  /* Save the first sector of Stage2 in STAGE2_SECT.  */
+-  auto void disk_read_savesect_func (int sector, int offset, int length)
+-    {
+-      if (debug)
+-	printf ("[%d]", sector);
+-
+-      /* ReiserFS has files which sometimes contain data not aligned
+-         on sector boundaries.  Returning an error is better than
+-         silently failing. */
+-      if (offset != 0 || length != SECTOR_SIZE)
+-	errnum = ERR_UNALIGNED;
+-
+-      saved_sector = sector;
+-    }
+-
+-  /* Write SECTOR to INSTALLLIST, and update INSTALLADDR and
+-     INSTALLSECT.  */
+-  auto void disk_read_blocklist_func (int sector, int offset, int length)
+-    {
+-      if (debug)
+-	printf("[%d]", sector);
+-
+-      if (offset != 0 || last_length != SECTOR_SIZE)
+-	{
+-	  /* We found a non-sector-aligned data block. */
+-	  errnum = ERR_UNALIGNED;
+-	  return;
+-	}
+-
+-      last_length = length;
+-
+-      if (*((unsigned long *) (installlist - 4))
+-	  + *((unsigned short *) installlist) != sector
+-	  || installlist == (int) stage2_first_buffer + SECTOR_SIZE + 4)
+-	{
+-	  installlist -= 8;
+-
+-	  if (*((unsigned long *) (installlist - 8)))
+-	    errnum = ERR_WONT_FIT;
+-	  else
+-	    {
+-	      *((unsigned short *) (installlist + 2)) = (installaddr >> 4);
+-	      *((unsigned long *) (installlist - 4)) = sector;
+-	    }
+-	}
+-
+-      *((unsigned short *) installlist) += 1;
+-      installaddr += 512;
+-    }
+-
+   /* First, check the GNU-style long option.  */
+   while (1)
+     {
+@@ -1862,10 +2173,10 @@ install_func (char *arg, int flags)
+   addr = skip_to (0, file);
+ 
+   /* Get the installation address.  */
+-  if (! safe_parse_maxint (&addr, &installaddr))
++  if (! safe_parse_maxint (&addr, installaddr))
+     {
+       /* ADDR is not specified.  */
+-      installaddr = 0;
++      *installaddr = 0;
+       ptr = addr;
+       errnum = 0;
+     }
+@@ -1961,17 +2272,17 @@ install_func (char *arg, int flags)
+       = 0x9090;
+   
+   /* Read the first sector of Stage 2.  */
+-  disk_read_hook = disk_read_savesect_func;
+-  if (grub_read (stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE)
++  disk_read_hook = install_savesect_helper;
++  if (grub_read (*stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE)
+     goto fail;
+ 
+-  stage2_first_sector = saved_sector;
++  stage2_first_sector = *saved_sector;
+   
+   /* Read the second sector of Stage 2.  */
+   if (grub_read (stage2_second_buffer, SECTOR_SIZE) != SECTOR_SIZE)
+     goto fail;
+ 
+-  stage2_second_sector = saved_sector;
++  stage2_second_sector = *saved_sector;
+   
+   /* Check for the version of Stage 2.  */
+   if (*((short *) (stage2_second_buffer + STAGE2_VER_MAJ_OFFS))
+@@ -1987,27 +2298,27 @@ install_func (char *arg, int flags)
+ 
+   /* If INSTALLADDR is not specified explicitly in the command-line,
+      determine it by the Stage 2 id.  */
+-  if (! installaddr)
++  if (! *installaddr)
+     {
+       if (! is_stage1_5)
+ 	/* Stage 2.  */
+-	installaddr = 0x8000;
++	*installaddr = 0x8000;
+       else
+ 	/* Stage 1.5.  */
+-	installaddr = 0x2000;
++	*installaddr = 0x2000;
+     }
+ 
+   *((unsigned long *) (stage1_buffer + STAGE1_STAGE2_SECTOR))
+     = stage2_first_sector;
+   *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_ADDRESS))
+-    = installaddr;
++    = *installaddr;
+   *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_SEGMENT))
+-    = installaddr >> 4;
++    = *installaddr >> 4;
+ 
+-  i = (int) stage2_first_buffer + SECTOR_SIZE - 4;
++  i = (int) *stage2_first_buffer + SECTOR_SIZE - 4;
+   while (*((unsigned long *) i))
+     {
+-      if (i < (int) stage2_first_buffer
++      if (i < (int) *stage2_first_buffer
+ 	  || (*((int *) (i - 4)) & 0x80000000)
+ 	  || *((unsigned short *) i) >= 0xA00
+ 	  || *((short *) (i + 2)) == 0)
+@@ -2021,13 +2332,13 @@ install_func (char *arg, int flags)
+       i -= 8;
+     }
+ 
+-  installlist = (int) stage2_first_buffer + SECTOR_SIZE + 4;
+-  installaddr += SECTOR_SIZE;
++  *installlist = (int) *stage2_first_buffer + SECTOR_SIZE + 4;
++  *installaddr += SECTOR_SIZE;
+   
+   /* Read the whole of Stage2 except for the first sector.  */
+   grub_seek (SECTOR_SIZE);
+ 
+-  disk_read_hook = disk_read_blocklist_func;
++  disk_read_hook = install_blocklist_helper;
+   if (! grub_read (dummy, -1))
+     goto fail;
+   
+@@ -2110,7 +2421,7 @@ install_func (char *arg, int flags)
+ 	  /* Skip the first sector.  */
+ 	  grub_seek (SECTOR_SIZE);
+ 	  
+-	  disk_read_hook = disk_read_savesect_func;
++	  disk_read_hook = install_savesect_helper;
+ 	  if (grub_read (stage2_buffer, SECTOR_SIZE) != SECTOR_SIZE)
+ 	    goto fail;
+ 	  
+@@ -2180,7 +2491,17 @@ install_func (char *arg, int flags)
+ 	  else
+ #endif /* GRUB_UTIL */
+ 	    {
+-	      if (! devwrite (saved_sector - part_start, 1, stage2_buffer))
++	      /*
++	       * FIXME: Ugly hack.
++	       * Do not write to btrfs partition
++	       * without a help of the file system!
++	       */
++	      if (!strcmp(fsys_table[fsys_type].name, "btrfs"))
++		{
++		  errnum = ERR_BAD_ARGUMENT;
++		  goto fail;
++		}
++	      if (! devwrite (*saved_sector - part_start, 1, stage2_buffer))
+ 		goto fail;
+ 	    }
+ 	}
+@@ -2202,7 +2523,7 @@ install_func (char *arg, int flags)
+ 	  goto fail;
+ 	}
+ 
+-      if (fwrite (stage2_first_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE)
++      if (fwrite (*stage2_first_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE)
+ 	{
+ 	  fclose (fp);
+ 	  errnum = ERR_WRITE;
+@@ -2229,7 +2550,7 @@ install_func (char *arg, int flags)
+ 	goto fail;
+ 
+       if (! devwrite (stage2_first_sector - src_part_start, 1,
+-		      stage2_first_buffer))
++		      *stage2_first_buffer))
+ 	goto fail;
+ 
+       if (! devwrite (stage2_second_sector - src_part_start, 1,
+@@ -2322,6 +2643,7 @@ static struct builtin builtin_ioprobe =
+   "ioprobe DRIVE",
+   "Probe I/O ports used for the drive DRIVE."
+ };
++#endif /* ! PLATFORM_EFI */
+ 
+ 
+ /* kernel */
+@@ -2456,6 +2778,7 @@ static struct builtin builtin_makeactive =
+   " This command is limited to _primary_ PC partitions on a hard disk."
+ };
+ 
++#ifndef PLATFORM_EFI
+ 
+ /* map */
+ /* Map FROM_DRIVE to TO_DRIVE.  */
+@@ -2519,6 +2842,7 @@ static struct builtin builtin_map =
+   " when you chain-load some operating systems, such as DOS, if such an"
+   " OS resides at a non-first drive."
+ };
++#endif /* ! PLATFORM_EFI */
+ 
+ 
+ #ifdef USE_MD5_PASSWORDS
+@@ -2579,6 +2903,7 @@ static struct builtin builtin_md5crypt =
+ };
+ #endif /* USE_MD5_PASSWORDS */
+ 
++#ifndef PLATFORM_EFI
+ 
+ /* module */
+ static int
+@@ -2656,6 +2981,7 @@ static struct builtin builtin_modulenounzip =
+   "The same as `module', except that automatic decompression is"
+   " disabled."
+ };
++#endif /* !PLATFORM_EFI */
+ 
+ 
+ /* pager [on|off] */
+@@ -2698,7 +3024,6 @@ partnew_func (char *arg, int flags)
+   int start_cl, start_ch, start_dh;
+   int end_cl, end_ch, end_dh;
+   int entry;
+-  char mbr[512];
+ 
+   /* Convert a LBA address to a CHS address in the INT 13 format.  */
+   auto void lba_to_chs (int lba, int *cl, int *ch, int *dh);
+@@ -2729,6 +3054,9 @@ partnew_func (char *arg, int flags)
+       return 1;
+     }
+ 
++  int sector_size = get_sector_size(current_drive);
++  char mbr[sector_size];
++
+   /* The partition must a primary partition.  */
+   if ((current_partition >> 16) > 3
+       || (current_partition & 0xFFFF) != 0xFFFF)
+@@ -2762,7 +3090,7 @@ partnew_func (char *arg, int flags)
+     return 1;
+ 
+   /* Read the MBR.  */
+-  if (! rawread (current_drive, 0, 0, SECTOR_SIZE, mbr))
++  if (! rawread (current_drive, 0, 0, sector_size, mbr))
+     return 1;
+ 
+   /* Check if the new partition will fit in the disk.  */
+@@ -2815,9 +3143,8 @@ parttype_func (char *arg, int flags)
+ {
+   int new_type;
+   unsigned long part = 0xFFFFFF;
+-  unsigned long start, len, offset, ext_offset;
+-  int entry, type;
+-  char mbr[512];
++  unsigned long start, len, offset, ext_offset, gpt_offset;
++  int entry, type, gpt_count, gpt_size;
+ 
+   /* Get the drive and the partition.  */
+   if (! set_device (arg))
+@@ -2829,6 +3156,9 @@ parttype_func (char *arg, int flags)
+       errnum = ERR_BAD_ARGUMENT;
+       return 1;
+     }
++
++  int sector_size = get_sector_size(current_drive);
++  char mbr[sector_size];
+   
+   /* The partition must be a PC slice.  */
+   if ((current_partition >> 16) == 0xFF
+@@ -2853,8 +3183,15 @@ parttype_func (char *arg, int flags)
+   /* Look for the partition.  */
+   while (next_partition (current_drive, 0xFFFFFF, &part, &type,
+ 			 &start, &len, &offset, &entry,
+-			 &ext_offset, mbr))
++			 &ext_offset, &gpt_offset, &gpt_count, &gpt_size, mbr))
+     {
++	  /* The partition may not be a GPT partition.  */
++	  if (gpt_offset != 0)
++	    {
++		errnum = ERR_BAD_ARGUMENT;
++		return 1;
++	    }
++
+       if (part == current_partition)
+ 	{
+ 	  /* Found.  */
+@@ -2900,6 +3237,11 @@ password_func (char *arg, int flags)
+       arg = skip_to (0, arg);
+     }
+ #endif
++  else if (grub_memcmp (arg, "--encrypted", 5) == 0)
++    {
++      type = PASSWORD_ENCRYPTED;
++      arg = skip_to (0, arg);
++    }
+   if (grub_memcmp (arg, "--", 2) == 0)
+     {
+       type = PASSWORD_UNSUPPORTED;
+@@ -2947,7 +3289,7 @@ static struct builtin builtin_password =
+   "password",
+   password_func,
+   BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_NO_ECHO,
+-  "password [--md5] PASSWD [FILE]",
++  "password [--md5|--encrypted] PASSWD [FILE]",
+   "If used in the first section of a menu file, disable all"
+   " interactive editing control (menu entry editor and"
+   " command line). If the password PASSWD is entered, it loads the"
+@@ -2956,7 +3298,8 @@ static struct builtin builtin_password =
+   " instructions.  You can also use it in the script section, in"
+   " which case it will ask for the password, before continueing."
+   " The option --md5 tells GRUB that PASSWD is encrypted with"
+-  " md5crypt."
++  " md5crypt, --encrypted that PASSWD is encrypted (with algorithm"
++  " specified in PASSWD: supported is md5, sha-256, sha-512)."
+ };
+ 
+ 
+@@ -2982,8 +3325,8 @@ static struct builtin builtin_pause =
+   "Print MESSAGE, then wait until a key is pressed."
+ };
+ 
++#if defined (GRUB_UTIL) || defined (PLATFORM_EFI)
+ 
+-#ifdef GRUB_UTIL
+ /* quit */
+ static int
+ quit_func (char *arg, int flags)
+@@ -3002,7 +3345,7 @@ static struct builtin builtin_quit =
+   "quit",
+   "Exit from the GRUB shell."
+ };
+-#endif /* GRUB_UTIL */
++#endif /* defined (GRUB_UTIL) || defined (PLATFORM_EFI) */
+ 
+ 
+ #ifdef SUPPORT_NETBOOT
+@@ -3165,7 +3508,8 @@ real_root_func (char *arg, int attempt_mount)
+ 	return 1;
+       
+       /* Print the type of the filesystem.  */
+-      print_fsys_type ();
++      if (grub_verbose)
++	print_fsys_type ();
+     }
+   
+   return 0;
+@@ -3217,146 +3561,181 @@ static struct builtin builtin_rootnoverify =
+ };
+ 
+ 
+-/* savedefault */
++
++#if !defined(SUPPORT_DISKLESS) && !defined(GRUB_UTIL) && !defined(PLATFORM_EFI)
++/* Write specified default entry number into stage2 file. */
+ static int
+-savedefault_func (char *arg, int flags)
++savedefault_helper(int new_default)
+ {
+-#if !defined(SUPPORT_DISKLESS) && !defined(GRUB_UTIL)
+-  unsigned long tmp_drive = saved_drive;
+-  unsigned long tmp_partition = saved_partition;
+-  char *default_file = (char *) DEFAULT_FILE_BUF;
+-  char buf[10];
+-  char sect[SECTOR_SIZE];
+-  int entryno;
+-  int sector_count = 0;
+-  int saved_sectors[2];
+-  int saved_offsets[2];
+-  int saved_lengths[2];
+-
+-  /* Save sector information about at most two sectors.  */
+-  auto void disk_read_savesect_func (int sector, int offset, int length);
+-  void disk_read_savesect_func (int sector, int offset, int length)
+-    {
+-      if (sector_count < 2)
+-	{
+-	  saved_sectors[sector_count] = sector;
+-	  saved_offsets[sector_count] = offset;
+-	  saved_lengths[sector_count] = length;
+-	}
+-      sector_count++;
+-    }
+-  
+-  /* This command is only useful when you boot an entry from the menu
+-     interface.  */
+-  if (! (flags & BUILTIN_SCRIPT))
++  char buffer[512];
++  int *entryno_ptr;
++
++  /* Get the geometry of the boot drive (i.e. the disk which contains
++     this stage2).  */
++  if (get_diskinfo (boot_drive, &buf_geom))
+     {
+-      errnum = ERR_UNRECOGNIZED;
++      errnum = ERR_NO_DISK;
+       return 1;
+     }
+ 
+-  /* Determine a saved entry number.  */
+-  if (*arg)
++  /* Load the second sector of this stage2.  */
++  if (! rawread (boot_drive, install_second_sector, 0, SECTOR_SIZE, buffer))
+     {
+-      if (grub_memcmp (arg, "fallback", sizeof ("fallback") - 1) == 0)
+-	{
+-	  int i;
+-	  int index = 0;
+-	  
+-	  for (i = 0; i < MAX_FALLBACK_ENTRIES; i++)
+-	    {
+-	      if (fallback_entries[i] < 0)
+-		break;
+-	      if (fallback_entries[i] == current_entryno)
+-		{
+-		  index = i + 1;
+-		  break;
+-		}
+-	    }
+-	  
+-	  if (index >= MAX_FALLBACK_ENTRIES || fallback_entries[index] < 0)
+-	    {
+-	      /* This is the last.  */
+-	      errnum = ERR_BAD_ARGUMENT;
+-	      return 1;
+-	    }
++      return 1;
++    }
+ 
+-	  entryno = fallback_entries[index];
+-	}
+-      else if (! safe_parse_maxint (&arg, &entryno))
+-	return 1;
++  /* Sanity check.  */
++  if (buffer[STAGE2_STAGE2_ID] != STAGE2_ID_STAGE2
++      || *((short *) (buffer + STAGE2_VER_MAJ_OFFS)) != COMPAT_VERSION)
++    {
++      errnum = ERR_BAD_VERSION;
++      return 1;
+     }
+-  else
+-    entryno = current_entryno;
++  
++  entryno_ptr = (int *) (buffer + STAGE2_SAVED_ENTRYNO);
+ 
+-  /* Open the default file.  */
+-  saved_drive = boot_drive;
+-  saved_partition = install_partition;
+-  if (grub_open (default_file))
++  /* Check if the saved entry number differs from current entry number.  */
++  if (*entryno_ptr != new_default)
+     {
+-      int len;
++      /* Overwrite the saved entry number.  */
++      *entryno_ptr = new_default;
+       
+-      disk_read_hook = disk_read_savesect_func;
+-      len = grub_read (buf, sizeof (buf));
+-      disk_read_hook = 0;
+-      grub_close ();
++      /* Save the image in the disk.  */
++      if (! rawwrite (boot_drive, install_second_sector, buffer))
++	return 1;
+       
+-      if (len != sizeof (buf))
+-	{
+-	  /* This is too small. Do not modify the file manually, please!  */
+-	  errnum = ERR_READ;
+-	  goto fail;
+-	}
++      /* Clear the cache.  */
++      buf_track = -1;
++    }
+ 
+-      if (sector_count > 2)
+-	{
+-	  /* Is this possible?! Too fragmented!  */
+-	  errnum = ERR_FSYS_CORRUPT;
+-	  goto fail;
+-	}
+-      
+-      /* Set up a string to be written.  */
+-      grub_memset (buf, '\n', sizeof (buf));
+-      grub_sprintf (buf, "%d", entryno);
+-      
+-      if (saved_lengths[0] < sizeof (buf))
+-	{
+-	  /* The file is anchored to another file and the first few bytes
+-	     are spanned in two sectors. Uggh...  */
+-	  if (! rawread (current_drive, saved_sectors[0], 0, SECTOR_SIZE,
+-			 sect))
+-	    goto fail;
+-	  grub_memmove (sect + saved_offsets[0], buf, saved_lengths[0]);
+-	  if (! rawwrite (current_drive, saved_sectors[0], sect))
+-	    goto fail;
++  return 0;
++}
++#endif
+ 
+-	  if (! rawread (current_drive, saved_sectors[1], 0, SECTOR_SIZE,
+-			 sect))
+-	    goto fail;
+-	  grub_memmove (sect + saved_offsets[1],
+-			buf + saved_lengths[0],
+-			sizeof (buf) - saved_lengths[0]);
+-	  if (! rawwrite (current_drive, saved_sectors[1], sect))
+-	    goto fail;
+-	}
++#if !defined(SUPPORT_DISKLESS) && defined(GRUB_UTIL)
++#define SECTOR_SIZE 0x200
++/*
++ * Full implementation of new `savedefault' for GRUB shell.
++ * XXX This needs fixing for stage2 files which aren't accessible
++ *     through a mounted filesystem.
++ */
++static int
++savedefault_shell(char *arg, int flags)
++{
++  char *stage2_os_file = "/boot/grub/stage2"; /* Default filename */
++  FILE *fp;
++  char buffer[512];
++  int *entryno_ptr;
++  int new_default = 0;
++  int old_default = 0;
++
++  while (1)
++    {
++      if (grub_memcmp ("--stage2=", arg, sizeof ("--stage2=") - 1) == 0)
++        {
++          stage2_os_file = arg + sizeof ("--stage2=") - 1;
++          arg = skip_to (0, arg);
++          nul_terminate (stage2_os_file);
++        }
++      else if (grub_memcmp ("--default=", arg, sizeof ("--default=") - 1) == 0)
++        {
++          char *p = arg + sizeof ("--default=") - 1;
++          if (! safe_parse_maxint (&p, &new_default))
++            return 1;
++          arg = skip_to (0, arg);
++        }
++      else if (grub_memcmp ("--once", arg, sizeof ("--once") - 1) == 0)
++        {
++          new_default <<= 8;
++          new_default |= STAGE2_ONCEONLY_ENTRY;
++          arg = skip_to (0, arg);
++        }
+       else
+-	{
+-	  /* This is a simple case. It fits into a single sector.  */
+-	  if (! rawread (current_drive, saved_sectors[0], 0, SECTOR_SIZE,
+-			 sect))
+-	    goto fail;
+-	  grub_memmove (sect + saved_offsets[0], buf, sizeof (buf));
+-	  if (! rawwrite (current_drive, saved_sectors[0], sect))
+-	    goto fail;
+-	}
++        break;
++    }
+ 
+-      /* Clear the cache.  */
+-      buf_track = -1;
++  if (! (fp = fopen(stage2_os_file, "r+")))
++    {
++      errnum = ERR_FILE_NOT_FOUND;
++      return 1;
++    }
++  
++  if (fseek (fp, SECTOR_SIZE, SEEK_SET) != 0)
++    {
++      fclose (fp);
++      errnum = ERR_BAD_VERSION;
++      return 1;
++    }
++  
++  if (fread (buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE)
++    {
++      fclose (fp);
++      errnum = ERR_READ;
++      return 1;
+     }
+ 
+- fail:
+-  saved_drive = tmp_drive;
+-  saved_partition = tmp_partition;
+-  return errnum;
++  /* Sanity check.  */
++  if (buffer[STAGE2_STAGE2_ID] != STAGE2_ID_STAGE2
++      || *((short *) (buffer + STAGE2_VER_MAJ_OFFS)) != COMPAT_VERSION)
++    {
++      errnum = ERR_BAD_VERSION;
++      return 1;
++    }
++  
++  entryno_ptr = (int *) (buffer + STAGE2_SAVED_ENTRYNO);
++  if (new_default & STAGE2_ONCEONLY_ENTRY)
++    {
++      old_default=*entryno_ptr;
++      *entryno_ptr = new_default + (old_default & 0xFF);
++    }
++  else
++    {
++      *entryno_ptr = new_default;
++    }
++
++  if (fseek (fp, SECTOR_SIZE, SEEK_SET) != 0)
++    {
++      fclose (fp);
++      errnum = ERR_BAD_VERSION;
++      return 1;
++    }
++  
++  if (fwrite (buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE)
++    {
++      fclose (fp);
++      errnum = ERR_WRITE;
++      return 1;
++    }
++  
++  (void)fflush (fp);
++  fclose (fp);
++  return 0;
++}
++#undef SECTOR_SIZE
++#endif
++
++/* savedefault */
++static int
++savedefault_func (char *arg, int flags)
++{
++#if !defined(SUPPORT_DISKLESS)
++#if !defined(GRUB_UTIL)
++#if !defined(PLATFORM_EFI)
++  /* This command is only useful when you boot an entry from the menu
++     interface.  */
++  if (! (flags & BUILTIN_SCRIPT))
++    {
++      errnum = ERR_UNRECOGNIZED;
++      return 1;
++    }
++
++  return savedefault_helper(current_entryno);
++#else /* defined(PLATFORM_EFI) */
++  return grub_save_saved_default (current_entryno);
++#endif
++#else /* defined(GRUB_UTIL) */
++  return savedefault_shell(arg, flags);
++#endif
+ #else /* ! SUPPORT_DISKLESS && ! GRUB_UTIL */
+   errnum = ERR_UNRECOGNIZED;
+   return 1;
+@@ -3368,10 +3747,14 @@ static struct builtin builtin_savedefault =
+   "savedefault",
+   savedefault_func,
+   BUILTIN_CMDLINE,
+-  "savedefault [NUM | `fallback']",
+-  "Save the current entry as the default boot entry if no argument is"
+-  " specified. If a number is specified, this number is saved. If"
+-  " `fallback' is used, next fallback entry is saved."
++#ifdef GRUB_UTIL
++  "savedefault [--stage2=STAGE2_FILE] [--default=DEFAULT] [--once]",
++  "Save DEFAULT as the default boot entry in STAGE2_FILE. If '--once'"
++  " is specified, the default is reset after the next reboot."
++#else
++  "savedefault",
++  "Save the current entry as the default boot entry."
++#endif
+ };
+ 
+ 
+@@ -3527,6 +3910,7 @@ static struct builtin builtin_serial =
+ };
+ #endif /* SUPPORT_SERIAL */
+ 
++#ifndef PLATFORM_EFI
+ 
+ /* setkey */
+ struct keysym
+@@ -3612,50 +3996,47 @@ static struct keysym keysym_table[] =
+   {"delete",		0,		0x7f,	0,	0x53}
+ };
+ 
+-static int
+-setkey_func (char *arg, int flags)
++static int find_key_code (char *key)
+ {
+-  char *to_key, *from_key;
+-  int to_code, from_code;
+-  int map_in_interrupt = 0;
+-  
+-  auto int find_key_code (char *key);
+-  auto int find_ascii_code (char *key);
+-  
+-  auto int find_key_code (char *key)
+-    {
+-      int i;
++  int i;
+ 
+-      for (i = 0; i < sizeof (keysym_table) / sizeof (keysym_table[0]); i++)
+-	{
+-	  if (keysym_table[i].unshifted_name &&
+-	      grub_strcmp (key, keysym_table[i].unshifted_name) == 0)
+-	    return keysym_table[i].keycode;
+-	  else if (keysym_table[i].shifted_name &&
+-		   grub_strcmp (key, keysym_table[i].shifted_name) == 0)
+-	    return keysym_table[i].keycode;
+-	}
+-      
+-      return 0;
++  for (i = 0; i < sizeof (keysym_table) / sizeof (keysym_table[0]); i++)
++    {
++      if (keysym_table[i].unshifted_name &&
++          grub_strcmp (key, keysym_table[i].unshifted_name) == 0)
++        return keysym_table[i].keycode;
++      else if (keysym_table[i].shifted_name &&
++               grub_strcmp (key, keysym_table[i].shifted_name) == 0)
++        return keysym_table[i].keycode;
+     }
+   
+-  auto int find_ascii_code (char *key)
++  return 0;
++}
++  
++static int find_ascii_code (char *key)
++{
++  int i;
++  
++  for (i = 0; i < sizeof (keysym_table) / sizeof (keysym_table[0]); i++)
+     {
+-      int i;
+-      
+-      for (i = 0; i < sizeof (keysym_table) / sizeof (keysym_table[0]); i++)
+-	{
+-	  if (keysym_table[i].unshifted_name &&
+-	      grub_strcmp (key, keysym_table[i].unshifted_name) == 0)
+-	    return keysym_table[i].unshifted_ascii;
+-	  else if (keysym_table[i].shifted_name &&
+-		   grub_strcmp (key, keysym_table[i].shifted_name) == 0)
+-	    return keysym_table[i].shifted_ascii;
+-	}
+-      
+-      return 0;
++      if (keysym_table[i].unshifted_name &&
++          grub_strcmp (key, keysym_table[i].unshifted_name) == 0)
++        return keysym_table[i].unshifted_ascii;
++      else if (keysym_table[i].shifted_name &&
++               grub_strcmp (key, keysym_table[i].shifted_name) == 0)
++        return keysym_table[i].shifted_ascii;
+     }
+   
++  return 0;
++}
++
++static int
++setkey_func (char *arg, int flags)
++{
++  char *to_key, *from_key;
++  int to_code, from_code;
++  int map_in_interrupt = 0;
++  
+   to_key = arg;
+   from_key = skip_to (0, to_key);
+ 
+@@ -3830,15 +4211,15 @@ setup_func (char *arg, int flags)
+ 	{
+ 	  char tmp[16];
+ 	  grub_sprintf (tmp, ",%d", (partition >> 16) & 0xFF);
+-	  grub_strncat (device, tmp, 256);
++	  grub_strncat (device, tmp, 16);
+ 	}
+       if ((partition & 0x00FF00) != 0x00FF00)
+ 	{
+ 	  char tmp[16];
+ 	  grub_sprintf (tmp, ",%c", 'a' + ((partition >> 8) & 0xFF));
+-	  grub_strncat (device, tmp, 256);
++	  grub_strncat (device, tmp, 16);
+ 	}
+-      grub_strncat (device, ")", 256);
++      grub_strncat (device, ")", 16);
+     }
+   
+   int embed_stage1_5 (char *stage1_5, int drive, int partition)
+@@ -3881,7 +4262,8 @@ setup_func (char *arg, int flags)
+     {"minix",    "/minix_stage1_5"},
+     {"reiserfs", "/reiserfs_stage1_5"},
+     {"vstafs",   "/vstafs_stage1_5"},
+-    {"xfs",      "/xfs_stage1_5"}
++    {"xfs",      "/xfs_stage1_5"},
++    {"btrfs",    "/btrfs_stage1_5"}
+   };
+ 
+   tmp_drive = saved_drive;
+@@ -3973,7 +4355,7 @@ setup_func (char *arg, int flags)
+ 
+   /* The prefix was determined.  */
+   grub_sprintf (stage2, "%s%s", prefix, "/stage2");
+-  grub_sprintf (config_filename, "%s%s", prefix, "/menu.lst");
++  grub_sprintf (config_filename, "%s%s", prefix, "/grub.conf");
+   *real_config_filename = 0;
+ 
+   /* Check if stage2 exists.  */
+@@ -4083,9 +4465,26 @@ static struct builtin builtin_setup =
+   " partition where GRUB images reside, specify the option `--stage2'"
+   " to tell GRUB the file name under your OS."
+ };
++#endif /* ! PLATFORM_EFI */
+ 
+ 
+-#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES)
++static int
++silent_func (char *arg, int flags)
++{
++  silent_grub = 1;
++  return 0;
++}
++
++static struct builtin builtin_silent =
++{
++  "silent",
++  silent_func,
++  BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "grub will attempt to avoid printing anything to the screen"
++};
++
++
++#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) || defined(SUPPORT_GRAPHICS)
+ /* terminal */
+ static int
+ terminal_func (char *arg, int flags)
+@@ -4244,17 +4643,21 @@ terminal_func (char *arg, int flags)
+  end:
+   current_term = term_table + default_term;
+   current_term->flags = term_flags;
+-  
++
+   if (lines)
+     max_lines = lines;
+   else
+-    /* 24 would be a good default value.  */
+-    max_lines = 24;
+-  
++    max_lines = current_term->max_lines;
++
+   /* If the interface is currently the command-line,
+      restart it to repaint the screen.  */
+-  if (current_term != prev_term && (flags & BUILTIN_CMDLINE))
++  if ((current_term != prev_term) && (flags & BUILTIN_CMDLINE)){
++    if (prev_term->shutdown)
++      prev_term->shutdown();
++    if (current_term->startup)
++      current_term->startup();
+     grub_longjmp (restart_cmdline_env, 0);
++  }
+   
+   return 0;
+ }
+@@ -4264,7 +4667,7 @@ static struct builtin builtin_terminal =
+   "terminal",
+   terminal_func,
+   BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
+-  "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules]",
++  "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules] [graphics]",
+   "Select a terminal. When multiple terminals are specified, wait until"
+   " you push any key to continue. If both console and serial are specified,"
+   " the terminal to which you input a key first will be selected. If no"
+@@ -4276,7 +4679,7 @@ static struct builtin builtin_terminal =
+   " seconds. The option --lines specifies the maximum number of lines."
+   " The option --silent is used to suppress messages."
+ };
+-#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */
++#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES || SUPPORT_GRAPHICS */
+ 
+ 
+ #ifdef SUPPORT_SERIAL
+@@ -4462,6 +4865,7 @@ static struct builtin builtin_testload =
+   " step is to try loading a kernel."
+ };
+ 
++#ifndef PLATFORM_EFI
+ 
+ /* testvbe MODE */
+ static int
+@@ -4566,6 +4970,7 @@ static struct builtin builtin_testvbe =
+   "testvbe MODE",
+   "Test the VBE mode MODE. Hit any key to return."
+ };
++#endif /* !PLATFORM_EFI */
+ 
+ 
+ #ifdef SUPPORT_NETBOOT
+@@ -4598,6 +5003,15 @@ static struct builtin builtin_tftpserver =
+ static int
+ timeout_func (char *arg, int flags)
+ {
++  /* One-shot default shenanigans -- don't piss around with the menu! */
++  if (grub_timeout != -1)
++    return 0;
++  if ((saved_entryno & STAGE2_ONCEONLY_ENTRY) != 0)
++    {
++      grub_timeout = 0;
++      return 0;
++    }
++
+   if (! safe_parse_maxint (&arg, &grub_timeout))
+     return 1;
+ 
+@@ -4661,6 +5075,7 @@ static struct builtin builtin_unhide =
+   " partition type code."
+ };
+ 
++#ifndef PLATFORM_EFI
+ 
+ /* uppermem */
+ static int
+@@ -4790,11 +5205,34 @@ static struct builtin builtin_vbeprobe =
+   "Probe VBE information. If the mode number MODE is specified, show only"
+   " the information about only the mode."
+ };
+-  
++#endif /* ! PLATFORM_EFI */
++
++
++/* version */
++static int
++version_func (char *arg, int flags)
++{
++  grub_printf ("\n    GNU GRUB  version %s  (%dK lower / %dK upper memory)\n\n",
++                version_string, mbi.mem_lower, mbi.mem_upper);
++  return 0;
++}
++
++static struct builtin builtin_version =
++{
++  "version",
++  version_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "version",
++  "Display grub version."
++};
++
+ 
+ /* The table of builtin commands. Sorted in dictionary order.  */
+ struct builtin *builtin_table[] =
+ {
++#ifdef SUPPORT_GRAPHICS
++  &builtin_background,
++#endif
+   &builtin_blocklist,
+   &builtin_boot,
+ #ifdef SUPPORT_NETBOOT
+@@ -4802,25 +5240,36 @@ struct builtin *builtin_table[] =
+ #endif /* SUPPORT_NETBOOT */
+   &builtin_cat,
+   &builtin_chainloader,
++  &builtin_clear,
+   &builtin_cmp,
+   &builtin_color,
+   &builtin_configfile,
+   &builtin_debug,
+   &builtin_default,
+-#ifdef GRUB_UTIL
++#if defined(GRUB_UTIL) || defined(PLATFORM_EFI)
+   &builtin_device,
+-#endif /* GRUB_UTIL */
++#endif /* defined(GRUB_UTIL) || defined(PLATFORM_EFI) */
+ #ifdef SUPPORT_NETBOOT
+   &builtin_dhcp,
+ #endif /* SUPPORT_NETBOOT */
++#ifndef PLATFORM_EFI
+   &builtin_displayapm,
++#endif
+   &builtin_displaymem,
+ #ifdef GRUB_UTIL
+   &builtin_dump,
+ #endif /* GRUB_UTIL */
++#ifdef PLATFORM_EFI
++  &builtin_efimap,
++#endif
++#ifndef PLATFORM_EFI
+   &builtin_embed,
++#endif
+   &builtin_fallback,
+   &builtin_find,
++#ifdef SUPPORT_GRAPHICS
++  &builtin_foreground,
++#endif
+   &builtin_fstest,
+   &builtin_geometry,
+   &builtin_halt,
+@@ -4830,27 +5279,35 @@ struct builtin *builtin_table[] =
+ #ifdef SUPPORT_NETBOOT
+   &builtin_ifconfig,
+ #endif /* SUPPORT_NETBOOT */
++#ifndef PLATFORM_EFI
+   &builtin_impsprobe,
++#endif
+   &builtin_initrd,
++#ifndef PLATFORM_EFI
+   &builtin_install,
+   &builtin_ioprobe,
++#endif
+   &builtin_kernel,
+   &builtin_lock,
+   &builtin_makeactive,
++#ifndef PLATFORM_EFI
+   &builtin_map,
++#endif
+ #ifdef USE_MD5_PASSWORDS
+   &builtin_md5crypt,
+ #endif /* USE_MD5_PASSWORDS */
++#ifndef PLATFORM_EFI
+   &builtin_module,
+   &builtin_modulenounzip,
++#endif
+   &builtin_pager,
+   &builtin_partnew,
+   &builtin_parttype,
+   &builtin_password,
+   &builtin_pause,
+-#ifdef GRUB_UTIL
++#if defined(GRUB_UTIL) || defined(PLATFORM_EFI)
+   &builtin_quit,
+-#endif /* GRUB_UTIL */
++#endif /* defined(GRUB_UTIL) || defined(PLATFORM_EFI) */
+ #ifdef SUPPORT_NETBOOT
+   &builtin_rarp,
+ #endif /* SUPPORT_NETBOOT */
+@@ -4862,23 +5319,35 @@ struct builtin *builtin_table[] =
+ #ifdef SUPPORT_SERIAL
+   &builtin_serial,
+ #endif /* SUPPORT_SERIAL */
++#ifndef PLATFORM_EFI
+   &builtin_setkey,
+   &builtin_setup,
+-#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES)
++#endif
++  &builtin_silent,
++#ifdef SUPPORT_GRAPHICS
++  &builtin_splashimage,
++#endif /* SUPPORT_GRAPHICS */
++#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) || defined(SUPPORT_GRAPHICS)
+   &builtin_terminal,
+-#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */
++#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES || SUPPORT_GRAPHICS */
+ #ifdef SUPPORT_SERIAL
+   &builtin_terminfo,
+ #endif /* SUPPORT_SERIAL */
+   &builtin_testload,
++#ifndef PLATFORM_EFI
+   &builtin_testvbe,
++#endif
+ #ifdef SUPPORT_NETBOOT
+   &builtin_tftpserver,
+ #endif /* SUPPORT_NETBOOT */
+   &builtin_timeout,
+   &builtin_title,
+   &builtin_unhide,
++#ifndef PLATFORM_EFI
+   &builtin_uppermem,
+   &builtin_vbeprobe,
++#endif
++  &builtin_verbose,
++  &builtin_version,
+   0
+ };
+diff --git a/stage2/char_io.c b/stage2/char_io.c
+index c86c240..073201a 100644
+--- a/stage2/char_io.c
++++ b/stage2/char_io.c
+@@ -35,29 +35,37 @@ struct term_entry term_table[] =
+     {
+       "console",
+       0,
++      24,
+       console_putchar,
+       console_checkkey,
+       console_getkey,
++      console_keystatus,
+       console_getxy,
+       console_gotoxy,
+       console_cls,
+       console_setcolorstate,
+       console_setcolor,
+-      console_setcursor
++      console_setcursor,
++      0, 
++      0
+     },
+ #ifdef SUPPORT_SERIAL
+     {
+       "serial",
+       /* A serial device must be initialized.  */
+       TERM_NEED_INIT,
++      24,
+       serial_putchar,
+       serial_checkkey,
+       serial_getkey,
++      0,
+       serial_getxy,
+       serial_gotoxy,
+       serial_cls,
+       serial_setcolorstate,
+       0,
++      0,
++      0, 
+       0
+     },
+ #endif /* SUPPORT_SERIAL */
+@@ -65,17 +73,39 @@ struct term_entry term_table[] =
+     {
+       "hercules",
+       0,
++      24,
+       hercules_putchar,
+       console_checkkey,
+       console_getkey,
++      console_keystatus,
+       hercules_getxy,
+       hercules_gotoxy,
+       hercules_cls,
+       hercules_setcolorstate,
+       hercules_setcolor,
+-      hercules_setcursor
++      hercules_setcursor,
++      0,
++      0
+     },      
+ #endif /* SUPPORT_HERCULES */
++#ifdef SUPPORT_GRAPHICS
++    { "graphics",
++      TERM_NEED_INIT, /* flags */
++      30, /* number of lines */
++      graphics_putchar, /* putchar */
++      console_checkkey, /* checkkey */
++      console_getkey, /* getkey */
++      console_keystatus, /* keystatus */
++      graphics_getxy, /* getxy */
++      graphics_gotoxy, /* gotoxy */
++      graphics_cls, /* cls */
++      graphics_setcolorstate, /* setcolorstate */
++      graphics_setcolor, /* setcolor */
++      graphics_setcursor, /* nocursor */
++      graphics_init, /* initialize */
++      graphics_end /* shutdown */
++    },
++#endif /* SUPPORT_GRAPHICS */
+     /* This must be the last entry.  */
+     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+   };
+@@ -101,16 +131,16 @@ print_error (void)
+ }
+ 
+ char *
+-convert_to_ascii (char *buf, int c,...)
++convert_to_ascii (char *buf, int c, unsigned int num)
+ {
+-  unsigned long num = *((&c) + 1), mult = 10;
++  unsigned int mult = 10;
+   char *ptr = buf;
+ 
+ #ifndef STAGE1_5
+   if (c == 'x' || c == 'X')
+     mult = 16;
+ 
+-  if ((num & 0x80000000uL) && c == 'd')
++  if ((int) num < 0 && c == 'd')
+     {
+       num = (~num) + 1;
+       *(ptr++) = '-';
+@@ -149,87 +179,266 @@ grub_putstr (const char *str)
+     grub_putchar (*str++);
+ }
+ 
+-void
+-grub_printf (const char *format,...)
++static void write_char(char **str, char c, int *count)
+ {
+-  int *dataptr = (int *) &format;
+-  char c, str[16];
+-  
+-  dataptr++;
+-
+-  while ((c = *(format++)) != 0)
+-    {
+-      if (c != '%')
+-	grub_putchar (c);
+-      else
+-	switch (c = *(format++))
+-	  {
+-#ifndef STAGE1_5
+-	  case 'd':
+-	  case 'x':
+-	  case 'X':
+-#endif
+-	  case 'u':
+-	    *convert_to_ascii (str, c, *((unsigned long *) dataptr++)) = 0;
+-	    grub_putstr (str);
+-	    break;
+-
+-#ifndef STAGE1_5
+-	  case 'c':
+-	    grub_putchar ((*(dataptr++)) & 0xff);
+-	    break;
++    if (str && *str)
++        *(*str)++ = c;
++    else
++        putchar(c);
++    (*count)++;
++}
+ 
+-	  case 's':
+-	    grub_putstr ((char *) *(dataptr++));
+-	    break;
+-#endif
+-	  }
++static void write_str(char **str, char *s, int *count)
++{
++    if (s) {
++        while (*s)
++            write_char(str, *s++, count);
++    } else {
++        write_str(str, "(nil)", count);
+     }
+ }
+ 
+-#ifndef STAGE1_5
++#define format_ascii(buf, val, is_hex, is_cap, num_pad_chars) ({    \
++        int _n = sizeof ((buf)) - 2;                                \
++        typeof(val) _nval = (val);                                  \
++        int _negative = 0;                                          \
++        int _mult = is_hex ? 16 : 10;                               \
++        char _a = is_cap ? 'A' : 'a';                               \
++	int _pad = num_pad_chars; \
++		    char hex[] = "0123456789abcdef"; \
++        memset((buf), '\0', sizeof ((buf)));			    \
++        if (!(_nval > 0LL))                                         \
++            _negative = 1;                                          \
++        if (_nval == 0LL)                                           \
++            _negative = 0;                                          \
++        if (_negative)                                              \
++            _nval = (_nval ^ -1);                                   \
++        do {                                                        \
++            int _dig = _nval % _mult;                               \
++            (buf)[_n--] = ((_dig > 9) ? _dig + _a - 10 : '0'+_dig); \
++	    if (_pad > 0) _pad--; \
++        } while (_nval /= _mult);                                   \
++	while (_pad--) \
++		(buf)[_n--] = '0'; \
++        if (_negative)                                              \
++            (buf)[_n--] = '-';                                      \
++        _mult = 0;                                                  \
++        _n++;                                                       \
++        while (_n < sizeof ((buf)))				    \
++            (buf)[_mult++] = (buf)[_n++];                           \
++        if (_negative && _mult > 1)                                 \
++            ((buf)[_mult-2])++;                                     \
++    })
++
+ int
+-grub_sprintf (char *buffer, const char *format, ...)
++grub_vsprintf (char *str, const char *fmt, va_list args)
+ {
+-  /* XXX hohmuth
+-     ugly hack -- should unify with printf() */
+-  int *dataptr = (int *) &format;
+-  char c, *ptr, str[16];
+-  char *bp = buffer;
+-
+-  dataptr++;
+-
+-  while ((c = *format++) != 0)
+-    {
+-      if (c != '%')
+-	*bp++ = c; /* putchar(c); */
+-      else
+-	switch (c = *(format++))
+-	  {
+-	  case 'd': case 'u': case 'x':
+-	    *convert_to_ascii (str, c, *((unsigned long *) dataptr++)) = 0;
+-
+-	    ptr = str;
++    char c;
++    char buf[40];
++    int pos = 0;
++
++    int count = 0;
++
++    char *str_arg;
++    int int_arg;
++    unsigned char uchar_arg;
++    unsigned ushort_arg;
++    unsigned int uint_arg;
++    signed long long_arg;
++    unsigned long ulong_arg;
++    signed long long longlong_arg;
++    unsigned long long ulonglong_arg;
++
++    c = *fmt++;
++    if (!c)
++        return 0;
++
++    int is_fmt = 0, is_long = 0, is_signed = 1, is_cap = 0, is_zero_padded = 0;
++    int num_pad_chars = 0;
++    int restart = 1;
++    do {
++        if (restart) {
++            restart = 0;
++            is_fmt = 0;
++            is_long = 0;
++            is_cap = 0;
++            is_signed = 1;
++	    is_zero_padded = 0;
++	    num_pad_chars = 0;
++            buf[0] = '\0';
++            pos = 0;
++        }
++
++        if (!is_fmt) {
++            if (c == '%') {
++                is_fmt = 1;
++                buf[pos++] = c;
++                buf[pos] = '\0';
++                continue;
++            } else {
++                write_char(&str, c, &count);
++                continue;
++            }
++        }
++
++        /* below here we only ever hit when is_fmt is  1 */
++        switch (c) {
++            /* first, modifiers */
++            case '%':
++                if (pos != 0)
++                    write_str(&str, buf, &count);
++                write_char(&str, c, &count);
++                restart = 1;
++                continue;
++	    case '0':
++	    	if (!is_zero_padded) {
++		    	buf[pos++] = c;
++			buf[pos] = '\0';
++			is_zero_padded++;
++			continue;
++		}
++	    case '1':
++	    case '2':
++	    case '3':
++	    case '4':
++	    case '5':
++	    case '6':
++	    case '7':
++	    case '8':
++	    case '9':
++		buf[pos++] = c;
++		buf[pos] = '\0';
++		num_pad_chars *= 10;
++		num_pad_chars += c - '0';
++		continue;
++            case 'l':
++                buf[pos++] = c;
++                buf[pos] = '\0';
++                is_long++;
++                continue;
++            case 'L':
++                buf[pos++] = c;
++                buf[pos] = '\0';
++                is_long = 2;
++                continue;
++
++            /* below here are things we actually have to print */
++            case 'c':
++                int_arg = va_arg(args, int) & 0xff;
++                if (int_arg == 0) {
++                    char *tmp_str = "\\x00";
++                    write_str(&tmp_str, buf, &count);
++                } else {
++                    write_char(&str, int_arg, &count);
++                }
++                restart = 1;
++                continue;
++            case 'd':
++                if (is_long == 0) {
++                    int_arg = va_arg(args, signed int);
++                    format_ascii(buf, int_arg, 0, 0, 0);
++                } else if (is_long == 1) {
++                    long_arg = va_arg(args, signed long);
++                    format_ascii(buf, long_arg, 0, 0, 0);
++                } else {
++                    longlong_arg = va_arg(args, signed long long);
++                    format_ascii(buf, longlong_arg, 0, 0, 0);
++                }
++                write_str(&str, buf, &count);
++                restart = 1;
++                continue;
++            case 's':
++                str_arg = va_arg(args, char *);
++                write_str(&str, str_arg, &count);
++                restart = 1;
++                continue;
++            case 'u':
++            case 'U':
++                if (is_long == 0) {
++                    uint_arg = va_arg(args, unsigned int);
++                    format_ascii(buf, uint_arg, 0, 0, 0);
++                } else if (is_long == 1) {
++                    ulong_arg = va_arg(args, unsigned long);
++                    format_ascii(buf, ulong_arg, 0, 0, 0);
++                } else {
++                    ulonglong_arg = va_arg(args, unsigned long long);
++                    format_ascii(buf, ulonglong_arg, 0, 0, 0);
++                }
++                write_str(&str, buf, &count);
++                restart = 1;
++                continue;
++            case 'P':
++                is_cap = 1;
++            case 'p':
++                ulong_arg = va_arg(args, unsigned long);
++		is_zero_padded = 1;
++                format_ascii(buf, ulong_arg, 1, is_cap, sizeof(ulong_arg));
++                write_str(&str, is_cap ? "0X" : "0x", &count);
++                write_str(&str, buf, &count);
++                restart = 1;
++                continue;
++            case 'X':
++                is_cap = 1;
++            case 'x':
++	    	if (num_pad_chars == 2) {
++		    int i;
++		    char hex[] = "0123456789abcdef";
++		    uint_arg = va_arg(args, unsigned int);
++		    uchar_arg = uint_arg & 0xff;
++		    format_ascii(buf, uchar_arg, 1, is_cap, num_pad_chars);
++		} else if (num_pad_chars == 4) {
++		    uint_arg = va_arg(args, unsigned int);
++		    ushort_arg = uint_arg & 0xffff;
++		    format_ascii(buf, ushort_arg, 1, is_cap, num_pad_chars);
++		} else if (is_long == 0) {
++                    uint_arg = va_arg(args, unsigned int);
++                    format_ascii(buf, uint_arg, 1, is_cap, num_pad_chars);
++                } else if (is_long == 1) {
++                    ulong_arg = va_arg(args, unsigned long);
++                    format_ascii(buf, ulong_arg, 1, is_cap, num_pad_chars);
++                } else {
++                    ulonglong_arg = va_arg(args, unsigned long long);
++                    format_ascii(buf, ulonglong_arg, 1, is_cap, num_pad_chars);
++                }
++                write_str(&str, buf, &count);
++                restart = 1;
++                continue;
++            default:
++                buf[pos++] = c;
++                buf[pos] = '\0';
++                write_str(&str, buf, &count);
++                restart = 1;
++                continue;
++        }
++    } while ((c = *fmt++));
++
++    if (str)
++        *str = '\0';
++    return count;
++}
+ 
+-	    while (*ptr)
+-	      *bp++ = *(ptr++); /* putchar(*(ptr++)); */
+-	    break;
++void
++grub_printf (char *fmt, ...)
++{
++  va_list ap;
+ 
+-	  case 'c': *bp++ = (*(dataptr++))&0xff;
+-	    /* putchar((*(dataptr++))&0xff); */
+-	    break;
++  va_start (ap, fmt);
++  grub_vsprintf (0, fmt, ap);
++  va_end (ap);
++}
+ 
+-	  case 's':
+-	    ptr = (char *) (*(dataptr++));
++#ifndef STAGE1_5
++int
++grub_sprintf (char *str, const char *fmt, ...)
++{
++  va_list ap;
++  int ret;
+ 
+-	    while ((c = *ptr++) != 0)
+-	      *bp++ = c; /* putchar(c); */
+-	    break;
+-	  }
+-    }
++  va_start (ap, fmt);
++  ret = grub_vsprintf (str, fmt, ap);
++  va_end (ap);
+ 
+-  *bp = 0;
+-  return bp - buffer;
++  return ret;
+ }
+ 
+ 
+@@ -898,7 +1107,6 @@ safe_parse_maxint (char **str_ptr, int *myint_ptr)
+ }
+ #endif /* STAGE1_5 */
+ 
+-#if !defined(STAGE1_5) || defined(FSYS_FAT)
+ int
+ grub_tolower (int c)
+ {
+@@ -907,7 +1115,6 @@ grub_tolower (int c)
+ 
+   return c;
+ }
+-#endif /* ! STAGE1_5 || FSYS_FAT */
+ 
+ int
+ grub_isspace (int c)
+@@ -1004,6 +1211,16 @@ checkkey (void)
+ {
+   return current_term->checkkey ();
+ }
++
++/* Return keyboard modifier status. */
++int
++keystatus (void)
++{
++  if (current_term->keystatus)
++    return current_term->keystatus ();
++  else 
++    return 0;
++}
+ #endif /* ! STAGE1_5 */
+ 
+ /* Display an ASCII character.  */
+@@ -1046,13 +1263,15 @@ grub_putchar (int c)
+ 		 the following grub_printf call will print newlines.  */
+ 	      count_lines = -1;
+ 
++	      grub_printf("\n");
+ 	      if (current_term->setcolorstate)
+ 		current_term->setcolorstate (COLOR_STATE_HIGHLIGHT);
+ 	      
+-	      grub_printf ("\n[Hit return to continue]");
++	      grub_printf ("[Hit return to continue]");
+ 
+ 	      if (current_term->setcolorstate)
+ 		current_term->setcolorstate (COLOR_STATE_NORMAL);
++	        
+ 	      
+ 	      do
+ 		{
+@@ -1090,7 +1309,7 @@ void
+ cls (void)
+ {
+   /* If the terminal is dumb, there is no way to clean the terminal.  */
+-  if (current_term->flags & TERM_DUMB)
++  if (current_term->flags & TERM_DUMB) 
+     grub_putchar ('\n');
+   else
+     current_term->cls ();
+@@ -1125,6 +1344,26 @@ substring (const char *s1, const char *s2)
+   return 1;
+ }
+ 
++int
++subcasestring (const char *s1, const char *s2)
++{
++  while (tolower(*s1) == tolower(*s2))
++    {
++      /* The strings match exactly. */
++      if (! *(s1++))
++	return 0;
++      s2 ++;
++    }
++
++  /* S1 is a substring of S2. */
++  if (*s1 == 0)
++    return -1;
++
++  /* S1 isn't a substring. */
++  return 1;
++}
++
++
+ #ifndef STAGE1_5
+ /* Terminate the string STR with NUL.  */
+ int
+@@ -1172,41 +1411,180 @@ grub_strlen (const char *str)
+ 
+   return len;
+ }
+-#endif /* ! STAGE1_5 */
+ 
++/* this function "borrowed" from dietlibc */
+ int
+-memcheck (int addr, int len)
++grub_strspn(const char *s, const char *accept)
+ {
+-#ifdef GRUB_UTIL
+-  auto int start_addr (void);
+-  auto int end_addr (void);
+-  
+-  auto int start_addr (void)
++  int l=0;
++  int a=1,i,al=grub_strlen(accept);
++
++  while((a)&&(*s))
++  {
++    for(a=i=0;(!a)&&(i<al);i++)
++      if (*s==accept[i]) a=1;
++    if (a) l++;
++    s++;
++  }
++  return l;
++}
++
++/* this function "borrowed" from dietlibc */
++int
++grub_strcspn(const char *s, const char *reject)
++{
++  int l=0;
++  int a=1,i,al=grub_strlen(reject);
++
++  while((a)&&(*s))
++  {
++    for(i=0;(a)&&(i<al);i++)
++      if (*s==reject[i]) a=0;
++    if (a) l++;
++    s++;
++  }
++  return l;
++}
++
++/* this function "borrowed" from dietlibc */
++char *
++grub_strtok_r(char *s, const char *delim, char **ptrptr) {
++  char *tmp=0;
++
++  if (s==0) s=*ptrptr;
++  s+=grub_strspn(s,delim);           /* overread leading delimiter */
++  if (*s) {
++    tmp=s;
++    s+=grub_strcspn(s,delim);
++    if (*s) *s++=0;   /* not the end ? => terminate it */
++  }
++  *ptrptr=s;
++  return tmp;
++}
++
++char *
++grub_strchr (const char *s, int c)
++{
++  while (*s)
+     {
+-      int ret;
++      if (*s == c)
++	return (char *) s;
++      s++;
++    }
++
++  return 0;
++}
++
++char *
++grub_strnchr (const char *s, int c)
++{
++  while (*s)
++    {
++      if (*s != c)
++	return (char *) s;
++      s++;
++    }
++
++  return 0;
++}
++
++char *
++grub_strrchr (const char *s, int c)
++{
++  char *p = 0;
++
++  while (*s)
++    {
++      if (*s == c)
++	p = (char *) s;
++      s++;
++    }
++
++  return p;
++}
++
++int
++grub_strnlen (const char *s, int n)
++{
++  int i;
++
++  if (n == 0)
++    return 0;
++
++  for (i = 0; s[i] != '\0' && i < n; i++)
++    ;
++  return i;
++}
++
++char *
++grub_strncpy(char *new, const char *s, int n)
++{
++  int i;
++
++  for (i = 0; s[i] != '\0' && i < n; i++)
++    new[i] = s[i];
++  return new;
++}
++
++int
++grub_strncasecmp(const char *s0, const char *s1, int n)
++{
++  int c0, c1;
++
++  if (s0 == s1 || n == 0)
++    return 0;
++
++  do {
++    c0 = *s0 & ~0x20;
++    c1 = *s1 & ~0x20;
++
++    if (--n == 0 || c0 == '\0')
++      break;
++
++    *s0++;
++    *s1++;
++  } while (c0 == c1);
++
++  return (c0 > c1 ? 1 : c0 < c1 ? -1 : 0);
++}
++
++#endif /* ! STAGE1_5 */
++
++#ifdef GRUB_UTIL
++static int memcheck_start_addr (void)
++{
++  int ret;
+ # if defined(HAVE_START_SYMBOL)
+-      asm volatile ("movl	$start, %0" : "=a" (ret));
++  asm volatile ("movl	$start, %0" : "=a" (ret));
+ # elif defined(HAVE_USCORE_START_SYMBOL)
+-      asm volatile ("movl	$_start, %0" : "=a" (ret));
++  asm volatile ("movl	$_start, %0" : "=a" (ret));
+ # endif
+-      return ret;
+-    }
++  return ret;
++}
+ 
+-  auto int end_addr (void)
+-    {
+-      int ret;
++static int memcheck_end_addr (void)
++{
++  int ret;
+ # if defined(HAVE_END_SYMBOL)
+-      asm volatile ("movl	$end, %0" : "=a" (ret));
++  asm volatile ("movl	$end, %0" : "=a" (ret));
+ # elif defined(HAVE_USCORE_END_SYMBOL)
+-      asm volatile ("movl	$_end, %0" : "=a" (ret));
++  asm volatile ("movl	$_end, %0" : "=a" (ret));
+ # endif
+-      return ret;
+-    }
++  return ret;
++}
++#endif /* GRUB_UTIL */
+ 
+-  if (start_addr () <= addr && end_addr () > addr + len)
++int
++memcheck (int addr, int len)
++{
++#ifdef GRUB_UTIL
++  if (memcheck_start_addr () <= addr && memcheck_end_addr () > addr + len)
+     return ! errnum;
+ #endif /* GRUB_UTIL */
+ 
++#ifdef PLATFORM_EFI
++  return 1;
++#else
+   if ((addr < RAW_ADDR (0x1000))
+       || (addr < RAW_ADDR (0x100000)
+ 	  && RAW_ADDR (mbi.mem_lower * 1024) < (addr + len))
+@@ -1215,12 +1593,23 @@ memcheck (int addr, int len)
+     errnum = ERR_WONT_FIT;
+ 
+   return ! errnum;
++#endif
++}
++
++void
++grub_memcpy(void *dest, const void *src, int len)
++{
++  int i;
++  register char *d = (char*)dest, *s = (char*)src;
++
++  for (i = 0; i < len; i++)
++    d[i] = s[i];
+ }
+ 
+ void *
+ grub_memmove (void *to, const void *from, int len)
+ {
+-   if (memcheck ((int) to, len))
++  if (memcheck ((unsigned long) to, len))
+      {
+        /* This assembly code is stolen from
+ 	  linux-2.2.2/include/asm-i386/string.h. This is not very fast
+@@ -1258,7 +1647,7 @@ grub_memset (void *start, int c, int len)
+ {
+   char *p = start;
+ 
+-  if (memcheck ((int) start, len))
++  if (memcheck ((unsigned long) start, len))
+     {
+       while (len -- > 0)
+ 	*p ++ = c;
+@@ -1274,6 +1663,26 @@ grub_strcpy (char *dest, const char *src)
+   grub_memmove (dest, src, grub_strlen (src) + 1);
+   return dest;
+ }
++
++char *
++grub_stpncpy (char *dest, const char *src, int n)
++{
++  char *res;
++
++  res = NULL;
++  while (n != 0) {
++    *dest = *src;
++    if (*src != 0)
++      src++;
++    else if (res == NULL)
++      res = dest;
++    dest++;
++    n--;
++  }
++  if (res == NULL)
++    res = dest;
++  return res;
++}
+ #endif /* ! STAGE1_5 */
+ 
+ #ifndef GRUB_UTIL
+diff --git a/stage2/cmdline.c b/stage2/cmdline.c
+index a6ee309..cb41eda 100644
+--- a/stage2/cmdline.c
++++ b/stage2/cmdline.c
+@@ -48,12 +48,17 @@ skip_to (int after_equal, char *cmdline)
+ 
+ /* Print a helpful message for the command-line interface.  */
+ void
+-print_cmdline_message (int forever)
++print_cmdline_message (int type)
+ {
+   printf (" [ Minimal BASH-like line editing is supported.  For the first word, TAB\n"
+ 	  "   lists possible command completions.  Anywhere else TAB lists the possible\n"
+-	  "   completions of a device/filename.%s ]\n",
+-	  (forever ? "" : "  ESC at any time exits."));
++	  "   completions of a device/filename.");
++  if (type == CMDLINE_NORMAL_MODE)
++    printf("  ESC at any time exits.");
++  if (type == CMDLINE_EDIT_MODE)
++    printf("  ESC at any time cancels.  ENTER \n"
++           "   at any time accepts your changes.");
++  printf("]\n");
+ }
+ 
+ /* Find the builtin whose command name is COMMAND and return the
+@@ -128,7 +133,7 @@ enter_cmdline (char *heap, int forever)
+   print_network_configuration ();
+   grub_putchar ('\n');
+ #endif
+-  print_cmdline_message (forever);
++  print_cmdline_message (forever ? CMDLINE_FOREVER_MODE : CMDLINE_NORMAL_MODE);
+   
+   while (1)
+     {
+@@ -215,7 +220,7 @@ run_script (char *script, char *heap)
+       while (*cur_entry++)
+ 	;
+ 
+-      grub_memmove (heap, old_entry, (int) cur_entry - (int) old_entry);
++      grub_memmove (heap, old_entry, cur_entry - old_entry);
+       if (! *heap)
+ 	{
+ 	  /* If there is no more command in SCRIPT...  */
+@@ -232,12 +237,12 @@ run_script (char *script, char *heap)
+       builtin = find_command (heap);
+       if (! builtin)
+ 	{
+-	  grub_printf ("%s\n", old_entry);
++	  grub_verbose_printf ("%s\n", old_entry);
+ 	  continue;
+ 	}
+ 
+       if (! (builtin->flags & BUILTIN_NO_ECHO))
+-	grub_printf ("%s\n", old_entry);
++	grub_verbose_printf ("%s\n", old_entry);
+ 
+       /* If BUILTIN cannot be run in the command-line, skip it.  */
+       if (! (builtin->flags & BUILTIN_CMDLINE))
+diff --git a/stage2/common.c b/stage2/common.c
+index 09f9e31..e96bec2 100644
+--- a/stage2/common.c
++++ b/stage2/common.c
+@@ -32,7 +32,7 @@
+ struct multiboot_info mbi;
+ unsigned long saved_drive;
+ unsigned long saved_partition;
+-unsigned long cdrom_drive;
++unsigned long cdrom_drive = 0x100;
+ #ifndef STAGE1_5
+ unsigned long saved_mem_upper;
+ 
+@@ -114,7 +114,7 @@ mmap_avail_at (unsigned long bottom)
+     {
+       for (cont = 0, addr = mbi.mmap_addr;
+ 	   addr < mbi.mmap_addr + mbi.mmap_length;
+-	   addr += *((unsigned long *) addr) + 4)
++	   addr += *((unsigned int *) addr) + 4)
+ 	{
+ 	  struct AddrRangeDesc *desc = (struct AddrRangeDesc *) addr;
+ 	  
+@@ -183,11 +183,11 @@ init_bios_info (void)
+       cont = get_mmap_entry ((void *) addr, cont);
+ 
+       /* If the returned buffer's length is zero, quit. */
+-      if (! *((unsigned long *) addr))
++      if (! *((unsigned int *) addr))
+ 	break;
+ 
+-      mbi.mmap_length += *((unsigned long *) addr) + 4;
+-      addr += *((unsigned long *) addr) + 4;
++      mbi.mmap_length += *((unsigned int *) addr) + 4;
++      addr += *((unsigned int *) addr) + 4;
+     }
+   while (cont);
+ 
+@@ -207,7 +207,7 @@ init_bios_info (void)
+       /* Find the maximum available address. Ignore any memory holes.  */
+       for (max_addr = 0, addr = mbi.mmap_addr;
+ 	   addr < mbi.mmap_addr + mbi.mmap_length;
+-	   addr += *((unsigned long *) addr) + 4)
++	   addr += *((unsigned int *) addr) + 4)
+ 	{
+ 	  struct AddrRangeDesc *desc = (struct AddrRangeDesc *) addr;
+ 	  
+@@ -322,6 +322,9 @@ init_bios_info (void)
+ 
+   /* Set cdrom drive.  */
+   {
++#ifdef PLATFORM_EFI
++    cdrom_drive = 0x100;
++#else
+     struct geometry geom;
+     
+     /* Get the geometry.  */
+@@ -330,6 +333,7 @@ init_bios_info (void)
+       cdrom_drive = GRUB_INVALID_DRIVE;
+     else
+       cdrom_drive = boot_drive;
++#endif
+   }
+   
+   /* Start main routine here.  */
+diff --git a/stage2/disk_io.c b/stage2/disk_io.c
+index b9bc526..e07ca77 100644
+--- a/stage2/disk_io.c
++++ b/stage2/disk_io.c
+@@ -21,12 +21,17 @@
+ 
+ #include <shared.h>
+ #include <filesys.h>
++#include <gpt.h>
+ 
+ #ifdef SUPPORT_NETBOOT
+ # define GRUB	1
+ # include <etherboot.h>
+ #endif
+ 
++#ifdef PLATFORM_EFI
++#include "efistubs.h"
++#endif
++
+ #ifdef GRUB_UTIL
+ # include <device.h>
+ #endif
+@@ -48,6 +53,9 @@ int fsmax;
+ struct fsys_entry fsys_table[NUM_FSYS + 1] =
+ {
+   /* TFTP should come first because others don't handle net device.  */
++# ifdef PLATFORM_EFI
++  {"efitftp", efi_tftp_mount, efi_tftp_read, efi_tftp_dir, efi_tftp_close, 0},
++# endif
+ # ifdef FSYS_TFTP
+   {"tftp", tftp_mount, tftp_read, tftp_dir, tftp_close, 0},
+ # endif
+@@ -72,6 +80,9 @@ struct fsys_entry fsys_table[NUM_FSYS + 1] =
+ # ifdef FSYS_XFS
+   {"xfs", xfs_mount, xfs_read, xfs_dir, 0, 0},
+ # endif
++# ifdef FSYS_BTRFS
++  {"btrfs", btrfs_mount, btrfs_read, btrfs_dir, 0, btrfs_embed},
++# endif
+ # ifdef FSYS_UFS2
+   {"ufs2", ufs2_mount, ufs2_read, ufs2_dir, 0, ufs2_embed},
+ # endif
+@@ -127,8 +138,8 @@ struct geometry buf_geom;
+ int filepos;
+ int filemax;
+ 
+-static inline unsigned long
+-log2 (unsigned long word)
++static inline unsigned int
++grub_log2 (unsigned int word)
+ {
+   asm volatile ("bsfl %1,%0"
+ 		: "=r" (word)
+@@ -140,7 +151,7 @@ int
+ rawread (int drive, int sector, int byte_offset, int byte_len, char *buf)
+ {
+   int slen, sectors_per_vtrack;
+-  int sector_size_bits = log2 (buf_geom.sector_size);
++  int sector_size_bits = grub_log2 (buf_geom.sector_size);
+ 
+   if (byte_len <= 0)
+     return 1;
+@@ -163,7 +174,7 @@ rawread (int drive, int sector, int byte_offset, int byte_len, char *buf)
+ 	    }
+ 	  buf_drive = drive;
+ 	  buf_track = -1;
+-	  sector_size_bits = log2 (buf_geom.sector_size);
++	  sector_size_bits = grub_log2 (buf_geom.sector_size);
+ 	}
+ 
+       /* Make sure that SECTOR is valid.  */
+@@ -297,7 +308,7 @@ devread (int sector, int byte_offset, int byte_len, char *buf)
+    *  Check partition boundaries
+    */
+   if (sector < 0
+-      || ((sector + ((byte_offset + byte_len - 1) >> SECTOR_BITS))
++      || ((sector + ((byte_offset + byte_len - 1) >> get_sector_bits(current_drive)))
+ 	  >= part_length))
+     {
+       errnum = ERR_OUTSIDE_PART;
+@@ -307,8 +318,8 @@ devread (int sector, int byte_offset, int byte_len, char *buf)
+   /*
+    *  Get the read to the beginning of a partition.
+    */
+-  sector += byte_offset >> SECTOR_BITS;
+-  byte_offset &= SECTOR_SIZE - 1;
++  sector += byte_offset >> get_sector_bits(current_drive);
++  byte_offset &= get_sector_size(current_drive) - 1;
+ 
+ #if !defined(STAGE1_5)
+   if (disk_read_hook && debug)
+@@ -347,7 +358,7 @@ rawwrite (int drive, int sector, char *buf)
+ 	sector = 1;
+     }
+   
+-  memmove ((char *) SCRATCHADDR, buf, SECTOR_SIZE);
++  memmove ((char *) SCRATCHADDR, buf, get_sector_size(drive));
+   if (biosdisk (BIOSDISK_WRITE, drive, &buf_geom,
+ 		sector, 1, SCRATCHSEG))
+     {
+@@ -373,23 +384,23 @@ devwrite (int sector, int sector_count, char *buf)
+ 	 embed a Stage 1.5 into a partition instead of a MBR, use system
+ 	 calls directly instead of biosdisk, because of the bug in
+ 	 Linux. *sigh*  */
+-      return write_to_partition (device_map, current_drive, current_partition,
+-				 sector, sector_count, buf);
++      int ret;
++      ret = write_to_partition (device_map, current_drive, current_partition,
++				sector, sector_count, buf);
++      if (ret != -1)
++	return ret;
+     }
+-  else
+ #endif /* GRUB_UTIL && __linux__ */
+-    {
+-      int i;
+-      
+-      for (i = 0; i < sector_count; i++)
+-	{
+-	  if (! rawwrite (current_drive, part_start + sector + i, 
+-			  buf + (i << SECTOR_BITS)))
+-	      return 0;
++    int i;
+ 
+-	}
+-      return 1;
+-    }
++    for (i = 0; i < sector_count; i++)
++      {
++	if (! rawwrite (current_drive, part_start + sector + i,
++			buf + (i << get_sector_bits(current_drive))))
++	    return 0;
++
++      }
++    return 1;
+ }
+ 
+ static int
+@@ -458,7 +469,7 @@ make_saved_active (void)
+ 	}
+ 
+       /* Read the MBR in the scratch space.  */
+-      if (! rawread (saved_drive, 0, 0, SECTOR_SIZE, mbr))
++      if (! rawread (saved_drive, 0, 0, get_sector_size(saved_drive), mbr))
+ 	return 0;
+ 
+       /* If the partition is an extended partition, setting the active
+@@ -502,8 +513,8 @@ int
+ set_partition_hidden_flag (int hidden)
+ {
+   unsigned long part = 0xFFFFFF;
+-  unsigned long start, len, offset, ext_offset;
+-  int entry, type;
++  unsigned long start, len, offset, ext_offset, gpt_offset;
++  int entry, type, gpt_count, gpt_size;
+   char mbr[512];
+   
+   /* The drive must be a hard disk.  */
+@@ -524,8 +535,15 @@ set_partition_hidden_flag (int hidden)
+   /* Look for the partition.  */
+   while (next_partition (current_drive, 0xFFFFFF, &part, &type,           
+ 			 &start, &len, &offset, &entry,
+-			 &ext_offset, mbr))
+-    {                                                                       
++			 &ext_offset, &gpt_offset, &gpt_count, &gpt_size, mbr))
++    {
++	  /* The partition may not be a GPT partition.  */
++	  if (gpt_offset != 0)
++	    {
++		errnum = ERR_BAD_ARGUMENT;
++		return 1;
++	    }
++
+       if (part == current_partition)
+ 	{
+ 	  /* Found.  */
+@@ -577,11 +595,14 @@ next_partition (unsigned long drive, unsigned long dest,
+ 		unsigned long *partition, int *type,
+ 		unsigned long *start, unsigned long *len,
+ 		unsigned long *offset, int *entry,
+-		unsigned long *ext_offset, char *buf)
++               unsigned long *ext_offset,
++               unsigned long *gpt_offset, int *gpt_count,
++               int *gpt_size, char *buf)
+ {
+   /* Forward declarations.  */
+   auto int next_bsd_partition (void);
+   auto int next_pc_slice (void);
++  auto int next_gpt_slice(void);
+ 
+   /* Get next BSD partition in current PC slice.  */
+   int next_bsd_partition (void)
+@@ -601,7 +622,7 @@ next_partition (unsigned long drive, unsigned long dest,
+ 
+ 	  /* Read the BSD label.  */
+ 	  if (! rawread (drive, *start + BSD_LABEL_SECTOR,
+-			 0, SECTOR_SIZE, buf))
++			 0, get_sector_size(drive), buf))
+ 	    return 0;
+ 
+ 	  /* Check if it is valid.  */
+@@ -656,7 +677,7 @@ next_partition (unsigned long drive, unsigned long dest,
+ 	}
+ 
+       /* Read the MBR or the boot sector of the extended partition.  */
+-      if (! rawread (drive, *offset, 0, SECTOR_SIZE, buf))
++      if (! rawread (drive, *offset, 0, get_sector_size(drive), buf))
+ 	return 0;
+ 
+       /* Check if it is valid.  */
+@@ -666,6 +687,40 @@ next_partition (unsigned long drive, unsigned long dest,
+ 	  return 0;
+ 	}
+ 
++      /* If this is a GPT partition table, read it as such.  */
++      if (*entry == -1 && *offset == 0 && PC_SLICE_TYPE (buf, 0) == PC_SLICE_TYPE_GPT)
++       {
++         struct grub_gpt_header *hdr = (struct grub_gpt_header *) buf;
++
++         /* Read in the GPT Partition table header.  */
++         if (! rawread (drive, 1, 0, get_sector_size(drive), buf))
++           return 0;
++
++         if (hdr->magic == GPT_HEADER_MAGIC && hdr->version == 0x10000)
++           {
++             /* Let gpt_offset point to the first entry in the GPT
++                partition table.  This can also be used by callers of
++                next_partition to determine if a entry comes from a
++                GPT partition table or not.  */
++             *gpt_offset = hdr->partitions;
++             *gpt_count = hdr->maxpart;
++             *gpt_size =  hdr->partentry_size;
++             
++             return next_gpt_slice();
++           }
++         else
++           {
++             /* This is not a valid header for a GPT partition table.
++                Re-read the MBR or the boot sector of the extended
++                partition.  */
++             if (! rawread (drive, *offset, 0, get_sector_size(drive), buf))
++               return 0;
++           }
++       }
++
++      /* Not a GPT partition.  */
++      *gpt_offset = 0;
++
+       /* Increase the entry number.  */
+       (*entry)++;
+ 
+@@ -710,6 +765,43 @@ next_partition (unsigned long drive, unsigned long dest,
+       return 1;
+     }
+ 
++  /* Get the next GPT slice.  */
++  int next_gpt_slice (void)
++    {
++      struct grub_gpt_partentry *gptentry = (struct grub_gpt_partentry *) buf;
++      /* Make GPT partitions show up as PC slices.  */
++      int pc_slice_no = (*partition & 0xFF0000) >> 16;
++
++      /* If this is the first time...  */
++      if (pc_slice_no == 0xFF)
++       {
++         pc_slice_no = -1;
++         *entry = -1;
++       }
++
++      do {
++       (*entry)++;
++
++       if (*entry >= *gpt_count)
++         {
++           errnum = ERR_NO_PART;
++           return 0;
++         }
++       /* Read in the GPT Partition table entry.  */
++       if (! rawread (drive, (*gpt_offset) + GPT_ENTRY_SECTOR (drive, *gpt_size, *entry), GPT_ENTRY_INDEX (drive, *gpt_size, *entry), *gpt_size, buf))
++         return 0;
++      } while (! (gptentry->type1 && gptentry->type2));
++
++      pc_slice_no++;
++      *start = gptentry->start;
++      *len = gptentry->end - gptentry->start + 1;
++      *type = PC_SLICE_TYPE_EXT2FS;
++      *entry = pc_slice_no;
++      *partition = (*entry << 16) | 0xFFFF;
++
++      return 1;
++    }
++
+   /* Start the body of this function.  */
+   
+ #ifndef STAGE1_5
+@@ -717,6 +809,9 @@ next_partition (unsigned long drive, unsigned long dest,
+     return 0;
+ #endif
+ 
++  if (*partition != 0xFFFFFF && *gpt_offset != 0)
++    return next_gpt_slice ();
++
+   /* If previous partition is a BSD partition or a PC slice which
+      contains BSD partitions...  */
+   if ((*partition != 0xFFFFFF && IS_PC_SLICE_TYPE_BSD (*type & 0xff))
+@@ -755,8 +850,11 @@ real_open_partition (int flags)
+   unsigned long dest_partition = current_partition;
+   unsigned long part_offset;
+   unsigned long ext_offset;
++  unsigned long gpt_offset;
++  int gpt_count;
++  int gpt_size;
+   int entry;
+-  char buf[SECTOR_SIZE];
++  char buf[4096];
+   int bsd_part, pc_slice;
+ 
+   /* For simplicity.  */
+@@ -766,7 +864,8 @@ real_open_partition (int flags)
+       int ret = next_partition (current_drive, dest_partition,
+ 				&current_partition, &current_slice,
+ 				&part_start, &part_length,
+-				&part_offset, &entry, &ext_offset, buf);
++                               &part_offset, &entry, &ext_offset,
++                               &gpt_offset, &gpt_count, &gpt_size, buf);
+       bsd_part = (current_partition >> 8) & 0xFF;
+       pc_slice = current_partition >> 16;
+       return ret;
+@@ -926,6 +1025,17 @@ open_partition (void)
+   return real_open_partition (0);
+ }
+ 
++#if !defined(PLATFORM_EFI) && !defined(GRUB_UTIL)
++int get_sector_size (int drive)
++{
++  return SECTOR_SIZE;
++}
++int get_sector_bits (int drive)
++{
++  return SECTOR_BITS;
++}
++#endif /* !defined(PLATFORM_EFI) && !defined(GRUB_UTIL) */
++
+ 
+ #ifndef STAGE1_5
+ /* XX used for device completion in 'set_device' and 'print_completions' */
+@@ -978,7 +1088,7 @@ set_device (char *device)
+       if (*device != ',' && *device != ')')
+ 	{
+ 	  char ch = *device;
+-#ifdef SUPPORT_NETBOOT
++#if defined(SUPPORT_NETBOOT) || defined(PLATFORM_EFI)
+ 	  if (*device == 'f' || *device == 'h'
+ 	      || (*device == 'n' && network_ready)
+ 	      || (*device == 'c' && cdrom_drive != GRUB_INVALID_DRIVE))
+@@ -1002,14 +1112,14 @@ set_device (char *device)
+ 
+ 	  if ((*device == 'f'
+ 	       || *device == 'h'
+-#ifdef SUPPORT_NETBOOT
++#if defined(SUPPORT_NETBOOT) || defined(PLATFORM_EFI)
+ 	       || (*device == 'n' && network_ready)
+ #endif
+ 	       || (*device == 'c' && cdrom_drive != GRUB_INVALID_DRIVE))
+ 	      && (device += 2, (*(device - 1) != 'd')))
+ 	    errnum = ERR_NUMBER_PARSING;
+-	  
+-#ifdef SUPPORT_NETBOOT
++
++#if defined(SUPPORT_NETBOOT) || defined(PLATFORM_EFI)
+ 	  if (ch == 'n' && network_ready)
+ 	    current_drive = NETWORK_DRIVE;
+ 	  else
+@@ -1131,7 +1241,7 @@ set_bootdev (int hdbias)
+   if ((saved_drive & 0x80) && cur_part_addr)
+     {
+       if (rawread (saved_drive, cur_part_offset,
+-		   0, SECTOR_SIZE, (char *) SCRATCHADDR))
++		   0, get_sector_size(saved_drive), (char *) SCRATCHADDR))
+ 	{
+ 	  char *dst, *src;
+       
+@@ -1376,7 +1486,7 @@ print_completions (int is_filename, int is_completion)
+ 
+ 	      if (!ptr
+ 		  || *(ptr-1) != 'd'
+-#ifdef SUPPORT_NETBOOT
++#if defined(SUPPORT_NETBOOT) || defined(PLATFORM_EFI)
+ 		  || *(ptr-2) != 'n'
+ #endif /* SUPPORT_NETBOOT */
+ 		  || *(ptr-2) != 'c')
+@@ -1407,7 +1517,7 @@ print_completions (int is_filename, int is_completion)
+ 		      || (*(ptr-1) == 'd' && *(ptr-2) == 'c')))
+ 		print_a_completion ("cd");
+ 
+-# ifdef SUPPORT_NETBOOT
++# if defined(SUPPORT_NETBOOT) || defined(PLATFORM_EFI)
+ 	      if (network_ready
+ 		  && (disk_choice || NETWORK_DRIVE == current_drive)
+ 		  && (!ptr
+@@ -1596,7 +1706,7 @@ grub_open (char *filename)
+ 
+ 	  BLK_BLKLENGTH (list_addr) = tmp;
+ 
+-	  filemax += (tmp * SECTOR_SIZE);
++	  filemax += (tmp * get_sector_size(current_drive));
+ 	  list_addr += BLK_BLKLIST_INC_VAL;
+ 
+ 	  if (*ptr != ',')
+@@ -1673,6 +1783,7 @@ grub_read (char *buf, int len)
+   if (block_file)
+     {
+       int size, off, ret = 0;
++      int sector_size = get_sector_size(current_drive);
+ 
+       while (len && !errnum)
+ 	{
+@@ -1687,10 +1798,10 @@ grub_read (char *buf, int len)
+ 	  /* run BLK_CUR_FILEPOS up to filepos */
+ 	  while (filepos > BLK_CUR_FILEPOS)
+ 	    {
+-	      if ((filepos - (BLK_CUR_FILEPOS & ~(SECTOR_SIZE - 1)))
+-		  >= SECTOR_SIZE)
++	      if ((filepos - (BLK_CUR_FILEPOS & ~(sector_size - 1)))
++		  >= sector_size)
+ 		{
+-		  BLK_CUR_FILEPOS += SECTOR_SIZE;
++		  BLK_CUR_FILEPOS += sector_size;
+ 		  BLK_CUR_BLKNUM++;
+ 
+ 		  if (BLK_CUR_BLKNUM >= BLK_BLKLENGTH (BLK_CUR_BLKLIST))
+@@ -1703,9 +1814,9 @@ grub_read (char *buf, int len)
+ 		BLK_CUR_FILEPOS = filepos;
+ 	    }
+ 
+-	  off = filepos & (SECTOR_SIZE - 1);
++	  off = filepos & (sector_size - 1);
+ 	  size = ((BLK_BLKLENGTH (BLK_CUR_BLKLIST) - BLK_CUR_BLKNUM)
+-		  * SECTOR_SIZE) - off;
++		  * sector_size) - off;
+ 	  if (size > len)
+ 	    size = len;
+ 
+diff --git a/stage2/efistubs.c b/stage2/efistubs.c
+new file mode 100644
+index 0000000..29b086a
+--- /dev/null
++++ b/stage2/efistubs.c
+@@ -0,0 +1,7 @@
++
++#include "shared.h"
++#include "efistubs.h"
++
++#if defined(PLATFORM_EFI)
++int network_ready = 0;
++#endif /* defined(PLATFORM_EFI) */
+diff --git a/stage2/efistubs.h b/stage2/efistubs.h
+new file mode 100644
+index 0000000..97e407d
+--- /dev/null
++++ b/stage2/efistubs.h
+@@ -0,0 +1,8 @@
++#ifndef EFISTUBS_H
++#define EFISTUBS_H 1
++
++#if defined(PLATFORM_EFI)
++extern int network_ready;
++#endif /* defined(PLATFORM_EFI) */
++
++#endif /* EFISTUBS_H */
+diff --git a/stage2/fat.h b/stage2/fat.h
+index 7fed6ba..f154eed 100644
+--- a/stage2/fat.h
++++ b/stage2/fat.h
+@@ -92,7 +92,7 @@ struct fat_bpb {
+ #define FAT_DIRENTRY_FIRST_CLUSTER(entry) \
+   ((*((unsigned short *) (entry+26)))+(*((unsigned short *) (entry+20)) << 16))
+ #define FAT_DIRENTRY_FILELENGTH(entry) \
+-  (*((unsigned long *) (entry+28)))
++  (*((unsigned int *) (entry+28)))
+ 
+ #define FAT_LONGDIR_ID(entry) \
+   (*((unsigned char *) (entry)))
+diff --git a/stage2/filesys.h b/stage2/filesys.h
+index bbad8b9..9d159a8 100644
+--- a/stage2/filesys.h
++++ b/stage2/filesys.h
+@@ -105,6 +105,16 @@ int xfs_dir (char *dirname);
+ #define FSYS_XFS_NUM 0
+ #endif
+ 
++#ifdef FSYS_BTRFS
++#define FSYS_BTRFS_NUM 1
++int btrfs_mount (void);
++int btrfs_read (char *buf, int len);
++int btrfs_dir (char *dirname);
++int btrfs_embed (int *start_sector, int needed_sectors);
++#else
++#define FSYS_BTRFS_NUM 0
++#endif
++
+ #ifdef FSYS_TFTP
+ #define FSYS_TFTP_NUM 1
+ int tftp_mount (void);
+@@ -115,6 +125,17 @@ void tftp_close (void);
+ #define FSYS_TFTP_NUM 0
+ #endif
+ 
++#ifdef PLATFORM_EFI
++#define FSYS_EFI_TFTP_NUM 1
++int efi_tftp_mount (void);
++int efi_tftp_read (char *buf, int len);
++int efi_tftp_dir (char *dirname);
++void efi_tftp_close (void);
++#else
++#define FSYS_EFI_TFTP_NUM 0
++#endif
++
++
+ #ifdef FSYS_ISO9660
+ #define FSYS_ISO9660_NUM 1
+ int iso9660_mount (void);
+@@ -127,8 +148,9 @@ int iso9660_dir (char *dirname);
+ #ifndef NUM_FSYS
+ #define NUM_FSYS	\
+   (FSYS_FFS_NUM + FSYS_FAT_NUM + FSYS_EXT2FS_NUM + FSYS_MINIX_NUM	\
+-   + FSYS_REISERFS_NUM + FSYS_VSTAFS_NUM + FSYS_JFS_NUM + FSYS_XFS_NUM	\
+-   + FSYS_TFTP_NUM + FSYS_ISO9660_NUM + FSYS_UFS2_NUM)
++   + FSYS_REISERFS_NUM + FSYS_BTRFS_NUM + FSYS_VSTAFS_NUM + FSYS_JFS_NUM \
++   + FSYS_XFS_NUM + FSYS_TFTP_NUM + FSYS_EFI_TFTP_NUM + FSYS_ISO9660_NUM \
++   + FSYS_UFS2_NUM)
+ #endif
+ 
+ /* defines for the block filesystem info area */
+@@ -137,8 +159,8 @@ int iso9660_dir (char *dirname);
+ #define BLK_CUR_BLKLIST      (*((int*)(FSYS_BUF+4)))
+ #define BLK_CUR_BLKNUM       (*((int*)(FSYS_BUF+8)))
+ #define BLK_MAX_ADDR         (FSYS_BUF+0x7FF9)
+-#define BLK_BLKSTART(l)      (*((int*)l))
+-#define BLK_BLKLENGTH(l)     (*((int*)(l+4)))
++#define BLK_BLKSTART(l)      (*((int*)(unsigned long)l))
++#define BLK_BLKLENGTH(l)     (*((int*)(unsigned long)(l+4)))
+ #define BLK_BLKLIST_START    (FSYS_BUF+12)
+ #define BLK_BLKLIST_INC_VAL  8
+ #endif /* NO_BLOCK_FILES */
+diff --git a/stage2/fsys_btrfs.c b/stage2/fsys_btrfs.c
+new file mode 100644
+index 0000000..f47f317
+--- /dev/null
++++ b/stage2/fsys_btrfs.c
+@@ -0,0 +1,1815 @@
++/* fsys_btrfs.c - an implementation for the Btrfs filesystem
++ *
++ * Copyright 2009 Red Hat, Inc.  All rights reserved.
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
++ */
++
++#ifdef FSYS_BTRFS
++
++#include "shared.h"
++#include "filesys.h"
++#include "btrfs.h"
++
++#define BTRFS_VERBOSE 0
++
++/* Cache layouts */
++
++#define LOOKUP_CACHE_BUF_SIZE   (4096)
++#define LOOKUP_CACHE_SIZE       (LOOKUP_CACHE_BUF_SIZE * LAST_LOOKUP_POOL)
++#define BTRFS_FS_INFO							\
++	((struct btrfs_fs_info *)((unsigned long)FSYS_BUF +		\
++				  LOOKUP_CACHE_SIZE))
++#define BTRFS_CACHE_SIZE         (sizeof(struct btrfs_fs_info) +	\
++				  LOOKUP_CACHE_SIZE)
++#define BTRFS_TREE_ROOT          (&BTRFS_FS_INFO->tree_root)
++#define BTRFS_CHUNK_ROOT         (&BTRFS_FS_INFO->chunk_root)
++#define BTRFS_FS_ROOT            (&BTRFS_FS_INFO->fs_root)
++#define BTRFS_SUPER              (&BTRFS_FS_INFO->sb_copy)
++#define BTRFS_DEVICES            (&BTRFS_FS_INFO->devices[0])
++#define BTRFS_FILE_INFO          (&BTRFS_FS_INFO->file_info)
++#define BTRFS_FILE_INFO_KEY      (&BTRFS_FILE_INFO->key)
++
++#define BTRFS_VOLATILE_DEV_CACHE				        \
++	(&BTRFS_FS_INFO->devices[BTRFS_NUM_CACHED_DEVICES])
++
++#define LOOKUP_CACHE_BUF(id) ((char *)((unsigned long)FSYS_BUF +	\
++				       id * LOOKUP_CACHE_BUF_SIZE))
++
++#define noop   do {; } while (0)
++
++#if BTRFS_VERBOSE
++#define btrfs_msg(format, ...) printf(format , ## __VA_ARGS__)
++#else
++#define btrfs_msg(format, args...) noop
++#endif
++
++/* compile-time check to make sure we don't overlap
++   filesystem buffer */
++static inline void check_btrfs_cache_size(void)
++{
++	cassert(BTRFS_CACHE_SIZE <= FSYS_BUFLEN);
++}
++
++static inline u64 btrfs_sb_offset(int mirror)
++{
++	u64 start = 16 * 1024;
++	if (mirror)
++		return start << (BTRFS_SUPER_MIRROR_SHIFT * mirror);
++	return BTRFS_SUPER_INFO_OFFSET;
++}
++
++static inline char *grab_lookup_cache(lookup_pool_id lpid)
++{
++	char *buf = LOOKUP_CACHE_BUF(lpid);
++	memset(buf, 0, LOOKUP_CACHE_BUF_SIZE);
++	return buf;
++}
++
++static inline struct btrfs_path *btrfs_grab_path(lookup_pool_id lpid)
++{
++	return &BTRFS_FS_INFO->paths[lpid];
++}
++
++static inline void btrfs_set_path_key(struct btrfs_path *path,
++				      struct btrfs_key *key)
++{
++	btrfs_item_key_to_cpu(&path->nodes[0],
++			      key,
++			      path->slots[0]);
++}
++
++static inline void btrfs_update_file_info(struct btrfs_path *path)
++{
++	btrfs_set_path_key(path, BTRFS_FILE_INFO_KEY);
++}
++
++static inline void btrfs_set_root_dir_key(struct btrfs_key *key)
++{
++	key->objectid = BTRFS_FIRST_FREE_OBJECTID;
++	btrfs_set_key_type(key, BTRFS_INODE_ITEM_KEY);
++	key->offset = 0;
++}
++
++static inline void copy_extent_buffer(struct extent_buffer *dst,
++				      struct extent_buffer *src)
++{
++	char *data = dst->data;
++	memcpy(dst, src, sizeof(*dst));
++	memcpy(data, src->data, 4096);
++	dst->data = data;
++}
++
++static inline void move_extent_buffer(struct extent_buffer *dst,
++				      struct extent_buffer *src)
++{
++	memcpy(dst, src, sizeof(*dst));
++}
++
++static inline void init_btrfs_root (struct btrfs_root *root)
++{
++	root->node.data = root->data;
++}
++
++static inline void init_btrfs_path(lookup_pool_id lpid)
++{
++	struct btrfs_path *path;
++	path = btrfs_grab_path(lpid);
++	path->lpid = lpid;
++}
++
++static inline void init_btrfs_info(void)
++{
++	int i;
++
++	memset(BTRFS_FS_INFO, 0, sizeof(struct btrfs_fs_info));
++	for(i = 0; i < LAST_LOOKUP_POOL; i++)
++		init_btrfs_path(i);
++	init_btrfs_root(BTRFS_TREE_ROOT);
++	init_btrfs_root(BTRFS_CHUNK_ROOT);
++	init_btrfs_root(BTRFS_FS_ROOT);
++}
++
++static void setup_root(struct btrfs_root *root,
++		       u32 nodesize,
++		       u32 leafsize,
++		       u32 sectorsize,
++		       u32 stripesize,
++		       u64 objectid)
++{
++	root->nodesize = nodesize;
++	root->leafsize = leafsize;
++	root->sectorsize = sectorsize;
++	root->stripesize = stripesize;
++	root->objectid = objectid;
++}
++
++/*
++ * Pick up the latest root of a
++ * tree with specified @objectid
++ */
++static int btrfs_find_last_root(struct btrfs_root *tree_root,
++				u64 objectid,
++				struct btrfs_root_item *item,
++				lookup_pool_id lpid)
++{
++	int ret;
++	int slot;
++	struct btrfs_key search_key;
++	struct btrfs_key found_key;
++	struct btrfs_path *path;
++
++	search_key.objectid = objectid;
++	search_key.type = BTRFS_ROOT_ITEM_KEY;
++	search_key.offset = (u64)-1;
++	path = btrfs_grab_path(lpid);
++
++	ret = aux_tree_lookup(tree_root, &search_key, path);
++	if (ret < 0)
++		return 1;
++	slot = path->slots[0];
++	WARN_ON(slot == 0);
++	slot -= 1;
++	btrfs_item_key_to_cpu(&path->nodes[0], &found_key, slot);
++	if (found_key.objectid != objectid)
++		return 1;
++
++	read_extent_buffer(&path->nodes[0], item,
++			   btrfs_item_ptr_offset(&path->nodes[0], slot),
++			   sizeof(*item));
++	return 0;
++}
++
++static int find_setup_root(struct btrfs_root *tree_root,
++			   u32 nodesize,
++			   u32 leafsize,
++			   u32 sectorsize,
++			   u32 stripesize,
++			   u64 objectid,
++			   struct btrfs_root *dest_root,
++			   u64 bytenr,
++			   u32 blocksize,
++			   u64 generation,
++			   lookup_pool_id lpid)
++{
++	int ret;
++	struct extent_buffer eb;
++
++	setup_root(dest_root,
++		   nodesize,
++		   leafsize,
++		   sectorsize,
++		   stripesize,
++		   objectid);
++	if (tree_root) {
++		/*
++		 * pick up the latest version
++		 * of the root we want to set up
++		 */
++		ret = btrfs_find_last_root(tree_root, objectid,
++					   &dest_root->root_item,
++					   lpid);
++		if (ret)
++			return ret;
++		bytenr = btrfs_root_bytenr(&dest_root->root_item);
++		blocksize = btrfs_level_size(dest_root,
++				       btrfs_root_level(&dest_root->root_item));
++		generation = btrfs_root_generation(&dest_root->root_item);
++	}
++	ret = read_tree_block(dest_root,
++			      &eb,
++			      bytenr,
++			      blocksize,
++			      generation,
++			      lpid);
++	if (!ret)
++		return 1;
++	copy_extent_buffer(&dest_root->node, &eb);
++	return 0;
++}
++
++static inline int btrfs_strncmp(const char *cs, const char *ct, int count)
++{
++	signed char __res = 0;
++
++	while (count) {
++		if ((__res = *cs - *ct++) != 0 || !*cs++)
++			break;
++		count--;
++	}
++	return __res;
++}
++
++/*
++ * the same as devread, but accepts
++ * device number, start and length.
++ */
++static int btrfs_devread(unsigned long drive, unsigned long part,
++			 unsigned long dev_len, int sector,
++			 int byte_offset, int byte_len, char *buf)
++{
++	if (sector < 0
++	    || ((sector + ((byte_offset + byte_len - 1) >> SECTOR_BITS))
++		>= dev_len)) {
++		errnum = ERR_OUTSIDE_PART;
++		return 0;
++	}
++	sector += byte_offset >> SECTOR_BITS;
++	byte_offset &= SECTOR_SIZE - 1;
++#if !defined(STAGE1_5)
++	if (disk_read_hook && debug)
++		printf ("<%d, %d, %d>", sector, byte_offset, byte_len);
++#endif /* !STAGE1_5 */
++	return rawread(drive, part + sector, byte_offset,
++		       byte_len, buf);
++}
++
++static int btrfs_check_super(void)
++{
++	struct btrfs_super_block *sb = BTRFS_SUPER;
++
++	if (sb->nodesize != BTRFS_DEFAULT_NODE_SIZE) {
++		btrfs_msg("Btrfs node size (%d) != %d unsupported\n",
++			  sb->nodesize, BTRFS_DEFAULT_NODE_SIZE);
++		goto error;
++	}
++	if (sb->leafsize != BTRFS_DEFAULT_LEAF_SIZE) {
++ 	        btrfs_msg("Btrfs leaf size (%d) != %d unsupported\n",
++			  sb->leafsize, BTRFS_DEFAULT_LEAF_SIZE);
++		goto error;
++	}
++	return 0;
++ error:
++	return 1;
++}
++
++/* lift the super block */
++static int btrfs_uptodate_super_copy(struct btrfs_fs_info *fs)
++{
++	errnum = ERR_NONE;
++	btrfs_devread(BTRFS_FS_INFO->sb_dev.drive,
++		      BTRFS_FS_INFO->sb_dev.part,
++		      BTRFS_FS_INFO->sb_dev.length,
++		      btrfs_sb_offset(BTRFS_FS_INFO->sb_mirror) >> SECTOR_BITS,
++		      0,
++		      sizeof(struct btrfs_super_block),
++		      (char *)BTRFS_SUPER);
++	return btrfs_check_super();
++}
++
++/*
++ * Looking for a btrfs super block by magic, @fsid and @devid
++ * (the last two ones are optional). Update latest transid (if
++ * any). Return 0, if such super block was found. Otherwise,
++ * return 1.
++ *
++ * NOTE:
++ * After calling this function the sb_copy of global btrfs_fs_info
++ * can contain garbage, so the caller is responsible for this to be
++ * uptodate (see the function btrfs_uptodate_super_copy()).
++ */
++static int btrfs_find_super(struct btrfs_device *dev, char *fsid, u64 *devid)
++{
++	int i, ret;
++	int found = 0;
++
++	for (i = 0; i < BTRFS_SUPER_MIRROR_MAX; i++) {
++		ret = btrfs_devread(dev->drive,
++				    dev->part,
++				    dev->length,
++				    btrfs_sb_offset(i) >> SECTOR_BITS,
++				    0,
++				    sizeof(struct btrfs_super_block),
++				    (char *)BTRFS_SUPER);
++		if (!ret) {
++			if (errnum == ERR_OUTSIDE_PART) {
++				errnum = ERR_NONE;
++				break;
++			} else {
++				errnum = ERR_NONE;
++				continue;
++			}
++		}
++		if (btrfs_super_bytenr(BTRFS_SUPER) != btrfs_sb_offset(i) ||
++		    btrfs_strncmp((char *)(&BTRFS_SUPER->magic),
++				  BTRFS_MAGIC,
++				  sizeof(BTRFS_SUPER->magic)))
++			continue;
++		if (fsid &&
++		    btrfs_strncmp(fsid,
++				  (char *)BTRFS_SUPER->fsid,
++				  BTRFS_FSID_SIZE))
++			return 1;
++		if (devid &&
++		    *devid != btrfs_super_devid(BTRFS_SUPER))
++			return 1;
++		found = 1;
++		dev->devid = btrfs_super_devid(BTRFS_SUPER);
++
++		if (btrfs_super_generation(BTRFS_SUPER) >
++		    BTRFS_FS_INFO->sb_transid) {
++			BTRFS_FS_INFO->sb_transid =
++				btrfs_super_generation(BTRFS_SUPER);
++			BTRFS_FS_INFO->sb_mirror = i;
++			BTRFS_FS_INFO->sb_dev.devid =
++				btrfs_super_devid(BTRFS_SUPER);
++			BTRFS_FS_INFO->sb_dev.drive = dev->drive;
++			BTRFS_FS_INFO->sb_dev.part = dev->part;
++			BTRFS_FS_INFO->sb_dev.length = dev->length;
++		}
++	}
++	return !found;
++}
++
++/*
++ * "Discern" a btrfs device by fsid and
++ * optionaly by devid (if lookup is set).
++ * Populate persistent device cache (if
++ * there are free slots).
++ */
++static int btrfs_discerner(struct btrfs_device **dev, int lookup)
++{
++	if (btrfs_find_super(*dev,
++			     (char *)BTRFS_FS_INFO->fsid,
++			     (lookup ? &(*dev)->devid : 0)))
++		/* not found */
++		return 0;
++	if (*dev < BTRFS_VOLATILE_DEV_CACHE) {
++		/* populate persistent device cache */
++		memcpy(*dev + 1, *dev, sizeof(struct btrfs_device));
++		(*dev)++;
++	}
++	return 1;
++}
++
++/*
++ * Scan available grub devices and call discerner
++ * for them. Return a number of discerned devices
++ * The scanner was stolen from print_completions().
++ *
++ * Preconditions:
++ * The global structure btrfs_fs_info contains
++ * the latest valid version of btrfs superblock
++ * (the field @sb_copy)
++ */
++static u64 scan_grub_devices(struct btrfs_device *dev,
++			     int (*discerner)(struct btrfs_device **, int),
++			     int lookup)
++{
++	int i, j;
++	u64 count = 0;
++	struct geometry geom;
++
++	for (i = 0; i < 2; i++)
++		for (j = 0; j < 8; j++) {
++			unsigned long part = 0xFFFFFF;
++			int type, entry, gpt_count, gpt_size;
++			unsigned long offset, ext_offset, gpt_offset;
++
++			dev->drive = (i * 0x80) + j;
++			if (get_diskinfo(dev->drive, &geom))
++				continue;
++			while (1) {
++				int ret;
++				buf_drive = -1;
++				errnum = ERR_NONE;
++				ret = next_partition(dev->drive, 0xFFFFFF,
++						     &part, &type, &dev->part,
++						     &dev->length, &offset,
++						     &entry, &ext_offset,
++						     &gpt_offset, &gpt_count,
++						     &gpt_size,
++						     BTRFS_FS_INFO->mbr);
++				if (!ret)
++					break;
++				if (discerner(&dev, lookup)) {
++					count++;
++					if (lookup)
++						goto exit;
++				}
++			}
++		}
++	errnum = ERR_NONE;
++	if (cdrom_drive != GRUB_INVALID_DRIVE &&
++	    !get_diskinfo(cdrom_drive, &geom)) {
++		dev->drive = cdrom_drive;
++		dev->part = 0;
++		dev->length = geom.total_sectors;
++		if (discerner(&dev, lookup)) {
++			count++;
++			if (lookup)
++				goto exit;
++		}
++	}
++#if 0
++	errnum = ERR_NONE;
++	if (network_ready &&
++	    !get_diskinfo(NETWORK_DRIVE, &geom)) {
++		dev->drive = NETWORK_DRIVE;
++		dev->part = 0;
++		dev->length = geom.total_sectors;
++		if (discerner(&dev, lookup)) {
++			count++;
++			if (lookup)
++				goto exit;
++		}
++	}
++#endif /* 0 */
++ exit:
++	return count;
++}
++
++#if 0
++static int btrfs_next_item(struct btrfs_root *root,
++			   struct btrfs_path *path);
++
++/*
++ * Scan the chunk tree for dev items
++ * and call a seeker for all of them.
++ * Preconditions: chunk root is installed
++ * to the global btrfs_fs_info.
++ */
++static int scan_dev_tree(struct btrfs_device* (*seeker)(u64))
++{
++	int ret;
++	u64 num_devices = 0;
++	struct btrfs_key key;
++	struct btrfs_key found_key;
++	struct btrfs_path *path;
++	struct btrfs_root *root;
++
++	root = BTRFS_CHUNK_ROOT;
++	path = btrfs_grab_path(FIRST_EXTERNAL_LOOKUP_POOL);
++	key.objectid = BTRFS_DEV_ITEMS_OBJECTID;
++	key.type = 0;
++	key.offset = 0;
++
++	ret = aux_tree_lookup(root, &key, path);
++	if (ret == -1)
++		goto corrupted;
++	while (1) {
++		struct btrfs_device *result;
++		struct btrfs_dev_item *dev_item;
++
++		btrfs_item_key_to_cpu(&path->nodes[0],
++				      &found_key,
++				      path->slots[0]);
++		if (found_key.objectid != BTRFS_DEV_ITEMS_OBJECTID)
++			break;
++		dev_item = btrfs_item_ptr(&path->nodes[0],
++					  path->slots[0],
++					  struct btrfs_dev_item);
++		result = seeker(btrfs_device_id(&path->nodes[0], dev_item));
++		if (result == NULL) {
++			btrfs_msg("Btrfs device %llu is not available\n",
++				  btrfs_device_id(&path->nodes[0], dev_item));
++			goto missed_dev;
++		}
++		num_devices++;
++		ret = btrfs_next_item(root, path);
++		if (ret)
++			break;
++	}
++	if (num_devices == btrfs_super_num_devices(BTRFS_SUPER))
++		return 0;
++ corrupted:
++	errnum = ERR_FSYS_CORRUPT;
++	return 1;
++ missed_dev:
++	errnum = ERR_FSYS_MOUNT;
++	return 1;
++}
++#endif /* 0 */
++
++/*
++ * Find a grub btrfs device by devid.
++ * Preconditions: global btrfs_fs_info
++ * contains a copy of btrfs super block.
++ *
++ * Return pointer to the cached device on success.
++ * Otherwise return NULL.
++ */
++static struct btrfs_device *btrfs_lookup_device(u64 devid)
++{
++	int i, result;
++	struct btrfs_device *cdev;
++
++	for (i = 0; i < BTRFS_NUM_CACHED_DEVICES; i++) {
++		cdev = &BTRFS_DEVICES[i];
++		if (cdev->devid == devid)
++			goto found_in_cache;
++		if (cdev->devid == 0)
++			goto not_found_in_cache;
++	}
++ not_found_in_cache:
++	cdev = BTRFS_VOLATILE_DEV_CACHE;
++	cdev->devid = devid;
++	result = scan_grub_devices(cdev,
++				   btrfs_discerner,
++				   1);
++	if (result == 0)
++		/*
++		 * At mount time we have figured out that
++		 * number of available devices is not less
++		 * then number of devices recorded in the
++		 * super block. Hence we treat this case as
++		 * file system corruption.
++		 */
++		goto corrupt;
++	result = btrfs_uptodate_super_copy(BTRFS_FS_INFO);
++	if (result)
++		goto corrupt;
++ found_in_cache:
++	return cdev;
++ corrupt:
++	errnum = ERR_FSYS_CORRUPT;
++	return NULL;
++}
++
++static int btrfs_find_device(struct btrfs_device *dev)
++{
++	struct btrfs_device *cdev;
++
++	if (btrfs_super_num_devices(BTRFS_SUPER) == 1) {
++		dev->drive = current_drive;
++		dev->part = part_start;
++		dev->length = part_length;
++		return 0;
++	}
++	cdev = btrfs_lookup_device(dev->devid);
++	if (cdev == NULL)
++		return 1;
++	dev->drive  = cdev->drive;
++	dev->part   = cdev->part;
++	dev->length = cdev->length;
++	return 0;
++}
++
++static inline void init_btrfs_volatile_dev_cache(void)
++{
++	BTRFS_VOLATILE_DEV_CACHE->devid = 0;
++	BTRFS_VOLATILE_DEV_CACHE->drive = current_drive;
++	BTRFS_VOLATILE_DEV_CACHE->part = part_start;
++	BTRFS_VOLATILE_DEV_CACHE->length = part_length;
++}
++
++/*
++ * check availability of btrfs devices
++ * and populate the persistent device cache
++ */
++static int btrfs_check_devices(void)
++{
++	u64 num_dev;
++
++	if (btrfs_super_num_devices(BTRFS_SUPER) == 1)
++		return 0;
++	num_dev = scan_grub_devices(BTRFS_DEVICES,
++				    btrfs_discerner, 0);
++	if (btrfs_uptodate_super_copy(BTRFS_FS_INFO))
++		return 1;
++	if (num_dev < btrfs_super_num_devices(BTRFS_SUPER)) {
++		btrfs_msg("Some (%llu) Btrfs devices is not available\n",
++			  btrfs_super_num_devices(BTRFS_SUPER) - num_dev);
++	        return 1;
++	}
++	return 0;
++}
++
++int btrfs_mount(void)
++{
++	int ret;
++
++	check_btrfs_cache_size();
++	init_btrfs_info();
++	init_btrfs_volatile_dev_cache();
++
++	ret = btrfs_find_super(BTRFS_VOLATILE_DEV_CACHE, NULL, NULL);
++	if (ret) {
++		btrfs_msg("Drive %lu, partition %lu: no Btrfs metadata\n",
++			  current_drive, part_start);
++		return 0;
++	}
++	ret = btrfs_uptodate_super_copy(BTRFS_FS_INFO);
++	if (ret)
++		goto error;
++	BTRFS_FS_INFO->sb_transid =
++		btrfs_super_generation(BTRFS_SUPER);
++	memcpy(BTRFS_FS_INFO->fsid,
++	       BTRFS_SUPER->fsid,
++	       BTRFS_FSID_SIZE);
++	ret = btrfs_check_devices();
++	if (ret)
++		goto error;
++	/* setup chunk root */
++	ret = find_setup_root(NULL,
++			      btrfs_super_nodesize(BTRFS_SUPER),
++			      btrfs_super_leafsize(BTRFS_SUPER),
++			      btrfs_super_sectorsize(BTRFS_SUPER),
++			      btrfs_super_stripesize(BTRFS_SUPER),
++			      BTRFS_CHUNK_TREE_OBJECTID,
++			      BTRFS_CHUNK_ROOT,
++			      btrfs_super_chunk_root(BTRFS_SUPER),
++			      btrfs_chunk_root_level_size(BTRFS_SUPER),
++			      btrfs_super_chunk_root_generation(BTRFS_SUPER),
++			      FIRST_EXTERNAL_LOOKUP_POOL);
++	if (ret)
++		return 0;
++	/* setup tree root */
++	ret = find_setup_root(NULL,
++			      btrfs_super_nodesize(BTRFS_SUPER),
++			      btrfs_super_leafsize(BTRFS_SUPER),
++			      btrfs_super_sectorsize(BTRFS_SUPER),
++			      btrfs_super_stripesize(BTRFS_SUPER),
++			      BTRFS_ROOT_TREE_OBJECTID,
++			      BTRFS_TREE_ROOT,
++			      btrfs_super_root(BTRFS_SUPER),
++			      btrfs_root_level_size(BTRFS_SUPER),
++			      btrfs_super_generation(BTRFS_SUPER),
++			      FIRST_EXTERNAL_LOOKUP_POOL);
++	if (ret)
++		return 0;
++	/* setup fs_root */
++	ret = find_setup_root(BTRFS_TREE_ROOT,
++			      btrfs_super_nodesize(BTRFS_SUPER),
++			      btrfs_super_leafsize(BTRFS_SUPER),
++			      btrfs_super_sectorsize(BTRFS_SUPER),
++			      btrfs_super_stripesize(BTRFS_SUPER),
++			      BTRFS_FS_TREE_OBJECTID,
++			      BTRFS_FS_ROOT,
++			      0,
++			      0,
++			      0,
++			      FIRST_EXTERNAL_LOOKUP_POOL);
++	return !ret;
++ error:
++	errnum = ERR_FSYS_MOUNT;
++	return 0;
++}
++
++/*
++ * Check, whether @chunk is the map for a
++ * block with @logical block number.
++ * If yes, then fill the @map.
++ * Return 1 on affirmative result,
++ * otherwise return 0.
++ */
++int check_read_chunk(struct btrfs_key *key,
++			    struct extent_buffer *leaf,
++			    struct btrfs_chunk *chunk,
++			    struct map_lookup *map,
++			    u64 logical)
++{
++	int i, ret;
++	u64 chunk_start;
++	u64 chunk_size;
++	int num_stripes;
++
++	chunk_start = key->offset;
++	chunk_size = btrfs_chunk_length(leaf, chunk);
++
++	if (logical + 1 > chunk_start + chunk_size ||
++	    logical < chunk_start)
++		/* not a fit */
++		return 0;
++	num_stripes = btrfs_chunk_num_stripes(leaf, chunk);
++	map->ce.start = chunk_start;
++	map->ce.size = chunk_size;
++	map->num_stripes = num_stripes;
++	map->io_width = btrfs_chunk_io_width(leaf, chunk);
++	map->io_align = btrfs_chunk_io_align(leaf, chunk);
++	map->sector_size = btrfs_chunk_sector_size(leaf, chunk);
++	map->stripe_len = btrfs_chunk_stripe_len(leaf, chunk);
++	map->type = btrfs_chunk_type(leaf, chunk);
++	map->sub_stripes = btrfs_chunk_sub_stripes(leaf, chunk);
++
++	for (i = 0; i < num_stripes; i++) {
++		map->stripes[i].physical =
++			btrfs_stripe_offset_nr(leaf, chunk, i);
++		map->stripes[i].dev.devid =
++			btrfs_stripe_devid_nr(leaf, chunk, i);
++		ret = btrfs_find_device(&map->stripes[i].dev);
++		if (ret)
++			return 0;
++	}
++	return 1;
++}
++
++static void init_extent_buffer(struct extent_buffer *eb,
++			       struct btrfs_device *dev,
++			       u64 logical,
++			       u32 blocksize,
++			       u64 physical,
++			       lookup_pool_id lpid)
++{
++	if (dev)
++		memcpy(&eb->dev, dev, sizeof(*dev));
++	eb->start = logical;
++	eb->len = blocksize;
++	eb->dev_bytenr = physical;
++	eb->data = grab_lookup_cache(lpid);
++}
++
++/*
++ * Search for a map by logical offset in sys array.
++ * Return -1 on errors;
++ * Return 1 if the map is found,
++ * Return 0 if the map is not found.
++ */
++int sys_array_lookup(struct map_lookup *map, u64 logical)
++{
++	struct extent_buffer sb;
++	struct btrfs_disk_key *disk_key;
++	struct btrfs_chunk *chunk;
++	struct btrfs_key key;
++	u32 num_stripes;
++	u32 array_size;
++	u32 len = 0;
++	u8 *ptr;
++	unsigned long sb_ptr;
++	u32 cur;
++	int ret;
++	int i = 0;
++
++	sb.data = (char *)BTRFS_SUPER;
++	array_size = btrfs_super_sys_array_size(BTRFS_SUPER);
++
++	ptr = BTRFS_SUPER->sys_chunk_array;
++	sb_ptr = offsetof(struct btrfs_super_block, sys_chunk_array);
++	cur = 0;
++
++	while (cur < array_size) {
++		disk_key = (struct btrfs_disk_key *)ptr;
++		btrfs_disk_key_to_cpu(&key, disk_key);
++
++		len = sizeof(*disk_key);
++		ptr += len;
++		sb_ptr += len;
++		cur += len;
++
++		if (key.type == BTRFS_CHUNK_ITEM_KEY) {
++			chunk = (struct btrfs_chunk *)sb_ptr;
++			ret = check_read_chunk(&key, &sb,
++					       chunk, map, logical);
++			if (ret)
++				/* map is found */
++				return ret;
++			num_stripes = btrfs_chunk_num_stripes(&sb, chunk);
++			len = btrfs_chunk_item_size(num_stripes);
++		} else {
++			errnum = ERR_FSYS_CORRUPT;
++			return -1;
++		}
++		ptr += len;
++		sb_ptr += len;
++		cur += len;
++		i++;
++	}
++	return 0;
++}
++
++/*
++ * Search for a map by logical offset in the chunk tree.
++ * Return 1 if map is found, otherwise return 0.
++ */
++static int chunk_tree_lookup(struct map_lookup *map,
++			     u64 logical)
++{
++	int ret;
++	int slot;
++	struct extent_buffer *leaf;
++	struct btrfs_key key;
++	struct btrfs_key found_key;
++	struct btrfs_chunk *chunk;
++	struct btrfs_path *path;
++
++	path = btrfs_grab_path(INTERNAL_LOOKUP_POOL);
++
++	key.objectid = BTRFS_FIRST_CHUNK_TREE_OBJECTID;
++	key.offset = logical;
++	key.type = BTRFS_CHUNK_ITEM_KEY;
++
++	ret = aux_tree_lookup(BTRFS_CHUNK_ROOT, &key, path);
++	if (ret < 0)
++		return 0;
++	leaf = &path->nodes[0];
++	slot = path->slots[0];
++	if (ret == 1) {
++		WARN_ON(slot == 0);
++		slot -= 1;
++	}
++	btrfs_item_key_to_cpu(leaf, &found_key, slot);
++	if (found_key.type != BTRFS_CHUNK_ITEM_KEY)
++		return 0;
++	chunk = btrfs_item_ptr(leaf, slot, struct btrfs_chunk);
++	return check_read_chunk(&found_key, leaf,
++				chunk, map, logical);
++}
++
++/*
++ * Btrfs logical/physical block mapper.
++ * Look for an appropriate map-extent and
++ * perform a translation. Return 1 on errors.
++ */
++static int btrfs_map_block(u64 logical, u64 *length,
++			   struct btrfs_multi_bio *multi,
++			   int mirror_num)
++{
++	struct map_lookup map;
++	u64 offset;
++	u64 stripe_offset;
++	u64 stripe_nr;
++	struct cache_extent *ce;
++	int stripe_index;
++	int i;
++	int ret;
++
++	memset(&map, 0, sizeof(map));
++	ret = sys_array_lookup(&map, logical);
++	if (ret == -1) {
++		errnum = ERR_FSYS_CORRUPT;
++		return 1;
++	}
++	if (ret == 0) {
++		ret = chunk_tree_lookup(&map, logical);
++		if (!ret) {
++			/* something should be found! */
++			errnum = ERR_FSYS_CORRUPT;
++			return 1;
++		}
++	}
++	/* do translation */
++	ce = &map.ce;
++
++	offset = logical - ce->start;
++	stripe_nr = offset / map.stripe_len;
++	stripe_offset = stripe_nr * map.stripe_len;
++	WARN_ON(offset < stripe_offset);
++
++	stripe_offset = offset - stripe_offset;
++
++	if (map.type & (BTRFS_BLOCK_GROUP_RAID0 | BTRFS_BLOCK_GROUP_RAID1 |
++			 BTRFS_BLOCK_GROUP_RAID10 |
++			 BTRFS_BLOCK_GROUP_DUP)) {
++		*length = min_t(u64, ce->size - offset,
++			      map.stripe_len - stripe_offset);
++	} else {
++		*length = ce->size - offset;
++	}
++	multi->num_stripes = 1;
++	stripe_index = 0;
++	if (map.type & BTRFS_BLOCK_GROUP_RAID1) {
++		if (mirror_num)
++			stripe_index = mirror_num - 1;
++		else
++			stripe_index = stripe_nr % map.num_stripes;
++	} else if (map.type & BTRFS_BLOCK_GROUP_RAID10) {
++		int factor = map.num_stripes / map.sub_stripes;
++
++		stripe_index = stripe_nr % factor;
++		stripe_index *= map.sub_stripes;
++
++		if (mirror_num)
++			stripe_index += mirror_num - 1;
++		else
++			stripe_index = stripe_nr % map.sub_stripes;
++
++		stripe_nr = stripe_nr / factor;
++	} else if (map.type & BTRFS_BLOCK_GROUP_DUP) {
++		if (mirror_num)
++			stripe_index = mirror_num - 1;
++	} else {
++		stripe_index = stripe_nr % map.num_stripes;
++		stripe_nr = stripe_nr / map.num_stripes;
++	}
++	WARN_ON(stripe_index >= map.num_stripes);
++
++	for (i = 0; i < multi->num_stripes; i++) {
++		multi->stripes[i].physical =
++			map.stripes[stripe_index].physical + stripe_offset +
++			stripe_nr * map.stripe_len;
++		memcpy(&multi->stripes[i].dev,
++		       &map.stripes[stripe_index].dev,
++		       sizeof(struct btrfs_device));
++		stripe_index++;
++	}
++	return 0;
++}
++
++static u64 read_data_extent(u64 logical_start, u64 to_read, char *pos)
++{
++	int ret;
++	u64 length;
++	struct btrfs_multi_bio multi;
++
++	while (to_read) {
++		ret = btrfs_map_block(logical_start, &length, &multi, 0);
++		if (ret) {
++			errnum = ERR_FSYS_CORRUPT;
++			return ret;
++		}
++		if (length > to_read)
++			length = to_read;
++		disk_read_func = disk_read_hook;
++		ret = btrfs_devread(multi.stripes[0].dev.drive,
++				    multi.stripes[0].dev.part,
++				    multi.stripes[0].dev.length,
++				    multi.stripes[0].physical >> SECTOR_BITS,
++				    logical_start & ((u64)SECTOR_SIZE - 1),
++				    length,
++				    pos);
++		disk_read_func = NULL;
++		if (!ret)
++			return 1;
++		btrfs_msg("BTRFS data extent: read %llu bytes\n", length);
++		to_read -= length;
++		pos += length;
++		logical_start += length;
++	}
++	return 0;
++}
++
++static int read_extent_from_disk(struct extent_buffer *eb)
++{
++	WARN_ON(eb->dev_bytenr % SECTOR_BITS);
++	return btrfs_devread(eb->dev.drive,
++			     eb->dev.part,
++			     eb->dev.length,
++			     eb->dev_bytenr >> SECTOR_BITS,
++			     0,
++			     eb->len,
++			     eb->data);
++}
++
++static int verify_parent_transid(struct extent_buffer *eb, u64 parent_transid)
++{
++	return parent_transid && (btrfs_header_generation(eb) != parent_transid);
++}
++
++static int btrfs_num_copies(u64 logical, u64 len)
++{
++	return 1;
++}
++
++static int check_tree_block(struct btrfs_root *root, struct extent_buffer *buf)
++{
++	return 0;
++}
++
++static int csum_tree_block(struct btrfs_root *root, struct extent_buffer *buf,
++		    int verify)
++{
++	return 0;
++}
++
++/*
++ * Read a block of logical number @bytenr
++ * from disk to buffer @eb.
++ * Return 1 on success.
++ */
++int read_tree_block(struct btrfs_root *root,
++		    struct extent_buffer *eb,
++		    u64 bytenr, /* logical */
++		    u32 blocksize,
++		    u64 parent_transid,
++		    lookup_pool_id lpid)
++{
++	int ret;
++	int dev_nr;
++	u64 length;
++	struct btrfs_multi_bio multi;
++	int mirror_num = 0;
++	int num_copies;
++
++	dev_nr = 0;
++	length = blocksize;
++	while (1) {
++		ret = btrfs_map_block(bytenr,
++				      &length, &multi, mirror_num);
++		if (ret) {
++			errnum = ERR_FSYS_CORRUPT;
++			return 0;
++		}
++		init_extent_buffer(eb,
++				   &multi.stripes[0].dev,
++				   bytenr,
++				   blocksize,
++				   multi.stripes[0].physical,
++				   lpid);
++
++		ret = read_extent_from_disk(eb);
++		if (ret &&
++		    check_tree_block(root, eb) == 0 &&
++		    csum_tree_block(root, eb, 1) == 0 &&
++		    verify_parent_transid(eb, parent_transid) == 0)
++			return 1;
++
++		num_copies = btrfs_num_copies(eb->start, eb->len);
++		if (num_copies == 1)
++			break;
++		mirror_num++;
++		if (mirror_num > num_copies)
++			break;
++	}
++	return 0;
++}
++
++/*
++ * Read a child pointed by @slot node pointer
++ * of @parent. Put the result to @parent.
++ * Return 1 on success.
++ */
++static int parent2child(struct btrfs_root *root,
++			struct extent_buffer *parent,
++			int slot,
++			lookup_pool_id lpid)
++{
++	int level;
++
++	WARN_ON(slot < 0);
++	WARN_ON(slot >= btrfs_header_nritems(parent));
++
++	level = btrfs_header_level(parent);
++	WARN_ON(level <= 0);
++
++	return read_tree_block(root,
++			       parent,
++			       btrfs_node_blockptr(parent, slot),
++			       btrfs_level_size(root, level - 1),
++			       btrfs_node_ptr_generation(parent, slot),
++			       lpid);
++}
++
++static int btrfs_comp_keys(struct btrfs_disk_key *disk, struct btrfs_key *k2)
++{
++	struct btrfs_key k1;
++
++	btrfs_disk_key_to_cpu(&k1, disk);
++
++	if (k1.objectid > k2->objectid)
++		return 1;
++	if (k1.objectid < k2->objectid)
++		return -1;
++	if (k1.type > k2->type)
++		return 1;
++	if (k1.type < k2->type)
++		return -1;
++	if (k1.offset > k2->offset)
++		return 1;
++	if (k1.offset < k2->offset)
++		return -1;
++	return 0;
++}
++
++static int bin_search(struct extent_buffer *eb, unsigned long p,
++		      int item_size, struct btrfs_key *key,
++		      int max, int *slot)
++{
++	int low = 0;
++	int high = max;
++	int mid;
++	int ret;
++	unsigned long offset;
++	struct btrfs_disk_key *tmp;
++
++	while(low < high) {
++		mid = (low + high) / 2;
++		offset = p + mid * item_size;
++
++		tmp = (struct btrfs_disk_key *)(eb->data + offset);
++		ret = btrfs_comp_keys(tmp, key);
++
++		if (ret < 0)
++			low = mid + 1;
++		else if (ret > 0)
++			high = mid;
++		else {
++			*slot = mid;
++			return 0;
++		}
++	}
++	*slot = low;
++	return 1;
++}
++
++/* look for a key in a node */
++static int node_lookup(struct extent_buffer *eb,
++		       struct btrfs_key *key,
++		       int *slot)
++{
++	if (btrfs_header_level(eb) == 0) {
++		return bin_search(eb,
++				  offsetof(struct btrfs_leaf, items),
++				  sizeof(struct btrfs_item),
++				  key, btrfs_header_nritems(eb),
++				  slot);
++	} else {
++		return bin_search(eb,
++				  offsetof(struct btrfs_node, ptrs),
++				  sizeof(struct btrfs_key_ptr),
++				  key, btrfs_header_nritems(eb),
++				  slot);
++	}
++	return -1;
++}
++
++static inline int check_node(struct extent_buffer *buf, int slot)
++{
++	return 0;
++}
++
++/*
++ * Look for an item by key in read-only tree.
++ * Return 0, if key was found. Return -1 on io errors.
++ *
++ * Preconditions: btrfs_mount already executed.
++ * Postconditions: if returned value is non-negative,
++ * then path[0] represents the found position in the
++ * tree. All components of the @path from leaf to root
++ * are valid except their data buffers (only path[0]
++ * has valid attached data buffer).
++ */
++
++int aux_tree_lookup(struct btrfs_root *root,
++		    struct btrfs_key *key,
++		    struct btrfs_path *path)
++{
++	int ret;
++	int slot = 0;
++	int level;
++	struct extent_buffer node;
++	init_extent_buffer(&node,
++			   NULL,
++			   0,
++			   0,
++			   0,
++			   path->lpid);
++	copy_extent_buffer(&node, &root->node);
++	do {
++		level = btrfs_header_level(&node);
++		ret = check_node(&node, slot);
++		if (ret)
++			return -1;
++		move_extent_buffer(&path->nodes[level],
++				   &node);
++		ret = node_lookup(&node, key, &slot);
++		if (ret < 0)
++			return ret;
++		if (level) {
++		        /*
++			 * non-leaf,
++			 * jump to the next level
++			 */
++			if (ret && slot > 0)
++			        slot -= 1;
++			ret = parent2child(root, &node, slot, path->lpid);
++			if (ret == 0)
++				return -1;
++		}
++		path->slots[level] = slot;
++	} while (level);
++	return ret;
++}
++
++static int readup_buffer(struct extent_buffer *buf, lookup_pool_id lpid)
++{
++	buf->data = grab_lookup_cache(lpid);
++	return read_extent_from_disk(buf);
++}
++
++/*
++ * Find the next leaf in accordance with tree order;
++ * walk up the tree as far as required to find it.
++ * Returns 0 if something was found, or 1 if there
++ * are no greater leaves. Returns < 0 on io errors.
++ *
++ * Preconditions: all @path components from leaf to
++ * root have valid meta-data fields. path[0] has a
++ * valid attached data buffer with initial leaf.
++ * Postcondition: the same as above, but path[0] has
++ * an attached data buffer with the next leaf.
++ */
++static int btrfs_next_leaf(struct btrfs_root *root,
++			   struct btrfs_path *path)
++{
++	int res;
++	int slot;
++	int level = 1;
++	struct extent_buffer *buf;
++
++	while(level < BTRFS_MAX_LEVEL) {
++		buf = &path->nodes[level];
++		slot = path->slots[level] + 1;
++		/*
++		 * lift data on this level
++		 */
++		res = readup_buffer(buf, path->lpid);
++		if (!res)
++			break;
++		if (slot >= btrfs_header_nritems(buf)) {
++			/* alas, go to parent (if any) */
++			level++;
++			res = 1;
++			continue;
++		}
++		break;
++	}
++	if (!res)
++		return 1;
++	/*
++	 * At this level slot points to
++	 * the subtree we are interested in.
++	 */
++	path->slots[level] = slot;
++	while(level) {
++		struct extent_buffer tmp;
++		move_extent_buffer(&tmp, &path->nodes[level]);
++		res = parent2child(root, &tmp, slot, path->lpid);
++		if (res == 0)
++			return -1;
++		level --;
++		slot = 0;
++		move_extent_buffer(&path->nodes[level], &tmp);
++		path->slots[level] = slot;
++	}
++	return 0;
++}
++
++/* Preconditions: path is valid, data buffer
++ * is attached to leaf node.
++ * Postcondition: path is updated to point to
++ * the next position with respect to the tree
++ * order.
++ *
++ * Return -1 on io errors.
++ * Return 0, if next item was found.
++ * Return 1, if next item wasn't found (no more items).
++ */
++static int btrfs_next_item(struct btrfs_root *root,
++			   struct btrfs_path *path)
++{
++	WARN_ON(path->slots[0] >= btrfs_header_nritems(&path->nodes[0]));
++
++	path->slots[0] += 1;
++
++	if (path->slots[0] < btrfs_header_nritems(&path->nodes[0]))
++		return 0;
++	if (coord_is_root(root, path))
++		/* no more items */
++		return 1;
++	return btrfs_next_leaf(root, path);
++}
++
++/*
++ * check if we can reuse results of previous
++ * search for read operation
++ */
++static int path_is_valid(struct btrfs_path *path,
++			 struct btrfs_key *key, u64 offset)
++{
++	btrfs_item_key_to_cpu(&path->nodes[0],
++			      key,
++			      path->slots[0]);
++	if (BTRFS_FILE_INFO_KEY->objectid != key->objectid)
++		return 0;
++	if (btrfs_key_type(key) == BTRFS_INODE_ITEM_KEY)
++		return 1;
++	if (btrfs_key_type(key) != BTRFS_EXTENT_DATA_KEY)
++		return 0;
++	return BTRFS_FILE_INFO_KEY->offset <= offset;
++}
++
++/* ->read_func() */
++int btrfs_read(char *buf, int len)
++{
++	int ret;
++	struct btrfs_root *fs_root;
++	struct btrfs_path *path;
++	struct btrfs_key  path_key;
++	u64 ioff;
++	u64 bytes;
++	int to_read;
++	char *pos = buf;
++
++	fs_root = BTRFS_FS_ROOT;
++	path = btrfs_grab_path(FIRST_EXTERNAL_LOOKUP_POOL);
++
++	if (!path_is_valid(path, &path_key, filepos)) {
++		ret = aux_tree_lookup(fs_root, BTRFS_FILE_INFO_KEY, path);
++		if (ret < 0)
++			errnum = ERR_FSYS_CORRUPT;
++	}
++	while (!errnum) {
++		struct btrfs_item *item;
++		struct btrfs_file_extent_item *fi;
++		u64 from;
++
++		btrfs_item_key_to_cpu(&path->nodes[0],
++				      &path_key,
++				      path->slots[0]);
++		if (BTRFS_FILE_INFO_KEY->objectid != path_key.objectid)
++			break;
++		if (btrfs_key_type(&path_key) != BTRFS_EXTENT_DATA_KEY)
++			goto next;
++		/*
++		 * current position is extent item
++		 */
++		item = btrfs_item_nr(&path->nodes[0], path->slots[0]);
++		fi = btrfs_item_ptr(&path->nodes[0],
++				    path->slots[0],
++				    struct btrfs_file_extent_item);
++		if (btrfs_file_extent_compression(&path->nodes[0], fi)) {
++		       btrfs_msg("Btrfs transparent compression unsupported\n");
++		       errnum = ERR_BAD_FILETYPE;
++		       goto exit;
++		}
++		ioff = filepos - path_key.offset;
++
++		switch (btrfs_file_extent_type(&path->nodes[0], fi)) {
++		case BTRFS_FILE_EXTENT_INLINE:
++			bytes = btrfs_file_extent_inline_item_len(&path->
++								  nodes[0],
++								  item);
++			if (path_key.offset + bytes < filepos)
++				goto next;
++			to_read = bytes - ioff;
++			if (to_read > len)
++				to_read = len;
++			from = ioff + btrfs_file_extent_inline_start(fi);
++			if (disk_read_hook != NULL) {
++				disk_read_func = disk_read_hook;
++				ret = btrfs_devread(path->nodes[0].dev.drive,
++						    path->nodes[0].dev.part,
++						    path->nodes[0].dev.length,
++						    path->nodes[0].dev_bytenr >>
++						    SECTOR_BITS,
++						    from,
++						    to_read,
++						    pos);
++				disk_read_func = NULL;
++				if (ret)
++					goto exit;
++			} else
++				memcpy(pos,
++				       path->nodes[0].data + from,
++				       to_read);
++			btrfs_msg("BTRFS inline extent: read %d bytes pos %d\n",
++				  to_read, filepos);
++			break;
++		case BTRFS_FILE_EXTENT_REG:
++			bytes = btrfs_file_extent_num_bytes(&path->nodes[0],
++							    fi);
++			if (path_key.offset + bytes < filepos)
++				goto next;
++			to_read = bytes - ioff;
++			if (to_read > len)
++				to_read = len;
++			from = ioff +
++				btrfs_file_extent_disk_bytenr(&path->nodes[0],
++							      fi) +
++				btrfs_file_extent_offset(&path->nodes[0],
++							 fi);
++			ret = read_data_extent(from, to_read, pos);
++			if (ret)
++				goto exit;
++			break;
++		case BTRFS_FILE_EXTENT_PREALLOC:
++			btrfs_msg("Btrfs preallocated extents unsupported\n");
++			errnum = ERR_BAD_FILETYPE;
++			goto exit;
++		default:
++			errnum = ERR_FSYS_CORRUPT;
++			goto exit;
++		}
++		len -= to_read;
++		pos += to_read;
++		filepos += to_read;
++		if (len == 0)
++			break;
++		/* not everything was read */
++	next:
++		ret = btrfs_next_item(fs_root, path);
++		if (ret < 0) {
++			errnum = ERR_FSYS_CORRUPT;
++			break;
++		}
++		btrfs_update_file_info(path);
++		continue;
++	}
++ exit:
++	return errnum ? 0 : pos - buf;
++}
++
++static int btrfs_follow_link(struct btrfs_root *root,
++			     struct btrfs_path *path,
++			     char **dirname, char *linkbuf,
++			     int *link_count,
++			     struct btrfs_inode_item *sd)
++{
++	int ret;
++	int len;
++	char *name = *dirname;
++
++	if (++(*link_count) > MAX_LINK_COUNT) {
++		errnum = ERR_SYMLINK_LOOP;
++		return 0;
++	}
++	/* calculate remaining name size */
++	filemax = btrfs_inode_size(&path->nodes[0], sd);
++	for (len = 0;
++	     name[len] && isspace(name[len]);
++	     len ++);
++
++	if (filemax + len > PATH_MAX - 1) {
++		errnum = ERR_FILELENGTH;
++		return 0;
++	}
++	grub_memmove(linkbuf + filemax, name, len + 1);
++	btrfs_update_file_info(path);
++	filepos = 0;
++	/* extract symlink content */
++	while (1) {
++		u64 oid = BTRFS_FILE_INFO_KEY->objectid;
++		ret = btrfs_next_item(root, path);
++		if (ret)
++			break;
++		btrfs_update_file_info(path);
++		if (oid != BTRFS_FILE_INFO_KEY->objectid)
++			break;
++		if (btrfs_key_type(BTRFS_FILE_INFO_KEY) ==
++		    BTRFS_EXTENT_DATA_KEY)
++			goto found;
++	}
++	/* no target was found */
++	errnum = ERR_FSYS_CORRUPT;
++	return 0;
++ found:
++	/* fill the rest of linkbuf with the content */
++	ret = btrfs_read(linkbuf, filemax);
++	if (ret != filemax) {
++		errnum = ERR_FSYS_CORRUPT;
++		return 0;
++	}
++	return 1;
++}
++
++static int update_fs_root(struct btrfs_root *fs_root,
++			  struct btrfs_key *location)
++{
++	int ret;
++	struct btrfs_root *tree_root;
++
++	if (location->offset != (u64)-1)
++		return 0;
++	tree_root = &BTRFS_FS_INFO->tree_root;
++	ret = find_setup_root(tree_root,
++			      tree_root->nodesize,
++			      tree_root->leafsize,
++			      tree_root->sectorsize,
++			      tree_root->stripesize,
++			      location->objectid,
++			      fs_root,
++			      0,
++			      0,
++			      0,
++			      SECOND_EXTERNAL_LOOKUP_POOL);
++	if (ret)
++		return ret;
++	location->objectid = btrfs_root_dirid(&fs_root->root_item);
++	btrfs_set_key_type(location, BTRFS_INODE_ITEM_KEY);
++	location->offset = 0;
++	return 0;
++}
++
++#ifndef STAGE1_5
++static inline void update_possibilities(void)
++{
++	if (print_possibilities > 0)
++		print_possibilities =
++			-print_possibilities;
++}
++#endif
++
++/*
++ * Look for a directory item by name.
++ * Print possibilities, if needed.
++ * Postconditions: on success @sd_key points
++ * to the key contained in the directory entry.
++ */
++static int btrfs_de_index_by_name(struct btrfs_root *root,
++				  struct btrfs_path *path,
++				  char **dirname,
++				  struct btrfs_key *sd_key)
++{
++	char ch;
++	int ret;
++	char *rest;
++	struct btrfs_dir_item *di;
++#ifndef STAGE1_5
++	int do_possibilities = 0;
++#endif
++	for (; **dirname == '/'; (*dirname)++);
++	for (rest = *dirname;
++	     (ch = *rest) && !isspace(ch) && ch != '/';
++	     rest++);
++	*rest = 0; /* for substrung() */
++#ifndef STAGE1_5
++	if (print_possibilities && ch != '/')
++		do_possibilities = 1;
++#endif
++	/* scan a directory */
++	while (1) {
++		u32 total;
++		u32 cur = 0;
++		u32 len;
++		struct btrfs_key di_key;
++		struct btrfs_disk_key location;
++		struct btrfs_item *item;
++
++		/* extract next dir entry */
++		ret = btrfs_next_item(root, path);
++		if (ret)
++			break;
++		item = btrfs_item_nr(&path->nodes[0],
++				     path->slots[0]);
++		btrfs_item_key_to_cpu(&path->nodes[0],
++				      &di_key,
++				      path->slots[0]);
++		if (di_key.objectid != sd_key->objectid)
++			/* no more entries */
++			break;
++		di = btrfs_item_ptr(&path->nodes[0],
++				    path->slots[0],
++				    struct btrfs_dir_item);
++		/*
++		 * working around special cases:
++		 * btrfs doesn't maintain directory entries
++		 * which contain names "." and ".."
++		 */
++		if (!substring(".", *dirname)) {
++#ifndef STAGE1_5
++			if (do_possibilities) {
++				update_possibilities();
++				return 1;
++			}
++#endif
++			goto found;
++		}
++		if (!substring("..", *dirname)) {
++			if (di_key.type != BTRFS_INODE_REF_KEY)
++				continue;
++			sd_key->objectid = di_key.offset;
++			btrfs_set_key_type(sd_key, BTRFS_INODE_ITEM_KEY);
++			sd_key->offset = 0;
++#ifndef STAGE1_5
++			if (do_possibilities) {
++				update_possibilities();
++				return 1;
++			}
++#endif
++			goto found;
++		}
++		if (di_key.type != BTRFS_DIR_ITEM_KEY)
++			continue;
++		total = btrfs_item_size(&path->nodes[0], item);
++		/* scan a directory item */
++		while (cur < total) {
++			char tmp;
++			int result;
++			char *filename;
++			char *end_of_name;
++			int name_len;
++			int data_len;
++
++			btrfs_dir_item_key(&path->nodes[0], di, &location);
++
++			name_len = btrfs_dir_name_len(&path->nodes[0], di);
++			data_len = btrfs_dir_data_len(&path->nodes[0], di);
++
++			WARN_ON(name_len > BTRFS_NAME_LEN);
++
++			filename = (char *)(path->nodes[0].data +
++					    (unsigned long)(di + 1));
++			end_of_name = filename + name_len;
++			/*
++			 * working around not null-terminated
++			 * directory names in btrfs: just
++			 * a short-term overwrite of the
++			 * cache with the following rollback
++			 * of the change.
++			 */
++			tmp = *end_of_name;
++			*end_of_name = 0;
++			result = substring(*dirname, filename);
++			*end_of_name = tmp;
++#ifndef STAGE1_5
++			if (do_possibilities) {
++				if (result <= 0) {
++					update_possibilities();
++					*end_of_name = 0;
++					print_a_completion(filename);
++					*end_of_name = tmp;
++				}
++			}
++			else
++#endif
++				if (result == 0) {
++				      btrfs_dir_item_key_to_cpu(&path->nodes[0],
++								di, sd_key);
++				      goto found;
++				}
++			len = sizeof(*di) + name_len + data_len;
++			di = (struct btrfs_dir_item *)((char *)di + len);
++			cur += len;
++		}
++	}
++#ifndef STAGE1_5
++	if (print_possibilities < 0)
++		return 1;
++#endif
++	errnum = ERR_FILE_NOT_FOUND;
++	*rest = ch;
++	return 0;
++ found:
++	*rest = ch;
++	*dirname = rest;
++	return 1;
++}
++
++/*
++ * ->dir_func().
++ * Postcondition: on a non-zero return BTRFS_FS_INFO
++ * contains the latest fs_root of file's subvolume.
++ * BTRFS_FS_INFO points to a subvolume of a file we
++ * were trying to look up.
++ * BTRFS_FILE_INFO contains info of the file we were
++ * trying to look up.
++ */
++
++int btrfs_dir(char *dirname)
++{
++	int ret;
++	int mode;
++	u64 size;
++	int linkcount = 0;
++	char linkbuf[PATH_MAX];
++
++	struct btrfs_path *path;
++	struct btrfs_root *root;
++
++	struct btrfs_key sd_key;
++	struct btrfs_inode_item *sd;
++	struct btrfs_key parent_sd_key;
++
++	root = BTRFS_FS_ROOT;
++	path = btrfs_grab_path(FIRST_EXTERNAL_LOOKUP_POOL);
++
++	btrfs_set_root_dir_key(&sd_key);
++	while (1) {
++		struct extent_buffer *leaf;
++		ret = aux_tree_lookup(root, &sd_key, path);
++		if (ret)
++			return 0;
++		leaf = &path->nodes[0];
++		sd = btrfs_item_ptr(leaf,
++				    path->slots[0],
++				    struct btrfs_inode_item);
++		mode = btrfs_inode_mode(leaf, sd);
++		size = btrfs_inode_size(leaf, sd);
++		switch (btrfs_get_file_type(mode)) {
++		case BTRFS_SYMLINK_FILE:
++			ret = btrfs_follow_link(root,
++						path,
++						&dirname,
++						linkbuf,
++						&linkcount,
++						sd);
++			if (!ret)
++				return 0;
++			dirname = linkbuf;
++			if (*dirname == '/')
++				/* absolute name */
++				btrfs_set_root_dir_key(&sd_key);
++			else
++				memcpy(&sd_key, &parent_sd_key,
++				       sizeof(sd_key));
++			continue;
++		case BTRFS_REGULAR_FILE:
++			/*
++			 * normally we want to exit here
++			 */
++			if (*dirname && !isspace (*dirname)) {
++				errnum = ERR_BAD_FILETYPE;
++				return 0;
++			}
++			filepos = 0;
++			filemax = btrfs_inode_size(leaf, sd);
++			btrfs_update_file_info(path);
++			return 1;
++		case BTRFS_DIRECTORY_FILE:
++			memcpy(&parent_sd_key, &sd_key, sizeof(sd_key));
++			ret = btrfs_de_index_by_name(root,
++						     path,
++						     &dirname,
++						     &sd_key);
++			if (!ret)
++				return 0;
++#ifndef STAGE1_5
++			if (print_possibilities < 0)
++				return 1;
++#endif
++			/*
++			 * update fs_tree:
++			 * subvolume stuff goes here
++			 */
++			ret = update_fs_root(root, &sd_key);
++			if (ret)
++				return 0;
++			continue;
++		case BTRFS_UNKNOWN_FILE:
++		default:
++			btrfs_msg("Btrfs: bad file type\n");
++			errnum = ERR_BAD_FILETYPE;
++			return 0;
++		}
++	}
++}
++
++int btrfs_embed(int *start_sector, int needed_sectors)
++{
++	int ret;
++	init_btrfs_info();
++	init_btrfs_volatile_dev_cache();
++
++	ret = btrfs_find_super(BTRFS_VOLATILE_DEV_CACHE, NULL, NULL);
++	if (ret)
++		return 0;
++	ret = btrfs_uptodate_super_copy(BTRFS_FS_INFO);
++	if (ret)
++		return 0;
++	*start_sector = 1; /* reserve first sector for stage1 */
++	return needed_sectors <=
++		((BTRFS_SUPER_INFO_OFFSET >> SECTOR_BITS) - 1);
++}
++#endif /* FSYS_BTRFS */
++
++/*
++  Local variables:
++  c-indentation-style: "K&R"
++  mode-name: "LC"
++  c-basic-offset: 8
++  tab-width: 8
++  fill-column: 80
++  scroll-step: 1
++  End:
++*/
+diff --git a/stage2/fsys_ext2fs.c b/stage2/fsys_ext2fs.c
+index 560048f..01386d1 100644
+--- a/stage2/fsys_ext2fs.c
++++ b/stage2/fsys_ext2fs.c
+@@ -25,7 +25,7 @@
+ static int mapblock1, mapblock2;
+ 
+ /* sizes are always in bytes, BLOCK values are always in DEV_BSIZE (sectors) */
+-#define DEV_BSIZE 512
++#define DEV_BSIZE get_sector_size(current_drive)
+ 
+ /* include/linux/fs.h */
+ #define BLOCK_SIZE 1024		/* initial block size for superblock read */
+@@ -33,6 +33,7 @@ static int mapblock1, mapblock2;
+ #define WHICH_SUPER 1
+ /* kind of from fs/ext2/super.c */
+ #define SBLOCK (WHICH_SUPER * BLOCK_SIZE / DEV_BSIZE)	/* = 2 */
++#define SBOFF ((WHICH_SUPER * BLOCK_SIZE) % DEV_BSIZE)
+ 
+ /* include/asm-i386/types.h */
+ typedef __signed__ char __s8;
+@@ -41,6 +42,7 @@ typedef __signed__ short __s16;
+ typedef unsigned short __u16;
+ typedef __signed__ int __s32;
+ typedef unsigned int __u32;
++typedef unsigned long long __u64;
+ 
+ /*
+  * Constants relative to the data blocks, from ext2_fs.h
+@@ -51,7 +53,7 @@ typedef unsigned int __u32;
+ #define EXT2_TIND_BLOCK                 (EXT2_DIND_BLOCK + 1)
+ #define EXT2_N_BLOCKS                   (EXT2_TIND_BLOCK + 1)
+ 
+-/* include/linux/ext2_fs.h */
++/* lib/ext2fs/ext2_fs.h from e2fsprogs */
+ struct ext2_super_block
+   {
+     __u32 s_inodes_count;	/* Inodes count */
+@@ -61,9 +63,9 @@ struct ext2_super_block
+     __u32 s_free_inodes_count;	/* Free inodes count */
+     __u32 s_first_data_block;	/* First Data Block */
+     __u32 s_log_block_size;	/* Block size */
+-    __s32 s_log_frag_size;	/* Fragment size */
++    __s32 s_obso_log_frag_size;	/* Obsoleted Fragment size */
+     __u32 s_blocks_per_group;	/* # Blocks per group */
+-    __u32 s_frags_per_group;	/* # Fragments per group */
++    __u32 s_obso_frags_per_group;	/* Obsoleted Fragments per group */
+     __u32 s_inodes_per_group;	/* # Inodes per group */
+     __u32 s_mtime;		/* Mount time */
+     __u32 s_wtime;		/* Write time */
+@@ -72,17 +74,76 @@ struct ext2_super_block
+     __u16 s_magic;		/* Magic signature */
+     __u16 s_state;		/* File system state */
+     __u16 s_errors;		/* Behaviour when detecting errors */
+-    __u16 s_pad;
++    __u16 s_minor_rev_level;	/* minor revision level */
+     __u32 s_lastcheck;		/* time of last check */
+     __u32 s_checkinterval;	/* max. time between checks */
+     __u32 s_creator_os;		/* OS */
+     __u32 s_rev_level;		/* Revision level */
+     __u16 s_def_resuid;		/* Default uid for reserved blocks */
+     __u16 s_def_resgid;		/* Default gid for reserved blocks */
+-    __u32 s_reserved[235];	/* Padding to the end of the block */
+-  };
+-
+-struct ext2_group_desc
++    /*
++     * These fields are for EXT2_DYNAMIC_REV superblocks only.
++     *
++     * Note: the difference between the compatible feature set and
++     * the incompatible feature set is that if there is a bit set
++     * in the incompatible feature set that the kernel doesn't
++     * know about, it should refuse to mount the filesystem.
++     *
++     * e2fsck's requirements are more strict; if it doesn't know
++     * about a feature in either the compatible or incompatible
++     * feature set, it must abort and not try to meddle with
++     * things it doesn't understand...
++     */
++    __u32 s_first_ino;		/* First non-reserved inode */
++    __u16 s_inode_size;		/* size of inode structure */
++    __u16 s_block_group_nr;	/* block group # of this superblock */
++    __u32 s_feature_compat;	/* compatible feature set */
++    __u32 s_feature_incompat;	/* incompatible feature set */
++    __u32 s_feature_ro_compat;	/* readonly-compatible feature set */
++    __u8  s_uuid[16];		/* 128-bit uuid for volume */
++    char  s_volume_name[16];	/* volume name */
++    char  s_last_mounted[64];	/* directory where last mounted */
++    __u32 s_algorithm_usage_bitmap; /* For compression */
++    /*
++     * Performance hints.  Directory preallocation should only
++     * happen if the EXT2_FEATURE_COMPAT_DIR_PREALLOC flag is on.
++     */
++    __u8  s_prealloc_blocks;	/* Nr of blocks to try to preallocate*/
++    __u8  s_prealloc_dir_blocks;	/* Nr to preallocate for dirs */
++    __u16 s_reserved_gdt_blocks;/* Per group table for online growth */
++    /*
++     * Journaling support valid if EXT2_FEATURE_COMPAT_HAS_JOURNAL set.
++     */
++    __u8 s_journal_uuid[16];	/* uuid of journal superblock */
++    __u32 s_journal_inum;	/* inode number of journal file */
++    __u32 s_journal_dev;	/* device number of journal file */
++    __u32 s_last_orphan;	/* start of list of inodes to delete */
++    __u32 s_hash_seed[4];	/* HTREE hash seed */
++    __u8  s_def_hash_version;	/* Default hash version to use */
++    __u8  s_jnl_backup_type; 	/* Default type of journal backup */
++    __u16 s_desc_size;		/* size of group descriptor */
++    __u32 s_default_mount_opts;
++    __u32 s_first_meta_bg;	/* First metablock group */
++    __u32 s_mkfs_time;		/* When the filesystem was created */
++    __u32 s_jnl_blocks[17]; 	/* Backup of the journal inode */
++    /* 64bit desc support valid if EXT4_FEATURE_INCOMPAT_64BIT */
++    __u32 s_blocks_count_hi;	/* Blocks count */
++    __u32 s_r_blocks_count_hi;	/* Reserved blocks count */
++    __u32 s_free_blocks_count_hi; /* Free blocks count */
++    __u16 s_min_extra_isize;	/* All inodes have at least # bytes */
++    __u16 s_max_extra_isize;	/* New inodes should reverve # bytes */
++    __u32 s_flags;		/* Miscellaneous flags */
++    __u16 s_raid_stride;	/* Raid stride */
++    __u16 s_mmp_interval;	/* # seconds to wait MMP checking */
++    __u64 s_mmp_block;		/* Block for multi-mount protection */
++    __u32 s_raid_stripe_width;	/* Blocks on all data disks (N*stride)*/
++    __u8  s_log_groups_per_flex;/* FLEX_BG group size*/
++    __u8  s_reserved_char_pad;
++    __u16 s_reserved_pad;
++    __u32 s_reserved[162];	/* Padding to the end of the block */
++};
++
++struct ext4_group_desc
+   {
+     __u32 bg_block_bitmap;	/* Blocks bitmap block */
+     __u32 bg_inode_bitmap;	/* Inodes bitmap block */
+@@ -90,8 +151,18 @@ struct ext2_group_desc
+     __u16 bg_free_blocks_count;	/* Free blocks count */
+     __u16 bg_free_inodes_count;	/* Free inodes count */
+     __u16 bg_used_dirs_count;	/* Directories count */
+-    __u16 bg_pad;
+-    __u32 bg_reserved[3];
++    __u16 bg_flags;		/* EXT4_BG_flags (INODE_UNINIT, etc) */
++    __u32 bg_reserved[2];		/* Likely block/inode bitmap checksum */
++    __u16 bg_itable_unused;	/* Unused inodes count */
++    __u16 bg_checksum;		/* crc16(sb_uuid+group+desc) */
++    __u32 bg_block_bitmap_hi;	/* Blocks bitmap block MSB */
++    __u32 bg_inode_bitmap_hi;	/* Inodes bitmap block MSB */
++    __u32 bg_inode_table_hi;	/* Inodes table block MSB */
++    __u16 bg_free_blocks_count_hi;/* Free blocks count MSB */
++    __u16 bg_free_inodes_count_hi;/* Free inodes count MSB */
++    __u16 bg_used_dirs_count_hi;	/* Directories count MSB */
++    __u16 bg_itable_unused_hi;	/* Unused inodes count MSB */
++    __u32 bg_reserved2[3];
+   };
+ 
+ struct ext2_inode
+@@ -129,22 +200,22 @@ struct ext2_inode
+     __u32 i_block[EXT2_N_BLOCKS];	/* 40: Pointers to blocks */
+     __u32 i_version;		/* File version (for NFS) */
+     __u32 i_file_acl;		/* File ACL */
+-    __u32 i_dir_acl;		/* Directory ACL */
+-    __u32 i_faddr;		/* Fragment address */
++    __u32 i_size_high;
++    __u32 i_obso_faddr;		/* Obsoleted fragment address */
+     union
+       {
+ 	struct
+ 	  {
+-	    __u8 l_i_frag;	/* Fragment number */
+-	    __u8 l_i_fsize;	/* Fragment size */
+-	    __u16 i_pad1;
+-	    __u32 l_i_reserved2[2];
++		__u16	l_i_blocks_high; /* were l_i_reserved1 */
++		__u16	l_i_file_acl_high;
++		__u16	l_i_uid_high;	/* these 2 fields */
++		__u16	l_i_gid_high;	/* were reserved2[0] */
++		__u32	l_i_reserved2;
+ 	  }
+ 	linux2;
+ 	struct
+ 	  {
+-	    __u8 h_i_frag;	/* Fragment number */
+-	    __u8 h_i_fsize;	/* Fragment size */
++		__u16	h_i_reserved1;	/* Obsoleted fragment number/size which are removed in ext4 */
+ 	    __u16 h_i_mode_high;
+ 	    __u16 h_i_uid_high;
+ 	    __u16 h_i_gid_high;
+@@ -153,16 +224,36 @@ struct ext2_inode
+ 	hurd2;
+ 	struct
+ 	  {
+-	    __u8 m_i_frag;	/* Fragment number */
+-	    __u8 m_i_fsize;	/* Fragment size */
+-	    __u16 m_pad1;
++		__u16	h_i_reserved1;	/* Obsoleted fragment number/size which are removed in ext4 */
++		__u16	m_i_file_acl_high;
+ 	    __u32 m_i_reserved2[2];
+ 	  }
+ 	masix2;
+       }
+     osd2;			/* OS dependent 2 */
++	__u16	i_extra_isize;
++	__u16	i_pad1;
++	__u32  i_ctime_extra;  /* extra Change time      (nsec << 2 | epoch) */
++	__u32  i_mtime_extra;  /* extra Modification time(nsec << 2 | epoch) */
++	__u32  i_atime_extra;  /* extra Access time      (nsec << 2 | epoch) */
++	__u32  i_crtime;       /* File Creation time */
++	__u32  i_crtime_extra; /* extra FileCreationtime (nsec << 2 | epoch) */
++	__u32  i_version_hi;	/* high 32 bits for 64-bit version */
+   };
+ 
++#define EXT4_FEATURE_INCOMPAT_EXTENTS		0x0040 /* extents support */
++#define EXT4_FEATURE_INCOMPAT_64BIT			0x0080 /* grub not supported*/
++#define EXT4_FEATURE_INCOMPAT_MMP           0x0100
++#define EXT4_FEATURE_INCOMPAT_FLEX_BG		0x0200
++
++#define EXT4_HAS_INCOMPAT_FEATURE(sb,mask)			\
++	( sb->s_feature_incompat & mask )
++
++#define EXT4_EXTENTS_FL		0x00080000 /* Inode uses extents */
++#define EXT4_HUGE_FILE_FL	0x00040000 /* Set to each huge file */
++
++#define EXT4_MIN_DESC_SIZE			32
++
+ /* linux/limits.h */
+ #define NAME_MAX         255	/* # chars in a file name */
+ 
+@@ -180,6 +271,57 @@ struct ext2_dir_entry
+     char name[EXT2_NAME_LEN];	/* File name */
+   };
+ 
++/* linux/ext4_fs_extents.h */
++/* This is the extent on-disk structure.
++ * It's used at the bottom of the tree.
++ */
++struct ext4_extent
++  {
++	__u32  ee_block;   /* first logical block extent covers */
++	__u16  ee_len;     /* number of blocks covered by extent */
++	__u16  ee_start_hi;    /* high 16 bits of physical block */
++	__u32  ee_start_lo;    /* low 32 bits of physical block */
++  };
++
++/*
++ * This is index on-disk structure.
++ * It's used at all the levels except the bottom.
++ */
++struct ext4_extent_idx
++  {
++    __u32  ei_block;   /* index covers logical blocks from 'block' */
++    __u32  ei_leaf_lo; /* pointer to the physical block of the next *
++	                     * level. leaf or next index could be there */
++    __u16  ei_leaf_hi; /* high 16 bits of physical block */
++    __u16  ei_unused;
++  };
++
++/*
++ * Each block (leaves and indexes), even inode-stored has header.
++ */
++struct ext4_extent_header
++  {
++    __u16  eh_magic;   /* probably will support different formats */
++    __u16  eh_entries; /* number of valid entries */
++    __u16  eh_max;     /* capacity of store in entries */
++    __u16  eh_depth;   /* has tree real underlying blocks? */
++    __u32  eh_generation;  /* generation of the tree */
++  };
++
++#define EXT4_EXT_MAGIC      (0xf30a)
++#define EXT_FIRST_EXTENT(__hdr__) \
++    ((struct ext4_extent *) (((char *) (__hdr__)) +     \
++                 sizeof(struct ext4_extent_header)))
++#define EXT_FIRST_INDEX(__hdr__) \
++    ((struct ext4_extent_idx *) (((char *) (__hdr__)) + \
++                 sizeof(struct ext4_extent_header)))
++#define EXT_LAST_EXTENT(__hdr__) \
++    (EXT_FIRST_EXTENT((__hdr__)) + (__u16)((__hdr__)->eh_entries) - 1)
++#define EXT_LAST_INDEX(__hdr__) \
++    (EXT_FIRST_INDEX((__hdr__)) + (__u16)((__hdr__)->eh_entries) - 1)
++
++
++
+ /* linux/ext2fs.h */
+ /*
+  * EXT2_DIR_PAD defines the directory entries boundaries
+@@ -206,25 +348,37 @@ struct ext2_dir_entry
+     ((struct ext2_super_block *)(FSYS_BUF))
+ #define GROUP_DESC \
+     ((struct ext2_group_desc *) \
+-     ((int)SUPERBLOCK + sizeof(struct ext2_super_block)))
++     ((unsigned long)SUPERBLOCK + sizeof(struct ext2_super_block)))
+ #define INODE \
+-    ((struct ext2_inode *)((int)GROUP_DESC + EXT2_BLOCK_SIZE(SUPERBLOCK)))
++    ((struct ext2_inode *)((unsigned long)GROUP_DESC + EXT2_BLOCK_SIZE(SUPERBLOCK)))
+ #define DATABLOCK1 \
+-    ((int)((int)INODE + sizeof(struct ext2_inode)))
++    ((unsigned long)INODE + sizeof(struct ext2_inode))
+ #define DATABLOCK2 \
+-    ((int)((int)DATABLOCK1 + EXT2_BLOCK_SIZE(SUPERBLOCK)))
++    ((unsigned long)DATABLOCK1 + EXT2_BLOCK_SIZE(SUPERBLOCK))
+ 
+ /* linux/ext2_fs.h */
+ #define EXT2_ADDR_PER_BLOCK(s)          (EXT2_BLOCK_SIZE(s) / sizeof (__u32))
+ #define EXT2_ADDR_PER_BLOCK_BITS(s)		(log2(EXT2_ADDR_PER_BLOCK(s)))
+ 
++#define EXT2_INODE_SIZE(s)		(SUPERBLOCK->s_inode_size)
++#define EXT2_INODES_PER_BLOCK(s)	(EXT2_BLOCK_SIZE(s)/EXT2_INODE_SIZE(s))
++
+ /* linux/ext2_fs.h */
+ #define EXT2_BLOCK_SIZE_BITS(s)        ((s)->s_log_block_size + 10)
+ /* kind of from ext2/super.c */
+ #define EXT2_BLOCK_SIZE(s)	(1 << EXT2_BLOCK_SIZE_BITS(s))
+ /* linux/ext2fs.h */
++/* sizeof(struct ext2_group_desc) is changed in ext4
++ * in kernel code, ext2/3 uses sizeof(struct ext2_group_desc) to calculate
++ * number of desc per block, while ext4 uses superblock->s_desc_size in stead
++ * superblock->s_desc_size is not available in ext2/3
++ * */
++#define EXT2_DESC_SIZE(s) \
++	(EXT4_HAS_INCOMPAT_FEATURE(s,EXT4_FEATURE_INCOMPAT_64BIT)? \
++	s->s_desc_size : EXT4_MIN_DESC_SIZE)
+ #define EXT2_DESC_PER_BLOCK(s) \
+-     (EXT2_BLOCK_SIZE(s) / sizeof (struct ext2_group_desc))
++	(EXT2_BLOCK_SIZE(s) / EXT2_DESC_SIZE(s))
++
+ /* linux/stat.h */
+ #define S_IFMT  00170000
+ #define S_IFLNK  0120000
+@@ -239,8 +393,8 @@ struct ext2_dir_entry
+  * ffz = Find First Zero in word. Undefined if no zero exists,
+  * so code should check against ~0UL first..
+  */
+-static __inline__ unsigned long
+-ffz (unsigned long word)
++static __inline__ unsigned int
++ffz (unsigned int word)
+ {
+   __asm__ ("bsfl %1,%0"
+ :	   "=r" (word)
+@@ -260,7 +414,7 @@ ext2fs_mount (void)
+        && (! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_EXT2FS))
+        && (! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_OTHER)))
+       || part_length < (SBLOCK + (sizeof (struct ext2_super_block) / DEV_BSIZE))
+-      || !devread (SBLOCK, 0, sizeof (struct ext2_super_block),
++      || !devread (SBLOCK, SBOFF, sizeof (struct ext2_super_block),
+ 		   (char *) SUPERBLOCK)
+       || SUPERBLOCK->s_magic != EXT2_SUPER_MAGIC)
+       retval = 0;
+@@ -276,7 +430,7 @@ ext2_rdfsb (int fsblock, int buffer)
+   printf ("fsblock %d buffer %d\n", fsblock, buffer);
+ #endif /* E2DEBUG */
+   return devread (fsblock * (EXT2_BLOCK_SIZE (SUPERBLOCK) / DEV_BSIZE), 0,
+-		  EXT2_BLOCK_SIZE (SUPERBLOCK), (char *) buffer);
++		  EXT2_BLOCK_SIZE (SUPERBLOCK), (char *) (unsigned long) buffer);
+ }
+ 
+ /* from
+@@ -386,6 +540,122 @@ ext2fs_block_map (int logical_block)
+     [logical_block & (EXT2_ADDR_PER_BLOCK (SUPERBLOCK) - 1)];
+ }
+ 
++/* extent binary search index
++ * find closest index in the current level extent tree
++ * kind of from ext4_ext_binsearch_idx in ext4/extents.c
++ */
++static struct ext4_extent_idx*
++ext4_ext_binsearch_idx(struct ext4_extent_header* eh, int logical_block)
++{
++  struct ext4_extent_idx *r, *l, *m;
++  l = EXT_FIRST_INDEX(eh) + 1;
++  r = EXT_LAST_INDEX(eh);
++  while (l <= r)
++    {
++	  m = l + (r - l) / 2;
++	  if (logical_block < m->ei_block)
++		  r = m - 1;
++	  else
++		  l = m + 1;
++	}
++  return (struct ext4_extent_idx*)(l - 1);
++}
++
++/* extent binary search
++ * find closest extent in the leaf level
++ * kind of from ext4_ext_binsearch in ext4/extents.c
++ */
++static struct ext4_extent*
++ext4_ext_binsearch(struct ext4_extent_header* eh, int logical_block)
++{
++  struct ext4_extent *r, *l, *m;
++  l = EXT_FIRST_EXTENT(eh) + 1;
++  r = EXT_LAST_EXTENT(eh);
++  while (l <= r)
++    {
++	  m = l + (r - l) / 2;
++	  if (logical_block < m->ee_block)
++		  r = m - 1;
++	  else
++		  l = m + 1;
++	}
++  return (struct ext4_extent*)(l - 1);
++}
++
++/* Maps extents enabled logical block into physical block via an inode.
++ * EXT4_HUGE_FILE_FL should be checked before calling this.
++ */
++static int
++ext4fs_block_map (int logical_block)
++{
++  struct ext4_extent_header *eh;
++  struct ext4_extent *ex, *extent;
++  struct ext4_extent_idx *ei, *index;
++  int depth;
++  int i;
++
++#ifdef E2DEBUG
++  unsigned char *i;
++  for (i = (unsigned char *) INODE;
++       i < ((unsigned char *) INODE + sizeof (struct ext2_inode));
++       i++)
++    {
++      printf ("%c", "0123456789abcdef"[*i >> 4]);
++      printf ("%c", "0123456789abcdef"[*i % 16]);
++      if (!((i + 1 - (unsigned char *) INODE) % 16))
++	{
++	  printf ("\n");
++	}
++      else
++	{
++	  printf (" ");
++	}
++    }
++  printf ("logical block %d\n", logical_block);
++#endif /* E2DEBUG */
++  eh = (struct ext4_extent_header*)INODE->i_block;
++  if (eh->eh_magic != EXT4_EXT_MAGIC)
++  {
++          errnum = ERR_FSYS_CORRUPT;
++          return -1;
++  }
++  while((depth = eh->eh_depth) != 0)
++  	{ /* extent index */
++	  if (eh->eh_magic != EXT4_EXT_MAGIC)
++	  {
++	          errnum = ERR_FSYS_CORRUPT;
++		  return -1;
++	  }
++	  ei = ext4_ext_binsearch_idx(eh, logical_block);
++	  if (ei->ei_leaf_hi)
++	{/* 64bit physical block number not supported */
++	  errnum = ERR_FILELENGTH;
++	  return -1;
++	}
++	  if (!ext2_rdfsb(ei->ei_leaf_lo, DATABLOCK1))
++	{
++	  errnum = ERR_FSYS_CORRUPT;
++	  return -1;
++	}
++	  eh = (struct ext4_extent_header*)DATABLOCK1;
++  	}
++
++  /* depth==0, we come to the leaf */
++  ex = ext4_ext_binsearch(eh, logical_block);
++  if (ex->ee_start_hi)
++	{/* 64bit physical block number not supported */
++	  errnum = ERR_FILELENGTH;
++	  return -1;
++	}
++  if ((ex->ee_block + ex->ee_len) < logical_block)
++	{
++	  errnum = ERR_FSYS_CORRUPT;
++	  return -1;
++	}
++  return ex->ee_start_lo + logical_block - ex->ee_block;
++
++}
++
+ /* preconditions: all preconds of ext2fs_block_map */
+ int
+ ext2fs_read (char *buf, int len)
+@@ -420,6 +690,11 @@ ext2fs_read (char *buf, int len)
+       /* find the (logical) block component of our location */
+       logical_block = filepos >> EXT2_BLOCK_SIZE_BITS (SUPERBLOCK);
+       offset = filepos & (EXT2_BLOCK_SIZE (SUPERBLOCK) - 1);
++      /* map extents enabled logical block number to physical fs on-disk block number */
++      if (EXT4_HAS_INCOMPAT_FEATURE(SUPERBLOCK,EXT4_FEATURE_INCOMPAT_EXTENTS)
++                    && INODE->i_flags & EXT4_EXTENTS_FL)
++          map = ext4fs_block_map (logical_block);
++      else
+       map = ext2fs_block_map (logical_block);
+ #ifdef E2DEBUG
+       printf ("map=%d\n", map);
+@@ -504,7 +779,7 @@ ext2fs_dir (char *dirname)
+   int desc;			/* index within that group */
+   int ino_blk;			/* fs pointer of the inode's information */
+   int str_chk = 0;		/* used to hold the results of a string compare */
+-  struct ext2_group_desc *gdp;
++  struct ext4_group_desc *ext4_gdp;
+   struct ext2_inode *raw_inode;	/* inode info corresponding to current_ino */
+ 
+   char linkbuf[PATH_MAX];	/* buffer for following symbolic links */
+@@ -546,18 +821,25 @@ ext2fs_dir (char *dirname)
+ #endif /* E2DEBUG */
+       if (!ext2_rdfsb (
+ 			(WHICH_SUPER + group_desc + SUPERBLOCK->s_first_data_block),
+-			(int) GROUP_DESC))
++			(unsigned long) GROUP_DESC))
+ 	{
+ 	  return 0;
+ 	}
+-      gdp = GROUP_DESC;
+-      ino_blk = gdp[desc].bg_inode_table +
++	  ext4_gdp = (struct ext4_group_desc *)( (__u8*)GROUP_DESC +
++			  		desc * EXT2_DESC_SIZE(SUPERBLOCK));
++	  if (EXT4_HAS_INCOMPAT_FEATURE(SUPERBLOCK, EXT4_FEATURE_INCOMPAT_64BIT)
++		&& (! ext4_gdp->bg_inode_table_hi))
++	{/* 64bit itable not supported */
++	  errnum = ERR_FILELENGTH;
++	  return -1;
++	}
++      ino_blk = ext4_gdp->bg_inode_table +
+ 	(((current_ino - 1) % (SUPERBLOCK->s_inodes_per_group))
+-	 >> log2 (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode)));
++	 >> log2 (EXT2_INODES_PER_BLOCK (SUPERBLOCK)));
+ #ifdef E2DEBUG
+       printf ("inode table fsblock=%d\n", ino_blk);
+ #endif /* E2DEBUG */
+-      if (!ext2_rdfsb (ino_blk, (int) INODE))
++      if (!ext2_rdfsb (ino_blk, (unsigned long) INODE))
+ 	{
+ 	  return 0;
+ 	}
+@@ -565,13 +847,12 @@ ext2fs_dir (char *dirname)
+       /* reset indirect blocks! */
+       mapblock2 = mapblock1 = -1;
+ 
+-      raw_inode = INODE +
+-	((current_ino - 1)
+-	 & (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode) - 1));
++      raw_inode = (struct ext2_inode *)((char *)INODE +
++	((current_ino - 1) & (EXT2_INODES_PER_BLOCK (SUPERBLOCK) - 1)) *
++	EXT2_INODE_SIZE (SUPERBLOCK));
+ #ifdef E2DEBUG
+       printf ("ipb=%d, sizeof(inode)=%d\n",
+-	      (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode)),
+-	      sizeof (struct ext2_inode));
++	      EXT2_INODES_PER_BLOCK (SUPERBLOCK), EXT2_INODE_SIZE (SUPERBLOCK));
+       printf ("inode=%x, raw_inode=%x\n", INODE, raw_inode);
+       printf ("offset into inode table block=%d\n", (int) raw_inode - (int) INODE);
+       for (i = (unsigned char *) INODE; i <= (unsigned char *) raw_inode;
+@@ -629,7 +910,10 @@ ext2fs_dir (char *dirname)
+ 	    }
+ 	  linkbuf[filemax + len] = '\0';
+ 
+-	  /* Read the symlink data. */
++	  /* Read the symlink data.
++	   * Slow symlink is extents enabled
++	   * But since grub_read invokes ext2fs_read, nothing to change here
++	   */
+ 	  if (! ext2_is_fast_symlink ())
+ 	    {
+ 	      /* Read the necessary blocks, and reset the file pointer. */
+@@ -640,7 +924,9 @@ ext2fs_dir (char *dirname)
+ 	    }
+ 	  else
+ 	    {
+-	      /* Copy the data directly from the inode. */
++	      /* Copy the data directly from the inode.
++	       * Fast symlink is not extents enabled
++	       */
+ 	      len = filemax;
+ 	      memmove (linkbuf, (char *) INODE->i_block, len);
+ 	    }
+@@ -674,6 +960,13 @@ ext2fs_dir (char *dirname)
+ 	      errnum = ERR_BAD_FILETYPE;
+ 	      return 0;
+ 	    }
++	  /* if file is too large, just stop and report an error*/
++	  if ( (INODE->i_flags & EXT4_HUGE_FILE_FL) && !(INODE->i_size_high))
++	    {
++		  /* file too large, stop reading */
++		  errnum = ERR_FILELENGTH;
++		  return 0;
++	    }
+ 
+ 	  filemax = (INODE->i_size);
+ 	  return 1;
+@@ -728,17 +1021,28 @@ ext2fs_dir (char *dirname)
+ 	    }
+ 
+ 	  /* else, find the (logical) block component of our location */
++	  /* ext4 logical block number the same as ext2/3 */
+ 	  blk = loc >> EXT2_BLOCK_SIZE_BITS (SUPERBLOCK);
+ 
+ 	  /* we know which logical block of the directory entry we are looking
+ 	     for, now we have to translate that to the physical (fs) block on
+ 	     the disk */
++	  /* map extents enabled logical block number to physical fs on-disk block number */
++	  if (EXT4_HAS_INCOMPAT_FEATURE(SUPERBLOCK,EXT4_FEATURE_INCOMPAT_EXTENTS)
++                        && INODE->i_flags & EXT4_EXTENTS_FL)
++              map = ext4fs_block_map (blk);
++	  else
+ 	  map = ext2fs_block_map (blk);
+ #ifdef E2DEBUG
+ 	  printf ("fs block=%d\n", map);
+ #endif /* E2DEBUG */
+ 	  mapblock2 = -1;
+-	  if ((map < 0) || !ext2_rdfsb (map, DATABLOCK2))
++	  if (map < 0)
++	  {
++	      *rest = ch;
++	      return 0;
++	  }
++          if (!ext2_rdfsb (map, DATABLOCK2))
+ 	    {
+ 	      errnum = ERR_FSYS_CORRUPT;
+ 	      *rest = ch;
+diff --git a/stage2/fsys_fat.c b/stage2/fsys_fat.c
+index f40e658..f1157f4 100644
+--- a/stage2/fsys_fat.c
++++ b/stage2/fsys_fat.c
+@@ -49,13 +49,13 @@ struct fat_superblock
+ /* pointer(s) into filesystem info buffer for DOS stuff */
+ #define FAT_SUPER ( (struct fat_superblock *) \
+  		    ( FSYS_BUF + 32256) )/* 512 bytes long */
+-#define FAT_BUF   ( FSYS_BUF + 30208 )	/* 4 sector FAT buffer */
+-#define NAME_BUF  ( FSYS_BUF + 29184 )	/* Filename buffer (833 bytes) */
++#define FAT_BUF   ( FSYS_BUF + 28160 )	/* 4 sector FAT buffer */
++#define NAME_BUF  ( FSYS_BUF + 27136 )	/* Filename buffer (833 bytes) */
+ 
+-#define FAT_CACHE_SIZE 2048
++#define FAT_CACHE_SIZE 4096
+ 
+-static __inline__ unsigned long
+-log2 (unsigned long word)
++static __inline__ unsigned int
++grub_log2 (unsigned int word)
+ {
+   __asm__ ("bsfl %1,%0"
+ 	   : "=r" (word)
+@@ -68,9 +68,12 @@ fat_mount (void)
+ {
+   struct fat_bpb bpb;
+   __u32 magic, first_fat;
++  int sector_size;
+   
+   /* Check partition type for harddisk */
+   if (((current_drive & 0x80) || (current_slice != 0))
++      && (current_slice != PC_SLICE_TYPE_EXT2FS)
++      && (current_slice != PC_SLICE_TYPE_LINUX_RAID)
+       && ! IS_PC_SLICE_TYPE_FAT (current_slice)
+       && (! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_MSDOS)))
+     return 0;
+@@ -79,14 +82,16 @@ fat_mount (void)
+   if (! devread (0, 0, sizeof (bpb), (char *) &bpb))
+     return 0;
+ 
++  sector_size = get_sector_size(current_drive);
++
+   /* Check if the number of sectors per cluster is zero here, to avoid
+      zero division.  */
+   if (bpb.sects_per_clust == 0)
+     return 0;
+   
+-  FAT_SUPER->sectsize_bits = log2 (FAT_CVT_U16 (bpb.bytes_per_sect));
++  FAT_SUPER->sectsize_bits = grub_log2 (FAT_CVT_U16 (bpb.bytes_per_sect));
+   FAT_SUPER->clustsize_bits
+-    = FAT_SUPER->sectsize_bits + log2 (bpb.sects_per_clust);
++    = FAT_SUPER->sectsize_bits + grub_log2 (bpb.sects_per_clust);
+   
+   /* Fill in info about super block */
+   FAT_SUPER->num_sectors = FAT_CVT_U16 (bpb.short_sectors) 
+@@ -106,7 +111,7 @@ fat_mount (void)
+   FAT_SUPER->data_offset = 
+     FAT_SUPER->root_offset
+     + ((FAT_SUPER->root_max - 1) >> FAT_SUPER->sectsize_bits) + 1;
+-  FAT_SUPER->num_clust = 
++  FAT_SUPER->num_clust =
+     2 + ((FAT_SUPER->num_sectors - FAT_SUPER->data_offset) 
+ 	 / bpb.sects_per_clust);
+   FAT_SUPER->sects_per_clust = bpb.sects_per_clust;
+@@ -153,11 +158,11 @@ fat_mount (void)
+   /* Now do some sanity checks */
+   
+   if (FAT_CVT_U16(bpb.bytes_per_sect) != (1 << FAT_SUPER->sectsize_bits)
+-      || FAT_CVT_U16(bpb.bytes_per_sect) != SECTOR_SIZE
++      || FAT_CVT_U16(bpb.bytes_per_sect) != sector_size
+       || bpb.sects_per_clust != (1 << (FAT_SUPER->clustsize_bits
+  				       - FAT_SUPER->sectsize_bits))
+       || FAT_SUPER->num_clust <= 2
+-      || (FAT_SUPER->fat_size * FAT_SUPER->num_clust / (2 * SECTOR_SIZE)
++      || (FAT_SUPER->fat_size * FAT_SUPER->num_clust / (2 * sector_size)
+  	  > FAT_SUPER->fat_length))
+     return 0;
+   
+@@ -201,6 +206,7 @@ fat_read (char *buf, int len)
+   int offset;
+   int ret = 0;
+   int size;
++  int sector_size = get_sector_size(current_drive);
+   
+   if (FAT_SUPER->file_cluster < 0)
+     {
+@@ -236,10 +242,10 @@ fat_read (char *buf, int len)
+ 	  if (cached_pos < 0 || 
+ 	      (cached_pos + FAT_SUPER->fat_size) > 2*FAT_CACHE_SIZE)
+ 	    {
+-	      FAT_SUPER->cached_fat = (fat_entry & ~(2*SECTOR_SIZE - 1));
++	      FAT_SUPER->cached_fat = (fat_entry & ~(2*sector_size - 1));
+ 	      cached_pos = (fat_entry - FAT_SUPER->cached_fat);
+ 	      sector = FAT_SUPER->fat_offset
+-		+ FAT_SUPER->cached_fat / (2*SECTOR_SIZE);
++		+ FAT_SUPER->cached_fat / (2*sector_size);
+ 	      if (!devread (sector, 0, FAT_CACHE_SIZE, (char*) FAT_BUF))
+ 		return 0;
+ 	    }
+@@ -257,6 +263,8 @@ fat_read (char *buf, int len)
+ 	    return ret;
+ 	  if (next_cluster < 2 || next_cluster >= FAT_SUPER->num_clust)
+ 	    {
++	      grub_printf("next_cluster: %d FAT_SUPER->num_clust: %d\n",
++		next_cluster, FAT_SUPER->num_clust);
+ 	      errnum = ERR_FSYS_CORRUPT;
+ 	      return 0;
+ 	    }
+@@ -340,7 +348,8 @@ fat_dir (char *dirname)
+   /* Directories don't have a file size */
+   filemax = MAXINT;
+   
+-  for (rest = dirname; (ch = *rest) && !isspace (ch) && ch != '/'; rest++);
++  for (rest = dirname; (ch = *rest) && !isspace (ch) && ch != '/'; rest++)
++      *rest = tolower(*rest);
+   
+   *rest = 0;
+   
+@@ -432,7 +441,7 @@ fat_dir (char *dirname)
+ 		goto print_filename;
+ # endif /* STAGE1_5 */
+ 	      
+-	      if (substring (dirname, filename) == 0)
++	      if (subcasestring (dirname, filename) == 0)
+ 		break;
+ 	    }
+ 	}
+@@ -459,7 +468,7 @@ fat_dir (char *dirname)
+       if (do_possibilities)
+ 	{
+ 	print_filename:
+-	  if (substring (dirname, filename) <= 0)
++	  if (subcasestring (dirname, filename) <= 0)
+ 	    {
+ 	      if (print_possibilities > 0)
+ 		print_possibilities = -print_possibilities;
+@@ -469,7 +478,7 @@ fat_dir (char *dirname)
+ 	}
+ # endif /* STAGE1_5 */
+       
+-      if (substring (dirname, filename) == 0)
++      if (subcasestring (dirname, filename) == 0)
+ 	break;
+     }
+   
+diff --git a/stage2/fsys_iso9660.c b/stage2/fsys_iso9660.c
+index 90e4aa8..4d8a300 100644
+--- a/stage2/fsys_iso9660.c
++++ b/stage2/fsys_iso9660.c
+@@ -56,8 +56,8 @@ struct iso_inode_info {
+ #define NAME_BUF        ((unsigned char *)(FSYS_BUF + 8192))
+ 
+ 
+-static inline unsigned long
+-log2 (unsigned long word)
++static inline unsigned int
++grub_log2 (unsigned int word)
+ {
+   asm volatile ("bsfl %1,%0"
+ 		:          "=r" (word)
+@@ -68,7 +68,7 @@ log2 (unsigned long word)
+ static int
+ iso9660_devread (int sector, int byte_offset, int byte_len, char *buf)
+ {
+-  unsigned short sector_size_lg2 = log2(buf_geom.sector_size);
++  unsigned short sector_size_lg2 = grub_log2(buf_geom.sector_size);
+ 
+   /*
+    * We have to use own devread() function since BIOS return wrong geometry
+diff --git a/stage2/fsys_jfs.c b/stage2/fsys_jfs.c
+index 307f836..d63b1de 100644
+--- a/stage2/fsys_jfs.c
++++ b/stage2/fsys_jfs.c
+@@ -207,19 +207,20 @@ int
+ jfs_mount (void)
+ {
+ 	struct jfs_superblock super;
++	int sector_bits = get_sector_bits(current_drive);
+ 
+-	if (part_length < MINJFS >> SECTOR_BITS
+-	    || !devread (SUPER1_OFF >> SECTOR_BITS, 0,
++	if (part_length < MINJFS >> sector_bits
++	    || !devread (SUPER1_OFF >> sector_bits, 0,
+ 			 sizeof(struct jfs_superblock), (char *)&super)
+ 	    || (super.s_magic != JFS_MAGIC)
+-	    || !devread ((AITBL_OFF >> SECTOR_BITS) + FILESYSTEM_I,
++	    || !devread ((AITBL_OFF >> sector_bits) + FILESYSTEM_I,
+ 			 0, DISIZE, (char*)fileset)) {
+ 		return 0;
+ 	}
+ 
+ 	jfs.bsize = super.s_bsize;
+ 	jfs.l2bsize = super.s_l2bsize;
+-	jfs.bdlog = jfs.l2bsize - SECTOR_BITS;
++	jfs.bdlog = jfs.l2bsize - sector_bits;
+ 
+ 	return 1;
+ }
+@@ -387,9 +388,10 @@ int
+ jfs_embed (int *start_sector, int needed_sectors)
+ {
+ 	struct jfs_superblock super;
++	int sector_bits = get_sector_bits(current_drive);
+ 
+ 	if (needed_sectors > 63
+-	    || !devread (SUPER1_OFF >> SECTOR_BITS, 0,
++	    || !devread (SUPER1_OFF >> sector_bits, 0,
+ 			 sizeof (struct jfs_superblock),
+ 			 (char *)&super)
+ 	    || (super.s_magic != JFS_MAGIC)) {
+diff --git a/stage2/fsys_minix.c b/stage2/fsys_minix.c
+index 5c76796..175ecf2 100644
+--- a/stage2/fsys_minix.c
++++ b/stage2/fsys_minix.c
+@@ -138,11 +138,11 @@ struct minix_dir_entry {
+ #define SUPERBLOCK \
+     ((struct minix_super_block *)(FSYS_BUF))
+ #define INODE \
+-    ((struct minix_inode *)((int) SUPERBLOCK + BLOCK_SIZE))
++    ((struct minix_inode *)((unsigned long) SUPERBLOCK + BLOCK_SIZE))
+ #define DATABLOCK1 \
+-    ((int)((int)INODE + sizeof(struct minix_inode)))
++    ((unsigned long)INODE + sizeof(struct minix_inode))
+ #define DATABLOCK2 \
+-    ((int)((int)DATABLOCK1 + BLOCK_SIZE))
++    ((unsigned long)DATABLOCK1 + BLOCK_SIZE)
+ 
+ /* linux/stat.h */
+ #define S_IFMT  00170000
+@@ -193,7 +193,7 @@ static int
+ minix_rdfsb (int fsblock, int buffer)
+ {
+   return devread (fsblock * (BLOCK_SIZE / DEV_BSIZE), 0,
+-		  BLOCK_SIZE, (char *) buffer);
++		  BLOCK_SIZE, (char *) (unsigned long) buffer);
+ }
+ 
+ /* Maps LOGICAL_BLOCK (the file offset divided by the blocksize) into
+@@ -336,7 +336,7 @@ minix_dir (char *dirname)
+ 
+       ino_blk = (2 + SUPERBLOCK->s_imap_blocks + SUPERBLOCK->s_zmap_blocks
+ 		 + (current_ino - 1) / MINIX_INODES_PER_BLOCK);
+-      if (! minix_rdfsb (ino_blk, (int) INODE))
++      if (! minix_rdfsb (ino_blk, (unsigned long) INODE))
+ 	return 0;
+ 
+       /* reset indirect blocks! */
+diff --git a/stage2/fsys_reiserfs.c b/stage2/fsys_reiserfs.c
+index 93ec5f8..f46fcb2 100644
+--- a/stage2/fsys_reiserfs.c
++++ b/stage2/fsys_reiserfs.c
+@@ -292,7 +292,6 @@ struct reiserfs_de_head
+ 
+ /* The size of the node cache */
+ #define FSYSREISER_CACHE_SIZE 24*1024
+-#define FSYSREISER_MIN_BLOCKSIZE SECTOR_SIZE
+ #define FSYSREISER_MAX_BLOCKSIZE FSYSREISER_CACHE_SIZE / 3
+ 
+ /* Info about currently opened file */
+@@ -341,19 +340,19 @@ struct fsys_reiser_info
+ /* The cached s+tree blocks in FSYS_BUF,  see below
+  * for a more detailed description.
+  */
+-#define ROOT     ((char *) ((int) FSYS_BUF))
++#define ROOT     ((char *) ((unsigned long) FSYS_BUF))
+ #define CACHE(i) (ROOT + ((i) << INFO->fullblocksize_shift))
+ #define LEAF     CACHE (DISK_LEAF_NODE_LEVEL)
+ 
+ #define BLOCKHEAD(cache) ((struct block_head *) cache)
+-#define ITEMHEAD         ((struct item_head  *) ((int) LEAF + BLKH_SIZE))
+-#define KEY(cache)       ((struct key        *) ((int) cache + BLKH_SIZE))
++#define ITEMHEAD         ((struct item_head  *) ((unsigned long) LEAF + BLKH_SIZE))
++#define KEY(cache)       ((struct key        *) ((unsigned long) cache + BLKH_SIZE))
+ #define DC(cache)        ((struct disk_child *) \
+-			  ((int) cache + BLKH_SIZE + KEY_SIZE * nr_item))
++			  ((unsigned long) cache + BLKH_SIZE + KEY_SIZE * nr_item))
+ /* The fsys_reiser_info block.
+  */
+ #define INFO \
+-    ((struct fsys_reiser_info *) ((int) FSYS_BUF + FSYSREISER_CACHE_SIZE))
++    ((struct fsys_reiser_info *) ((unsigned long) FSYS_BUF + FSYSREISER_CACHE_SIZE))
+ /* 
+  * The journal cache.  For each transaction it contains the number of
+  * blocks followed by the real block numbers of this transaction.  
+@@ -366,8 +365,8 @@ struct fsys_reiser_info
+ #define JOURNAL_END      ((__u32 *) (FSYS_BUF + FSYS_BUFLEN))
+ 
+ 
+-static __inline__ unsigned long
+-log2 (unsigned long word)
++static __inline__ unsigned int
++grub_log2 (unsigned int word)
+ {
+   __asm__ ("bsfl %1,%0"
+ 	   : "=r" (word)
+@@ -569,9 +568,11 @@ int
+ reiserfs_mount (void)
+ {
+   struct reiserfs_super_block super;
+-  int superblock = REISERFS_DISK_OFFSET_IN_BYTES >> SECTOR_BITS;
++  int sector_bits = get_sector_bits(current_drive);
++  int sector_size = get_sector_size(current_drive);
++  int superblock = REISERFS_DISK_OFFSET_IN_BYTES >> sector_bits;
+ 
+-  if (part_length < superblock + (sizeof (super) >> SECTOR_BITS)
++  if (part_length < superblock + (sizeof (super) >> sector_bits)
+       || ! devread (superblock, 0, sizeof (struct reiserfs_super_block), 
+ 		(char *) &super)
+       || (substring (REISER3FS_SUPER_MAGIC_STRING, super.s_magic) > 0
+@@ -582,8 +583,8 @@ reiserfs_mount (void)
+ 	  <= REISERFS_DISK_OFFSET_IN_BYTES))
+     {
+       /* Try old super block position */
+-      superblock = REISERFS_OLD_DISK_OFFSET_IN_BYTES >> SECTOR_BITS;
+-      if (part_length < superblock + (sizeof (super) >> SECTOR_BITS)
++      superblock = REISERFS_OLD_DISK_OFFSET_IN_BYTES >> sector_bits;
++      if (part_length < superblock + (sizeof (super) >> sector_bits)
+ 	  || ! devread (superblock, 0, sizeof (struct reiserfs_super_block), 
+ 			(char *) &super))
+ 	return 0;
+@@ -594,7 +595,7 @@ reiserfs_mount (void)
+ 	{
+ 	  /* pre journaling super block ? */
+ 	  if (substring (REISERFS_SUPER_MAGIC_STRING, 
+-			 (char*) ((int) &super + 20)) > 0)
++			 (char*) ((unsigned long) &super + 20)) > 0)
+ 	    return 0;
+ 	  
+ 	  super.s_blocksize = REISERFS_OLD_BLOCKSIZE;
+@@ -609,8 +610,8 @@ reiserfs_mount (void)
+   
+   INFO->version = super.s_version;
+   INFO->blocksize = super.s_blocksize;
+-  INFO->fullblocksize_shift = log2 (super.s_blocksize);
+-  INFO->blocksize_shift = INFO->fullblocksize_shift - SECTOR_BITS;
++  INFO->fullblocksize_shift = grub_log2 (super.s_blocksize);
++  INFO->blocksize_shift = INFO->fullblocksize_shift - sector_bits;
+   INFO->cached_slots = 
+     (FSYSREISER_CACHE_SIZE >> INFO->fullblocksize_shift) - 1;
+ 
+@@ -622,9 +623,9 @@ reiserfs_mount (void)
+   /* Clear node cache. */
+   memset (INFO->blocks, 0, sizeof (INFO->blocks));
+ 
+-  if (super.s_blocksize < FSYSREISER_MIN_BLOCKSIZE
++  if (super.s_blocksize < get_sector_size(current_drive)
+       || super.s_blocksize > FSYSREISER_MAX_BLOCKSIZE
+-      || (SECTOR_SIZE << INFO->blocksize_shift) != super.s_blocksize)
++      || (sector_size << INFO->blocksize_shift) != super.s_blocksize)
+     return 0;
+ 
+   /* Initialize journal code.  If something fails we end with zero
+@@ -1215,9 +1216,10 @@ int
+ reiserfs_embed (int *start_sector, int needed_sectors)
+ {
+   struct reiserfs_super_block super;
++  int sector_bits = get_sector_bits(current_drive);
+   int num_sectors;
+-  
+-  if (! devread (REISERFS_DISK_OFFSET_IN_BYTES >> SECTOR_BITS, 0, 
++ 
++  if (! devread (REISERFS_DISK_OFFSET_IN_BYTES >> sector_bits, 0,
+ 		 sizeof (struct reiserfs_super_block), (char *) &super))
+     return 0;
+   
+@@ -1229,9 +1231,9 @@ reiserfs_embed (int *start_sector, int needed_sectors)
+ 	   * the journal log */
+ 	  super.s_journal_block * super.s_blocksize 
+ 	  > REISERFS_DISK_OFFSET_IN_BYTES))
+-    num_sectors = (REISERFS_DISK_OFFSET_IN_BYTES >> SECTOR_BITS) - 1;
++    num_sectors = (REISERFS_DISK_OFFSET_IN_BYTES >> sector_bits) - 1;
+   else
+-    num_sectors = (REISERFS_OLD_DISK_OFFSET_IN_BYTES >> SECTOR_BITS) - 1;
++    num_sectors = (REISERFS_OLD_DISK_OFFSET_IN_BYTES >> sector_bits) - 1;
+   
+   return (needed_sectors <= num_sectors);
+ }
+diff --git a/stage2/fsys_vstafs.c b/stage2/fsys_vstafs.c
+index a116717..652e784 100644
+--- a/stage2/fsys_vstafs.c
++++ b/stage2/fsys_vstafs.c
+@@ -30,8 +30,8 @@ static struct dir_entry *vstafs_nextdir (void);
+ 
+ 
+ #define FIRST_SECTOR	((struct first_sector *) FSYS_BUF)
+-#define FILE_INFO	((struct fs_file *) (int) FIRST_SECTOR + 8192)
+-#define DIRECTORY_BUF	((struct dir_entry *) (int) FILE_INFO + 512)
++#define FILE_INFO	((struct fs_file *) (unsigned long) FIRST_SECTOR + 8192)
++#define DIRECTORY_BUF	((struct dir_entry *) (unsigned long) FILE_INFO + 512)
+ 
+ #define ROOT_SECTOR	1
+ 
+@@ -186,35 +186,35 @@ vstafs_dir (char *dirname)
+ int 
+ vstafs_read (char *addr, int len)
+ {
+-  struct alloc *a;
++  struct alloc *al;
+   int size, ret = 0, offset, curr_len = 0;
+-  int curr_ext;
++  int this_ext;
+   char extent;
+   int ext_size;
+   char *curr_pos;
+   
+   get_file_info (f_sector);
+   size = FILE_INFO->len-VSTAFS_START_DATA;
+-  a = FILE_INFO->blocks;
++  al = FILE_INFO->blocks;
+   
+   if (filepos > 0)
+     {
+-      if (filepos < a[0].a_len * 512 - VSTAFS_START_DATA)
++      if (filepos < al[0].a_len * 512 - VSTAFS_START_DATA)
+ 	{
+ 	  offset = filepos + VSTAFS_START_DATA;
+ 	  extent = 0;
+-	  curr_len = a[0].a_len * 512 - offset - filepos; 
++	  curr_len = al[0].a_len * 512 - offset - filepos; 
+ 	}
+       else
+ 	{
+-	  ext_size = a[0].a_len * 512 - VSTAFS_START_DATA;
++	  ext_size = al[0].a_len * 512 - VSTAFS_START_DATA;
+ 	  offset = filepos - ext_size;
+ 	  extent = 1;
+ 	  do
+ 	    {
+ 	      curr_len -= ext_size;
+ 	      offset -= ext_size;
+-	      ext_size = a[extent+1].a_len * 512;
++	      ext_size = al[extent+1].a_len * 512;
+ 	    }
+ 	  while (extent < FILE_INFO->extents && offset>ext_size);
+ 	}
+@@ -223,16 +223,16 @@ vstafs_read (char *addr, int len)
+     {
+       offset = VSTAFS_START_DATA;
+       extent = 0;
+-      curr_len = a[0].a_len * 512 - offset;
++      curr_len = al[0].a_len * 512 - offset;
+     }
+   
+   curr_pos = addr;
+   if (curr_len > len)
+     curr_len = len;
+   
+-  for (curr_ext=extent;
+-       curr_ext < FILE_INFO->extents; 
+-       curr_len = a[curr_ext].a_len * 512, curr_pos += curr_len, curr_ext++)
++  for (this_ext=extent;
++       this_ext < FILE_INFO->extents; 
++       curr_len = al[this_ext].a_len * 512, curr_pos += curr_len, this_ext++)
+     {
+       ret += curr_len;
+       size -= curr_len;
+@@ -242,7 +242,7 @@ vstafs_read (char *addr, int len)
+ 	  curr_len += size;
+ 	}
+       
+-      devread (a[curr_ext].a_start,offset, curr_len, curr_pos);
++      devread (al[this_ext].a_start,offset, curr_len, curr_pos);
+       offset = 0;
+     }
+   
+diff --git a/stage2/fsys_xfs.c b/stage2/fsys_xfs.c
+index 76c4c13..226e343 100644
+--- a/stage2/fsys_xfs.c
++++ b/stage2/fsys_xfs.c
+@@ -97,19 +97,23 @@ ino2offset (xfs_ino_t ino)
+ 	return ino & XFS_INO_MASK(XFS_INO_OFFSET_BITS);
+ }
+ 
+-static inline __const__ xfs_uint16_t
+-le16 (xfs_uint16_t x)
++static inline xfs_uint16_t __attribute__((__const__))
++le16 (xfs_uint16_t x) 
+ {
++#if 1
++	return ((x & 0xff00) >> 8) | ((x & 0xff) << 8);
++#else
+ 	__asm__("xchgb %b0,%h0"	\
+ 		: "=q" (x) \
+ 		:  "0" (x)); \
+ 		return x;
++#endif
+ }
+ 
+-static inline __const__ xfs_uint32_t
++static inline xfs_uint32_t __attribute__((__const__))
+ le32 (xfs_uint32_t x)
+ {
+-#if 0
++#if 1
+         /* 386 doesn't have bswap.  */
+ 	__asm__("bswap %0" : "=r" (x) : "0" (x));
+ #else
+@@ -122,7 +126,7 @@ le32 (xfs_uint32_t x)
+ 	return x;
+ }
+ 
+-static inline __const__ xfs_uint64_t
++static inline xfs_uint64_t __attribute__((__const__))
+ le64 (xfs_uint64_t x)
+ {
+ 	xfs_uint32_t h = x >> 32;
+@@ -187,12 +191,12 @@ fsb2daddr (xfs_fsblock_t fsbno)
+ }
+ 
+ #undef offsetof
+-#define offsetof(t,m)	((int)&(((t *)0)->m))
++#define offsetof(t,m) __builtin_offsetof(t, m)
+ 
+-static inline int
++static inline xfs_uint64_t
+ btroot_maxrecs (void)
+ {
+-	int tmp = icore.di_forkoff ? (icore.di_forkoff << 3) : xfs.isize;
++	xfs_uint64_t tmp = icore.di_forkoff ? (icore.di_forkoff << 3) : xfs.isize;
+ 
+ 	return (tmp - sizeof(xfs_bmdr_block_t) - offsetof(xfs_dinode_t, di_u)) /
+ 		(sizeof (xfs_bmbt_key_t) + sizeof (xfs_bmbt_ptr_t));
+@@ -465,7 +469,7 @@ xfs_mount (void)
+ 
+ 	xfs.bsize = le32 (super.sb_blocksize);
+ 	xfs.blklog = super.sb_blocklog;
+-	xfs.bdlog = xfs.blklog - SECTOR_BITS;
++	xfs.bdlog = xfs.blklog - get_sector_bits(current_drive);
+ 	xfs.rootino = le64 (super.sb_rootino);
+ 	xfs.isize = le16 (super.sb_inodesize);
+ 	xfs.agblocks = le32 (super.sb_agblocks);
+diff --git a/stage2/gpt.h b/stage2/gpt.h
+new file mode 100644
+index 0000000..ad6d8f1
+--- /dev/null
++++ b/stage2/gpt.h
+@@ -0,0 +1,69 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2002,2005,2006   Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifndef _GPT_H
++#define _GPT_H
++
++typedef signed char grub_int8_t;
++typedef signed short grub_int16_t;
++typedef signed int grub_int32_t;
++typedef signed long long int grub_int64_t;
++typedef unsigned char grub_uint8_t;
++typedef unsigned short grub_uint16_t;
++typedef unsigned int grub_uint32_t;
++typedef unsigned long long int grub_uint64_t;
++
++struct grub_gpt_header
++{
++  grub_uint64_t magic;
++  grub_uint32_t version;
++  grub_uint32_t headersize;
++  grub_uint32_t crc32;
++  grub_uint32_t unused1;
++  grub_uint64_t primary;
++  grub_uint64_t backup;
++  grub_uint64_t start;
++  grub_uint64_t end;
++  grub_uint8_t guid[16];
++  grub_uint64_t partitions;
++  grub_uint32_t maxpart;
++  grub_uint32_t partentry_size;
++  grub_uint32_t partentry_crc32;
++} __attribute__ ((packed));
++
++struct grub_gpt_partentry
++{
++  grub_uint64_t type1;
++  grub_uint64_t type2;
++  grub_uint8_t guid[16];
++  grub_uint64_t start;
++  grub_uint64_t end;
++  grub_uint8_t attrib;
++  char name[72];
++} __attribute__ ((packed));
++
++#define GPT_HEADER_MAGIC       0x5452415020494645ULL
++
++#define        GPT_ENTRY_SECTOR(drive,size,entry)                      \
++       ((((entry) * (size) + 1) & ~(get_sector_size(drive) - 1))       \
++       >> get_sector_bits(drive))
++#define        GPT_ENTRY_INDEX(drive, size,entry)                      \
++       ((((entry) * (size) + 1) & (get_sector_size(drive) - 1)) - 1)
++
++#endif /* _GPT_H */
+diff --git a/stage2/graphics.c b/stage2/graphics.c
+new file mode 100644
+index 0000000..81109ae
+--- /dev/null
++++ b/stage2/graphics.c
+@@ -0,0 +1,573 @@
++/* graphics.c - graphics mode support for GRUB */
++/* Implemented as a terminal type by Jeremy Katz <katzj at redhat.com> based
++ * on a patch by Paulo César Pereira de Andrade <pcpa at conectiva.com.br>
++ */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2001,2002  Red Hat, Inc.
++ *  Portions copyright (C) 2000  Conectiva, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++
++
++#ifdef SUPPORT_GRAPHICS
++
++#include <term.h>
++#include <shared.h>
++#include <graphics.h>
++
++int saved_videomode;
++unsigned char *font8x16;
++
++int graphics_inited = 0;
++static char splashimage[64];
++
++#define VSHADOW VSHADOW1
++unsigned char VSHADOW1[38400];
++unsigned char VSHADOW2[38400];
++unsigned char VSHADOW4[38400];
++unsigned char VSHADOW8[38400];
++
++/* constants to define the viewable area */
++const int x0 = 0;
++const int x1 = 80;
++const int y0 = 0;
++const int y1 = 30;
++
++/* text buffer has to be kept around so that we can write things as we
++ * scroll and the like */
++unsigned short text[80 * 30];
++
++/* why do these have to be kept here? */
++int foreground = (63 << 16) | (63 << 8) | (63), background = 0, border = 0;
++
++/* current position */
++static int fontx = 0;
++static int fonty = 0;
++
++/* global state so that we don't try to recursively scroll or cursor */
++static int no_scroll = 0;
++
++/* color state */
++static int graphics_standard_color = A_NORMAL;
++static int graphics_normal_color = A_NORMAL;
++static int graphics_highlight_color = A_REVERSE;
++static int graphics_current_color = A_NORMAL;
++static color_state graphics_color_state = COLOR_STATE_STANDARD;
++
++
++/* graphics local functions */
++static void graphics_setxy(int col, int row);
++static void graphics_scroll(void);
++
++/* FIXME: where do these really belong? */
++static inline void outb(unsigned short port, unsigned char val)
++{
++    __asm __volatile ("outb %0,%1"::"a" (val), "d" (port));
++}
++
++static void MapMask(int value) {
++    outb(0x3c4, 2);
++    outb(0x3c5, value);
++}
++
++/* bit mask register */
++static void BitMask(int value) {
++    outb(0x3ce, 8);
++    outb(0x3cf, value);
++}
++
++
++
++/* Set the splash image */
++void graphics_set_splash(char *splashfile) {
++    grub_strcpy(splashimage, splashfile);
++}
++
++/* Get the current splash image */
++char *graphics_get_splash(void) {
++    return splashimage;
++}
++
++/* Initialize a vga16 graphics display with the palette based off of
++ * the image in splashimage.  If the image doesn't exist, leave graphics
++ * mode.  */
++int graphics_init()
++{
++    if (!read_image(splashimage)) {
++	current_term = term_table;
++        grub_printf("failed to read image\n");
++        return 0;
++    }
++
++    font8x16 = (unsigned char*)graphics_get_font();
++
++    graphics_inited = 1;
++
++    /* make sure that the highlight color is set correctly */
++    graphics_highlight_color = ((graphics_normal_color >> 4) | 
++				((graphics_normal_color & 0xf) << 4));
++
++    return 1;
++}
++
++/* Leave graphics mode */
++void graphics_end(void)
++{
++    if (graphics_inited) {
++        set_videomode(saved_videomode);
++        graphics_inited = 0;
++    }
++}
++
++/* Print ch on the screen.  Handle any needed scrolling or the like */
++void graphics_putchar(int ch) {
++    ch &= 0xff;
++
++    graphics_cursor(0);
++
++    if (ch == '\n') {
++        if (fonty + 1 < y1)
++            graphics_setxy(fontx, fonty + 1);
++        else
++            graphics_scroll();
++        graphics_cursor(1);
++        return;
++    } else if (ch == '\r') {
++        graphics_setxy(x0, fonty);
++        graphics_cursor(1);
++        return;
++    }
++
++    graphics_cursor(0);
++
++    text[fonty * 80 + fontx] = ch;
++    text[fonty * 80 + fontx] &= 0x00ff;
++    if (graphics_current_color & 0xf0)
++        text[fonty * 80 + fontx] |= 0x100;
++
++    graphics_cursor(0);
++
++    if ((fontx + 1) >= x1) {
++        graphics_setxy(x0, fonty);
++        if (fonty + 1 < y1)
++            graphics_setxy(x0, fonty + 1);
++        else
++            graphics_scroll();
++    } else {
++        graphics_setxy(fontx + 1, fonty);
++    }
++
++    graphics_cursor(1);
++}
++
++/* get the current location of the cursor */
++int graphics_getxy(void) {
++    return (fontx << 8) | fonty;
++}
++
++void graphics_gotoxy(int x, int y) {
++    graphics_cursor(0);
++
++    graphics_setxy(x, y);
++
++    graphics_cursor(1);
++}
++
++void graphics_cls(void) {
++    int i;
++    unsigned char *mem, *s1, *s2, *s4, *s8;
++
++    graphics_cursor(0);
++    graphics_gotoxy(x0, y0);
++
++    mem = (unsigned char*)VIDEOMEM;
++    s1 = (unsigned char*)VSHADOW1;
++    s2 = (unsigned char*)VSHADOW2;
++    s4 = (unsigned char*)VSHADOW4;
++    s8 = (unsigned char*)VSHADOW8;
++
++    for (i = 0; i < 80 * 30; i++)
++        text[i] = ' ';
++    graphics_cursor(1);
++
++    BitMask(0xff);
++
++    /* plano 1 */
++    MapMask(1);
++    grub_memcpy(mem, s1, 38400);
++
++    /* plano 2 */
++    MapMask(2);
++    grub_memcpy(mem, s2, 38400);
++
++    /* plano 3 */
++    MapMask(4);
++    grub_memcpy(mem, s4, 38400);
++
++    /* plano 4 */
++    MapMask(8);
++    grub_memcpy(mem, s8, 38400);
++
++    MapMask(15);
++ 
++}
++
++void graphics_setcolorstate (color_state state) {
++    switch (state) {
++    case COLOR_STATE_STANDARD:
++        graphics_current_color = graphics_standard_color;
++        break;
++    case COLOR_STATE_NORMAL:
++        graphics_current_color = graphics_normal_color;
++        break;
++    case COLOR_STATE_HIGHLIGHT:
++        graphics_current_color = graphics_highlight_color;
++        break;
++    default:
++        graphics_current_color = graphics_standard_color;
++        break;
++    }
++
++    graphics_color_state = state;
++}
++
++void graphics_setcolor (int normal_color, int highlight_color) {
++    graphics_normal_color = normal_color;
++    graphics_highlight_color = highlight_color;
++
++    graphics_setcolorstate (graphics_color_state);
++}
++
++int graphics_setcursor (int on) {
++    /* FIXME: we don't have a cursor in graphics */
++    return 0;
++}
++
++/* Open the file, and search for a valid XPM header.  Return 1 if one is found,
++ * leaving the current position as the start of the next line.  Else,
++ * return 0.
++ */
++static int xpm_open(char *s) {
++    char buf, prev, target[]="/* XPM */\n";
++    int pos=0;
++
++    if (!grub_open(s))
++        return 0;
++
++    prev='\n';
++    buf=0;
++    do {
++        if (grub_read(&buf, 1) != 1) {
++            grub_close();
++            return 0;
++        }
++        if ((pos == 0 && prev == '\n') || pos > 0) {
++            if (buf == target[pos])
++                pos++;
++            else
++                pos=0;
++        }
++        prev=buf;
++    } while (target[pos]);
++    return 1;
++}
++
++/* Read in the splashscreen image and set the palette up appropriately.
++ * Format of splashscreen is an xpm (can be gzipped) with 16 colors and
++ * 640x480. */
++int read_image(char *s)
++{
++    char buf[32], pal[16];
++    unsigned char c, base, mask, *s1, *s2, *s4, *s8;
++    unsigned i, len, idx, colors, x, y, width, height;
++
++    if (!xpm_open(s))
++        return 0;
++
++    saved_videomode = set_videomode(0x12);
++
++    /* parse info */
++    while (grub_read(&c, 1)) {
++        if (c == '"')
++            break;
++    }
++
++    while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
++        ;
++
++    i = 0;
++    width = c - '0';
++    while (grub_read(&c, 1)) {
++        if (c >= '0' && c <= '9')
++            width = width * 10 + c - '0';
++        else
++            break;
++    }
++    while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
++        ;
++
++    height = c - '0';
++    while (grub_read(&c, 1)) {
++        if (c >= '0' && c <= '9')
++            height = height * 10 + c - '0';
++        else
++            break;
++    }
++    while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
++        ;
++
++    colors = c - '0';
++    while (grub_read(&c, 1)) {
++        if (c >= '0' && c <= '9')
++            colors = colors * 10 + c - '0';
++        else
++            break;
++    }
++
++    base = 0;
++    while (grub_read(&c, 1) && c != '"')
++        ;
++
++    /* palette */
++    for (i = 0, idx = 1; i < colors; i++) {
++        len = 0;
++
++        while (grub_read(&c, 1) && c != '"')
++            ;
++        grub_read(&c, 1);       /* char */
++        base = c;
++        grub_read(buf, 4);      /* \t c # */
++
++        while (grub_read(&c, 1) && c != '"') {
++            if (len < sizeof(buf))
++                buf[len++] = c;
++        }
++
++        if (len == 6 && idx < 15) {
++            int r = ((hex(buf[0]) << 4) | hex(buf[1])) >> 2;
++            int g = ((hex(buf[2]) << 4) | hex(buf[3])) >> 2;
++            int b = ((hex(buf[4]) << 4) | hex(buf[5])) >> 2;
++
++            pal[idx] = base;
++            graphics_set_palette(idx, r, g, b);
++            ++idx;
++        }
++    }
++
++    x = y = len = 0;
++
++    s1 = (unsigned char*)VSHADOW1;
++    s2 = (unsigned char*)VSHADOW2;
++    s4 = (unsigned char*)VSHADOW4;
++    s8 = (unsigned char*)VSHADOW8;
++
++    for (i = 0; i < 38400; i++)
++        s1[i] = s2[i] = s4[i] = s8[i] = 0;
++
++    /* parse xpm data */
++    while (y < height) {
++        while (1) {
++            if (!grub_read(&c, 1)) {
++                grub_close();
++                return 0;
++            }
++            if (c == '"')
++                break;
++        }
++
++        while (grub_read(&c, 1) && c != '"') {
++            for (i = 1; i < 15; i++)
++                if (pal[i] == c) {
++                    c = i;
++                    break;
++                }
++
++            mask = 0x80 >> (x & 7);
++            if (c & 1)
++                s1[len + (x >> 3)] |= mask;
++            if (c & 2)
++                s2[len + (x >> 3)] |= mask;
++            if (c & 4)
++                s4[len + (x >> 3)] |= mask;
++            if (c & 8)
++                s8[len + (x >> 3)] |= mask;
++
++            if (++x >= 640) {
++                x = 0;
++
++                if (y < 480)
++                    len += 80;
++                ++y;
++            }
++        }
++    }
++
++    grub_close();
++
++    graphics_set_palette(0, (background >> 16), (background >> 8) & 63, 
++                background & 63);
++    graphics_set_palette(15, (foreground >> 16), (foreground >> 8) & 63, 
++                foreground & 63);
++    graphics_set_palette(0x11, (border >> 16), (border >> 8) & 63, 
++                         border & 63);
++
++    return 1;
++}
++
++
++/* Convert a character which is a hex digit to the appropriate integer */
++int hex(int v)
++{
++    if (v >= 'A' && v <= 'F')
++        return (v - 'A' + 10);
++    if (v >= 'a' && v <= 'f')
++        return (v - 'a' + 10);
++    return (v - '0');
++}
++
++
++/* move the graphics cursor location to col, row */
++static void graphics_setxy(int col, int row) {
++    if (col >= x0 && col < x1) {
++        fontx = col;
++        cursorX = col << 3;
++    }
++    if (row >= y0 && row < y1) {
++        fonty = row;
++        cursorY = row << 4;
++    }
++}
++
++/* scroll the screen */
++static void graphics_scroll(void) {
++    int i, j;
++
++    /* we don't want to scroll recursively... that would be bad */
++    if (no_scroll)
++        return;
++    no_scroll = 1;
++
++    /* move everything up a line */
++    for (j = y0 + 1; j < y1; j++) {
++        graphics_gotoxy(x0, j - 1);
++        for (i = x0; i < x1; i++) {
++            graphics_putchar(text[j * 80 + i]);
++        }
++    }
++
++    /* last line should be blank */
++    graphics_gotoxy(x0, y1 - 1);
++    for (i = x0; i < x1; i++)
++        graphics_putchar(' ');
++    graphics_setxy(x0, y1 - 1);
++
++    no_scroll = 0;
++}
++
++
++void graphics_cursor(int set) {
++    unsigned char *pat, *mem, *ptr, chr[16 << 2];
++    int i, ch, invert, offset;
++
++    if (set && no_scroll)
++        return;
++
++    offset = cursorY * 80 + fontx;
++    ch = text[fonty * 80 + fontx] & 0xff;
++    invert = (text[fonty * 80 + fontx] & 0xff00) != 0;
++    pat = font8x16 + (ch << 4);
++
++    mem = (unsigned char*)VIDEOMEM + offset;
++
++    if (!set) {
++        for (i = 0; i < 16; i++) {
++            unsigned char mask = pat[i];
++
++            if (!invert) {
++                chr[i     ] = ((unsigned char*)VSHADOW1)[offset];
++                chr[16 + i] = ((unsigned char*)VSHADOW2)[offset];
++                chr[32 + i] = ((unsigned char*)VSHADOW4)[offset];
++                chr[48 + i] = ((unsigned char*)VSHADOW8)[offset];
++
++                /* FIXME: if (shade) */
++                if (1) {
++                    if (ch == DISP_VERT || ch == DISP_LL ||
++                        ch == DISP_UR || ch == DISP_LR) {
++                        unsigned char pmask = ~(pat[i] >> 1);
++
++                        chr[i     ] &= pmask;
++                        chr[16 + i] &= pmask;
++                        chr[32 + i] &= pmask;
++                        chr[48 + i] &= pmask;
++                    }
++                    if (i > 0 && ch != DISP_VERT) {
++                        unsigned char pmask = ~(pat[i - 1] >> 1);
++
++                        chr[i     ] &= pmask;
++                        chr[16 + i] &= pmask;
++                        chr[32 + i] &= pmask;
++                        chr[48 + i] &= pmask;
++                        if (ch == DISP_HORIZ || ch == DISP_UR || ch == DISP_LR) {
++                            pmask = ~pat[i - 1];
++
++                            chr[i     ] &= pmask;
++                            chr[16 + i] &= pmask;
++                            chr[32 + i] &= pmask;
++                            chr[48 + i] &= pmask;
++                        }
++                    }
++                }
++                chr[i     ] |= mask;
++                chr[16 + i] |= mask;
++                chr[32 + i] |= mask;
++                chr[48 + i] |= mask;
++
++                offset += 80;
++            }
++            else {
++                chr[i     ] = ~mask;
++                chr[16 + i] = ~mask;
++                chr[32 + i] = ~mask;
++                chr[48 + i] = ~mask;
++            }
++        }
++    }
++    else {
++        MapMask(15);
++        ptr = mem;
++        for (i = 0; i < 16; i++, ptr += 80) {
++            cursorBuf[i] = pat[i];
++            *ptr = ~pat[i];
++        }
++        return;
++    }
++
++    offset = 0;
++    for (i = 1; i < 16; i <<= 1, offset += 16) {
++        int j;
++
++        MapMask(i);
++        ptr = mem;
++        for (j = 0; j < 16; j++, ptr += 80)
++            *ptr = chr[j + offset];
++    }
++
++    MapMask(15);
++}
++
++#endif /* SUPPORT_GRAPHICS */
+diff --git a/stage2/graphics.h b/stage2/graphics.h
+new file mode 100644
+index 0000000..a4cd9e8
+--- /dev/null
++++ b/stage2/graphics.h
+@@ -0,0 +1,42 @@
++/* graphics.h - graphics console interface */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2002  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifndef GRAPHICS_H
++#define GRAPHICS_H
++
++/* magic constant */
++#define VIDEOMEM 0xA0000
++
++/* function prototypes */
++char *graphics_get_splash(void);
++
++int read_image(char *s);
++void graphics_cursor(int set);
++
++/* function prototypes for asm functions */
++void * graphics_get_font();
++void graphics_set_palette(int idx, int red, int green, int blue);
++void set_int1c_handler();
++void unset_int1c_handler();
++
++extern short cursorX, cursorY;
++extern char cursorBuf[16];
++
++#endif /* GRAPHICS_H */
+diff --git a/stage2/gunzip.c b/stage2/gunzip.c
+index 8835089..45a2312 100644
+--- a/stage2/gunzip.c
++++ b/stage2/gunzip.c
+@@ -141,7 +141,7 @@ static int gzip_filepos;
+ static int gzip_filemax;
+ static int gzip_fsmax;
+ static int saved_filepos;
+-static unsigned long gzip_crc;
++static unsigned int gzip_crc;
+ 
+ /* internal extra variables for use of inflate code */
+ static int block_type;
+@@ -169,7 +169,14 @@ linalloc (int size)
+ static void
+ reset_linalloc (void)
+ {
++#ifdef PLATFORM_EFI
++  unsigned int top = (mbi.mem_upper << 10) + 0x100000;
++  if (top > GRUB_SCRATCH_MEM_SIZE)
++    top = GRUB_SCRATCH_MEM_SIZE;
++  linalloc_topaddr = RAW_ADDR (top);
++#else
+   linalloc_topaddr = RAW_ADDR ((mbi.mem_upper << 10) + 0x100000);
++#endif
+ }
+ 
+ 
+@@ -253,7 +260,7 @@ bad_field (int len)
+ 
+ typedef unsigned char uch;
+ typedef unsigned short ush;
+-typedef unsigned long ulg;
++typedef unsigned int ulg;
+ 
+ /*
+  *  Window Size
+@@ -316,8 +323,8 @@ gunzip_test_header (void)
+       return 0;
+     }
+ 
+-  gzip_crc = *((unsigned long *) buf);
+-  gzip_fsmax = gzip_filemax = *((unsigned long *) (buf + 4));
++  gzip_crc = *((unsigned int *) buf);
++  gzip_fsmax = gzip_filemax = *((unsigned int *) (buf + 4));
+ 
+   initialize_tables ();
+ 
+diff --git a/stage2/iso9660.h b/stage2/iso9660.h
+index 4a6a8cc..c311ecf 100644
+--- a/stage2/iso9660.h
++++ b/stage2/iso9660.h
+@@ -73,11 +73,11 @@ typedef	union {
+ 
+ typedef	struct __iso_16bit {
+   u_int16_t l, b;
+-} iso_16bit_t __attribute__ ((packed));
++} iso_16bit_t;
+ 
+ typedef	struct __iso_32bit {
+   u_int32_t l, b;
+-} iso_32bit_t __attribute__ ((packed));
++} iso_32bit_t;
+ 
+ typedef u_int8_t		iso_date_t[7];
+ 
+diff --git a/stage2/mb_info.h b/stage2/mb_info.h
+index 1e1e63b..3a8dcfb 100644
+--- a/stage2/mb_info.h
++++ b/stage2/mb_info.h
+@@ -44,10 +44,10 @@ struct mod_list
+ 
+ struct AddrRangeDesc
+ {
+-  unsigned long size;
++  unsigned int size;
+   unsigned long long BaseAddr;
+   unsigned long long Length;
+-  unsigned long Type;
++  unsigned int Type;
+   
+   /* unspecified optional padding... */
+ } __attribute__ ((packed));
+diff --git a/stage2/pc_slice.h b/stage2/pc_slice.h
+index a38d97f..2206e82 100644
+--- a/stage2/pc_slice.h
++++ b/stage2/pc_slice.h
+@@ -38,50 +38,50 @@
+  */
+ 
+ #define PC_MBR_CHECK_SIG(mbr_ptr) \
+-  ( *( (unsigned short *) (((int) mbr_ptr) + PC_MBR_SIG_OFFSET) ) \
++  ( *( (unsigned short *) (((unsigned long) mbr_ptr) + PC_MBR_SIG_OFFSET) ) \
+    == PC_MBR_SIGNATURE )
+ 
+ #define PC_MBR_SIG(mbr_ptr) \
+-  ( *( (unsigned short *) (((int) mbr_ptr) + PC_MBR_SIG_OFFSET) ) )
++  ( *( (unsigned short *) (((unsigned long) mbr_ptr) + PC_MBR_SIG_OFFSET) ) )
+ 
+ #define PC_SLICE_FLAG(mbr_ptr, part) \
+-  ( *( (unsigned char *) (((int) mbr_ptr) + PC_SLICE_OFFSET \
++  ( *( (unsigned char *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET \
+ 			  + (part << 4)) ) )
+ 
+ #define PC_SLICE_HEAD(mbr_ptr, part) \
+-  ( *( (unsigned char *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 1 \
++  ( *( (unsigned char *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 1 \
+ 			  + (part << 4)) ) )
+ 
+ #define PC_SLICE_SEC(mbr_ptr, part) \
+-  ( *( (unsigned char *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 2 \
++  ( *( (unsigned char *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 2 \
+ 			  + (part << 4)) ) )
+ 
+ #define PC_SLICE_CYL(mbr_ptr, part) \
+-  ( *( (unsigned char *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 3 \
++  ( *( (unsigned char *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 3 \
+ 			  + (part << 4)) ) )
+ 
+ #define PC_SLICE_TYPE(mbr_ptr, part) \
+-  ( *( (unsigned char *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 4 \
++  ( *( (unsigned char *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 4 \
+ 			  + (part << 4)) ) )
+ 
+ #define PC_SLICE_EHEAD(mbr_ptr, part) \
+-  ( *( (unsigned char *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 5 \
++  ( *( (unsigned char *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 5 \
+ 			  + (part << 4)) ) )
+ 
+ #define PC_SLICE_ESEC(mbr_ptr, part) \
+-  ( *( (unsigned char *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 6 \
++  ( *( (unsigned char *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 6 \
+ 			  + (part << 4)) ) )
+ 
+ #define PC_SLICE_ECYL(mbr_ptr, part) \
+-  ( *( (unsigned char *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 7 \
++  ( *( (unsigned char *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 7 \
+ 			  + (part << 4)) ) )
+ 
+ #define PC_SLICE_START(mbr_ptr, part) \
+-  ( *( (unsigned long *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 8 \
++  ( *( (unsigned int *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 8 \
+ 			  + (part << 4)) ) )
+ 
+ #define PC_SLICE_LENGTH(mbr_ptr, part) \
+-  ( *( (unsigned long *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 12 \
++  ( *( (unsigned int *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 12 \
+ 			  + (part << 4)) ) )
+ 
+ 
+@@ -115,6 +115,8 @@
+ #define PC_SLICE_TYPE_LINUX_EXTENDED	0x85
+ #define PC_SLICE_TYPE_VSTAFS		0x9e
+ #define PC_SLICE_TYPE_DELL_UTIL		0xde
++#define PC_SLICE_TYPE_GPT              0xee
++#define PC_SLICE_TYPE_EFI		0xef
+ #define PC_SLICE_TYPE_LINUX_RAID	0xfd
+ 
+ 
+@@ -129,7 +131,8 @@
+      || _type == PC_SLICE_TYPE_FAT16_LBA \
+      || _type == PC_SLICE_TYPE_FAT32 \
+      || _type == PC_SLICE_TYPE_FAT32_LBA \
+-     || _type == PC_SLICE_TYPE_DELL_UTIL; })
++     || _type == PC_SLICE_TYPE_DELL_UTIL \
++     || _type == PC_SLICE_TYPE_EFI; })
+ 
+ #define IS_PC_SLICE_TYPE_EXTENDED(type)	\
+   (((type) == PC_SLICE_TYPE_EXTENDED)	\
+@@ -177,40 +180,40 @@
+  */
+ 
+ #define BSD_LABEL_CHECK_MAG(l_ptr) \
+-  ( *( (unsigned long *) (((int) l_ptr) + BSD_LABEL_MAG_OFFSET) ) \
+-   == ( (unsigned long) BSD_LABEL_MAGIC ) )
++  ( *( (unsigned int *) (((unsigned long) l_ptr) + BSD_LABEL_MAG_OFFSET) ) \
++   == ( (unsigned int) BSD_LABEL_MAGIC ) )
+ 
+ #define BSD_LABEL_MAG(l_ptr) \
+-  ( *( (unsigned long *) (((int) l_ptr) + BSD_LABEL_MAG_OFFSET) ) )
++  ( *( (unsigned int *) (((unsigned long) l_ptr) + BSD_LABEL_MAG_OFFSET) ) )
+ 
+ #define BSD_LABEL_DTYPE(l_ptr) \
+-  ( *( (unsigned short *) (((int) l_ptr) + BSD_LABEL_MAG_OFFSET + 4) ) )
++  ( *( (unsigned short *) (((unsigned long) l_ptr) + BSD_LABEL_MAG_OFFSET + 4) ) )
+ 
+ #define BSD_LABEL_NPARTS(l_ptr) \
+-  ( *( (unsigned short *) (((int) l_ptr) + BSD_LABEL_NPARTS_OFFSET) ) )
++  ( *( (unsigned short *) (((unsigned long) l_ptr) + BSD_LABEL_NPARTS_OFFSET) ) )
+ 
+ #define BSD_PART_LENGTH(l_ptr, part) \
+-  ( *( (unsigned long *) (((int) l_ptr) + BSD_PART_OFFSET \
++  ( *( (unsigned int *) (((unsigned long) l_ptr) + BSD_PART_OFFSET \
+ 			  + (part << 4)) ) )
+ 
+ #define BSD_PART_START(l_ptr, part) \
+-  ( *( (unsigned long *) (((int) l_ptr) + BSD_PART_OFFSET + 4 \
++  ( *( (unsigned int *) (((unsigned long) l_ptr) + BSD_PART_OFFSET + 4 \
+ 			  + (part << 4)) ) )
+ 
+ #define BSD_PART_FRAG_SIZE(l_ptr, part) \
+-  ( *( (unsigned long *) (((int) l_ptr) + BSD_PART_OFFSET + 8 \
++  ( *( (unsigned int *) (((unsigned long) l_ptr) + BSD_PART_OFFSET + 8 \
+ 			  + (part << 4)) ) )
+ 
+ #define BSD_PART_TYPE(l_ptr, part) \
+-  ( *( (unsigned char *) (((int) l_ptr) + BSD_PART_OFFSET + 12 \
++  ( *( (unsigned char *) (((unsigned long) l_ptr) + BSD_PART_OFFSET + 12 \
+ 			  + (part << 4)) ) )
+ 
+ #define BSD_PART_FRAGS_PER_BLOCK(l_ptr, part) \
+-  ( *( (unsigned char *) (((int) l_ptr) + BSD_PART_OFFSET + 13 \
++  ( *( (unsigned char *) (((unsigned long) l_ptr) + BSD_PART_OFFSET + 13 \
+ 			  + (part << 4)) ) )
+ 
+ #define BSD_PART_EXTRA(l_ptr, part) \
+-  ( *( (unsigned short *) (((int) l_ptr) + BSD_PART_OFFSET + 14 \
++  ( *( (unsigned short *) (((unsigned long) l_ptr) + BSD_PART_OFFSET + 14 \
+ 			  + (part << 4)) ) )
+ 
+ 
+diff --git a/stage2/serial.c b/stage2/serial.c
+index 16c376f..37b9532 100644
+--- a/stage2/serial.c
++++ b/stage2/serial.c
+@@ -37,7 +37,7 @@ static int keep_track = 1;
+ 
+ /* Hardware-dependent definitions.  */
+ 
+-#ifndef GRUB_UTIL
++#if ! defined (GRUB_UTIL) && ! defined (PLATFORM_EFI)
+ /* The structure for speed vs. divisor.  */
+ struct divisor
+ {
+@@ -187,7 +187,7 @@ serial_hw_init (unsigned short port, unsigned int speed,
+   
+   return 1;
+ }
+-#endif /* ! GRUB_UTIL */
++#endif /* ! defined (GRUB_UTIL) && ! defined (PLATFORM_EFI) */
+ 
+ 
+ /* Generic definitions.  */
+diff --git a/stage2/sha256crypt.c b/stage2/sha256crypt.c
+new file mode 100644
+index 0000000..db168a2
+--- /dev/null
++++ b/stage2/sha256crypt.c
+@@ -0,0 +1,723 @@
++/* SHA256-based Unix crypt implementation.
++   Released into the Public Domain by Ulrich Drepper <drepper at redhat.com>.
++   Adapted for grub by Miloslav Trmac <mitr at redhat.com>. */
++
++#include <stdbool.h>
++#include <stddef.h>
++
++#include <shared.h>
++
++typedef unsigned int uint32_t;
++typedef size_t uintptr_t;
++#define alloca(SIZE) (__builtin_alloca (SIZE))
++#define MIN(A, B) ((A) < (B) ? (A) : (B))
++#define MAX(A, B) ((A) > (B) ? (A) : (B))
++
++/* Structure to save state of computation between the single steps.  */
++struct sha256_ctx
++{
++  uint32_t H[8];
++
++  uint32_t total[2];
++  uint32_t buflen;
++  char buffer[128];	/* NB: always correctly aligned for uint32_t.  */
++};
++
++
++#if 1 /* __BYTE_ORDER == __LITTLE_ENDIAN */
++# define SWAP(n) \
++    (((n) << 24) | (((n) & 0xff00) << 8) | (((n) >> 8) & 0xff00) | ((n) >> 24))
++#else
++# define SWAP(n) (n)
++#endif
++
++
++/* This array contains the bytes used to pad the buffer to the next
++   64-byte boundary.  (FIPS 180-2:5.1.1)  */
++static const unsigned char fillbuf[64] = { 0x80, 0 /* , 0, 0, ...  */ };
++
++
++/* Constants for SHA256 from FIPS 180-2:4.2.2.  */
++static const uint32_t K[64] =
++  {
++    0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
++    0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
++    0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
++    0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
++    0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,
++    0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
++    0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,
++    0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
++    0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
++    0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
++    0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,
++    0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
++    0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,
++    0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
++    0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
++    0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
++  };
++
++
++/* Process LEN bytes of BUFFER, accumulating context into CTX.
++   It is assumed that LEN % 64 == 0.  */
++static void
++sha256_process_block (const void *buffer, size_t len, struct sha256_ctx *ctx)
++{
++  const uint32_t *words = buffer;
++  size_t nwords = len / sizeof (uint32_t);
++  uint32_t a = ctx->H[0];
++  uint32_t b = ctx->H[1];
++  uint32_t c = ctx->H[2];
++  uint32_t d = ctx->H[3];
++  uint32_t e = ctx->H[4];
++  uint32_t f = ctx->H[5];
++  uint32_t g = ctx->H[6];
++  uint32_t h = ctx->H[7];
++
++  /* First increment the byte count.  FIPS 180-2 specifies the possible
++     length of the file up to 2^64 bits.  Here we only compute the
++     number of bytes.  Do a double word increment.  */
++  ctx->total[0] += len;
++  if (ctx->total[0] < len)
++    ++ctx->total[1];
++
++  /* Process all bytes in the buffer with 64 bytes in each round of
++     the loop.  */
++  while (nwords > 0)
++    {
++      uint32_t W[64];
++      uint32_t a_save = a;
++      uint32_t b_save = b;
++      uint32_t c_save = c;
++      uint32_t d_save = d;
++      uint32_t e_save = e;
++      uint32_t f_save = f;
++      uint32_t g_save = g;
++      uint32_t h_save = h;
++      unsigned int t;
++
++      /* Operators defined in FIPS 180-2:4.1.2.  */
++#define Ch(x, y, z) ((x & y) ^ (~x & z))
++#define Maj(x, y, z) ((x & y) ^ (x & z) ^ (y & z))
++#define S0(x) (CYCLIC (x, 2) ^ CYCLIC (x, 13) ^ CYCLIC (x, 22))
++#define S1(x) (CYCLIC (x, 6) ^ CYCLIC (x, 11) ^ CYCLIC (x, 25))
++#define R0(x) (CYCLIC (x, 7) ^ CYCLIC (x, 18) ^ (x >> 3))
++#define R1(x) (CYCLIC (x, 17) ^ CYCLIC (x, 19) ^ (x >> 10))
++
++      /* It is unfortunate that C does not provide an operator for
++	 cyclic rotation.  Hope the C compiler is smart enough.  */
++#define CYCLIC(w, s) ((w >> s) | (w << (32 - s)))
++
++      /* Compute the message schedule according to FIPS 180-2:6.2.2 step 2.  */
++      for (t = 0; t < 16; ++t)
++	{
++	  W[t] = SWAP (*words);
++	  ++words;
++	}
++      for (t = 16; t < 64; ++t)
++	W[t] = R1 (W[t - 2]) + W[t - 7] + R0 (W[t - 15]) + W[t - 16];
++
++      /* The actual computation according to FIPS 180-2:6.2.2 step 3.  */
++      for (t = 0; t < 64; ++t)
++	{
++	  uint32_t T1 = h + S1 (e) + Ch (e, f, g) + K[t] + W[t];
++	  uint32_t T2 = S0 (a) + Maj (a, b, c);
++	  h = g;
++	  g = f;
++	  f = e;
++	  e = d + T1;
++	  d = c;
++	  c = b;
++	  b = a;
++	  a = T1 + T2;
++	}
++
++      /* Add the starting values of the context according to FIPS 180-2:6.2.2
++	 step 4.  */
++      a += a_save;
++      b += b_save;
++      c += c_save;
++      d += d_save;
++      e += e_save;
++      f += f_save;
++      g += g_save;
++      h += h_save;
++
++      /* Prepare for the next round.  */
++      nwords -= 16;
++    }
++
++  /* Put checksum in context given as argument.  */
++  ctx->H[0] = a;
++  ctx->H[1] = b;
++  ctx->H[2] = c;
++  ctx->H[3] = d;
++  ctx->H[4] = e;
++  ctx->H[5] = f;
++  ctx->H[6] = g;
++  ctx->H[7] = h;
++}
++
++
++/* Initialize structure containing state of computation.
++   (FIPS 180-2:5.3.2)  */
++static void
++sha256_init_ctx (struct sha256_ctx *ctx)
++{
++  ctx->H[0] = 0x6a09e667;
++  ctx->H[1] = 0xbb67ae85;
++  ctx->H[2] = 0x3c6ef372;
++  ctx->H[3] = 0xa54ff53a;
++  ctx->H[4] = 0x510e527f;
++  ctx->H[5] = 0x9b05688c;
++  ctx->H[6] = 0x1f83d9ab;
++  ctx->H[7] = 0x5be0cd19;
++
++  ctx->total[0] = ctx->total[1] = 0;
++  ctx->buflen = 0;
++}
++
++
++/* Process the remaining bytes in the internal buffer and the usual
++   prolog according to the standard and write the result to RESBUF.
++
++   IMPORTANT: On some systems it is required that RESBUF is correctly
++   aligned for a 32 bits value.  */
++static void *
++sha256_finish_ctx (struct sha256_ctx *ctx, void *resbuf)
++{
++  /* Take yet unprocessed bytes into account.  */
++  uint32_t bytes = ctx->buflen;
++  size_t pad;
++  unsigned int i;
++
++  /* Now count remaining bytes.  */
++  ctx->total[0] += bytes;
++  if (ctx->total[0] < bytes)
++    ++ctx->total[1];
++
++  pad = bytes >= 56 ? 64 + 56 - bytes : 56 - bytes;
++  memcpy (&ctx->buffer[bytes], fillbuf, pad);
++
++  /* Put the 64-bit file length in *bits* at the end of the buffer.  */
++  *(uint32_t *) &ctx->buffer[bytes + pad + 4] = SWAP (ctx->total[0] << 3);
++  *(uint32_t *) &ctx->buffer[bytes + pad] = SWAP ((ctx->total[1] << 3) |
++						  (ctx->total[0] >> 29));
++
++  /* Process last bytes.  */
++  sha256_process_block (ctx->buffer, bytes + pad + 8, ctx);
++
++  /* Put result from CTX in first 32 bytes following RESBUF.  */
++  for (i = 0; i < 8; ++i)
++    ((uint32_t *) resbuf)[i] = SWAP (ctx->H[i]);
++
++  return resbuf;
++}
++
++
++static void
++sha256_process_bytes (const void *buffer, size_t len, struct sha256_ctx *ctx)
++{
++  /* When we already have some bits in our internal buffer concatenate
++     both inputs first.  */
++  if (ctx->buflen != 0)
++    {
++      size_t left_over = ctx->buflen;
++      size_t add = 128 - left_over > len ? len : 128 - left_over;
++
++      memcpy (&ctx->buffer[left_over], buffer, add);
++      ctx->buflen += add;
++
++      if (ctx->buflen > 64)
++	{
++	  sha256_process_block (ctx->buffer, ctx->buflen & ~63, ctx);
++
++	  ctx->buflen &= 63;
++	  /* The regions in the following copy operation cannot overlap.  */
++	  memcpy (ctx->buffer, &ctx->buffer[(left_over + add) & ~63],
++		  ctx->buflen);
++	}
++
++      buffer = (const char *) buffer + add;
++      len -= add;
++    }
++
++  /* Process available complete blocks.  */
++  if (len >= 64)
++    {
++/* To check alignment gcc has an appropriate operator.  Other
++   compilers don't.  */
++#if __GNUC__ >= 2
++# define UNALIGNED_P(p) (((uintptr_t) p) % __alignof__ (uint32_t) != 0)
++#else
++# define UNALIGNED_P(p) (((uintptr_t) p) % sizeof (uint32_t) != 0)
++#endif
++      if (UNALIGNED_P (buffer))
++	while (len > 64)
++	  {
++	    sha256_process_block (memcpy (ctx->buffer, buffer, 64), 64, ctx);
++	    buffer = (const char *) buffer + 64;
++	    len -= 64;
++	  }
++      else
++	{
++	  sha256_process_block (buffer, len & ~63, ctx);
++	  buffer = (const char *) buffer + (len & ~63);
++	  len &= 63;
++	}
++    }
++
++  /* Move remaining bytes into internal buffer.  */
++  if (len > 0)
++    {
++      size_t left_over = ctx->buflen;
++
++      memcpy (&ctx->buffer[left_over], buffer, len);
++      left_over += len;
++      if (left_over >= 64)
++	{
++	  sha256_process_block (ctx->buffer, 64, ctx);
++	  left_over -= 64;
++	  memcpy (ctx->buffer, &ctx->buffer[64], left_over);
++	}
++      ctx->buflen = left_over;
++    }
++}
++
++
++/* Define our magic string to mark salt for SHA256 "encryption"
++   replacement.  */
++static const char sha256_salt_prefix[] = "$5$";
++
++/* Prefix for optional rounds specification.  */
++static const char sha256_rounds_prefix[] = "rounds=";
++
++/* Maximum salt string length.  */
++#define SALT_LEN_MAX 16
++/* Default number of rounds if not explicitly specified.  */
++#define ROUNDS_DEFAULT 5000
++/* Minimum number of rounds.  */
++#define ROUNDS_MIN 1000
++/* Maximum number of rounds.  */
++#define ROUNDS_MAX 999999999
++
++/* Table with characters for base64 transformation.  */
++static const char b64t[64] =
++"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
++
++
++static char *
++sha256_crypt_r (const char *key, const char *salt, char *buffer, int buflen)
++{
++  unsigned char alt_result[32]
++    __attribute__ ((__aligned__ (__alignof__ (uint32_t))));
++  unsigned char temp_result[32]
++    __attribute__ ((__aligned__ (__alignof__ (uint32_t))));
++  struct sha256_ctx ctx;
++  struct sha256_ctx alt_ctx;
++  size_t salt_len;
++  size_t key_len;
++  size_t cnt;
++  char *cp;
++  char *copied_key = NULL;
++  char *copied_salt = NULL;
++  char *p_bytes;
++  char *s_bytes;
++  /* Default number of rounds.  */
++  size_t rounds = ROUNDS_DEFAULT;
++  bool rounds_custom = false;
++
++  /* Find beginning of salt string.  The prefix should normally always
++     be present.  Just in case it is not.  */
++  if (grub_memcmp (sha256_salt_prefix, salt,
++		   sizeof (sha256_salt_prefix) - 1) == 0)
++    /* Skip salt prefix.  */
++    salt += sizeof (sha256_salt_prefix) - 1;
++
++  if (grub_memcmp (salt, sha256_rounds_prefix,
++		   sizeof (sha256_rounds_prefix) - 1) == 0)
++    {
++      const char *num = salt + sizeof (sha256_rounds_prefix) - 1;
++      char *endp = (char *)num;
++      int srounds = 0;
++      if (*endp == '0' && tolower (endp[1]) == 'x')
++	/* This would be interpreted as hexadecimal by safe_parse_maxint(). */
++	endp++;
++      else
++	/* On error, endp and srounds is not changed. */
++	safe_parse_maxint(&endp, &srounds);
++      if (*endp == '$')
++	{
++	  salt = endp + 1;
++	  rounds = MAX (ROUNDS_MIN, MIN (srounds, ROUNDS_MAX));
++	  rounds_custom = true;
++	}
++    }
++
++  salt_len = MIN (strcspn (salt, "$"), SALT_LEN_MAX);
++  key_len = strlen (key);
++
++  if ((key - (char *) 0) % __alignof__ (uint32_t) != 0)
++    {
++      char *tmp = (char *) alloca (key_len + __alignof__ (uint32_t));
++      key = copied_key =
++	memcpy (tmp + __alignof__ (uint32_t)
++		- (tmp - (char *) 0) % __alignof__ (uint32_t),
++		key, key_len);
++    }
++
++  if ((salt - (char *) 0) % __alignof__ (uint32_t) != 0)
++    {
++      char *tmp = (char *) alloca (salt_len + __alignof__ (uint32_t));
++      salt = copied_salt =
++	memcpy (tmp + __alignof__ (uint32_t)
++		- (tmp - (char *) 0) % __alignof__ (uint32_t),
++		salt, salt_len);
++    }
++
++  /* Prepare for the real work.  */
++  sha256_init_ctx (&ctx);
++
++  /* Add the key string.  */
++  sha256_process_bytes (key, key_len, &ctx);
++
++  /* The last part is the salt string.  This must be at most 16
++     characters and it ends at the first `$' character (for
++     compatibility with existing implementations).  */
++  sha256_process_bytes (salt, salt_len, &ctx);
++
++
++  /* Compute alternate SHA256 sum with input KEY, SALT, and KEY.  The
++     final result will be added to the first context.  */
++  sha256_init_ctx (&alt_ctx);
++
++  /* Add key.  */
++  sha256_process_bytes (key, key_len, &alt_ctx);
++
++  /* Add salt.  */
++  sha256_process_bytes (salt, salt_len, &alt_ctx);
++
++  /* Add key again.  */
++  sha256_process_bytes (key, key_len, &alt_ctx);
++
++  /* Now get result of this (32 bytes) and add it to the other
++     context.  */
++  sha256_finish_ctx (&alt_ctx, alt_result);
++
++  /* Add for any character in the key one byte of the alternate sum.  */
++  for (cnt = key_len; cnt > 32; cnt -= 32)
++    sha256_process_bytes (alt_result, 32, &ctx);
++  sha256_process_bytes (alt_result, cnt, &ctx);
++
++  /* Take the binary representation of the length of the key and for every
++     1 add the alternate sum, for every 0 the key.  */
++  for (cnt = key_len; cnt > 0; cnt >>= 1)
++    if ((cnt & 1) != 0)
++      sha256_process_bytes (alt_result, 32, &ctx);
++    else
++      sha256_process_bytes (key, key_len, &ctx);
++
++  /* Create intermediate result.  */
++  sha256_finish_ctx (&ctx, alt_result);
++
++  /* Start computation of P byte sequence.  */
++  sha256_init_ctx (&alt_ctx);
++
++  /* For every character in the password add the entire password.  */
++  for (cnt = 0; cnt < key_len; ++cnt)
++    sha256_process_bytes (key, key_len, &alt_ctx);
++
++  /* Finish the digest.  */
++  sha256_finish_ctx (&alt_ctx, temp_result);
++
++  /* Create byte sequence P.  */
++  cp = p_bytes = alloca (key_len);
++  for (cnt = key_len; cnt >= 32; cnt -= 32)
++    {
++      memcpy (cp, temp_result, 32);
++      cp += 32;
++    }
++  memcpy (cp, temp_result, cnt);
++
++  /* Start computation of S byte sequence.  */
++  sha256_init_ctx (&alt_ctx);
++
++  /* For every character in the password add the entire password.  */
++  for (cnt = 0; cnt < 16 + alt_result[0]; ++cnt)
++    sha256_process_bytes (salt, salt_len, &alt_ctx);
++
++  /* Finish the digest.  */
++  sha256_finish_ctx (&alt_ctx, temp_result);
++
++  /* Create byte sequence S.  */
++  cp = s_bytes = alloca (salt_len);
++  for (cnt = salt_len; cnt >= 32; cnt -= 32)
++    {
++      memcpy (cp, temp_result, 32);
++      cp += 32;
++    }
++  memcpy (cp, temp_result, cnt);
++
++  /* Repeatedly run the collected hash value through SHA256 to burn
++     CPU cycles.  */
++  for (cnt = 0; cnt < rounds; ++cnt)
++    {
++      /* New context.  */
++      sha256_init_ctx (&ctx);
++
++      /* Add key or last result.  */
++      if ((cnt & 1) != 0)
++	sha256_process_bytes (p_bytes, key_len, &ctx);
++      else
++	sha256_process_bytes (alt_result, 32, &ctx);
++
++      /* Add salt for numbers not divisible by 3.  */
++      if (cnt % 3 != 0)
++	sha256_process_bytes (s_bytes, salt_len, &ctx);
++
++      /* Add key for numbers not divisible by 7.  */
++      if (cnt % 7 != 0)
++	sha256_process_bytes (p_bytes, key_len, &ctx);
++
++      /* Add key or last result.  */
++      if ((cnt & 1) != 0)
++	sha256_process_bytes (alt_result, 32, &ctx);
++      else
++	sha256_process_bytes (p_bytes, key_len, &ctx);
++
++      /* Create intermediate result.  */
++      sha256_finish_ctx (&ctx, alt_result);
++    }
++
++  /* Now we can construct the result string.  It consists of three
++     parts.  */
++  cp = stpncpy (buffer, sha256_salt_prefix, MAX (0, buflen));
++  buflen -= sizeof (sha256_salt_prefix) - 1;
++
++  if (rounds_custom)
++    {
++      char sbuf[64];
++      grub_sprintf (sbuf, "%s%llu$", sha256_rounds_prefix,
++		    (unsigned long long)rounds);
++      size_t n = strlen (sbuf);
++      memcpy (cp, sbuf, MIN (MAX (0, buflen), n));
++      cp += n;
++      buflen -= n;
++    }
++
++  cp = stpncpy (cp, salt, MIN ((size_t) MAX (0, buflen), salt_len));
++  buflen -= MIN ((size_t) MAX (0, buflen), salt_len);
++
++  if (buflen > 0)
++    {
++      *cp++ = '$';
++      --buflen;
++    }
++
++#define b64_from_24bit(B2, B1, B0, N)					      \
++  do {									      \
++    unsigned int w = ((B2) << 16) | ((B1) << 8) | (B0);			      \
++    int n = (N);							      \
++    while (n-- > 0 && buflen > 0)					      \
++      {									      \
++	*cp++ = b64t[w & 0x3f];						      \
++	--buflen;							      \
++	w >>= 6;							      \
++      }									      \
++  } while (0)
++
++  b64_from_24bit (alt_result[0], alt_result[10], alt_result[20], 4);
++  b64_from_24bit (alt_result[21], alt_result[1], alt_result[11], 4);
++  b64_from_24bit (alt_result[12], alt_result[22], alt_result[2], 4);
++  b64_from_24bit (alt_result[3], alt_result[13], alt_result[23], 4);
++  b64_from_24bit (alt_result[24], alt_result[4], alt_result[14], 4);
++  b64_from_24bit (alt_result[15], alt_result[25], alt_result[5], 4);
++  b64_from_24bit (alt_result[6], alt_result[16], alt_result[26], 4);
++  b64_from_24bit (alt_result[27], alt_result[7], alt_result[17], 4);
++  b64_from_24bit (alt_result[18], alt_result[28], alt_result[8], 4);
++  b64_from_24bit (alt_result[9], alt_result[19], alt_result[29], 4);
++  b64_from_24bit (0, alt_result[31], alt_result[30], 3);
++  if (buflen <= 0)
++    buffer = NULL;
++  else
++    *cp = '\0';		/* Terminate the string.  */
++
++  /* Clear the buffer for the intermediate result so that people
++     attaching to processes or reading core dumps cannot get any
++     information.  We do it in this way to clear correct_words[]
++     inside the SHA256 implementation as well.  */
++  sha256_init_ctx (&ctx);
++  sha256_finish_ctx (&ctx, alt_result);
++  memset (temp_result, '\0', sizeof (temp_result));
++  memset (p_bytes, '\0', key_len);
++  memset (s_bytes, '\0', salt_len);
++  memset (&ctx, '\0', sizeof (ctx));
++  memset (&alt_ctx, '\0', sizeof (alt_ctx));
++  if (copied_key != NULL)
++    memset (copied_key, '\0', key_len);
++  if (copied_salt != NULL)
++    memset (copied_salt, '\0', salt_len);
++
++  return buffer;
++}
++
++
++/* This entry point is equivalent to the `crypt' function in Unix
++   libcs.  */
++char *
++sha256_crypt (const char *key, const char *salt)
++{
++  static char buffer[sizeof (sha256_salt_prefix) - 1
++		     + sizeof (sha256_rounds_prefix) + 9 + 1
++		     + 256 + 1 + 43 + 1]; /* 256 bytes for salt */
++  int needed = (sizeof (sha256_salt_prefix) - 1
++		+ sizeof (sha256_rounds_prefix) + 9 + 1
++		+ strlen (salt) + 1 + 43 + 1);
++
++  if (sizeof (buffer) < needed)
++    return NULL;
++
++  return sha256_crypt_r (key, salt, buffer, sizeof (buffer));
++}
++
++
++#ifdef TEST
++static const struct
++{
++  const char *input;
++  const char result[32];
++} tests[] =
++  {
++    /* Test vectors from FIPS 180-2: appendix B.1.  */
++    { "abc",
++      "\xba\x78\x16\xbf\x8f\x01\xcf\xea\x41\x41\x40\xde\x5d\xae\x22\x23"
++      "\xb0\x03\x61\xa3\x96\x17\x7a\x9c\xb4\x10\xff\x61\xf2\x00\x15\xad" },
++    /* Test vectors from FIPS 180-2: appendix B.2.  */
++    { "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
++      "\x24\x8d\x6a\x61\xd2\x06\x38\xb8\xe5\xc0\x26\x93\x0c\x3e\x60\x39"
++      "\xa3\x3c\xe4\x59\x64\xff\x21\x67\xf6\xec\xed\xd4\x19\xdb\x06\xc1" },
++    /* Test vectors from the NESSIE project.  */
++    { "",
++      "\xe3\xb0\xc4\x42\x98\xfc\x1c\x14\x9a\xfb\xf4\xc8\x99\x6f\xb9\x24"
++      "\x27\xae\x41\xe4\x64\x9b\x93\x4c\xa4\x95\x99\x1b\x78\x52\xb8\x55" },
++    { "a",
++      "\xca\x97\x81\x12\xca\x1b\xbd\xca\xfa\xc2\x31\xb3\x9a\x23\xdc\x4d"
++      "\xa7\x86\xef\xf8\x14\x7c\x4e\x72\xb9\x80\x77\x85\xaf\xee\x48\xbb" },
++    { "message digest",
++      "\xf7\x84\x6f\x55\xcf\x23\xe1\x4e\xeb\xea\xb5\xb4\xe1\x55\x0c\xad"
++      "\x5b\x50\x9e\x33\x48\xfb\xc4\xef\xa3\xa1\x41\x3d\x39\x3c\xb6\x50" },
++    { "abcdefghijklmnopqrstuvwxyz",
++      "\x71\xc4\x80\xdf\x93\xd6\xae\x2f\x1e\xfa\xd1\x44\x7c\x66\xc9\x52"
++      "\x5e\x31\x62\x18\xcf\x51\xfc\x8d\x9e\xd8\x32\xf2\xda\xf1\x8b\x73" },
++    { "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
++      "\x24\x8d\x6a\x61\xd2\x06\x38\xb8\xe5\xc0\x26\x93\x0c\x3e\x60\x39"
++      "\xa3\x3c\xe4\x59\x64\xff\x21\x67\xf6\xec\xed\xd4\x19\xdb\x06\xc1" },
++    { "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
++      "\xdb\x4b\xfc\xbd\x4d\xa0\xcd\x85\xa6\x0c\x3c\x37\xd3\xfb\xd8\x80"
++      "\x5c\x77\xf1\x5f\xc6\xb1\xfd\xfe\x61\x4e\xe0\xa7\xc8\xfd\xb4\xc0" },
++    { "123456789012345678901234567890123456789012345678901234567890"
++      "12345678901234567890",
++      "\xf3\x71\xbc\x4a\x31\x1f\x2b\x00\x9e\xef\x95\x2d\xd8\x3c\xa8\x0e"
++      "\x2b\x60\x02\x6c\x8e\x93\x55\x92\xd0\xf9\xc3\x08\x45\x3c\x81\x3e" }
++  };
++#define ntests (sizeof (tests) / sizeof (tests[0]))
++
++
++static const struct
++{
++  const char *salt;
++  const char *input;
++  const char *expected;
++} tests2[] =
++{
++  { "$5$saltstring", "Hello world!",
++    "$5$saltstring$5B8vYYiY.CVt1RlTTf8KbXBH3hsxY/GNooZaBBGWEc5" },
++  { "$5$rounds=10000$saltstringsaltstring", "Hello world!",
++    "$5$rounds=10000$saltstringsaltst$3xv.VbSHBb41AL9AvLeujZkZRBAwqFMz2."
++    "opqey6IcA" },
++  { "$5$rounds=5000$toolongsaltstring", "This is just a test",
++    "$5$rounds=5000$toolongsaltstrin$Un/5jzAHMgOGZ5.mWJpuVolil07guHPvOW8"
++    "mGRcvxa5" },
++  { "$5$rounds=1400$anotherlongsaltstring",
++    "a very much longer text to encrypt.  This one even stretches over more"
++    "than one line.",
++    "$5$rounds=1400$anotherlongsalts$Rx.j8H.h8HjEDGomFU8bDkXm3XIUnzyxf12"
++    "oP84Bnq1" },
++  { "$5$rounds=77777$short",
++    "we have a short salt string but not a short password",
++    "$5$rounds=77777$short$JiO1O3ZpDAxGJeaDIuqCoEFysAe1mZNJRs3pw0KQRd/" },
++  { "$5$rounds=123456$asaltof16chars..", "a short string",
++    "$5$rounds=123456$asaltof16chars..$gP3VQ/6X7UUEW3HkBn2w1/Ptq2jxPyzV/"
++    "cZKmF/wJvD" },
++  { "$5$rounds=10$roundstoolow", "the minimum number is still observed",
++    "$5$rounds=1000$roundstoolow$yfvwcWrQ8l/K0DAWyuPMDNHpIVlTQebY9l/gL97"
++    "2bIC" },
++};
++#define ntests2 (sizeof (tests2) / sizeof (tests2[0]))
++
++
++int
++sha256_test (void)
++{
++  struct sha256_ctx ctx;
++  char sum[32];
++  int result = 0;
++  int cnt, i;
++
++  for (cnt = 0; cnt < (int) ntests; ++cnt)
++    {
++      sha256_init_ctx (&ctx);
++      sha256_process_bytes (tests[cnt].input, strlen (tests[cnt].input), &ctx);
++      sha256_finish_ctx (&ctx, sum);
++      if (memcmp (tests[cnt].result, sum, 32) != 0)
++	{
++	  printf ("test %d run %d failed\n", cnt, 1);
++	  result = 1;
++	}
++
++      sha256_init_ctx (&ctx);
++      for (i = 0; tests[cnt].input[i] != '\0'; ++i)
++	sha256_process_bytes (&tests[cnt].input[i], 1, &ctx);
++      sha256_finish_ctx (&ctx, sum);
++      if (memcmp (tests[cnt].result, sum, 32) != 0)
++	{
++	  printf ("test %d run %d failed\n", cnt, 2);
++	  result = 1;
++	}
++    }
++
++  /* Test vector from FIPS 180-2: appendix B.3.  */
++  char buf[1000];
++  memset (buf, 'a', sizeof (buf));
++  sha256_init_ctx (&ctx);
++  for (i = 0; i < 1000; ++i)
++    sha256_process_bytes (buf, sizeof (buf), &ctx);
++  sha256_finish_ctx (&ctx, sum);
++  static const char expected[32] =
++    "\xcd\xc7\x6e\x5c\x99\x14\xfb\x92\x81\xa1\xc7\xe2\x84\xd7\x3e\x67"
++    "\xf1\x80\x9a\x48\xa4\x97\x20\x0e\x04\x6d\x39\xcc\xc7\x11\x2c\xd0";
++  if (memcmp (expected, sum, 32) != 0)
++    {
++      printf ("test %d failed\n", cnt);
++      result = 1;
++    }
++
++  for (cnt = 0; cnt < ntests2; ++cnt)
++    {
++      char *cp = sha256_crypt (tests2[cnt].input, tests2[cnt].salt);
++
++      if (strcmp (cp, tests2[cnt].expected) != 0)
++	{
++	  printf ("test %d: expected \"%s\", got \"%s\"\n",
++		  cnt, tests2[cnt].expected, cp);
++	  result = 1;
++	}
++    }
++
++  if (result == 0)
++    printf ("all tests OK\n");
++
++  return result;
++}
++#endif
+diff --git a/stage2/sha512crypt.c b/stage2/sha512crypt.c
+new file mode 100644
+index 0000000..ff6cd26
+--- /dev/null
++++ b/stage2/sha512crypt.c
+@@ -0,0 +1,795 @@
++/* SHA512-based Unix crypt implementation.
++   Released into the Public Domain by Ulrich Drepper <drepper at redhat.com>.
++   Adapted for grub by Miloslav Trmac <mitr at redhat.com>. */
++
++#include <stdbool.h>
++#include <stddef.h>
++
++#include <shared.h>
++
++typedef unsigned long long uint64_t;
++typedef size_t uintptr_t;
++#define alloca(SIZE) (__builtin_alloca (SIZE))
++#define UINT64_C(X) X ## ULL
++#define MIN(a, b) ((a) < (b) ? (a) : (b))
++#define MAX(a, b) ((a) > (b) ? (a) : (b))
++
++/* Structure to save state of computation between the single steps.  */
++struct sha512_ctx
++{
++  uint64_t H[8];
++
++  uint64_t total[2];
++  uint64_t buflen;
++  char buffer[256];	/* NB: always correctly aligned for uint64_t.  */
++};
++
++
++#if 1 /* __BYTE_ORDER == __LITTLE_ENDIAN */
++# define SWAP(n) \
++  (((n) << 56)					\
++   | (((n) & 0xff00) << 40)			\
++   | (((n) & 0xff0000) << 24)			\
++   | (((n) & 0xff000000) << 8)			\
++   | (((n) >> 8) & 0xff000000)			\
++   | (((n) >> 24) & 0xff0000)			\
++   | (((n) >> 40) & 0xff00)			\
++   | ((n) >> 56))
++#else
++# define SWAP(n) (n)
++#endif
++
++
++/* This array contains the bytes used to pad the buffer to the next
++   64-byte boundary.  (FIPS 180-2:5.1.2)  */
++static const unsigned char fillbuf[128] = { 0x80, 0 /* , 0, 0, ...  */ };
++
++
++/* Constants for SHA512 from FIPS 180-2:4.2.3.  */
++static const uint64_t K[80] =
++  {
++    UINT64_C (0x428a2f98d728ae22), UINT64_C (0x7137449123ef65cd),
++    UINT64_C (0xb5c0fbcfec4d3b2f), UINT64_C (0xe9b5dba58189dbbc),
++    UINT64_C (0x3956c25bf348b538), UINT64_C (0x59f111f1b605d019),
++    UINT64_C (0x923f82a4af194f9b), UINT64_C (0xab1c5ed5da6d8118),
++    UINT64_C (0xd807aa98a3030242), UINT64_C (0x12835b0145706fbe),
++    UINT64_C (0x243185be4ee4b28c), UINT64_C (0x550c7dc3d5ffb4e2),
++    UINT64_C (0x72be5d74f27b896f), UINT64_C (0x80deb1fe3b1696b1),
++    UINT64_C (0x9bdc06a725c71235), UINT64_C (0xc19bf174cf692694),
++    UINT64_C (0xe49b69c19ef14ad2), UINT64_C (0xefbe4786384f25e3),
++    UINT64_C (0x0fc19dc68b8cd5b5), UINT64_C (0x240ca1cc77ac9c65),
++    UINT64_C (0x2de92c6f592b0275), UINT64_C (0x4a7484aa6ea6e483),
++    UINT64_C (0x5cb0a9dcbd41fbd4), UINT64_C (0x76f988da831153b5),
++    UINT64_C (0x983e5152ee66dfab), UINT64_C (0xa831c66d2db43210),
++    UINT64_C (0xb00327c898fb213f), UINT64_C (0xbf597fc7beef0ee4),
++    UINT64_C (0xc6e00bf33da88fc2), UINT64_C (0xd5a79147930aa725),
++    UINT64_C (0x06ca6351e003826f), UINT64_C (0x142929670a0e6e70),
++    UINT64_C (0x27b70a8546d22ffc), UINT64_C (0x2e1b21385c26c926),
++    UINT64_C (0x4d2c6dfc5ac42aed), UINT64_C (0x53380d139d95b3df),
++    UINT64_C (0x650a73548baf63de), UINT64_C (0x766a0abb3c77b2a8),
++    UINT64_C (0x81c2c92e47edaee6), UINT64_C (0x92722c851482353b),
++    UINT64_C (0xa2bfe8a14cf10364), UINT64_C (0xa81a664bbc423001),
++    UINT64_C (0xc24b8b70d0f89791), UINT64_C (0xc76c51a30654be30),
++    UINT64_C (0xd192e819d6ef5218), UINT64_C (0xd69906245565a910),
++    UINT64_C (0xf40e35855771202a), UINT64_C (0x106aa07032bbd1b8),
++    UINT64_C (0x19a4c116b8d2d0c8), UINT64_C (0x1e376c085141ab53),
++    UINT64_C (0x2748774cdf8eeb99), UINT64_C (0x34b0bcb5e19b48a8),
++    UINT64_C (0x391c0cb3c5c95a63), UINT64_C (0x4ed8aa4ae3418acb),
++    UINT64_C (0x5b9cca4f7763e373), UINT64_C (0x682e6ff3d6b2b8a3),
++    UINT64_C (0x748f82ee5defb2fc), UINT64_C (0x78a5636f43172f60),
++    UINT64_C (0x84c87814a1f0ab72), UINT64_C (0x8cc702081a6439ec),
++    UINT64_C (0x90befffa23631e28), UINT64_C (0xa4506cebde82bde9),
++    UINT64_C (0xbef9a3f7b2c67915), UINT64_C (0xc67178f2e372532b),
++    UINT64_C (0xca273eceea26619c), UINT64_C (0xd186b8c721c0c207),
++    UINT64_C (0xeada7dd6cde0eb1e), UINT64_C (0xf57d4f7fee6ed178),
++    UINT64_C (0x06f067aa72176fba), UINT64_C (0x0a637dc5a2c898a6),
++    UINT64_C (0x113f9804bef90dae), UINT64_C (0x1b710b35131c471b),
++    UINT64_C (0x28db77f523047d84), UINT64_C (0x32caab7b40c72493),
++    UINT64_C (0x3c9ebe0a15c9bebc), UINT64_C (0x431d67c49c100d4c),
++    UINT64_C (0x4cc5d4becb3e42b6), UINT64_C (0x597f299cfc657e2a),
++    UINT64_C (0x5fcb6fab3ad6faec), UINT64_C (0x6c44198c4a475817)
++  };
++
++
++/* Process LEN bytes of BUFFER, accumulating context into CTX.
++   It is assumed that LEN % 128 == 0.  */
++static void
++sha512_process_block (const void *buffer, size_t len, struct sha512_ctx *ctx)
++{
++  const uint64_t *words = buffer;
++  size_t nwords = len / sizeof (uint64_t);
++  uint64_t a = ctx->H[0];
++  uint64_t b = ctx->H[1];
++  uint64_t c = ctx->H[2];
++  uint64_t d = ctx->H[3];
++  uint64_t e = ctx->H[4];
++  uint64_t f = ctx->H[5];
++  uint64_t g = ctx->H[6];
++  uint64_t h = ctx->H[7];
++
++  /* First increment the byte count.  FIPS 180-2 specifies the possible
++     length of the file up to 2^128 bits.  Here we only compute the
++     number of bytes.  Do a double word increment.  */
++  ctx->total[0] += len;
++  if (ctx->total[0] < len)
++    ++ctx->total[1];
++
++  /* Process all bytes in the buffer with 128 bytes in each round of
++     the loop.  */
++  while (nwords > 0)
++    {
++      uint64_t W[80];
++      uint64_t a_save = a;
++      uint64_t b_save = b;
++      uint64_t c_save = c;
++      uint64_t d_save = d;
++      uint64_t e_save = e;
++      uint64_t f_save = f;
++      uint64_t g_save = g;
++      uint64_t h_save = h;
++      unsigned int t;
++
++      /* Operators defined in FIPS 180-2:4.1.2.  */
++#define Ch(x, y, z) ((x & y) ^ (~x & z))
++#define Maj(x, y, z) ((x & y) ^ (x & z) ^ (y & z))
++#define S0(x) (CYCLIC (x, 28) ^ CYCLIC (x, 34) ^ CYCLIC (x, 39))
++#define S1(x) (CYCLIC (x, 14) ^ CYCLIC (x, 18) ^ CYCLIC (x, 41))
++#define R0(x) (CYCLIC (x, 1) ^ CYCLIC (x, 8) ^ (x >> 7))
++#define R1(x) (CYCLIC (x, 19) ^ CYCLIC (x, 61) ^ (x >> 6))
++
++      /* It is unfortunate that C does not provide an operator for
++	 cyclic rotation.  Hope the C compiler is smart enough.  */
++#define CYCLIC(w, s) ((w >> s) | (w << (64 - s)))
++
++      /* Compute the message schedule according to FIPS 180-2:6.3.2 step 2.  */
++      for (t = 0; t < 16; ++t)
++	{
++	  W[t] = SWAP (*words);
++	  ++words;
++	}
++      for (t = 16; t < 80; ++t)
++	W[t] = R1 (W[t - 2]) + W[t - 7] + R0 (W[t - 15]) + W[t - 16];
++
++      /* The actual computation according to FIPS 180-2:6.3.2 step 3.  */
++      for (t = 0; t < 80; ++t)
++	{
++	  uint64_t T1 = h + S1 (e) + Ch (e, f, g) + K[t] + W[t];
++	  uint64_t T2 = S0 (a) + Maj (a, b, c);
++	  h = g;
++	  g = f;
++	  f = e;
++	  e = d + T1;
++	  d = c;
++	  c = b;
++	  b = a;
++	  a = T1 + T2;
++	}
++
++      /* Add the starting values of the context according to FIPS 180-2:6.3.2
++	 step 4.  */
++      a += a_save;
++      b += b_save;
++      c += c_save;
++      d += d_save;
++      e += e_save;
++      f += f_save;
++      g += g_save;
++      h += h_save;
++
++      /* Prepare for the next round.  */
++      nwords -= 16;
++    }
++
++  /* Put checksum in context given as argument.  */
++  ctx->H[0] = a;
++  ctx->H[1] = b;
++  ctx->H[2] = c;
++  ctx->H[3] = d;
++  ctx->H[4] = e;
++  ctx->H[5] = f;
++  ctx->H[6] = g;
++  ctx->H[7] = h;
++}
++
++
++/* Initialize structure containing state of computation.
++   (FIPS 180-2:5.3.3)  */
++static void
++sha512_init_ctx (struct sha512_ctx *ctx)
++{
++  ctx->H[0] = UINT64_C (0x6a09e667f3bcc908);
++  ctx->H[1] = UINT64_C (0xbb67ae8584caa73b);
++  ctx->H[2] = UINT64_C (0x3c6ef372fe94f82b);
++  ctx->H[3] = UINT64_C (0xa54ff53a5f1d36f1);
++  ctx->H[4] = UINT64_C (0x510e527fade682d1);
++  ctx->H[5] = UINT64_C (0x9b05688c2b3e6c1f);
++  ctx->H[6] = UINT64_C (0x1f83d9abfb41bd6b);
++  ctx->H[7] = UINT64_C (0x5be0cd19137e2179);
++
++  ctx->total[0] = ctx->total[1] = 0;
++  ctx->buflen = 0;
++}
++
++
++/* Process the remaining bytes in the internal buffer and the usual
++   prolog according to the standard and write the result to RESBUF.
++
++   IMPORTANT: On some systems it is required that RESBUF is correctly
++   aligned for a 32 bits value.  */
++static void *
++sha512_finish_ctx (struct sha512_ctx *ctx, void *resbuf)
++{
++  /* Take yet unprocessed bytes into account.  */
++  uint64_t bytes = ctx->buflen;
++  size_t pad;
++  unsigned int i;
++
++  /* Now count remaining bytes.  */
++  ctx->total[0] += bytes;
++  if (ctx->total[0] < bytes)
++    ++ctx->total[1];
++
++  pad = bytes >= 112 ? 128 + 112 - bytes : 112 - bytes;
++  memcpy (&ctx->buffer[bytes], fillbuf, pad);
++
++  /* Put the 128-bit file length in *bits* at the end of the buffer.  */
++  *(uint64_t *) &ctx->buffer[bytes + pad + 8] = SWAP (ctx->total[0] << 3);
++  *(uint64_t *) &ctx->buffer[bytes + pad] = SWAP ((ctx->total[1] << 3) |
++						  (ctx->total[0] >> 61));
++
++  /* Process last bytes.  */
++  sha512_process_block (ctx->buffer, bytes + pad + 16, ctx);
++
++  /* Put result from CTX in first 64 bytes following RESBUF.  */
++  for (i = 0; i < 8; ++i)
++    ((uint64_t *) resbuf)[i] = SWAP (ctx->H[i]);
++
++  return resbuf;
++}
++
++
++static void
++sha512_process_bytes (const void *buffer, size_t len, struct sha512_ctx *ctx)
++{
++  /* When we already have some bits in our internal buffer concatenate
++     both inputs first.  */
++  if (ctx->buflen != 0)
++    {
++      size_t left_over = ctx->buflen;
++      size_t add = 256 - left_over > len ? len : 256 - left_over;
++
++      memcpy (&ctx->buffer[left_over], buffer, add);
++      ctx->buflen += add;
++
++      if (ctx->buflen > 128)
++	{
++	  sha512_process_block (ctx->buffer, ctx->buflen & ~127, ctx);
++
++	  ctx->buflen &= 127;
++	  /* The regions in the following copy operation cannot overlap.  */
++	  memcpy (ctx->buffer, &ctx->buffer[(left_over + add) & ~127],
++		  ctx->buflen);
++	}
++
++      buffer = (const char *) buffer + add;
++      len -= add;
++    }
++
++  /* Process available complete blocks.  */
++  if (len >= 128)
++    {
++/* To check alignment gcc has an appropriate operator.  Other
++   compilers don't.  */
++# if __GNUC__ >= 2
++#  define UNALIGNED_P(p) (((uintptr_t) p) % __alignof__ (uint64_t) != 0)
++# else
++#  define UNALIGNED_P(p) (((uintptr_t) p) % sizeof (uint64_t) != 0)
++# endif
++      if (UNALIGNED_P (buffer))
++	while (len > 128)
++	  {
++	    sha512_process_block (memcpy (ctx->buffer, buffer, 128), 128,
++				    ctx);
++	    buffer = (const char *) buffer + 128;
++	    len -= 128;
++	  }
++      else
++	{
++	  sha512_process_block (buffer, len & ~127, ctx);
++	  buffer = (const char *) buffer + (len & ~127);
++	  len &= 127;
++	}
++    }
++
++  /* Move remaining bytes into internal buffer.  */
++  if (len > 0)
++    {
++      size_t left_over = ctx->buflen;
++
++      memcpy (&ctx->buffer[left_over], buffer, len);
++      left_over += len;
++      if (left_over >= 128)
++	{
++	  sha512_process_block (ctx->buffer, 128, ctx);
++	  left_over -= 128;
++	  memcpy (ctx->buffer, &ctx->buffer[128], left_over);
++	}
++      ctx->buflen = left_over;
++    }
++}
++
++
++/* Define our magic string to mark salt for SHA512 "encryption"
++   replacement.  */
++static const char sha512_salt_prefix[] = "$6$";
++
++/* Prefix for optional rounds specification.  */
++static const char sha512_rounds_prefix[] = "rounds=";
++
++/* Maximum salt string length.  */
++#define SALT_LEN_MAX 16
++/* Default number of rounds if not explicitly specified.  */
++#define ROUNDS_DEFAULT 5000
++/* Minimum number of rounds.  */
++#define ROUNDS_MIN 1000
++/* Maximum number of rounds.  */
++#define ROUNDS_MAX 999999999
++
++/* Table with characters for base64 transformation.  */
++static const char b64t[64] =
++"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
++
++
++static char *
++sha512_crypt_r (const char *key, const char *salt, char *buffer, int buflen)
++{
++  unsigned char alt_result[64]
++    __attribute__ ((__aligned__ (__alignof__ (uint64_t))));
++  unsigned char temp_result[64]
++    __attribute__ ((__aligned__ (__alignof__ (uint64_t))));
++  struct sha512_ctx ctx;
++  struct sha512_ctx alt_ctx;
++  size_t salt_len;
++  size_t key_len;
++  size_t cnt;
++  char *cp;
++  char *copied_key = NULL;
++  char *copied_salt = NULL;
++  char *p_bytes;
++  char *s_bytes;
++  /* Default number of rounds.  */
++  size_t rounds = ROUNDS_DEFAULT;
++  bool rounds_custom = false;
++
++  /* Find beginning of salt string.  The prefix should normally always
++     be present.  Just in case it is not.  */
++  if (grub_memcmp (sha512_salt_prefix, salt,
++		   sizeof (sha512_salt_prefix) - 1) == 0)
++    /* Skip salt prefix.  */
++    salt += sizeof (sha512_salt_prefix) - 1;
++
++  if (grub_memcmp (salt, sha512_rounds_prefix,
++		   sizeof (sha512_rounds_prefix) - 1) == 0)
++    {
++      const char *num = salt + sizeof (sha512_rounds_prefix) - 1;
++      char *endp = (char *)num;
++      int srounds = 0;
++      if (*endp == '0' && tolower (endp[1]) == 'x')
++	/* This would be interpreted as hexadecimal by safe_parse_maxint(). */
++	endp++;
++      else
++	/* On error, endp and srounds is not changed. */
++	safe_parse_maxint(&endp, &srounds);
++      if (*endp == '$')
++	{
++	  salt = endp + 1;
++	  rounds = MAX (ROUNDS_MIN, MIN (srounds, ROUNDS_MAX));
++	  rounds_custom = true;
++	}
++    }
++
++  salt_len = MIN (strcspn (salt, "$"), SALT_LEN_MAX);
++  key_len = strlen (key);
++
++  if ((key - (char *) 0) % __alignof__ (uint64_t) != 0)
++    {
++      char *tmp = (char *) alloca (key_len + __alignof__ (uint64_t));
++      key = copied_key =
++	memcpy (tmp + __alignof__ (uint64_t)
++		- (tmp - (char *) 0) % __alignof__ (uint64_t),
++		key, key_len);
++    }
++
++  if ((salt - (char *) 0) % __alignof__ (uint64_t) != 0)
++    {
++      char *tmp = (char *) alloca (salt_len + __alignof__ (uint64_t));
++      salt = copied_salt =
++	memcpy (tmp + __alignof__ (uint64_t)
++		- (tmp - (char *) 0) % __alignof__ (uint64_t),
++		salt, salt_len);
++    }
++
++  /* Prepare for the real work.  */
++  sha512_init_ctx (&ctx);
++
++  /* Add the key string.  */
++  sha512_process_bytes (key, key_len, &ctx);
++
++  /* The last part is the salt string.  This must be at most 16
++     characters and it ends at the first `$' character (for
++     compatibility with existing implementations).  */
++  sha512_process_bytes (salt, salt_len, &ctx);
++
++
++  /* Compute alternate SHA512 sum with input KEY, SALT, and KEY.  The
++     final result will be added to the first context.  */
++  sha512_init_ctx (&alt_ctx);
++
++  /* Add key.  */
++  sha512_process_bytes (key, key_len, &alt_ctx);
++
++  /* Add salt.  */
++  sha512_process_bytes (salt, salt_len, &alt_ctx);
++
++  /* Add key again.  */
++  sha512_process_bytes (key, key_len, &alt_ctx);
++
++  /* Now get result of this (64 bytes) and add it to the other
++     context.  */
++  sha512_finish_ctx (&alt_ctx, alt_result);
++
++  /* Add for any character in the key one byte of the alternate sum.  */
++  for (cnt = key_len; cnt > 64; cnt -= 64)
++    sha512_process_bytes (alt_result, 64, &ctx);
++  sha512_process_bytes (alt_result, cnt, &ctx);
++
++  /* Take the binary representation of the length of the key and for every
++     1 add the alternate sum, for every 0 the key.  */
++  for (cnt = key_len; cnt > 0; cnt >>= 1)
++    if ((cnt & 1) != 0)
++      sha512_process_bytes (alt_result, 64, &ctx);
++    else
++      sha512_process_bytes (key, key_len, &ctx);
++
++  /* Create intermediate result.  */
++  sha512_finish_ctx (&ctx, alt_result);
++
++  /* Start computation of P byte sequence.  */
++  sha512_init_ctx (&alt_ctx);
++
++  /* For every character in the password add the entire password.  */
++  for (cnt = 0; cnt < key_len; ++cnt)
++    sha512_process_bytes (key, key_len, &alt_ctx);
++
++  /* Finish the digest.  */
++  sha512_finish_ctx (&alt_ctx, temp_result);
++
++  /* Create byte sequence P.  */
++  cp = p_bytes = alloca (key_len);
++  for (cnt = key_len; cnt >= 64; cnt -= 64)
++    {
++      memcpy (cp, temp_result, 64);
++      cp += 64;
++    }
++  memcpy (cp, temp_result, cnt);
++
++  /* Start computation of S byte sequence.  */
++  sha512_init_ctx (&alt_ctx);
++
++  /* For every character in the password add the entire password.  */
++  for (cnt = 0; cnt < 16 + alt_result[0]; ++cnt)
++    sha512_process_bytes (salt, salt_len, &alt_ctx);
++
++  /* Finish the digest.  */
++  sha512_finish_ctx (&alt_ctx, temp_result);
++
++  /* Create byte sequence S.  */
++  cp = s_bytes = alloca (salt_len);
++  for (cnt = salt_len; cnt >= 64; cnt -= 64)
++    {
++      memcpy (cp, temp_result, 64);
++      cp += 64;
++    }
++  memcpy (cp, temp_result, cnt);
++
++  /* Repeatedly run the collected hash value through SHA512 to burn
++     CPU cycles.  */
++  for (cnt = 0; cnt < rounds; ++cnt)
++    {
++      /* New context.  */
++      sha512_init_ctx (&ctx);
++
++      /* Add key or last result.  */
++      if ((cnt & 1) != 0)
++	sha512_process_bytes (p_bytes, key_len, &ctx);
++      else
++	sha512_process_bytes (alt_result, 64, &ctx);
++
++      /* Add salt for numbers not divisible by 3.  */
++      if (cnt % 3 != 0)
++	sha512_process_bytes (s_bytes, salt_len, &ctx);
++
++      /* Add key for numbers not divisible by 7.  */
++      if (cnt % 7 != 0)
++	sha512_process_bytes (p_bytes, key_len, &ctx);
++
++      /* Add key or last result.  */
++      if ((cnt & 1) != 0)
++	sha512_process_bytes (alt_result, 64, &ctx);
++      else
++	sha512_process_bytes (p_bytes, key_len, &ctx);
++
++      /* Create intermediate result.  */
++      sha512_finish_ctx (&ctx, alt_result);
++    }
++
++  /* Now we can construct the result string.  It consists of three
++     parts.  */
++  cp = stpncpy (buffer, sha512_salt_prefix, MAX (0, buflen));
++  buflen -= sizeof (sha512_salt_prefix) - 1;
++
++  if (rounds_custom)
++    {
++      char sbuf[64];
++      grub_sprintf (sbuf, "%s%llu$", sha512_rounds_prefix,
++		    (unsigned long long)rounds);
++      size_t n = strlen (sbuf);
++      memcpy (cp, sbuf, MIN (MAX (0, buflen), n));
++      cp += n;
++      buflen -= n;
++    }
++
++  cp = stpncpy (cp, salt, MIN ((size_t) MAX (0, buflen), salt_len));
++  buflen -= MIN ((size_t) MAX (0, buflen), salt_len);
++
++  if (buflen > 0)
++    {
++      *cp++ = '$';
++      --buflen;
++    }
++
++#define b64_from_24bit(B2, B1, B0, N)					      \
++  do {									      \
++    unsigned int w = ((B2) << 16) | ((B1) << 8) | (B0);			      \
++    int n = (N);							      \
++    while (n-- > 0 && buflen > 0)					      \
++      {									      \
++	*cp++ = b64t[w & 0x3f];						      \
++	--buflen;							      \
++	w >>= 6;							      \
++      }									      \
++  } while (0)
++
++  b64_from_24bit (alt_result[0], alt_result[21], alt_result[42], 4);
++  b64_from_24bit (alt_result[22], alt_result[43], alt_result[1], 4);
++  b64_from_24bit (alt_result[44], alt_result[2], alt_result[23], 4);
++  b64_from_24bit (alt_result[3], alt_result[24], alt_result[45], 4);
++  b64_from_24bit (alt_result[25], alt_result[46], alt_result[4], 4);
++  b64_from_24bit (alt_result[47], alt_result[5], alt_result[26], 4);
++  b64_from_24bit (alt_result[6], alt_result[27], alt_result[48], 4);
++  b64_from_24bit (alt_result[28], alt_result[49], alt_result[7], 4);
++  b64_from_24bit (alt_result[50], alt_result[8], alt_result[29], 4);
++  b64_from_24bit (alt_result[9], alt_result[30], alt_result[51], 4);
++  b64_from_24bit (alt_result[31], alt_result[52], alt_result[10], 4);
++  b64_from_24bit (alt_result[53], alt_result[11], alt_result[32], 4);
++  b64_from_24bit (alt_result[12], alt_result[33], alt_result[54], 4);
++  b64_from_24bit (alt_result[34], alt_result[55], alt_result[13], 4);
++  b64_from_24bit (alt_result[56], alt_result[14], alt_result[35], 4);
++  b64_from_24bit (alt_result[15], alt_result[36], alt_result[57], 4);
++  b64_from_24bit (alt_result[37], alt_result[58], alt_result[16], 4);
++  b64_from_24bit (alt_result[59], alt_result[17], alt_result[38], 4);
++  b64_from_24bit (alt_result[18], alt_result[39], alt_result[60], 4);
++  b64_from_24bit (alt_result[40], alt_result[61], alt_result[19], 4);
++  b64_from_24bit (alt_result[62], alt_result[20], alt_result[41], 4);
++  b64_from_24bit (0, 0, alt_result[63], 2);
++
++  if (buflen <= 0)
++    buffer = NULL;
++  else
++    *cp = '\0';		/* Terminate the string.  */
++
++  /* Clear the buffer for the intermediate result so that people
++     attaching to processes or reading core dumps cannot get any
++     information.  We do it in this way to clear correct_words[]
++     inside the SHA512 implementation as well.  */
++  sha512_init_ctx (&ctx);
++  sha512_finish_ctx (&ctx, alt_result);
++  memset (temp_result, '\0', sizeof (temp_result));
++  memset (p_bytes, '\0', key_len);
++  memset (s_bytes, '\0', salt_len);
++  memset (&ctx, '\0', sizeof (ctx));
++  memset (&alt_ctx, '\0', sizeof (alt_ctx));
++  if (copied_key != NULL)
++    memset (copied_key, '\0', key_len);
++  if (copied_salt != NULL)
++    memset (copied_salt, '\0', salt_len);
++
++  return buffer;
++}
++
++
++/* This entry point is equivalent to the `crypt' function in Unix
++   libcs.  */
++char *
++sha512_crypt (const char *key, const char *salt)
++{
++  /* We don't want to have an arbitrary limit in the size of the
++     password.  We can compute an upper bound for the size of the
++     result in advance and so we can prepare the buffer we pass to
++     `sha512_crypt_r'.  */
++  static char buffer[sizeof (sha512_salt_prefix) - 1
++		     + sizeof (sha512_rounds_prefix) + 9 + 1
++		     + 256 + 1 + 86 + 1]; /* 256 bytes for salt */
++  int needed = (sizeof (sha512_salt_prefix) - 1
++		+ sizeof (sha512_rounds_prefix) + 9 + 1
++		+ strlen (salt) + 1 + 86 + 1);
++
++  if (sizeof (buffer) < needed)
++    return NULL;
++
++  return sha512_crypt_r (key, salt, buffer, sizeof (buffer));
++}
++
++
++#ifdef TEST
++static const struct
++{
++  const char *input;
++  const char result[64];
++} tests[] =
++  {
++    /* Test vectors from FIPS 180-2: appendix C.1.  */
++    { "abc",
++      "\xdd\xaf\x35\xa1\x93\x61\x7a\xba\xcc\x41\x73\x49\xae\x20\x41\x31"
++      "\x12\xe6\xfa\x4e\x89\xa9\x7e\xa2\x0a\x9e\xee\xe6\x4b\x55\xd3\x9a"
++      "\x21\x92\x99\x2a\x27\x4f\xc1\xa8\x36\xba\x3c\x23\xa3\xfe\xeb\xbd"
++      "\x45\x4d\x44\x23\x64\x3c\xe8\x0e\x2a\x9a\xc9\x4f\xa5\x4c\xa4\x9f" },
++    /* Test vectors from FIPS 180-2: appendix C.2.  */
++    { "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmn"
++      "hijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu",
++      "\x8e\x95\x9b\x75\xda\xe3\x13\xda\x8c\xf4\xf7\x28\x14\xfc\x14\x3f"
++      "\x8f\x77\x79\xc6\xeb\x9f\x7f\xa1\x72\x99\xae\xad\xb6\x88\x90\x18"
++      "\x50\x1d\x28\x9e\x49\x00\xf7\xe4\x33\x1b\x99\xde\xc4\xb5\x43\x3a"
++      "\xc7\xd3\x29\xee\xb6\xdd\x26\x54\x5e\x96\xe5\x5b\x87\x4b\xe9\x09" },
++    /* Test vectors from the NESSIE project.  */
++    { "",
++      "\xcf\x83\xe1\x35\x7e\xef\xb8\xbd\xf1\x54\x28\x50\xd6\x6d\x80\x07"
++      "\xd6\x20\xe4\x05\x0b\x57\x15\xdc\x83\xf4\xa9\x21\xd3\x6c\xe9\xce"
++      "\x47\xd0\xd1\x3c\x5d\x85\xf2\xb0\xff\x83\x18\xd2\x87\x7e\xec\x2f"
++      "\x63\xb9\x31\xbd\x47\x41\x7a\x81\xa5\x38\x32\x7a\xf9\x27\xda\x3e" },
++    { "a",
++      "\x1f\x40\xfc\x92\xda\x24\x16\x94\x75\x09\x79\xee\x6c\xf5\x82\xf2"
++      "\xd5\xd7\xd2\x8e\x18\x33\x5d\xe0\x5a\xbc\x54\xd0\x56\x0e\x0f\x53"
++      "\x02\x86\x0c\x65\x2b\xf0\x8d\x56\x02\x52\xaa\x5e\x74\x21\x05\x46"
++      "\xf3\x69\xfb\xbb\xce\x8c\x12\xcf\xc7\x95\x7b\x26\x52\xfe\x9a\x75" },
++    { "message digest",
++      "\x10\x7d\xbf\x38\x9d\x9e\x9f\x71\xa3\xa9\x5f\x6c\x05\x5b\x92\x51"
++      "\xbc\x52\x68\xc2\xbe\x16\xd6\xc1\x34\x92\xea\x45\xb0\x19\x9f\x33"
++      "\x09\xe1\x64\x55\xab\x1e\x96\x11\x8e\x8a\x90\x5d\x55\x97\xb7\x20"
++      "\x38\xdd\xb3\x72\xa8\x98\x26\x04\x6d\xe6\x66\x87\xbb\x42\x0e\x7c" },
++    { "abcdefghijklmnopqrstuvwxyz",
++      "\x4d\xbf\xf8\x6c\xc2\xca\x1b\xae\x1e\x16\x46\x8a\x05\xcb\x98\x81"
++      "\xc9\x7f\x17\x53\xbc\xe3\x61\x90\x34\x89\x8f\xaa\x1a\xab\xe4\x29"
++      "\x95\x5a\x1b\xf8\xec\x48\x3d\x74\x21\xfe\x3c\x16\x46\x61\x3a\x59"
++      "\xed\x54\x41\xfb\x0f\x32\x13\x89\xf7\x7f\x48\xa8\x79\xc7\xb1\xf1" },
++    { "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
++      "\x20\x4a\x8f\xc6\xdd\xa8\x2f\x0a\x0c\xed\x7b\xeb\x8e\x08\xa4\x16"
++      "\x57\xc1\x6e\xf4\x68\xb2\x28\xa8\x27\x9b\xe3\x31\xa7\x03\xc3\x35"
++      "\x96\xfd\x15\xc1\x3b\x1b\x07\xf9\xaa\x1d\x3b\xea\x57\x78\x9c\xa0"
++      "\x31\xad\x85\xc7\xa7\x1d\xd7\x03\x54\xec\x63\x12\x38\xca\x34\x45" },
++    { "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
++      "\x1e\x07\xbe\x23\xc2\x6a\x86\xea\x37\xea\x81\x0c\x8e\xc7\x80\x93"
++      "\x52\x51\x5a\x97\x0e\x92\x53\xc2\x6f\x53\x6c\xfc\x7a\x99\x96\xc4"
++      "\x5c\x83\x70\x58\x3e\x0a\x78\xfa\x4a\x90\x04\x1d\x71\xa4\xce\xab"
++      "\x74\x23\xf1\x9c\x71\xb9\xd5\xa3\xe0\x12\x49\xf0\xbe\xbd\x58\x94" },
++    { "123456789012345678901234567890123456789012345678901234567890"
++      "12345678901234567890",
++      "\x72\xec\x1e\xf1\x12\x4a\x45\xb0\x47\xe8\xb7\xc7\x5a\x93\x21\x95"
++      "\x13\x5b\xb6\x1d\xe2\x4e\xc0\xd1\x91\x40\x42\x24\x6e\x0a\xec\x3a"
++      "\x23\x54\xe0\x93\xd7\x6f\x30\x48\xb4\x56\x76\x43\x46\x90\x0c\xb1"
++      "\x30\xd2\xa4\xfd\x5d\xd1\x6a\xbb\x5e\x30\xbc\xb8\x50\xde\xe8\x43" }
++  };
++#define ntests (sizeof (tests) / sizeof (tests[0]))
++
++
++static const struct
++{
++  const char *salt;
++  const char *input;
++  const char *expected;
++} tests2[] =
++{
++  { "$6$saltstring", "Hello world!",
++    "$6$saltstring$svn8UoSVapNtMuq1ukKS4tPQd8iKwSMHWjl/O817G3uBnIFNjnQJu"
++    "esI68u4OTLiBFdcbYEdFCoEOfaS35inz1" },
++  { "$6$rounds=10000$saltstringsaltstring", "Hello world!",
++    "$6$rounds=10000$saltstringsaltst$OW1/O6BYHV6BcXZu8QVeXbDWra3Oeqh0sb"
++    "HbbMCVNSnCM/UrjmM0Dp8vOuZeHBy/YTBmSK6H9qs/y3RnOaw5v." },
++  { "$6$rounds=5000$toolongsaltstring", "This is just a test",
++    "$6$rounds=5000$toolongsaltstrin$lQ8jolhgVRVhY4b5pZKaysCLi0QBxGoNeKQ"
++    "zQ3glMhwllF7oGDZxUhx1yxdYcz/e1JSbq3y6JMxxl8audkUEm0" },
++  { "$6$rounds=1400$anotherlongsaltstring",
++    "a very much longer text to encrypt.  This one even stretches over more"
++    "than one line.",
++    "$6$rounds=1400$anotherlongsalts$POfYwTEok97VWcjxIiSOjiykti.o/pQs.wP"
++    "vMxQ6Fm7I6IoYN3CmLs66x9t0oSwbtEW7o7UmJEiDwGqd8p4ur1" },
++  { "$6$rounds=77777$short",
++    "we have a short salt string but not a short password",
++    "$6$rounds=77777$short$WuQyW2YR.hBNpjjRhpYD/ifIw05xdfeEyQoMxIXbkvr0g"
++    "ge1a1x3yRULJ5CCaUeOxFmtlcGZelFl5CxtgfiAc0" },
++  { "$6$rounds=123456$asaltof16chars..", "a short string",
++    "$6$rounds=123456$asaltof16chars..$BtCwjqMJGx5hrJhZywWvt0RLE8uZ4oPwc"
++    "elCjmw2kSYu.Ec6ycULevoBK25fs2xXgMNrCzIMVcgEJAstJeonj1" },
++  { "$6$rounds=10$roundstoolow", "the minimum number is still observed",
++    "$6$rounds=1000$roundstoolow$kUMsbe306n21p9R.FRkW3IGn.S9NPN0x50YhH1x"
++    "hLsPuWGsUSklZt58jaTfF4ZEQpyUNGc0dqbpBYYBaHHrsX." },
++};
++#define ntests2 (sizeof (tests2) / sizeof (tests2[0]))
++
++
++int
++sha512_test (void)
++{
++  struct sha512_ctx ctx;
++  char sum[64];
++  int result = 0;
++  int cnt, i;
++
++  for (cnt = 0; cnt < (int) ntests; ++cnt)
++    {
++      sha512_init_ctx (&ctx);
++      sha512_process_bytes (tests[cnt].input, strlen (tests[cnt].input), &ctx);
++      sha512_finish_ctx (&ctx, sum);
++      if (memcmp (tests[cnt].result, sum, 64) != 0)
++	{
++	  printf ("test %d run %d failed\n", cnt, 1);
++	  result = 1;
++	}
++
++      sha512_init_ctx (&ctx);
++      for (i = 0; tests[cnt].input[i] != '\0'; ++i)
++	sha512_process_bytes (&tests[cnt].input[i], 1, &ctx);
++      sha512_finish_ctx (&ctx, sum);
++      if (memcmp (tests[cnt].result, sum, 64) != 0)
++	{
++	  printf ("test %d run %d failed\n", cnt, 2);
++	  result = 1;
++	}
++    }
++
++  /* Test vector from FIPS 180-2: appendix C.3.  */
++  char buf[1000];
++  memset (buf, 'a', sizeof (buf));
++  sha512_init_ctx (&ctx);
++  for (i = 0; i < 1000; ++i)
++    sha512_process_bytes (buf, sizeof (buf), &ctx);
++  sha512_finish_ctx (&ctx, sum);
++  static const char expected[64] =
++    "\xe7\x18\x48\x3d\x0c\xe7\x69\x64\x4e\x2e\x42\xc7\xbc\x15\xb4\x63"
++    "\x8e\x1f\x98\xb1\x3b\x20\x44\x28\x56\x32\xa8\x03\xaf\xa9\x73\xeb"
++    "\xde\x0f\xf2\x44\x87\x7e\xa6\x0a\x4c\xb0\x43\x2c\xe5\x77\xc3\x1b"
++    "\xeb\x00\x9c\x5c\x2c\x49\xaa\x2e\x4e\xad\xb2\x17\xad\x8c\xc0\x9b";
++  if (memcmp (expected, sum, 64) != 0)
++    {
++      printf ("test %d failed\n", cnt);
++      result = 1;
++    }
++
++  for (cnt = 0; cnt < ntests2; ++cnt)
++    {
++      char *cp = sha512_crypt (tests2[cnt].input, tests2[cnt].salt);
++
++      if (strcmp (cp, tests2[cnt].expected) != 0)
++	{
++	  printf ("test %d: expected \"%s\", got \"%s\"\n",
++		  cnt, tests2[cnt].expected, cp);
++	  result = 1;
++	}
++    }
++
++  if (result == 0)
++    printf ("all tests OK\n");
++
++  return result;
++}
++#endif
+diff --git a/stage2/shared.h b/stage2/shared.h
+index 77eef11..587f9a1 100644
+--- a/stage2/shared.h
++++ b/stage2/shared.h
+@@ -35,9 +35,10 @@
+ #endif
+ 
+ /* Maybe redirect memory requests through grub_scratch_mem. */
+-#ifdef GRUB_UTIL
+-extern char *grub_scratch_mem;
+-# define RAW_ADDR(x) ((x) + (int) grub_scratch_mem)
++#if defined(GRUB_UTIL) || defined(PLATFORM_EFI)
++#define GRUB_SCRATCH_MEM_SIZE   0x400000
++extern void *grub_scratch_mem;
++# define RAW_ADDR(x) ((x) + (unsigned long) grub_scratch_mem)
+ # define RAW_SEG(x) (RAW_ADDR ((x) << 4) >> 4)
+ #else
+ # define RAW_ADDR(x) (x)
+@@ -56,15 +57,15 @@ extern char *grub_scratch_mem;
+ #define NEW_HEAPSIZE 1500
+ 
+ /* 512-byte scratch area */
+-#define SCRATCHADDR  RAW_ADDR (0x77e00)
+-#define SCRATCHSEG   RAW_SEG (0x77e0)
++#define SCRATCHADDR  RAW_ADDR (0x77000)
++#define SCRATCHSEG   RAW_SEG (0x7700)
+ 
+ /*
+- *  This is the location of the raw device buffer.  It is 31.5K
++ *  This is the location of the raw device buffer.  It is 28K
+  *  in size.
+  */
+ 
+-#define BUFFERLEN   0x7e00
++#define BUFFERLEN   0x7000
+ #define BUFFERADDR  RAW_ADDR (0x70000)
+ #define BUFFERSEG   RAW_SEG (0x7000)
+ 
+@@ -160,16 +161,18 @@ extern char *grub_scratch_mem;
+ #define LINUX_VID_MODE_ASK		0xFFFD
+ 
+ #define LINUX_CL_OFFSET			0x9000
+-#define LINUX_CL_END_OFFSET		0x90FF
+-#define LINUX_SETUP_MOVE_SIZE		0x9100
++#define LINUX_CL_END_OFFSET		0x97FF
++#define LINUX_SETUP_MOVE_SIZE		0x9800
+ #define LINUX_CL_MAGIC			0xA33F
+ 
+ /*
+  *  General disk stuff
+  */
+ 
++#ifndef PLATFORM_EFI
+ #define SECTOR_SIZE		0x200
+ #define SECTOR_BITS		9
++#endif /* PLATFORM_EFI */
+ #define BIOS_FLAG_FIXED_DISK	0x80
+ 
+ #define BOOTSEC_LOCATION		RAW_ADDR (0x7C00)
+@@ -200,6 +203,8 @@ extern char *grub_scratch_mem;
+ #define STAGE2_FORCE_LBA	0x11
+ #define STAGE2_VER_STR_OFFS	0x12
+ 
++#define STAGE2_ONCEONLY_ENTRY   0x10000
++
+ /* Stage 2 identifiers */
+ #define STAGE2_ID_STAGE2		0
+ #define STAGE2_ID_FFS_STAGE1_5		1
+@@ -210,8 +215,9 @@ extern char *grub_scratch_mem;
+ #define STAGE2_ID_VSTAFS_STAGE1_5	6
+ #define STAGE2_ID_JFS_STAGE1_5		7
+ #define STAGE2_ID_XFS_STAGE1_5		8
+-#define STAGE2_ID_ISO9660_STAGE1_5	9
+-#define STAGE2_ID_UFS2_STAGE1_5		10
++#define STAGE2_ID_BTRFS_STAGE1_5	9
++#define STAGE2_ID_ISO9660_STAGE1_5	10
++#define STAGE2_ID_UFS2_STAGE1_5		11
+ 
+ #ifndef STAGE1_5
+ # define STAGE2_ID	STAGE2_ID_STAGE2
+@@ -232,6 +238,8 @@ extern char *grub_scratch_mem;
+ #  define STAGE2_ID	STAGE2_ID_JFS_STAGE1_5
+ # elif defined(FSYS_XFS)
+ #  define STAGE2_ID	STAGE2_ID_XFS_STAGE1_5
++# elif defined(FSYS_BTRFS)
++#  define STAGE2_ID	STAGE2_ID_BTRFS_STAGE1_5
+ # elif defined(FSYS_ISO9660)
+ #  define STAGE2_ID	STAGE2_ID_ISO9660_STAGE1_5
+ # elif defined(FSYS_UFS2)
+@@ -371,14 +379,24 @@ extern char *grub_scratch_mem;
+ #define tolower grub_tolower
+ #define strlen grub_strlen
+ #define strcpy grub_strcpy
++#define stpncpy grub_stpncpy
++#define strspn grub_strspn
++#define strcspn grub_strcspn
++#define strtok_r grub_strtok_r
++#define strchr grub_strchr
++#define strrchr grub_strrchr
++#define strnchr grub_strnchr
++#define strncpy grub_strncpy
++#define strncasecmp grub_strncasecmp
+ #endif /* WITHOUT_LIBC_STUBS */
+ 
+-
+ #ifndef ASM_FILE
+ /*
+  *  Below this should be ONLY defines and other constructs for C code.
+  */
+ 
++#include <stdarg.h>
++
+ /* multiboot stuff */
+ 
+ #include "mb_header.h"
+@@ -400,30 +418,33 @@ struct linux_kernel_header
+   unsigned short root_dev;		/* Default root device number */
+   unsigned short boot_flag;		/* 0xAA55 magic number */
+   unsigned short jump;			/* Jump instruction */
+-  unsigned long header;			/* Magic signature "HdrS" */
++  unsigned int header;			/* Magic signature "HdrS" */
+   unsigned short version;		/* Boot protocol version supported */
+-  unsigned long realmode_swtch;		/* Boot loader hook */
+-  unsigned long start_sys;		/* Points to kernel version string */
++  unsigned int realmode_swtch;		/* Boot loader hook */
++  unsigned int start_sys;		/* Points to kernel version string */
+   unsigned char type_of_loader;		/* Boot loader identifier */
+   unsigned char loadflags;		/* Boot protocol option flags */
+   unsigned short setup_move_size;	/* Move to high memory size */
+-  unsigned long code32_start;		/* Boot loader hook */
+-  unsigned long ramdisk_image;		/* initrd load address */
+-  unsigned long ramdisk_size;		/* initrd size */
+-  unsigned long bootsect_kludge;	/* obsolete */
++  unsigned int code32_start;		/* Boot loader hook */
++  unsigned int ramdisk_image;		/* initrd load address */
++  unsigned int ramdisk_size;		/* initrd size */
++  unsigned int bootsect_kludge;		/* obsolete */
+   unsigned short heap_end_ptr;		/* Free memory after setup end */
+   unsigned short pad1;			/* Unused */
+   char *cmd_line_ptr;			/* Points to the kernel command line */
+-  unsigned long initrd_addr_max;	/* The highest address of initrd */
++  unsigned int initrd_addr_max;		/* The highest address of initrd */
++  unsigned int kernel_alignment;	/* Physical addr alignment required for kernel */
++  unsigned int relocatable_kernel;	/* Whether kernel is relocatable or not */
++  unsigned int cmdline_size;		/* Maximum size of the kernel command line */
+ } __attribute__ ((packed));
+ 
+ /* Memory map address range descriptor used by GET_MMAP_ENTRY. */
+ struct mmar_desc
+ {
+-  unsigned long desc_len;	/* Size of this descriptor. */
++  unsigned int desc_len;	/* Size of this descriptor. */
+   unsigned long long addr;	/* Base address. */
+   unsigned long long length;	/* Length in bytes. */
+-  unsigned long type;		/* Type of address range. */
++  unsigned int type;		/* Type of address range. */
+ } __attribute__ ((packed));
+ 
+ /* VBE controller information.  */
+@@ -600,6 +621,7 @@ typedef enum
+ {
+   PASSWORD_PLAIN,
+   PASSWORD_MD5,
++  PASSWORD_ENCRYPTED,
+   PASSWORD_UNSUPPORTED
+ }
+ password_t;
+@@ -627,8 +649,16 @@ extern void (*disk_read_func) (int, int, int);
+ #ifndef STAGE1_5
+ /* The flag for debug mode.  */
+ extern int debug;
++extern int debug_graphics;
+ #endif /* STAGE1_5 */
+ 
++/* Verbose mode flag. */
++extern int grub_verbose;
++#define verbose_printf(format...) \
++  do { if (grub_verbose) printf(format); } while (0)
++#define grub_verbose_printf(format...) \
++  do { if (grub_verbose) grub_printf(format); } while (0)
++
+ extern unsigned long current_drive;
+ extern unsigned long current_partition;
+ 
+@@ -666,6 +696,8 @@ extern struct geometry buf_geom;
+ extern int filepos;
+ extern int filemax;
+ 
++extern int silent_grub;
++
+ /*
+  *  Common BIOS/boot data.
+  */
+@@ -804,11 +836,17 @@ int getkey (void);
+    available. */
+ int checkkey (void);
+ 
++/* Return keyboard modifier status. */
++int
++keystatus (void);
++
+ /* Low-level disk I/O */
+ int get_diskinfo (int drive, struct geometry *geometry);
+ int biosdisk (int subfunc, int drive, struct geometry *geometry,
+ 	      int sector, int nsec, int segment);
+ void stop_floppy (void);
++int get_sector_size (int drive);
++int get_sector_bits (int drive);
+ 
+ /* Command-line interface functions. */
+ #ifndef STAGE1_5
+@@ -860,17 +898,25 @@ void init_builtins (void);
+ void init_config (void);
+ char *skip_to (int after_equal, char *cmdline);
+ struct builtin *find_command (char *command);
+-void print_cmdline_message (int forever);
+ void enter_cmdline (char *heap, int forever);
+ int run_script (char *script, char *heap);
++
++/* the flags for the cmdline message */
++#define CMDLINE_FOREVER_MODE 0x0
++#define CMDLINE_NORMAL_MODE 0x1
++#define CMDLINE_EDIT_MODE 0x2
++
++void print_cmdline_message (int type);
+ #endif
+ 
+ /* C library replacement functions with identical semantics. */
+-void grub_printf (const char *format,...);
++int grub_vsprintf (char *str, const char *fmt, va_list args);
++void grub_printf (char *format,...);
+ int grub_sprintf (char *buffer, const char *format, ...);
+ int grub_tolower (int c);
+ int grub_isspace (int c);
+ int grub_strncat (char *s1, const char *s2, int n);
++void grub_memcpy(void *dest, const void *src, int len);
+ void *grub_memmove (void *to, const void *from, int len);
+ void *grub_memset (void *start, int c, int len);
+ int grub_strncat (char *s1, const char *s2, int n);
+@@ -879,9 +925,19 @@ int grub_memcmp (const char *s1, const char *s2, int n);
+ int grub_strcmp (const char *s1, const char *s2);
+ int grub_strlen (const char *str);
+ char *grub_strcpy (char *dest, const char *src);
++char *grub_stpncpy (char *dest, const char *src, int n);
++int grub_strspn(const char *s, const char *accept);
++int grub_strcspn(const char *s, const char *reject);
++char *grub_strtok_r(char *s, const char *delim, char **ptrptr);
++char *grub_strchr (const char *s, int c);
++char *grub_strrchr (const char *s, int c);
++char *grub_strnchr (const char *s, int c);
++int grub_strnlen (const char *s, int n);
++char *grub_strncpy (char *new, const char *s, int n);
++int grub_strncasecmp(const char *s0, const char *s1, int n);
+ 
+ #ifndef GRUB_UTIL
+-typedef unsigned long grub_jmp_buf[6];
++typedef unsigned long grub_jmp_buf[8];
+ #else
+ /* In the grub shell, use the libc jmp_buf instead.  */
+ # include <setjmp.h>
+@@ -904,10 +960,11 @@ extern grub_jmp_buf restart_cmdline_env;
+ /* misc */
+ void init_page (void);
+ void print_error (void);
+-char *convert_to_ascii (char *buf, int c, ...);
++char *convert_to_ascii (char *buf, int c, unsigned int num);
+ int get_cmdline (char *prompt, char *cmdline, int maxlen,
+ 		 int echo_char, int history);
+ int substring (const char *s1, const char *s2);
++int subcasestring (const char *s1, const char *s2);
+ int nul_terminate (char *str);
+ int get_based_digit (int c, int base);
+ int safe_parse_maxint (char **str_ptr, int *myint_ptr);
+@@ -934,7 +991,9 @@ int next_partition (unsigned long drive, unsigned long dest,
+ 		    unsigned long *partition, int *type,
+ 		    unsigned long *start, unsigned long *len,
+ 		    unsigned long *offset, int *entry,
+-		    unsigned long *ext_offset, char *buf);
++                   unsigned long *ext_offset,
++                   unsigned long *gpt_offset, int *gpt_count,
++                   int *gpt_size, char *buf);
+ 
+ /* Sets device to the one represented by the SAVED_* parameters. */
+ int make_saved_active (void);
+@@ -987,10 +1046,22 @@ int load_module (char *module, char *arg);
+ int load_initrd (char *initrd);
+ 
+ int check_password(char *entered, char* expected, password_t type);
++
++char *sha256_crypt (const char *key, const char *salt);
++char *sha512_crypt (const char *key, const char *salt);
+ #endif
+ 
+ void init_bios_info (void);
+ 
++#ifdef PLATFORM_EFI
++void grub_set_config_file (char *path_name);
++int grub_save_saved_default (int new_default);
++extern int check_device (const char *device);
++extern void assign_device_name (int drive, const char *device);
++#endif
++int grub_load_linux (char *kernel, char *arg);
++int grub_load_initrd (char *initrd);
++int grub_chainloader (char *filename);
+ #endif /* ASM_FILE */
+ 
+ #endif /* ! GRUB_SHARED_HEADER */
+diff --git a/stage2/smp-imps.h b/stage2/smp-imps.h
+index c0fdce3..bae9b77 100644
+--- a/stage2/smp-imps.h
++++ b/stage2/smp-imps.h
+@@ -196,7 +196,6 @@ struct imps_interrupt
+ 
+ int imps_probe (void);
+ 
+-
+ /*
+  *  Defines that use variables
+  */
+diff --git a/stage2/stage1_5.c b/stage2/stage1_5.c
+index 5c45d4c..c2d9632 100644
+--- a/stage2/stage1_5.c
++++ b/stage2/stage1_5.c
+@@ -30,7 +30,8 @@ disk_read_savesect_func (int sector, int offset, int length)
+ void
+ cmain (void)
+ {
+-  grub_printf ("\n\nGRUB loading, please wait...\n");
++  if (0)
++    grub_printf ("\n\nGRUB loading, please wait...\n");
+ 
+   /*
+    *  Here load the true second-stage boot-loader.
+diff --git a/stage2/stage2.c b/stage2/stage2.c
+index 4dbf6f5..cca4332 100644
+--- a/stage2/stage2.c
++++ b/stage2/stage2.c
+@@ -22,6 +22,8 @@
+ 
+ grub_jmp_buf restart_env;
+ 
++int silent_grub = 0;
++
+ #if defined(PRESET_MENU_STRING) || defined(SUPPORT_DISKLESS)
+ 
+ # if defined(PRESET_MENU_STRING)
+@@ -233,6 +235,10 @@ run_menu (char *menu_entries, char *config_entries, int num_entries,
+ {
+   int c, time1, time2 = -1, first_entry = 0;
+   char *cur_entry = 0;
++  struct term_entry *prev_term = NULL;
++
++  if (grub_verbose)
++    cls();
+ 
+   /*
+    *  Main loop for menu UI.
+@@ -254,18 +260,33 @@ restart:
+      interface. */
+   if (grub_timeout < 0)
+     show_menu = 1;
+-  
++
+   /* If SHOW_MENU is false, don't display the menu until ESC is pressed.  */
+   if (! show_menu)
+     {
++      /* Don't show the "Booting in blah seconds message" if the timeout is 0 */
++      int print_message = grub_timeout != 0;
++
+       /* Get current time.  */
+       while ((time1 = getrtsecs ()) == 0xFF)
+ 	;
+ 
++      if (print_message)
++	grub_printf("\rPress any key to enter the menu\n\n\n");
++
+       while (1)
+ 	{
+-	  /* Check if ESC is pressed.  */
+-	  if (checkkey () != -1 && ASCII_CHAR (getkey ()) == '\e')
++	  /* Check if any key is pressed */
++	  if (checkkey () != -1)
++	    {
++	      grub_timeout = -1;
++	      show_menu = 1;
++	      getkey ();
++	      break;
++	    }
++
++	  /* See if a modifier key is held down.  */
++	  if (keystatus () != 0)
+ 	    {
+ 	      grub_timeout = -1;
+ 	      show_menu = 1;
+@@ -287,8 +308,10 @@ restart:
+ 	      grub_timeout--;
+ 	      
+ 	      /* Print a message.  */
+-	      grub_printf ("\rPress `ESC' to enter the menu... %d   ",
+-			   grub_timeout);
++	      if (print_message)
++		grub_printf ("\rBooting %s in %d seconds...",
++		             get_entry(menu_entries, first_entry + entryno, 0),
++		             grub_timeout);
+ 	    }
+ 	}
+     }
+@@ -319,7 +342,8 @@ restart:
+ 	  if (config_entries)
+ 	    printf ("\
+       Press enter to boot the selected OS, \'e\' to edit the\n\
+-      commands before booting, or \'c\' for a command-line.");
++      commands before booting, \'a\' to modify the kernel arguments\n\
++      before booting, or \'c\' for a command-line.");
+ 	  else
+ 	    printf ("\
+       Press \'b\' to boot, \'e\' to edit the selected command in the\n\
+@@ -514,7 +538,7 @@ restart:
+ 		  if (c == 'O')
+ 		    {
+ 		      grub_memmove (cur_entry + 2, cur_entry,
+-				    ((int) heap) - ((int) cur_entry));
++				    heap - cur_entry);
+ 
+ 		      cur_entry[0] = ' ';
+ 		      cur_entry[1] = 0;
+@@ -530,8 +554,8 @@ restart:
+ 					    0);
+ 
+ 		      grub_memmove (cur_entry, ptr,
+-				    ((int) heap) - ((int) ptr));
+-		      heap -= (((int) ptr) - ((int) cur_entry));
++				    heap - ptr);
++		      heap -= ptr - cur_entry;
+ 
+ 		      num_entries--;
+ 
+@@ -655,7 +679,7 @@ restart:
+ 		  else
+ 		    {
+ 		      cls ();
+-		      print_cmdline_message (0);
++		      print_cmdline_message (CMDLINE_EDIT_MODE);
+ 
+ 		      new_heap = heap + NEW_HEAPSIZE + 1;
+ 
+@@ -681,7 +705,7 @@ restart:
+ 
+ 			  /* align rest of commands properly */
+ 			  grub_memmove (cur_entry + j, cur_entry + i,
+-					(int) heap - ((int) cur_entry + i));
++					(unsigned long) heap - ((unsigned long) cur_entry + i));
+ 
+ 			  /* copy command to correct area */
+ 			  grub_memmove (cur_entry, new_heap, j);
+@@ -697,6 +721,98 @@ restart:
+ 		  enter_cmdline (heap, 0);
+ 		  goto restart;
+ 		}
++	      if (config_entries && c == 'a')
++		{
++		  int new_num_entries = 0, i = 0, j;
++		  int needs_padding, amount;
++		  char *new_heap;
++		  char * entries;
++		  char * entry_copy;
++		  char * append_line;
++		  char * start;
++
++		  entry_copy = new_heap = heap;
++		  cur_entry = get_entry (config_entries, first_entry + entryno,
++					 1);
++		  
++		  do
++		    {
++		      while ((*(new_heap++) = cur_entry[i++]) != 0);
++		      new_num_entries++;
++		    }
++		  while (config_entries && cur_entry[i]);
++
++		  /* this only needs to be done if config_entries is non-NULL,
++		     but it doesn't hurt to do it always */
++		  *(new_heap++) = 0;
++
++		  new_heap = heap + NEW_HEAPSIZE + 1;
++
++		  entries = entry_copy;
++		  while (*entries) 
++		    {
++		      if ((strstr(entries, "kernel") == entries) &&
++			  isspace(entries[6])) 
++			  break;
++
++		      while (*entries) entries++;
++		      entries++;
++		    }
++
++		  if (!*entries)
++		      goto restart;
++
++		  start = entries + 6;
++
++		  /* skip the white space */
++		  while (*start && isspace(*start)) start++;
++		  /* skip the kernel name */
++		  while (*start && !isspace(*start)) start++;
++
++		  /* skip the white space */
++		  needs_padding = (!*start || !isspace(*start));
++		  while (*start && isspace(*start)) start++;
++
++		  append_line = new_heap;
++		  grub_strcpy(append_line, start);
++
++		  cls();
++		  print_cmdline_message (CMDLINE_EDIT_MODE);
++
++		  if (get_cmdline(PACKAGE " append> ", 
++				    append_line, NEW_HEAPSIZE + 1, 
++				    0, 1))
++		      goto restart;
++
++		  /* have new args; append_line points to the
++		     new args and start points to the old
++		     args */
++
++		  i = grub_strlen(start);
++		  j = grub_strlen(append_line);
++
++		  if (i > (j + needs_padding))
++		      amount = i;
++		  else
++		      amount = j + needs_padding;
++
++		  /* align rest of commands properly */
++		  memmove (start + j + needs_padding, start + i,
++		       ((unsigned long) append_line) - ((unsigned long) start) - (amount));
++
++		  if (needs_padding)
++		      *start = ' ';
++
++		  /* copy command to correct area */
++		  memmove (start + needs_padding, append_line, j);
++
++		  /* set up this entry to boot */
++		  config_entries = NULL;
++		  cur_entry = entry_copy;
++		  heap = new_heap;
++
++		  break;
++		}
+ #ifdef GRUB_UTIL
+ 	      if (c == 'q')
+ 		{
+@@ -712,16 +828,31 @@ restart:
+   
+  boot_entry:
+   
+-  cls ();
+-  setcursor (1);
++  if (grub_verbose || show_menu)
++    {
++      cls ();
++      setcursor (1);
++    }
++  /* if our terminal needed initialization, we should shut it down
++   * before booting the kernel, but we want to save what it was so
++   * we can come back if needed */
++  prev_term = current_term;
++  if (current_term->shutdown) 
++    {
++      (*current_term->shutdown)();
++      current_term = term_table; /* assumption: console is first */
++    }
++
++  if (silent_grub)
++    setcursor(0);
+   
+   while (1)
+     {
+       if (config_entries)
+-	printf ("  Booting \'%s\'\n\n",
++	verbose_printf ("  Booting \'%s\'\n\n",
+ 		get_entry (menu_entries, first_entry + entryno, 0));
+       else
+-	printf ("  Booting command-list\n\n");
++	verbose_printf ("  Booting command-list\n\n");
+ 
+       if (! cur_entry)
+ 	cur_entry = get_entry (config_entries, first_entry + entryno, 1);
+@@ -748,6 +879,13 @@ restart:
+ 	break;
+     }
+ 
++  /* if we get back here, we should go back to what our term was before */
++  current_term = prev_term;
++  if (current_term->startup)
++      /* if our terminal fails to initialize, fall back to console since
++       * it should always work */
++      if ((*current_term->startup)() == 0)
++          current_term = term_table; /* we know that console is first */
+   show_menu = 1;
+   goto restart;
+ }
+@@ -867,38 +1005,8 @@ cmain (void)
+       if (use_config_file)
+ #endif /* GRUB_UTIL */
+ 	{
+-	  char *default_file = (char *) DEFAULT_FILE_BUF;
+ 	  int i;
+-	  
+-	  /* Get a saved default entry if possible.  */
+-	  saved_entryno = 0;
+-	  *default_file = 0;
+-	  grub_strncat (default_file, config_file, DEFAULT_FILE_BUFLEN);
+-	  for (i = grub_strlen(default_file); i >= 0; i--)
+-	    if (default_file[i] == '/')
+-	      {
+-		i++;
+-		break;
+-	      }
+-	  default_file[i] = 0;
+-	  grub_strncat (default_file + i, "default", DEFAULT_FILE_BUFLEN - i);
+-	  if (grub_open (default_file))
+-	    {
+-	      char buf[10]; /* This is good enough.  */
+-	      char *p = buf;
+-	      int len;
+-	      
+-	      len = grub_read (buf, sizeof (buf));
+-	      if (len > 0)
+-		{
+-		  buf[sizeof (buf) - 1] = 0;
+-		  safe_parse_maxint (&p, &saved_entryno);
+-		}
+ 
+-	      grub_close ();
+-	    }
+-	  errnum = ERR_NONE;
+-	  
+ 	  do
+ 	    {
+ 	      /* STATE 0:  Before any title command.
+@@ -1050,11 +1158,16 @@ cmain (void)
+ 	  while (is_preset);
+ 	}
+ 
++      /* go ahead and make sure the terminal is setup */
++      if (current_term->startup)
++        (*current_term->startup)();
++
+       if (! num_entries)
+ 	{
+ 	  /* If no acceptable config file, goto command-line, starting
+ 	     heap from where the config entries would have been stored
+ 	     if there were any.  */
++	  grub_verbose = 1;
+ 	  enter_cmdline (config_entries, 1);
+ 	}
+       else
+diff --git a/stage2/start.S b/stage2/start.S
+index 9a7d504..7a6652f 100644
+--- a/stage2/start.S
++++ b/stage2/start.S
+@@ -39,6 +39,9 @@
+ 	
+ 	/* Print message string */
+ #define MSG(x)	movw $ABS(x), %si; call message
++	
++	/* Print verbose message string */
++#define VMSG(x)
+ 
+ 	.file	"start.S"
+ 
+@@ -67,9 +70,9 @@ _start:
+ 
+ 	/* print a notification message on the screen */
+ 	pushw	%si
+-	MSG(notification_string)
++	VMSG(notification_string)
+ 	popw	%si
+-	
++
+ 	/* this sets up for the first run through "bootloop" */
+ 	movw	$ABS(firstlist - BOOTSEC_LISTSIZE), %di
+ 
+@@ -291,9 +294,9 @@ copy_buffer:
+ 	movsb		/* this runs the actual copy */
+ 
+ 	/* restore addressing regs and print a dot with correct DS 
+-	   (MSG modifies SI, which is saved, and unused AX and BX) */
++	   (VMSG modifies SI, which is saved, and unused AX and BX) */
+ 	popw	%ds
+-	MSG(notification_step)
++	VMSG(notification_step)
+ 	popa
+ 
+ 	/* check if finished with this dataset */
+@@ -310,7 +313,7 @@ copy_buffer:
+ 
+ bootit:
+ 	/* print a newline */
+-	MSG(notification_done)
++	VMSG(notification_done)
+ 	popw	%dx	/* this makes sure %dl is our "boot" drive */
+ #ifdef STAGE1_5
+ 	ljmp	$0, $0x2200
+diff --git a/stage2/term.h b/stage2/term.h
+index 8261c7c..803de58 100644
+--- a/stage2/term.h
++++ b/stage2/term.h
+@@ -54,18 +54,28 @@ typedef enum
+ /* Set when the terminal needs to be initialized.  */
+ #define TERM_NEED_INIT		(1 << 16)
+ 
++/* Bitmasks for modifier keys returned by term->keystatus(). */
++#define TERM_STATUS_ALT		(1 << 3)
++#define TERM_STATUS_CTRL	(1 << 2)
++#define TERM_STATUS_LEFT_SHIFT	(1 << 1)
++#define TERM_STATUS_RIGHT_SHIFT	(1 << 0)
++
+ struct term_entry
+ {
+   /* The name of a terminal.  */
+   const char *name;
+   /* The feature flags defined above.  */
+   unsigned long flags;
++  /* Default for maximum number of lines if not specified */
++  unsigned short max_lines;
+   /* Put a character.  */
+   void (*putchar) (int c);
+   /* Check if any input character is available.  */
+   int (*checkkey) (void);
+   /* Get a character.  */
+   int (*getkey) (void);
++  /* Get keyboard modifier status.  */
++  int (*keystatus) (void);
+   /* Get the cursor position. The return value is ((X << 8) | Y).  */
+   int (*getxy) (void);
+   /* Go to the position (X, Y).  */
+@@ -79,6 +89,11 @@ struct term_entry
+   void (*setcolor) (int normal_color, int highlight_color);
+   /* Turn on/off the cursor.  */
+   int (*setcursor) (int on);
++
++  /* function to start a terminal */
++  int (*startup) (void);
++  /* function to use to shutdown a terminal */
++  void (*shutdown) (void);
+ };
+ 
+ /* This lists up available terminals.  */
+@@ -96,6 +111,7 @@ void console_putchar (int c);
+ #ifndef STAGE1_5
+ int console_checkkey (void);
+ int console_getkey (void);
++int console_keystatus (void);
+ int console_getxy (void);
+ void console_gotoxy (int x, int y);
+ void console_cls (void);
+@@ -124,4 +140,23 @@ void hercules_setcolor (int normal_color, int highlight_color);
+ int hercules_setcursor (int on);
+ #endif
+ 
++#ifdef SUPPORT_GRAPHICS
++extern int foreground, background, border, graphics_inited;
++
++void graphics_set_splash(char *splashfile);
++int set_videomode (int mode);
++void graphics_putchar (int c);
++int graphics_getxy(void);
++void graphics_gotoxy(int x, int y);
++void graphics_cls(void);
++void graphics_setcolorstate (color_state state);
++void graphics_setcolor (int normal_color, int highlight_color);
++int graphics_setcursor (int on);
++int graphics_init(void);
++void graphics_end(void);
++
++int hex(int v);
++void graphics_set_palette(int idx, int red, int green, int blue);
++#endif /* SUPPORT_GRAPHICS */
++
+ #endif /* ! GRUB_TERM_HEADER */
+diff --git a/stage2/tparm.c b/stage2/tparm.c
+index ff78d53..408b284 100644
+--- a/stage2/tparm.c
++++ b/stage2/tparm.c
+@@ -320,7 +320,7 @@ parse_format(const char *s, char *format, int *len)
+ #define isLOWER(c) ((c) >= 'a' && (c) <= 'z')
+ 
+ static inline char *
+-tparam_internal(const char *string, int *dataptr)
++tparam_internal(const char *string, va_list args)
+ {
+ #define NUM_VARS 26
+     char *p_is_s[9];
+@@ -461,9 +461,9 @@ tparam_internal(const char *string, int *dataptr)
+ 	 * a char* and an int may not be the same size on the stack.
+ 	 */
+ 	if (p_is_s[i] != 0) {
+-	  p_is_s[i] = (char *)(*(dataptr++));
++	  p_is_s[i] = va_arg (args, char *);
+ 	} else {
+-	  param[i] = (int)(*(dataptr++));
++	  param[i] = va_arg (args, int);
+ 	}
+     }
+ 
+@@ -716,11 +716,11 @@ char *
+ grub_tparm(const char *string,...)
+ {
+     char *result;
+-    int *dataptr = (int *) &string;
++    va_list ap;
+ 
+-    dataptr++;
+-
+-    result = tparam_internal(string, dataptr);
++    va_start (ap, string);
++    result = tparam_internal(string, ap);
++    va_end(ap);
+ 
+     return result;
+ }
+diff --git a/test b/test
+new file mode 100644
+index 0000000..b182379
+--- /dev/null
++++ b/test
+@@ -0,0 +1 @@
++fo of fo
+diff --git a/util/.gitignore b/util/.gitignore
+new file mode 100644
+index 0000000..6687356
+--- /dev/null
++++ b/util/.gitignore
+@@ -0,0 +1,7 @@
++Makefile.in
++Makefile
++.deps
++grub-image
++grub-install
++grub-md5-crypt
++grub-terminfo
+diff --git a/util/Makefile.am b/util/Makefile.am
+index 2e04711..fa545b1 100644
+--- a/util/Makefile.am
++++ b/util/Makefile.am
+@@ -1,6 +1,7 @@
++if !PLATFORM_EFI
++
+ bin_PROGRAMS = mbchk
+-sbin_SCRIPTS = grub-install grub-md5-crypt grub-terminfo \
+-	grub-set-default
++sbin_SCRIPTS = grub-install grub-md5-crypt grub-terminfo grub-crypt
+ noinst_SCRIPTS = grub-image mkbimage
+ 
+ EXTRA_DIST = mkbimage
+@@ -10,3 +11,9 @@ AM_CFLAGS = -I$(top_srcdir)/lib -I$(top_srcdir)/docs
+ 
+ mbchk_SOURCES = mbchk.c
+ mbchk_LDADD = ../lib/libcommon.a
++
++else
++
++sbin_SCRIPTS = grub-md5-crypt grub-terminfo grub-crypt
++
++endif
+diff --git a/util/Makefile.in b/util/Makefile.in
+index e700cf7..aa5a12e 100644
+--- a/util/Makefile.in
++++ b/util/Makefile.in
+@@ -1,8 +1,8 @@
+-# Makefile.in generated by automake 1.9.4 from Makefile.am.
++# Makefile.in generated by automake 1.10 from Makefile.am.
+ # @configure_input@
+ 
+ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+-# 2003, 2004  Free Software Foundation, Inc.
++# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+@@ -15,17 +15,11 @@
+ @SET_MAKE@
+ 
+ 
+-SOURCES = $(mbchk_SOURCES)
+-
+-srcdir = @srcdir@
+-top_srcdir = @top_srcdir@
+ VPATH = @srcdir@
+ pkgdatadir = $(datadir)/@PACKAGE@
+ pkglibdir = $(libdir)/@PACKAGE@
+ pkgincludedir = $(includedir)/@PACKAGE@
+-top_builddir = ..
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+-INSTALL = @INSTALL@
+ install_sh_DATA = $(install_sh) -c -m 644
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+@@ -43,17 +37,16 @@ bin_PROGRAMS = mbchk$(EXEEXT)
+ subdir = util
+ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ 	$(srcdir)/grub-image.in $(srcdir)/grub-install.in \
+-	$(srcdir)/grub-md5-crypt.in $(srcdir)/grub-set-default.in \
+-	$(srcdir)/grub-terminfo.in
++	$(srcdir)/grub-md5-crypt.in $(srcdir)/grub-terminfo.in
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+-	$(top_srcdir)/configure.ac
++	$(top_srcdir)/configure.in
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+ CONFIG_HEADER = $(top_builddir)/config.h
+ CONFIG_CLEAN_FILES = grub-image grub-install grub-md5-crypt \
+-	grub-terminfo grub-set-default
++	grub-terminfo
+ am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(sbindir)"
+ binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+ PROGRAMS = $(bin_PROGRAMS)
+@@ -62,7 +55,7 @@ mbchk_OBJECTS = $(am_mbchk_OBJECTS)
+ mbchk_DEPENDENCIES = ../lib/libcommon.a
+ sbinSCRIPT_INSTALL = $(INSTALL_SCRIPT)
+ SCRIPTS = $(noinst_SCRIPTS) $(sbin_SCRIPTS)
+-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
++DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
+ depcomp = $(SHELL) $(top_srcdir)/depcomp
+ am__depfiles_maybe = depfiles
+ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+@@ -75,17 +68,14 @@ ETAGS = etags
+ CTAGS = ctags
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ ACLOCAL = @ACLOCAL@
+-AMDEP_FALSE = @AMDEP_FALSE@
+-AMDEP_TRUE = @AMDEP_TRUE@
+ AMTAR = @AMTAR@
+ AUTOCONF = @AUTOCONF@
+ AUTOHEADER = @AUTOHEADER@
+ AUTOMAKE = @AUTOMAKE@
+ AWK = @AWK@
+-BUILD_EXAMPLE_KERNEL_FALSE = @BUILD_EXAMPLE_KERNEL_FALSE@
+-BUILD_EXAMPLE_KERNEL_TRUE = @BUILD_EXAMPLE_KERNEL_TRUE@
+ CC = @CC@
+ CCAS = @CCAS@
++CCASDEPMODE = @CCASDEPMODE@
+ CCASFLAGS = @CCASFLAGS@
+ CCDEPMODE = @CCDEPMODE@
+ CFLAGS = @CFLAGS@
+@@ -94,18 +84,16 @@ CPPFLAGS = @CPPFLAGS@
+ CYGPATH_W = @CYGPATH_W@
+ DEFS = @DEFS@
+ DEPDIR = @DEPDIR@
+-DISKLESS_SUPPORT_FALSE = @DISKLESS_SUPPORT_FALSE@
+-DISKLESS_SUPPORT_TRUE = @DISKLESS_SUPPORT_TRUE@
+ ECHO_C = @ECHO_C@
+ ECHO_N = @ECHO_N@
+ ECHO_T = @ECHO_T@
+ EGREP = @EGREP@
+ EXEEXT = @EXEEXT@
+ FSYS_CFLAGS = @FSYS_CFLAGS@
++GREP = @GREP@
+ GRUB_CFLAGS = @GRUB_CFLAGS@
+ GRUB_LIBS = @GRUB_LIBS@
+-HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@
+-HERCULES_SUPPORT_TRUE = @HERCULES_SUPPORT_TRUE@
++INSTALL = @INSTALL@
+ INSTALL_DATA = @INSTALL_DATA@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+@@ -113,14 +101,12 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
++LOADER_LDFLAGS = @LOADER_LDFLAGS@
+ LTLIBOBJS = @LTLIBOBJS@
+ MAINT = @MAINT@
+-MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+-MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+ MAKEINFO = @MAKEINFO@
++MKDIR_P = @MKDIR_P@
+ NETBOOT_DRIVERS = @NETBOOT_DRIVERS@
+-NETBOOT_SUPPORT_FALSE = @NETBOOT_SUPPORT_FALSE@
+-NETBOOT_SUPPORT_TRUE = @NETBOOT_SUPPORT_TRUE@
+ NET_CFLAGS = @NET_CFLAGS@
+ NET_EXTRAFLAGS = @NET_EXTRAFLAGS@
+ OBJCOPY = @OBJCOPY@
+@@ -134,22 +120,17 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
+ PATH_SEPARATOR = @PATH_SEPARATOR@
+ PERL = @PERL@
+ RANLIB = @RANLIB@
+-SERIAL_SPEED_SIMULATION_FALSE = @SERIAL_SPEED_SIMULATION_FALSE@
+-SERIAL_SPEED_SIMULATION_TRUE = @SERIAL_SPEED_SIMULATION_TRUE@
+-SERIAL_SUPPORT_FALSE = @SERIAL_SUPPORT_FALSE@
+-SERIAL_SUPPORT_TRUE = @SERIAL_SUPPORT_TRUE@
+ SET_MAKE = @SET_MAKE@
+ SHELL = @SHELL@
+ STAGE1_CFLAGS = @STAGE1_CFLAGS@
+ STAGE2_CFLAGS = @STAGE2_CFLAGS@
+ STRIP = @STRIP@
+ VERSION = @VERSION@
++abs_builddir = @abs_builddir@
++abs_srcdir = @abs_srcdir@
++abs_top_builddir = @abs_top_builddir@
++abs_top_srcdir = @abs_top_srcdir@
+ ac_ct_CC = @ac_ct_CC@
+-ac_ct_OBJCOPY = @ac_ct_OBJCOPY@
+-ac_ct_RANLIB = @ac_ct_RANLIB@
+-ac_ct_STRIP = @ac_ct_STRIP@
+-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+ am__include = @am__include@
+ am__leading_dot = @am__leading_dot@
+ am__quote = @am__quote@
+@@ -161,31 +142,40 @@ build_alias = @build_alias@
+ build_cpu = @build_cpu@
+ build_os = @build_os@
+ build_vendor = @build_vendor@
++builddir = @builddir@
+ datadir = @datadir@
++datarootdir = @datarootdir@
++docdir = @docdir@
++dvidir = @dvidir@
+ exec_prefix = @exec_prefix@
+ host = @host@
+ host_alias = @host_alias@
+ host_cpu = @host_cpu@
+ host_os = @host_os@
+ host_vendor = @host_vendor@
++htmldir = @htmldir@
+ includedir = @includedir@
+ infodir = @infodir@
+ install_sh = @install_sh@
+ libdir = @libdir@
+ libexecdir = @libexecdir@
++localedir = @localedir@
+ localstatedir = @localstatedir@
+ mandir = @mandir@
+ mkdir_p = @mkdir_p@
+ oldincludedir = @oldincludedir@
++pdfdir = @pdfdir@
+ prefix = @prefix@
+ program_transform_name = @program_transform_name@
++psdir = @psdir@
+ sbindir = @sbindir@
+ sharedstatedir = @sharedstatedir@
++srcdir = @srcdir@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
+-sbin_SCRIPTS = grub-install grub-md5-crypt grub-terminfo \
+-	grub-set-default
+-
++top_builddir = @top_builddir@
++top_srcdir = @top_srcdir@
++sbin_SCRIPTS = grub-install grub-md5-crypt grub-terminfo
+ noinst_SCRIPTS = grub-image mkbimage
+ EXTRA_DIST = mkbimage
+ 
+@@ -234,11 +224,9 @@ grub-md5-crypt: $(top_builddir)/config.status $(srcdir)/grub-md5-crypt.in
+ 	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+ grub-terminfo: $(top_builddir)/config.status $(srcdir)/grub-terminfo.in
+ 	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+-grub-set-default: $(top_builddir)/config.status $(srcdir)/grub-set-default.in
+-	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+ install-binPROGRAMS: $(bin_PROGRAMS)
+ 	@$(NORMAL_INSTALL)
+-	test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
++	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+ 	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+ 	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ 	  if test -f $$p \
+@@ -261,10 +249,10 @@ clean-binPROGRAMS:
+ 	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+ mbchk$(EXEEXT): $(mbchk_OBJECTS) $(mbchk_DEPENDENCIES) 
+ 	@rm -f mbchk$(EXEEXT)
+-	$(LINK) $(mbchk_LDFLAGS) $(mbchk_OBJECTS) $(mbchk_LDADD) $(LIBS)
++	$(LINK) $(mbchk_OBJECTS) $(mbchk_LDADD) $(LIBS)
+ install-sbinSCRIPTS: $(sbin_SCRIPTS)
+ 	@$(NORMAL_INSTALL)
+-	test -z "$(sbindir)" || $(mkdir_p) "$(DESTDIR)$(sbindir)"
++	test -z "$(sbindir)" || $(MKDIR_P) "$(DESTDIR)$(sbindir)"
+ 	@list='$(sbin_SCRIPTS)'; for p in $$list; do \
+ 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ 	  if test -f $$d$$p; then \
+@@ -291,19 +279,18 @@ distclean-compile:
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mbchk.Po at am__quote@
+ 
+ .c.o:
+- at am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(COMPILE) -c $<
+ 
+ .c.obj:
+- at am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+- at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
++ at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
++ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+-uninstall-info-am:
+ 
+ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+@@ -354,22 +341,21 @@ distclean-tags:
+ 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+ 
+ distdir: $(DISTFILES)
+-	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+-	list='$(DISTFILES)'; for file in $$list; do \
+-	  case $$file in \
+-	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+-	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+-	  esac; \
++	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
++	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
++	list='$(DISTFILES)'; \
++	  dist_files=`for file in $$list; do echo $$file; done | \
++	  sed -e "s|^$$srcdirstrip/||;t" \
++	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
++	case $$dist_files in \
++	  */*) $(MKDIR_P) `echo "$$dist_files" | \
++			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
++			   sort -u` ;; \
++	esac; \
++	for file in $$dist_files; do \
+ 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+-	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+-	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+-	    dir="/$$dir"; \
+-	    $(mkdir_p) "$(distdir)$$dir"; \
+-	  else \
+-	    dir=''; \
+-	  fi; \
+ 	  if test -d $$d/$$file; then \
++	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ 	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ 	    fi; \
+@@ -385,7 +371,7 @@ check: check-am
+ all-am: Makefile $(PROGRAMS) $(SCRIPTS)
+ installdirs:
+ 	for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(sbindir)"; do \
+-	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
++	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ 	done
+ install: install-am
+ install-exec: install-exec-am
+@@ -433,12 +419,20 @@ info-am:
+ 
+ install-data-am:
+ 
++install-dvi: install-dvi-am
++
+ install-exec-am: install-binPROGRAMS install-sbinSCRIPTS
+ 
++install-html: install-html-am
++
+ install-info: install-info-am
+ 
+ install-man:
+ 
++install-pdf: install-pdf-am
++
++install-ps: install-ps-am
++
+ installcheck-am:
+ 
+ maintainer-clean: maintainer-clean-am
+@@ -458,20 +452,23 @@ ps: ps-am
+ 
+ ps-am:
+ 
+-uninstall-am: uninstall-binPROGRAMS uninstall-info-am \
+-	uninstall-sbinSCRIPTS
++uninstall-am: uninstall-binPROGRAMS uninstall-sbinSCRIPTS
++
++.MAKE: install-am install-strip
+ 
+ .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+ 	clean-generic ctags distclean distclean-compile \
+ 	distclean-generic distclean-tags distdir dvi dvi-am html \
+ 	html-am info info-am install install-am install-binPROGRAMS \
+-	install-data install-data-am install-exec install-exec-am \
+-	install-info install-info-am install-man install-sbinSCRIPTS \
++	install-data install-data-am install-dvi install-dvi-am \
++	install-exec install-exec-am install-html install-html-am \
++	install-info install-info-am install-man install-pdf \
++	install-pdf-am install-ps install-ps-am install-sbinSCRIPTS \
+ 	install-strip installcheck installcheck-am installdirs \
+ 	maintainer-clean maintainer-clean-generic mostlyclean \
+ 	mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
+ 	tags uninstall uninstall-am uninstall-binPROGRAMS \
+-	uninstall-info-am uninstall-sbinSCRIPTS
++	uninstall-sbinSCRIPTS
+ 
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+diff --git a/util/grub-crypt.in b/util/grub-crypt.in
+new file mode 100644
+index 0000000..e8783c8
+--- /dev/null
++++ b/util/grub-crypt.in
+@@ -0,0 +1,80 @@
++#! /usr/bin/python
++
++'''Generate encrypted passwords for GRUB.'''
++
++import crypt
++import getopt
++import getpass
++import sys
++
++def usage():
++    '''Output usage message to stderr and exit.'''
++    print >> sys.stderr, 'Usage: grub-crypt [OPTION]...'
++    print >> sys.stderr, 'Try `$progname --help\' for more information.'
++    sys.exit(1)
++
++def gen_salt():
++    '''Generate a random salt.'''
++    ret = ''
++    with open('/dev/urandom', 'rb') as urandom:
++        while True:
++            byte = urandom.read(1)
++            if byte in ('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
++                        './0123456789'):
++                ret += byte
++                if len(ret) == 16:
++                    break
++    return ret
++
++def main():
++    '''Top level.'''
++    crypt_type = '$6$' # SHA-256
++    try:
++        opts, args = getopt.getopt(sys.argv[1:], 'hv',
++                                   ('help', 'version', 'md5', 'sha-256',
++                                    'sha-512'))
++    except getopt.GetoptError, err:
++        print >> sys.stderr, str(err)
++        usage()
++    if args:
++        print >> sys.stderr, 'Unexpected argument `%s\'' % (args[0],)
++        usage()
++    for (opt, _) in opts:
++        if opt in ('-h', '--help'):
++            print (
++'''Usage: grub-crypt [OPTION]...
++Encrypt a password.
++
++  -h, --help              Print this message and exit
++  -v, --version           Print the version information and exit
++  --md5                   Use MD5 to encrypt the password
++  --sha-256               Use SHA-256 to encrypt the password
++  --sha-512               Use SHA-512 to encrypt the password (default)
++
++Report bugs to <bug-grub at gnu.org>.
++EOF''')
++            sys.exit(0)
++        elif opt in ('-v', '--version'):
++            print 'grub-crypt (GNU GRUB @VERSION@)'
++            sys.exit(0)
++        elif opt == '--md5':
++            crypt_type = '$1$'
++        elif opt == '--sha-256':
++            crypt_type = '$5$'
++        elif opt == '--sha-512':
++            crypt_type = '$6$'
++        else:
++            assert False, 'Unhandled option'
++    password = getpass.getpass('Password: ')
++    password2 = getpass.getpass('Retype password: ')
++    if not password:
++        print >> sys.stderr, 'Empty password is not permitted.'
++        sys.exit(1)
++    if password != password2:
++        print >> sys.stderr, 'Sorry, passwords do not match.'
++        sys.exit(1)
++    salt = crypt_type + gen_salt()
++    print crypt.crypt(password, salt)
++
++if __name__ == '__main__':
++    main()
+diff --git a/util/grub-install.in b/util/grub-install.in
+index 2e598b0..12539b8 100644
+--- a/util/grub-install.in
++++ b/util/grub-install.in
+@@ -21,34 +21,36 @@
+ prefix=@prefix@
+ exec_prefix=@exec_prefix@
+ sbindir=@sbindir@
+-libdir=@libdir@
++datadir=@datadir@
+ PACKAGE=@PACKAGE@
+ VERSION=@VERSION@
+ host_cpu=@host_cpu@
+ host_os=@host_os@
+ host_vendor=@host_vendor@
+-pkglibdir=${libdir}/${PACKAGE}/${host_cpu}-${host_vendor}
++pkgdatadir=${datadir}/${PACKAGE}/${host_cpu}-${host_vendor}
+ 
+ grub_shell=${sbindir}/grub
+-grub_set_default=${sbindir}/grub-set-default
+-log_file=/tmp/grub-install.log.$$
+-img_file=/tmp/grub-install.img.$$
++mdadm=${sbindir}/mdadm
++log_file=${TMPDIR:-/tmp}/grub-install.log.$$
++img_file=${TMPDIR:-/tmp}/grub-install.img.$$
+ rootdir=
+ grub_prefix=/boot/grub
+ 
++install_drives=
+ install_device=
+ no_floppy=
+ force_lba=
+ recheck=no
+ debug=no
++justcopy=no
+ 
+ # look for secure tempfile creation wrappers on this platform
+ if test -x /bin/tempfile; then
+     mklog="/bin/tempfile --prefix=grub"
+     mkimg="/bin/tempfile --prefix=grub"
+ elif test -x /bin/mktemp; then
+-    mklog="/bin/mktemp /tmp/grub-install.log.XXXXXX"
+-    mkimg="/bin/mktemp /tmp/grub-install.img.XXXXXX"
++    mklog="/bin/mktemp ${TMPDIR:-/tmp}/grub-install.log.XXXXXX"
++    mkimg="/bin/mktemp ${TMPDIR:-/tmp}/grub-install.img.XXXXXX"
+ else
+     mklog=""
+     mkimg=""
+@@ -70,6 +72,8 @@ Install GRUB on your drive.
+   --force-lba             force GRUB to use LBA mode even for a buggy
+                           BIOS
+   --recheck               probe a device map even if it already exists
++                          This flag is unreliable and its use is
++                          strongly discouraged.
+ 
+ INSTALL_DEVICE can be a GRUB device name or a system device filename.
+ 
+@@ -96,17 +100,28 @@ convert () {
+     # Break the device name into the disk part and the partition part.
+     case "$host_os" in
+     linux*)
+-	tmp_disk=`echo "$1" | sed -e 's%\([sh]d[a-z]\)[0-9]*$%\1%' \
++	tmp_disk=`echo "$1" | grep -v '/mapper/control$' |
++		grep -v '/mapper/[[:alnum:]]\+-[[:alnum:]]\+$' | uniq |
++		sed -e 's%\([shv]d[a-z]\)[0-9]*$%\1%' \
+ 				  -e 's%\(d[0-9]*\)p[0-9]*$%\1%' \
+ 				  -e 's%\(fd[0-9]*\)$%\1%' \
+ 				  -e 's%/part[0-9]*$%/disc%' \
+-				  -e 's%\(c[0-7]d[0-9]*\).*$%\1%'`
+-	tmp_part=`echo "$1" | sed -e 's%.*/[sh]d[a-z]\([0-9]*\)$%\1%' \
++				  -e 's%\(c[0-7]d[0-9]*\).*$%\1%' \
++	  -e 's%\(/mapper/[[:alpha:]]\+[[:digit:]]\+\)p[[:digit:]]\+$%\1%' \
++	  -e 's%\(/mapper/isw_[[:alpha:]_]\+[[:alpha:]]\+[[:digit:]]\+\)p[[:digit:]]\+$%\1%' \
++	  -e 's%\(/mapper/[[:alpha:]]\+_[[:alpha:]]\+\)[[:digit:]]\+$%\1%'`
++	tmp_part=`echo "$1" | grep -v '/mapper/control$' |
++		grep -v '/mapper/[[:alnum:]]\+-[[:alnum:]]\+$' | uniq |
++		sed -e 's%.*/[shv]d[a-z]\([0-9]*\)$%\1%' \
+ 				  -e 's%.*d[0-9]*p%%' \
+ 				  -e 's%.*/fd[0-9]*$%%' \
+ 				  -e 's%.*/floppy/[0-9]*$%%' \
+ 				  -e 's%.*/\(disc\|part\([0-9]*\)\)$%\2%' \
+-				  -e 's%.*c[0-7]d[0-9]*p%%'`
++				  -e 's%.*c[0-7]d[0-9]*p%%' \
++	  -e 's%.*/mapper/[[:alpha:]]\+[[:digit:]]\+p\([[:digit:]]\+\)$%\1%' \
++	  -e 's%.*/mapper/isw_[[:alpha:]_]\+[[:alpha:]]\+[[:digit:]]\+p\([[:digit:]]\+\)$%\1%' \
++	  -e 's%.*/mapper/[[:alpha:]]\+_[[:alpha:]]\+\([[:digit:]]\+\)$%\1%' |
++		grep -v '.*/mapper/.*'`
+ 	;;
+     gnu*)
+ 	tmp_disk=`echo "$1" | sed 's%\([sh]d[0-9]*\).*%\1%'`
+@@ -196,7 +211,7 @@ resolve_symlink () {
+ 	while test -L $tmp_fname; do
+ 		tmp_new_fname=`ls -al $tmp_fname | sed -n 's%.*-> \(.*\)%\1%p'`
+ 		if test -z "$tmp_new_fname"; then
+-			echo "Unrecognized ls output" 2>&1
++			echo "Unrecognized ls output" 1>&2
+ 			exit 1
+ 		fi
+ 
+@@ -211,6 +226,80 @@ resolve_symlink () {
+ 	echo "$tmp_fname"
+ }
+ 
++# Usage: is_raid1_device devicename
++# Returns 0 if devicename is a raid1 md device, 1 if it is not.
++is_raid1_device () {
++    case "$host_os" in
++    linux*)
++	level=`$mdadm --query --detail $1 2>/dev/null | \
++		awk '/Raid Level :/ {print $4}'` 
++	if [ "$level" = "raid1" ]; then
++	    return 0
++	fi
++    ;;
++    esac
++    return 1
++}
++
++# Usage: find_real_devs device
++# Returns space separated list of devices for linux if device is 
++# a raid1 device. In all other cases, the provided value is returned.
++find_real_devs () {
++    source_device=$1
++    case "$host_os" in
++    linux*)
++	if is_raid1_device $source_device ; then
++	    list=""
++	    for device in `$mdadm --query --detail "${source_device}" | \
++		    awk '/\/dev\/[^(md)]/ {print $7}'` ; do
++		list="$list $device"
++	    done
++	    echo $list
++	    return 0
++	fi
++    ;;
++    esac
++    echo $source_device
++    return 0
++}
++
++# Usage: stat_device file
++# Find major:minor of a device node.
++stat_device() {
++    majmin=`stat -c "%t:%T" "$1" 2>/dev/null`
++    if test -z "$majmin"; then
++	echo "Could not find device for $1" 1>&2
++	exit 1
++    fi
++
++    echo "$majmin"
++}
++
++# Usage: find_mapper_device file
++# Find a file in /dev/mapper with the same major:minor as the specified node.
++find_mapper_device() {
++    if [ -b "$1" ]; then
++	dev="$1"
++    else
++	mntpnt=`echo "$1" | sed 's,/,\\\\/,g'`
++	dev=`awk '($2 ~ /'$mntpnt'/) { print $1 }' /etc/mtab`
++    fi
++    if test -z "$dev"; then
++	echo "Could not find device for $1" 1>&2
++	exit 1
++    fi
++	
++    majmin=`stat_device $dev`
++    for x in /dev/mapper/* ; do
++	devmajmin=`stat_device "$x"`
++	if [ "$majmin" == "$devmajmin" ]; then
++	    echo "$x"
++	    return 0
++	fi
++    done
++    return 1
++}
++
+ # Usage: find_device file
+ # Find block device on which the file resides.
+ find_device () {
+@@ -219,15 +308,55 @@ find_device () {
+     tmp_fname=`df $1/ | sed -n 's%.*\(/dev/[^ 	]*\).*%\1%p'`
+ 
+     if test -z "$tmp_fname"; then
+-	echo "Could not find device for $1" 2>&1
++	echo "Could not find device for $1" 1>&2
+ 	exit 1
+     fi
+ 
+-	tmp_fname=`resolve_symlink $tmp_fname`
++    ret_fname=`resolve_symlink $tmp_fname` || exit 1
++    tmp_fname=`find_mapper_device $ret_fname`
++    if test -n "$tmp_fname"; then
++	ret_fname="$tmp_fname"
++    fi
++
++    echo "$ret_fname"
++    return 0
++}
++
++copy_images() {
++    # Copy the GRUB images to the GRUB directory.
++    for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
++	rm -f $file || exit 1
++    done
++    for file in \
++	${pkgdatadir}/stage1 ${pkgdatadir}/stage2 ${pkgdatadir}/*stage1_5; do
++	cp -f $file ${grubdir} 1>&2 || exit 1
++    done
++}
++
++
++dump_boot_block () {
++    sync
++    $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file
++dump ${root_drive}${tmp} ${img_file}
++quit
++EOF
++}
++
++
++install_boot_block () {
++    # Before all invocations of the grub shell, call sync to make sure
++    # the raw device is in sync with any bufferring in filesystems.
++    sync
+ 
+-    echo "$tmp_fname"
++    # Now perform the installation.
++    $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >>$log_file
++root $1
++setup $force_lba --stage2=$grubdir/stage2 --prefix=$grub_prefix $2
++quit
++EOF
+ }
+ 
++
+ # Check the arguments.
+ for option in "$@"; do
+     case "$option" in
+@@ -247,6 +376,8 @@ for option in "$@"; do
+ 	force_lba="--force-lba" ;;
+     --recheck)
+ 	recheck=yes ;;
++    --just-copy)
++        justcopy=yes ;;
+     # This is an undocumented feature...
+     --debug)
+ 	debug=yes ;;
+@@ -265,12 +396,6 @@ for option in "$@"; do
+     esac
+ done
+ 
+-if test "x$install_device" = x; then
+-    echo "install_device not specified." 1>&2
+-    usage
+-    exit 1
+-fi
+-
+ # If the debugging feature is enabled, print commands.
+ if test $debug = yes; then
+     set -x
+@@ -293,6 +418,26 @@ esac
+ grubdir=${bootdir}/grub
+ device_map=${grubdir}/device.map
+ 
++if [ "$recheck" == "yes" ]; then
++    if grep 'mapper' ${device_map} >/dev/null; then
++	echo 'grub-install does not support reprobing of device.map when' 1>&2
++	echo 'using a device-mapper based boot device.' 1>&2
++	exit 1
++    fi
++fi
++
++# if they just want the images copied, copy the images and then exit
++if test $justcopy = yes; then
++    copy_images
++    exit 0
++fi
++
++if test "x$install_device" = x; then
++    echo "install_device not specified." 1>&2
++    usage
++    exit 1
++fi
++
+ # Check if GRUB is installed.
+ # This is necessary, because the user can specify "grub --read-only".
+ set $grub_shell dummy
+@@ -303,17 +448,17 @@ else
+     exit 1
+ fi
+ 
+-if test -f "$pkglibdir/stage1"; then
++if test -f "$pkgdatadir/stage1"; then
+     :
+ else
+-    echo "${pkglibdir}/stage1: Not found." 1>&2
++    echo "${pkgdatadir}/stage1: Not found." 1>&2
+     exit 1
+ fi
+ 
+-if test -f "$pkglibdir/stage2"; then
++if test -f "$pkgdatadir/stage2"; then
+     :
+ else
+-    echo "${pkglibdir}/stage2: Not found." 1>&2
++    echo "${pkgdatadir}/stage2: Not found." 1>&2
+     exit 1
+ fi
+ 
+@@ -324,9 +469,11 @@ fi
+ test -d "$bootdir" || mkdir "$bootdir" || exit 1
+ test -d "$grubdir" || mkdir "$grubdir" || exit 1
+ 
++copy_images
++
+ # If --recheck is specified, remove the device map, if present.
+ if test $recheck = yes; then
+-    rm -f $device_map
++    mv $device_map ${device_map}.backup
+ fi
+ 
+ # Create the device map file if it is not present.
+@@ -336,6 +483,10 @@ else
+     # Create a safe temporary file.
+     test -n "$mklog" && log_file=`$mklog`
+ 
++    # Before all invocations of the grub shell, call sync to make sure
++    # the raw device is in sync with any bufferring in filesystems.
++    sync
++ 
+     $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file
+ quit
+ EOF
+@@ -351,34 +502,60 @@ fi
+ tmp=`sed -n '/^([fh]d[0-9]*)/s/\(^(.*)\).*/\1/p' $device_map \
+     | sort | uniq -d | sed -n 1p`
+ if test -n "$tmp"; then
+-    echo "The drive $tmp is defined multiple times in the device map $device_map" 1>&2
++    echo "The drive $tmp is defined multiple times in the new device map." 1>&2
++    if test $recheck = yes; then
++        echo "Reverting to backed up copy." 1>&2
++        mv ${device_map}.backup $device_map
++    fi
++    exit 1
++fi
++
++# Make sure device.map has at least one hd device
++grep -q "^(hd[0-9]\+)" $device_map
++if [ "x$?" != "x0" ]; then
++    echo "No suitable drive was found in the generated device map." 1>&2
++    if test $recheck = yes; then
++        echo "Reverting to backed up copy." 1>&2
++        mv ${device_map}.backup $device_map
++    fi
+     exit 1
+ fi
+ 
+ # Check for INSTALL_DEVICE.
+ case "$install_device" in
+ /dev/*)
+-    install_device=`resolve_symlink "$install_device"`
+-    install_drive=`convert "$install_device"`
+-    # I don't know why, but some shells wouldn't die if exit is
+-    # called in a function.
+-    if test "x$install_drive" = x; then
++    install_device=`resolve_symlink "$install_device"` || exit 1
++    for install_drive in `find_real_devs $install_device` ; do
++	install_drive=`convert $install_drive` || exit 1
++	if is_raid1_device $install_device; then
++		install_drive=`echo $install_drive | sed 's/,[0-9]*)/)/'`
++	fi
++	if [ "x$install_drive" = "x" ]; then
++	    exit 1
++	fi
++	install_drives="${install_drives} ${install_drive}"
++    done
++    unset install_drive
++	
++    if test "x$install_drives" = x ; then
+ 	exit 1
+     fi ;;
+ \([hf]d[0-9]*\))
+-    install_drive="$install_device" ;;
++    install_drives="$install_device" ;;
+ [hf]d[0-9]*)
+     # The GRUB format with no parenthesis.
+-    install_drive="($install_device)" ;;
++    install_drives="($install_device)" ;;
+ *)
+     echo "Format of install_device not recognized." 1>&2
+     usage
+     exit 1 ;;
+ esac
+ 
++unset install_device
++
+ # Get the root drive.
+-root_device=`find_device ${rootdir}`
+-bootdir_device=`find_device ${bootdir}`
++root_device=`find_device ${rootdir}` || exit 1
++bootdir_device=`find_device ${bootdir}` || exit 1
+ 
+ # Check if the boot directory is in the same device as the root directory.
+ if test "x$root_device" != "x$bootdir_device"; then
+@@ -387,15 +564,8 @@ if test "x$root_device" != "x$bootdir_device"; then
+     grub_prefix="/grub"
+ fi
+ 
+-# Convert the root device to a GRUB drive.
+-root_drive=`convert "$root_device"`
+-if test "x$root_drive" = x; then
+-    exit 1
+-fi
+-
+-# Check if the root directory exists in the same device as the grub
+-# directory.
+-grubdir_device=`find_device ${grubdir}`
++# Check if the root directory exists in the same device as the grub directory.
++grubdir_device=`find_device ${grubdir}` || exit 1
+ 
+ if test "x$grubdir_device" != "x$root_device"; then
+     # For now, cannot deal with this situation.
+@@ -406,61 +576,71 @@ EOF
+     exit 1
+ fi
+ 
+-# Copy the GRUB images to the GRUB directory.
+-for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
+-    rm -f $file || exit 1
+-done
+-for file in \
+-    ${pkglibdir}/stage1 ${pkglibdir}/stage2 ${pkglibdir}/*stage1_5; do
+-    cp -f $file ${grubdir} || exit 1
+-done
+-
+-# Make a default file.
+-${grub_set_default} --root-directory=${rootdir} default
+-
+ # Make sure that GRUB reads the same images as the host OS.
+ test -n "$mkimg" && img_file=`$mkimg`
+ test -n "$mklog" && log_file=`$mklog`
+ 
++# There's not a real root device, so just pick the first
++if is_raid1_device $root_device ; then
++    root_device=`find_real_devs $root_device | awk '{print $1}'`
++fi
++
++# Convert the root deviceto a GRUB drive.
++root_drive=`convert "$root_device"` || exit 1
++if [ "x$root_drive" = x ]; then
++    exit 1
++fi
++
+ for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
+     count=5
+     tmp=`echo $file | sed "s|^${grubdir}|${grub_prefix}|"`
+     while test $count -gt 0; do
+-	$grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file
+-dump ${root_drive}${tmp} ${img_file}
+-quit
+-EOF
+-	if grep "Error [0-9]*: " $log_file >/dev/null; then
+-	    :
+-	elif cmp $file $img_file >/dev/null; then
+-	    break
+-	fi
+-	sleep 1
+-	count=`expr $count - 1`    
++        dump_boot_block $root_drive $img_file
++        if grep "Error [0-9]*: " $log_file >/dev/null; then
++            :
++        else
++            # Use sha1sum instead of cmp to avoid a dependency on diffutils.
++            sha1=`sha1sum $file | cut -d' ' -f 1`
++            sha2=`sha1sum $img_file | cut -d' ' -f 1`
++            if test -f $file -a -f $img_file -a "$sha1" = "$sha2"; then
++                break
++            fi
++        fi
++        sleep 1
++        count=`expr $count - 1`    
+     done
+     if test $count -eq 0; then
+-	echo "The file $file not read correctly." 1>&2
+-	exit 1
++        echo "The file $file not read correctly." 1>&2
++        exit 1
+     fi
+ done
+ 
+ rm -f $img_file
+ rm -f $log_file
+ 
++if ! test -e ${grubdir}/grub.conf ; then
++    test -e ${grubdir}/menu.lst && ln -s ./menu.lst ${grubdir}/grub.conf
++fi
++
+ # Create a safe temporary file.
+ test -n "$mklog" && log_file=`$mklog`
+ 
+-# Now perform the installation.
+-$grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file
+-root $root_drive
+-setup $force_lba --stage2=$grubdir/stage2 --prefix=$grub_prefix $install_drive
+-quit
+-EOF
++for install_drive in $install_drives; do 
++    # Convert the root deviceto a GRUB drive.
++    root_drive=`convert "$root_device"` || exit 1
++    if [ "x$root_drive" = x ]; then
++	exit 1
++    fi
++    install_boot_block $root_drive $install_drive
++done
+ 
+-if grep "Error [0-9]*: " $log_file >/dev/null || test $debug = yes; then
++if grep "Error [0-9]*: " $log_file >/dev/null ; then
+     cat $log_file 1>&2
+     exit 1
+ fi
++if test $debug = yes; then
++    cat $log_file 1>&2
++fi
+ 
+ rm -f $log_file
+ 


More information about the scm-commits mailing list