summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gnu-efi-3.0/Make.defaults89
-rw-r--r--gnu-efi-3.0/Makefile26
2 files changed, 83 insertions, 32 deletions
diff --git a/gnu-efi-3.0/Make.defaults b/gnu-efi-3.0/Make.defaults
index 0585915..2adada6 100644
--- a/gnu-efi-3.0/Make.defaults
+++ b/gnu-efi-3.0/Make.defaults
@@ -1,4 +1,4 @@
-#
+# -*- makefile -*-
# Copyright (c) 1999-2007 Hewlett-Packard Development Company, L.P.
# Contributed by David Mosberger <davidm@hpl.hp.com>
# Contributed by Stephane Eranian <eranian@hpl.hp.com>
@@ -32,60 +32,85 @@
# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
-# #
+#
+
+TOPDIR := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi)
+
+#
+# Variables below overridable from command-line:
+# make VARNAME=value ...
+#
#
# Where to install the package. GNU-EFI will create and access
# lib and include under the root
#
-INSTALLROOT := /
-PREFIX := /usr/local
-LIBDIR := ${PREFIX}/lib
+INSTALLROOT := /
+PREFIX := /usr/local
+LIBDIR := $(PREFIX)/lib
+INSTALL := install
-TOPDIR := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi)
+# Host/target identification
+OS := $(shell uname -s)
+HOSTARCH := $(shell uname -m | sed s,i[3456789]86,ia32,)
+ARCH := $(shell uname -m | sed s,i[3456789]86,ia32,)
-HOSTARCH = $(shell uname -m | sed s,i[3456789]86,ia32,)
-ARCH := $(shell uname -m | sed s,i[3456789]86,ia32,)
# FreeBSD (and possibly others) reports amd64 instead of x86_64
-ifeq ($(ARCH), amd64)
-ARCH = x86_64
+ifeq ($(ARCH),amd64)
+ override ARCH := x86_64
endif
-OS = $(shell uname -s)
-INCDIR = -I$(SRCDIR) -I$(TOPDIR)/inc -I$(TOPDIR)/inc/$(ARCH) -I$(TOPDIR)/inc/protocol
-GCCVERSION := $(shell gcc -dumpversion | cut -f1 -d.)
-GCCMINOR := $(shell gcc -dumpversion | cut -f2 -d.)
-GCCNEWENOUGH := $(shell ([ $(GCCVERSION) -gt "4" ] || ([ $(GCCVERSION) -eq "4" ] && [ $(GCCMINOR) -ge "7" ])) && echo 1)
-CPPFLAGS = -DCONFIG_$(ARCH)
+# Compilation tools
+prefix := /usr/bin/
+CC := $(prefix)gcc
+AS := $(prefix)as
+LD := $(prefix)ld
+AR := $(prefix)ar
+RANLIB := $(prefix)ranlib
+OBJCOPY := $(prefix)objcopy
+
+
+#
+# Variables below derived from variables above
+#
+
+GCCVERSION := $(shell $(CC) -dumpversion | cut -f1 -d.)
+GCCMINOR := $(shell $(CC) -dumpversion | cut -f2 -d.)
+
+# Rely on GCC MS ABI support?
+GCCNEWENOUGH := $(shell ( [ $(GCCVERSION) -gt "4" ] \
+ || ( [ $(GCCVERSION) -eq "4" ] \
+ && [ $(GCCMINOR) -ge "7" ] ) ) \
+ && echo 1)
ifeq ($(GCCNEWENOUGH),1)
-CPPFLAGS += -DGNU_EFI_USE_MS_ABI -maccumulate-outgoing-args --std=c11
+ CPPFLAGS += -DGNU_EFI_USE_MS_ABI -maccumulate-outgoing-args --std=c11
endif
-CFLAGS = $(ARCH3264) -O2 -fpic -Wall -fshort-wchar -fno-strict-aliasing -fno-merge-constants -ffreestanding -fno-stack-protector -fno-stack-check
-ASFLAGS = $(ARCH3264)
-LDFLAGS = -nostdlib --no-undefined
-INSTALL = install
-prefix = /usr/bin/
-CC := $(prefix)gcc
-AS := $(prefix)as
-LD := $(prefix)ld
-AR := $(prefix)ar
-RANLIB := $(prefix)ranlib
-OBJCOPY := $(prefix)objcopy
+# Arch-specific compilation flags
+CPPFLAGS += -DCONFIG_$(ARCH)
ifeq ($(ARCH),ia64)
CFLAGS += -mfixed-range=f32-f127
endif
-ifeq ($(ARCH), ia32)
- ifeq ($(HOSTARCH), x86_64)
+ifeq ($(ARCH),ia32)
+ ifeq ($(HOSTARCH),x86_64)
ARCH3264 = -m32
endif
endif
-ifeq ($(ARCH), x86_64)
+ifeq ($(ARCH),x86_64)
CFLAGS += -mno-red-zone
- ifeq ($(HOSTARCH), ia32)
+ ifeq ($(HOSTARCH),ia32)
ARCH3264 = -m64
endif
endif
+
+# Generic compilation flags
+INCDIR += -I$(SRCDIR) -I$(TOPDIR)/inc -I$(TOPDIR)/inc/$(ARCH) \
+ -I$(TOPDIR)/inc/protocol
+CFLAGS += $(ARCH3264) -O2 -fpic -Wall -fshort-wchar -fno-strict-aliasing \
+ -fno-merge-constants -ffreestanding -fno-stack-protector \
+ -fno-stack-check
+ASFLAGS += $(ARCH3264)
+LDFLAGS += -nostdlib --no-undefined
diff --git a/gnu-efi-3.0/Makefile b/gnu-efi-3.0/Makefile
index d37e0ac..b4eda29 100644
--- a/gnu-efi-3.0/Makefile
+++ b/gnu-efi-3.0/Makefile
@@ -45,6 +45,32 @@ gnuefi: lib
all: check_gcc $(SUBDIRS)
+mkvars:
+ @echo AR=$(AR)
+ @echo ARCH=$(ARCH)
+ @echo ARCH3264=$(ARCH3264)
+ @echo AS=$(AS)
+ @echo ASFLAGS=$(ASFLAGS)
+ @echo CC=$(CC)
+ @echo CFLAGS=$(CFLAGS)
+ @echo CPPFLAGS=$(CPPFLAGS)
+ @echo GCCMINOR=$(GCCMINOR)
+ @echo GCCNEWENOUGH=$(GCCNEWENOUGH)
+ @echo GCCVERSION=$(GCCVERSION)
+ @echo HOSTARCH=$(HOSTARCH)
+ @echo INCDIR=$(INCDIR)
+ @echo INSTALL=$(INSTALL)
+ @echo INSTALLROOT=$(INSTALLROOT)
+ @echo LD=$(LD)
+ @echo LDFLAGS=$(LDFLAGS)
+ @echo LIBDIR=$(LIBDIR)
+ @echo OBJCOPY=$(OBJCOPY)
+ @echo OS=$(OS)
+ @echo prefix=$(prefix)
+ @echo PREFIX=$(PREFIX)
+ @echo RANLIB=$(RANLIB)
+ @echo TOPDIR=$(TOPDIR)
+
$(SUBDIRS):
mkdir -p $@
$(MAKE) -C $@ -f $(SRCDIR)/../$@/Makefile SRCDIR=$(SRCDIR)/../$@ ARCH=$(ARCH)