diff options
author | Matt Fleming <matt.fleming@linux.intel.com> | 2011-03-11 12:49:39 +0000 |
---|---|---|
committer | Matt Fleming <matt.fleming@linux.intel.com> | 2011-03-11 13:50:29 +0000 |
commit | ad15232a0e0b2f5ff3d8311c96fe850225ab61bd (patch) | |
tree | 06068cadb29e12cc576b69d346238bc152f36479 | |
parent | 5b07ae8ff9d7516e55120e89942aa4f206905358 (diff) | |
download | efilinux-ad15232a0e0b2f5ff3d8311c96fe850225ab61bd.tar.gz |
Makefile: Allow buildling for ia32
Extract all the architecture-specific options and infer which
architecture we're building from $(CC) -dumpmachine. Currently, only
x86-64 and ia32 are supported, but it would be trivial to add ia64
support.
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
-rw-r--r-- | Makefile | 21 |
1 files changed, 16 insertions, 5 deletions
@@ -21,14 +21,25 @@ -j .rela -j .reloc --target=$(FORMAT) $*.so $@ OBJCOPY=objcopy -ARCH=x86-64 -FORMAT=efi-app-$(ARCH) -LDSCRIPT=/usr/lib64/gnuefi/elf_x86_64_efi.lds +MACHINE=$(shell $(CC) -dumpmachine | sed "s/\(-\).*$$//") -CFLAGS=-I. -I/usr/include/efi -I/usr/include/efi/x86_64 \ +ifeq ($(MACHINE),x86_64) + ARCH=$(MACHINE) + LIBDIR=/usr/lib64 + FORMAT=efi-app-x86-64 +else + ARCH=ia32 + LIBDIR=/usr/lib + FORMAT=efi-app-$(ARCH) +endif + +CRT0=$(LIBDIR)/gnuefi/crt0-efi-$(ARCH).o +LDSCRIPT=$(LIBDIR)/gnuefi/elf_$(ARCH)_efi.lds + +CFLAGS=-I. -I/usr/include/efi -I/usr/include/efi/$(ARCH) \ -DEFI_FUNCTION_WRAPPER -fPIC -fshort-wchar -LDFLAGS=-T $(LDSCRIPT) -Bsymbolic -shared -nostdlib -L/usr/lib64/ /usr/lib64/gnuefi/crt0-efi-x86_64.o +LDFLAGS=-T $(LDSCRIPT) -Bsymbolic -shared -nostdlib -L$(LIBDIR) $(CRT0) IMAGE=efilinux.efi OBJS = entry.o |