summaryrefslogtreecommitdiffstats
path: root/gnu-efi-3.0/Make.defaults
diff options
context:
space:
mode:
Diffstat (limited to 'gnu-efi-3.0/Make.defaults')
-rw-r--r--gnu-efi-3.0/Make.defaults89
1 files changed, 57 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