Add new bootstub source.

This is the inline bootloader that will be embedded in the signed kernel
partition.

Review URL: http://codereview.chromium.org/2071024
diff --git a/files/Makefile b/files/Makefile
new file mode 100644
index 0000000..f582006
--- /dev/null
+++ b/files/Makefile
@@ -0,0 +1,83 @@
+#
+#  Copyright (C) 1999-2001 Hewlett-Packard Co.
+#	Contributed by David Mosberger <davidm@hpl.hp.com>
+#	Contributed by Stephane Eranian <eranian@hpl.hp.com>
+#
+# This file is part of the gnu-efi package.
+#
+#  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.
+#
+
+PREFIX 	   ?= /usr/bin/x86_64-pc-linux-gnu-
+CC    	   ?= $(PREFIX)gcc
+LD         ?= $(PREFIX)ld
+OBJCOPY    ?= $(PREFIX)objcopy
+
+
+EFIINC     = /usr/include/efi
+EFILIB     = /usr/lib
+EFICRT0    = /usr/lib
+
+ARCH       = $(shell uname -m | sed s,i[3456789]86,ia32,)
+
+INCDIR     = -I$(EFIINC) -I$(EFIINC)/$(ARCH)
+
+CPPFLAGS   = -DCONFIG_$(ARCH) 
+
+OPTIMFLAGS = -O2 
+DEBUGFLAGS = -Wall
+CFLAGS     = $(OPTIMFLAGS) -fpic -fshort-wchar $(DEBUGFLAGS)
+CFLAGS     += -DEFI_FUNCTION_WRAPPER
+LDFLAGS    = -nostdlib -znocombreloc
+
+
+CRTOBJS       = $(EFICRT0)/crt0-efi-$(ARCH).o
+LDSCRIPT      = $(EFICRT0)/elf_$(ARCH)_efi.lds
+
+LDFLAGS		+= -T $(LDSCRIPT) -shared -Bsymbolic -L$(EFILIB) $(CRTOBJS)
+LOADLIBES	= -lefi -lgnuefi $(shell $(CC) -print-libgcc-file-name)
+FORMAT		= efi-app-$(ARCH)
+
+
+TARGETS = bootstub.efi
+
+all:	$(TARGETS)
+
+clean:
+	rm -f $(TARGETS) *~ *.o *.so
+
+install: bootstub.efi
+	mkdir -p $(DESTDIR)
+	cp -f $^ $(DESTDIR)
+
+.PHONY: all clean install
+
+
+bootstub.so: bootstub.o trampoline.o
+	$(LD) $(LDFLAGS) $^ -o $@ $(LOADLIBES)
+
+%.efi: %.so 
+	$(OBJCOPY) -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel \
+		   -j .rela -j .reloc --target=$(FORMAT) $*.so $@
+
+%.so: %.o 
+	$(LD) $(LDFLAGS) $^ -o $@ $(LOADLIBES)
+
+%.o: %.c
+	$(CC) $(INCDIR) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
+
+%.o: %.S 
+	$(CC) $(INCDIR) $(CFLAGS) $(CPPFLAGS) -c $< -o $@