CDIR := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi)
TOPDIR =
-ARCH = $(shell uname -m | sed s,i[3456789]86,ia32,)
-INCDIR = -I. -I$(TOPDIR) -I$(EFIINC) -I$(EFIINC)/$(ARCH) -I$(EFIINC)/protocol
+HOSTARCH = $(shell dpkg-architecture -qDEB_BUILD_ARCH | sed s,i[3456789]86,ia32,)
+ARCH := $(shell dpkg-architecture -qDEB_BUILD_ARCH | sed s,i[3456789]86,ia32,)
+INCDIR = -I. -I$(TOPDIR) -I$(EFIINC) -I$(EFIINC)/$(ARCH) -I$(EFIINC)/protocol -I$(TOPDIR)/efi110
CPPFLAGS = -DCONFIG_$(ARCH)
OPTIMFLAGS = -O2
DEBUGFLAGS = -Wall
-CFLAGS = $(OPTIMFLAGS) -fno-strict-aliasing -fpic -fshort-wchar $(DEBUGFLAGS)
+CFLAGS = $(ARCH3264) $(OPTIMFLAGS) -fpic -fshort-wchar $(DEBUGFLAGS)
+ASFLAGS = $(ARCH3264)
LDFLAGS = -nostdlib -znocombreloc
INSTALL = install
# Use Modified binutils that supports x86_64 using UEFI ABI
ifeq ($(ARCH), x86_64)
+ ifeq ($(HOSTARCH), ia32)
+ ARCH3264 = -m64
+ LD3264 = -melf_x86_64
+
+ GNUEFILIB := $(GNUEFILIB)64
+ EFILIB := $(EFILIB)64
+ EFICRT0 := $(EFICRT0)64
+ endif
+
CFLAGS += -DEFI_FUNCTION_WRAPPER
OBJCOPY = /usr/bin/objcopy
endif
+ifeq ($(ARCH), ia32)
+ ifeq ($(HOSTARCH), x86_64)
+ ARCH3264 = -m32
+ LD3264 = -melf_i386
+
+ GNUEFILIB := /emul/ia32-linux$(GNUEFILIB)
+ EFILIB := /emul/ia32-linux$(EFILIB)
+ EFICRT0 := /emul/ia32-linux$(EFICRT0)
+ endif
+endif
+
ifeq ($(ARCH),ia64)
GCC_VERSION=$(shell $(CROSS_COMPILE)$(CC) -v 2>&1 | fgrep 'gcc version' | cut -f3 -d' ' | cut -f1 -d'.')