diff options
| author | Nigel Croxon <nigel.croxon@hp.com> | 2013-06-12 09:51:36 -0400 |
|---|---|---|
| committer | Nigel Croxon <nigel.croxon@hp.com> | 2013-06-12 09:51:36 -0400 |
| commit | f00a8a27834afcb1c125f3b44518bd4e13d2725d (patch) | |
| tree | ef56bdc263b392ec45c422ab021f7a1131875085 | |
| parent | 6e8db879958d52c2474db0300c8b36a7146ecc51 (diff) | |
| download | gnu-efi-3.0-f00a8a27834afcb1c125f3b44518bd4e13d2725d.tar.gz gnu-efi-3.0-f00a8a27834afcb1c125f3b44518bd4e13d2725d.tar.xz gnu-efi-3.0-f00a8a27834afcb1c125f3b44518bd4e13d2725d.zip | |
cleanup and fix Make.defaults
Reorder variables in Make.defaults so that they are grouped by
functions. Also fixed ifeq (x,y) to have required syntax and make it
work for ARCH amd64->x86_64 renaming on BSD. Also provides top-level
Makefile with a "mkvars" target that displays effective variables.
Signed-off-by: David Decotigny <decot@googlers.com>
| -rw-r--r-- | gnu-efi-3.0/Make.defaults | 89 | ||||
| -rw-r--r-- | gnu-efi-3.0/Makefile | 26 |
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) |
