|
@@ -1,4 +1,4 @@
|
|
-#
|
|
|
|
|
|
+# -*- makefile -*-
|
|
# Copyright (c) 1999-2007 Hewlett-Packard Development Company, L.P.
|
|
# Copyright (c) 1999-2007 Hewlett-Packard Development Company, L.P.
|
|
# Contributed by David Mosberger <davidm@hpl.hp.com>
|
|
# Contributed by David Mosberger <davidm@hpl.hp.com>
|
|
# Contributed by Stephane Eranian <eranian@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
|
|
# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
|
|
# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
# SUCH DAMAGE.
|
|
# 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
|
|
# Where to install the package. GNU-EFI will create and access
|
|
# lib and include under the root
|
|
# 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
|
|
# FreeBSD (and possibly others) reports amd64 instead of x86_64
|
|
-ifeq ($(ARCH), amd64)
|
|
|
|
-ARCH = x86_64
|
|
|
|
|
|
+ifeq ($(ARCH),amd64)
|
|
|
|
+ override ARCH := x86_64
|
|
endif
|
|
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)
|
|
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
|
|
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)
|
|
ifeq ($(ARCH),ia64)
|
|
CFLAGS += -mfixed-range=f32-f127
|
|
CFLAGS += -mfixed-range=f32-f127
|
|
endif
|
|
endif
|
|
|
|
|
|
-ifeq ($(ARCH), ia32)
|
|
|
|
- ifeq ($(HOSTARCH), x86_64)
|
|
|
|
|
|
+ifeq ($(ARCH),ia32)
|
|
|
|
+ ifeq ($(HOSTARCH),x86_64)
|
|
ARCH3264 = -m32
|
|
ARCH3264 = -m32
|
|
endif
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
|
|
-ifeq ($(ARCH), x86_64)
|
|
|
|
|
|
+ifeq ($(ARCH),x86_64)
|
|
CFLAGS += -mno-red-zone
|
|
CFLAGS += -mno-red-zone
|
|
- ifeq ($(HOSTARCH), ia32)
|
|
|
|
|
|
+ ifeq ($(HOSTARCH),ia32)
|
|
ARCH3264 = -m64
|
|
ARCH3264 = -m64
|
|
endif
|
|
endif
|
|
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
|