head	1.1;
branch	1.1.1;
access;
symbols
	netbsd-11-0-RC4:1.1.1.3
	netbsd-11-0-RC3:1.1.1.3
	netbsd-11-0-RC2:1.1.1.3
	netbsd-11-0-RC1:1.1.1.3
	perseant-exfatfs-base-20250801:1.1.1.3
	netbsd-11:1.1.1.3.0.12
	netbsd-11-base:1.1.1.3
	netbsd-10-1-RELEASE:1.1.1.3
	perseant-exfatfs-base-20240630:1.1.1.3
	perseant-exfatfs:1.1.1.3.0.10
	perseant-exfatfs-base:1.1.1.3
	netbsd-8-3-RELEASE:1.1.1.1
	netbsd-9-4-RELEASE:1.1.1.2
	netbsd-10-0-RELEASE:1.1.1.3
	netbsd-10-0-RC6:1.1.1.3
	netbsd-10-0-RC5:1.1.1.3
	netbsd-10-0-RC4:1.1.1.3
	netbsd-10-0-RC3:1.1.1.3
	netbsd-10-0-RC2:1.1.1.3
	thorpej-ifq:1.1.1.3.0.8
	thorpej-ifq-base:1.1.1.3
	thorpej-altq-separation:1.1.1.3.0.6
	thorpej-altq-separation-base:1.1.1.3
	netbsd-10-0-RC1:1.1.1.3
	netbsd-10:1.1.1.3.0.4
	netbsd-10-base:1.1.1.3
	bouyer-sunxi-drm:1.1.1.3.0.2
	bouyer-sunxi-drm-base:1.1.1.3
	netbsd-9-3-RELEASE:1.1.1.2
	gnu-efi-3_0_14:1.1.1.3
	thorpej-i2c-spi-conf2:1.1.1.2.0.26
	thorpej-i2c-spi-conf2-base:1.1.1.2
	thorpej-futex2:1.1.1.2.0.24
	thorpej-futex2-base:1.1.1.2
	thorpej-cfargs2:1.1.1.2.0.22
	thorpej-cfargs2-base:1.1.1.2
	cjep_sun2x-base1:1.1.1.2
	cjep_sun2x:1.1.1.2.0.20
	cjep_sun2x-base:1.1.1.2
	cjep_staticlib_x-base1:1.1.1.2
	netbsd-9-2-RELEASE:1.1.1.2
	cjep_staticlib_x:1.1.1.2.0.18
	cjep_staticlib_x-base:1.1.1.2
	thorpej-i2c-spi-conf:1.1.1.2.0.16
	thorpej-i2c-spi-conf-base:1.1.1.2
	thorpej-cfargs:1.1.1.2.0.14
	thorpej-cfargs-base:1.1.1.2
	thorpej-futex:1.1.1.2.0.12
	thorpej-futex-base:1.1.1.2
	netbsd-9-1-RELEASE:1.1.1.2
	bouyer-xenpvh-base2:1.1.1.2
	phil-wifi-20200421:1.1.1.2
	bouyer-xenpvh-base1:1.1.1.2
	phil-wifi-20200411:1.1.1.2
	bouyer-xenpvh:1.1.1.2.0.10
	bouyer-xenpvh-base:1.1.1.2
	is-mlppp:1.1.1.2.0.8
	is-mlppp-base:1.1.1.2
	phil-wifi-20200406:1.1.1.2
	netbsd-8-2-RELEASE:1.1.1.1
	ad-namecache-base3:1.1.1.2
	netbsd-9-0-RELEASE:1.1.1.2
	netbsd-9-0-RC2:1.1.1.2
	ad-namecache-base2:1.1.1.2
	ad-namecache-base1:1.1.1.2
	ad-namecache:1.1.1.2.0.6
	ad-namecache-base:1.1.1.2
	netbsd-9-0-RC1:1.1.1.2
	phil-wifi-20191119:1.1.1.2
	netbsd-9:1.1.1.2.0.4
	netbsd-9-base:1.1.1.2
	phil-wifi-20190609:1.1.1.2
	netbsd-8-1-RELEASE:1.1.1.1
	netbsd-8-1-RC1:1.1.1.1
	isaki-audio2:1.1.1.2.0.2
	isaki-audio2-base:1.1.1.2
	pgoyette-compat-merge-20190127:1.1.1.1.34.1
	pgoyette-compat-20190127:1.1.1.2
	pgoyette-compat-20190118:1.1.1.2
	pgoyette-compat-1226:1.1.1.2
	pgoyette-compat-1126:1.1.1.2
	pgoyette-compat-1020:1.1.1.2
	pgoyette-compat-0930:1.1.1.2
	pgoyette-compat-0906:1.1.1.2
	netbsd-7-2-RELEASE:1.1.1.1
	gnu-efi-3_0_8:1.1.1.2
	pgoyette-compat-0728:1.1.1.1
	netbsd-8-0-RELEASE:1.1.1.1
	phil-wifi:1.1.1.1.0.36
	phil-wifi-base:1.1.1.1
	pgoyette-compat-0625:1.1.1.1
	netbsd-8-0-RC2:1.1.1.1
	pgoyette-compat-0521:1.1.1.1
	pgoyette-compat-0502:1.1.1.1
	pgoyette-compat-0422:1.1.1.1
	netbsd-8-0-RC1:1.1.1.1
	pgoyette-compat-0415:1.1.1.1
	pgoyette-compat-0407:1.1.1.1
	pgoyette-compat-0330:1.1.1.1
	pgoyette-compat-0322:1.1.1.1
	pgoyette-compat-0315:1.1.1.1
	netbsd-7-1-2-RELEASE:1.1.1.1
	pgoyette-compat:1.1.1.1.0.34
	pgoyette-compat-base:1.1.1.1
	netbsd-7-1-1-RELEASE:1.1.1.1
	tls-maxphys-base-20171202:1.1.1.1
	matt-nb8-mediatek:1.1.1.1.0.32
	matt-nb8-mediatek-base:1.1.1.1
	nick-nhusb-base-20170825:1.1.1.1
	perseant-stdc-iso10646:1.1.1.1.0.30
	perseant-stdc-iso10646-base:1.1.1.1
	netbsd-8:1.1.1.1.0.28
	netbsd-8-base:1.1.1.1
	prg-localcount2-base3:1.1.1.1
	prg-localcount2-base2:1.1.1.1
	prg-localcount2-base1:1.1.1.1
	prg-localcount2:1.1.1.1.0.26
	prg-localcount2-base:1.1.1.1
	pgoyette-localcount-20170426:1.1.1.1
	bouyer-socketcan-base1:1.1.1.1
	jdolecek-ncq:1.1.1.1.0.24
	jdolecek-ncq-base:1.1.1.1
	pgoyette-localcount-20170320:1.1.1.1
	netbsd-7-1:1.1.1.1.0.22
	netbsd-7-1-RELEASE:1.1.1.1
	netbsd-7-1-RC2:1.1.1.1
	nick-nhusb-base-20170204:1.1.1.1
	netbsd-7-nhusb-base-20170116:1.1.1.1
	bouyer-socketcan:1.1.1.1.0.20
	bouyer-socketcan-base:1.1.1.1
	pgoyette-localcount-20170107:1.1.1.1
	netbsd-7-1-RC1:1.1.1.1
	nick-nhusb-base-20161204:1.1.1.1
	pgoyette-localcount-20161104:1.1.1.1
	netbsd-7-0-2-RELEASE:1.1.1.1
	nick-nhusb-base-20161004:1.1.1.1
	localcount-20160914:1.1.1.1
	netbsd-7-nhusb:1.1.1.1.0.18
	netbsd-7-nhusb-base:1.1.1.1
	pgoyette-localcount-20160806:1.1.1.1
	pgoyette-localcount-20160726:1.1.1.1
	pgoyette-localcount:1.1.1.1.0.16
	pgoyette-localcount-base:1.1.1.1
	nick-nhusb-base-20160907:1.1.1.1
	nick-nhusb-base-20160529:1.1.1.1
	netbsd-7-0-1-RELEASE:1.1.1.1
	nick-nhusb-base-20160422:1.1.1.1
	nick-nhusb-base-20160319:1.1.1.1
	nick-nhusb-base-20151226:1.1.1.1
	netbsd-7-0:1.1.1.1.0.14
	netbsd-7-0-RELEASE:1.1.1.1
	nick-nhusb-base-20150921:1.1.1.1
	netbsd-7-0-RC3:1.1.1.1
	netbsd-7-0-RC2:1.1.1.1
	netbsd-7-0-RC1:1.1.1.1
	nick-nhusb-base-20150606:1.1.1.1
	nick-nhusb-base-20150406:1.1.1.1
	nick-nhusb:1.1.1.1.0.12
	nick-nhusb-base:1.1.1.1
	tls-maxphys-base:1.1.1.1
	tls-maxphys:1.1.1.1.0.10
	netbsd-7:1.1.1.1.0.8
	netbsd-7-base:1.1.1.1
	yamt-pagecache:1.1.1.1.0.6
	rmind-smpnet-base:1.1.1.1
	rmind-smpnet:1.1.1.1.0.4
	rmind-smpnet-nbase:1.1.1.1
	yamt-pagecache-base9:1.1.1.1
	tls-earlyentropy:1.1.1.1.0.2
	tls-earlyentropy-base:1.1.1.1
	riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.1.1.1
	gnu-efi-3_0_u:1.1.1.1
	GNU_EFI:1.1.1;
locks; strict;
comment	@# @;


1.1
date	2014.04.01.16.16.06;	author jakllsch;	state Exp;
branches
	1.1.1.1;
next	;
commitid	Ot3a4twcOMEBVZux;

1.1.1.1
date	2014.04.01.16.16.06;	author jakllsch;	state Exp;
branches
	1.1.1.1.4.1
	1.1.1.1.6.1
	1.1.1.1.10.1
	1.1.1.1.34.1
	1.1.1.1.36.1;
next	1.1.1.2;
commitid	Ot3a4twcOMEBVZux;

1.1.1.2
date	2018.08.16.18.17.47;	author jmcneill;	state Exp;
branches;
next	1.1.1.3;
commitid	TrVUXAcoIp9HenOA;

1.1.1.3
date	2021.09.30.18.50.09;	author jmcneill;	state Exp;
branches;
next	;
commitid	YpBG4IYrhUOTJ0bD;

1.1.1.1.4.1
date	2014.04.01.16.16.06;	author rmind;	state dead;
branches;
next	1.1.1.1.4.2;
commitid	mL5ZYSzpqK6QS2Bx;

1.1.1.1.4.2
date	2014.05.18.17.46.02;	author rmind;	state Exp;
branches;
next	;
commitid	mL5ZYSzpqK6QS2Bx;

1.1.1.1.6.1
date	2014.04.01.16.16.06;	author yamt;	state dead;
branches;
next	1.1.1.1.6.2;
commitid	VUUXuyNWnt3AKwBx;

1.1.1.1.6.2
date	2014.05.22.11.40.57;	author yamt;	state Exp;
branches;
next	;
commitid	VUUXuyNWnt3AKwBx;

1.1.1.1.10.1
date	2014.04.01.16.16.06;	author tls;	state dead;
branches;
next	1.1.1.1.10.2;
commitid	jTnpym9Qu0o4R1Nx;

1.1.1.1.10.2
date	2014.08.20.00.04.23;	author tls;	state Exp;
branches;
next	;
commitid	jTnpym9Qu0o4R1Nx;

1.1.1.1.34.1
date	2018.09.06.06.56.38;	author pgoyette;	state Exp;
branches;
next	;
commitid	HCi1bXD317XIK0RA;

1.1.1.1.36.1
date	2019.06.10.22.08.34;	author christos;	state Exp;
branches;
next	;
commitid	jtc8rnCzWiEEHGqB;


desc
@@


1.1
log
@Initial revision
@
text
@# -*- 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>
#
#    All rights reserved.
#
#    Redistribution and use in source and binary forms, with or without
#    modification, are permitted provided that the following conditions
#    are met:
#
#    * Redistributions of source code must retain the above copyright
#      notice, this list of conditions and the following disclaimer.
#    * Redistributions in binary form must reproduce the above
#      copyright notice, this list of conditions and the following
#      disclaimer in the documentation and/or other materials
#      provided with the distribution.
#    * Neither the name of Hewlett-Packard Co. nor the names of its
#      contributors may be used to endorse or promote products derived
#      from this software without specific prior written permission.
#
#    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
#    CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
#    INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
#    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
#    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
#    BE LIABLE FOR ANYDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
#    OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
#    PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
#    PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
#    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
#    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
INSTALL	     := install

# 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,)

# FreeBSD (and possibly others) reports amd64 instead of x86_64
ifeq ($(ARCH),amd64)
  override ARCH := x86_64
endif

# 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
endif

# Arch-specific compilation flags
CPPFLAGS += -DCONFIG_$(ARCH)

ifeq ($(ARCH),ia64)
  CFLAGS += -mfixed-range=f32-f127
endif

ifeq ($(ARCH),ia32)
  CFLAGS += -mno-mmx -mno-sse
  ifeq ($(HOSTARCH),x86_64)
    ARCH3264 = -m32
  endif
endif

ifeq ($(ARCH),x86_64)
  CFLAGS += -mno-red-zone -mno-mmx -mno-sse
  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
@


1.1.1.1
log
@Import gnu-efi-3.0u
@
text
@@


1.1.1.1.36.1
log
@Sync with HEAD
@
text
@a52 10
# Compilation tools
HOSTCC       := $(prefix)gcc
CC           := $(prefix)$(CROSS_COMPILE)gcc
AS           := $(prefix)$(CROSS_COMPILE)as
LD           := $(prefix)$(CROSS_COMPILE)ld
AR           := $(prefix)$(CROSS_COMPILE)ar
RANLIB       := $(prefix)$(CROSS_COMPILE)ranlib
OBJCOPY      := $(prefix)$(CROSS_COMPILE)objcopy


d54 3
a56 8
OS           := $(shell uname -s)
HOSTARCH     ?= $(shell $(HOSTCC) -dumpmachine | cut -f1 -d- | sed -e s,i[3456789]86,ia32, -e 's,armv7.*,arm,' )
ARCH         ?= $(shell $(HOSTCC) -dumpmachine | cut -f1 -d- | sed -e s,i[3456789]86,ia32, -e 's,armv7.*,arm,' )

# Get ARCH from the compiler if cross compiling 
ifneq ($(CROSS_COMPILE),)
  override ARCH := $(shell $(CC) -dumpmachine | cut -f1 -d-| sed -e s,i[3456789]86,ia32, -e 's,armv7.*,arm,' )
endif
d63 9
a71 4
#
# Where to build the package
#
OBJDIR       := $(TOPDIR)/$(ARCH)
d77 12
a91 2
CFLAGS += -Wno-error=pragmas

d104 1
a104 16
  GCCVERSION   := $(shell $(CC) -dumpversion | cut -f1 -d.)
  GCCMINOR     := $(shell $(CC) -dumpversion | cut -f2 -d.)
  USING_CLANG  := $(shell $(CC) -v 2>&1 | grep -q 'clang version' && echo clang)

  # 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
  else ifeq ($(USING_CLANG),clang)
    CPPFLAGS += -DGNU_EFI_USE_MS_ABI --std=c11
  endif

  CFLAGS += -mno-red-zone
a109 33
ifneq (,$(filter $(ARCH),ia32 x86_64))
  # Disable AVX, if the compiler supports that.
  CC_CAN_DISABLE_AVX=$(shell $(CC) -Werror -c -o /dev/null -xc -mno-avx - </dev/null >/dev/null 2>&1 && echo 1)
  ifeq ($(CC_CAN_DISABLE_AVX), 1)
    CFLAGS += -mno-avx
  endif
endif

ifeq ($(ARCH),mips64el)
  CFLAGS += -march=mips64r2
  ARCH3264 = -mabi=64
endif

#
# Set HAVE_EFI_OBJCOPY if objcopy understands --target efi-[app|bsdrv|rtdrv],
# otherwise we need to compose the PE/COFF header using the assembler
#
ifneq ($(ARCH),aarch64)
ifneq ($(ARCH),arm)
ifneq ($(ARCH),mips64el)
export HAVE_EFI_OBJCOPY=y
endif
endif
endif

ifneq ($(ARCH),arm)
export LIBGCC=$(shell $(CC) $(ARCH3264) -print-libgcc-file-name)
endif

ifeq ($(ARCH),arm)
CFLAGS += -marm
endif

d113 3
a115 20

# Only enable -fpic for non MinGW compilers (unneeded on MinGW)
GCCMACHINE := $(shell $(CC) -dumpmachine)
ifneq (mingw32,$(findstring mingw32, $(GCCMACHINE)))
  CFLAGS += -fpic
endif

ifeq (FreeBSD, $(findstring FreeBSD, $(OS)))
CFLAGS  += $(ARCH3264) -g -O2 -Wall -Wextra -Werror \
           -fshort-wchar -fno-strict-aliasing \
           -ffreestanding -fno-stack-protector
else
CFLAGS  += $(ARCH3264) -g -O2 -Wall -Wextra -Werror \
           -fshort-wchar -fno-strict-aliasing \
	   -ffreestanding -fno-stack-protector -fno-stack-check \
           -fno-stack-check \
           $(if $(findstring gcc,$(CC)),-fno-merge-all-constants,)
endif

ARFLAGS := rDv
d117 1
a117 2
LDFLAGS	+= -nostdlib --warn-common --no-undefined --fatal-warnings \
	   --build-id=sha1
@


1.1.1.1.34.1
log
@Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
@
text
@a52 10
# Compilation tools
HOSTCC       := $(prefix)gcc
CC           := $(prefix)$(CROSS_COMPILE)gcc
AS           := $(prefix)$(CROSS_COMPILE)as
LD           := $(prefix)$(CROSS_COMPILE)ld
AR           := $(prefix)$(CROSS_COMPILE)ar
RANLIB       := $(prefix)$(CROSS_COMPILE)ranlib
OBJCOPY      := $(prefix)$(CROSS_COMPILE)objcopy


d54 3
a56 8
OS           := $(shell uname -s)
HOSTARCH     ?= $(shell $(HOSTCC) -dumpmachine | cut -f1 -d- | sed -e s,i[3456789]86,ia32, -e 's,armv7.*,arm,' )
ARCH         ?= $(shell $(HOSTCC) -dumpmachine | cut -f1 -d- | sed -e s,i[3456789]86,ia32, -e 's,armv7.*,arm,' )

# Get ARCH from the compiler if cross compiling 
ifneq ($(CROSS_COMPILE),)
  override ARCH := $(shell $(CC) -dumpmachine | cut -f1 -d-| sed -e s,i[3456789]86,ia32, -e 's,armv7.*,arm,' )
endif
d63 9
a71 4
#
# Where to build the package
#
OBJDIR       := $(TOPDIR)/$(ARCH)
d77 12
a91 2
CFLAGS += -Wno-error=pragmas

d104 1
a104 16
  GCCVERSION   := $(shell $(CC) -dumpversion | cut -f1 -d.)
  GCCMINOR     := $(shell $(CC) -dumpversion | cut -f2 -d.)
  USING_CLANG  := $(shell $(CC) -v 2>&1 | grep -q 'clang version' && echo clang)

  # 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
  else ifeq ($(USING_CLANG),clang)
    CPPFLAGS += -DGNU_EFI_USE_MS_ABI --std=c11
  endif

  CFLAGS += -mno-red-zone
a109 33
ifneq (,$(filter $(ARCH),ia32 x86_64))
  # Disable AVX, if the compiler supports that.
  CC_CAN_DISABLE_AVX=$(shell $(CC) -Werror -c -o /dev/null -xc -mno-avx - </dev/null >/dev/null 2>&1 && echo 1)
  ifeq ($(CC_CAN_DISABLE_AVX), 1)
    CFLAGS += -mno-avx
  endif
endif

ifeq ($(ARCH),mips64el)
  CFLAGS += -march=mips64r2
  ARCH3264 = -mabi=64
endif

#
# Set HAVE_EFI_OBJCOPY if objcopy understands --target efi-[app|bsdrv|rtdrv],
# otherwise we need to compose the PE/COFF header using the assembler
#
ifneq ($(ARCH),aarch64)
ifneq ($(ARCH),arm)
ifneq ($(ARCH),mips64el)
export HAVE_EFI_OBJCOPY=y
endif
endif
endif

ifneq ($(ARCH),arm)
export LIBGCC=$(shell $(CC) $(ARCH3264) -print-libgcc-file-name)
endif

ifeq ($(ARCH),arm)
CFLAGS += -marm
endif

d113 3
a115 20

# Only enable -fpic for non MinGW compilers (unneeded on MinGW)
GCCMACHINE := $(shell $(CC) -dumpmachine)
ifneq (mingw32,$(findstring mingw32, $(GCCMACHINE)))
  CFLAGS += -fpic
endif

ifeq (FreeBSD, $(findstring FreeBSD, $(OS)))
CFLAGS  += $(ARCH3264) -g -O2 -Wall -Wextra -Werror \
           -fshort-wchar -fno-strict-aliasing \
           -ffreestanding -fno-stack-protector
else
CFLAGS  += $(ARCH3264) -g -O2 -Wall -Wextra -Werror \
           -fshort-wchar -fno-strict-aliasing \
	   -ffreestanding -fno-stack-protector -fno-stack-check \
           -fno-stack-check \
           $(if $(findstring gcc,$(CC)),-fno-merge-all-constants,)
endif

ARFLAGS := rDv
d117 1
a117 2
LDFLAGS	+= -nostdlib --warn-common --no-undefined --fatal-warnings \
	   --build-id=sha1
@


1.1.1.2
log
@Import gnu-efi-3.0.8
@
text
@a52 10
# Compilation tools
HOSTCC       := $(prefix)gcc
CC           := $(prefix)$(CROSS_COMPILE)gcc
AS           := $(prefix)$(CROSS_COMPILE)as
LD           := $(prefix)$(CROSS_COMPILE)ld
AR           := $(prefix)$(CROSS_COMPILE)ar
RANLIB       := $(prefix)$(CROSS_COMPILE)ranlib
OBJCOPY      := $(prefix)$(CROSS_COMPILE)objcopy


d54 3
a56 8
OS           := $(shell uname -s)
HOSTARCH     ?= $(shell $(HOSTCC) -dumpmachine | cut -f1 -d- | sed -e s,i[3456789]86,ia32, -e 's,armv7.*,arm,' )
ARCH         ?= $(shell $(HOSTCC) -dumpmachine | cut -f1 -d- | sed -e s,i[3456789]86,ia32, -e 's,armv7.*,arm,' )

# Get ARCH from the compiler if cross compiling 
ifneq ($(CROSS_COMPILE),)
  override ARCH := $(shell $(CC) -dumpmachine | cut -f1 -d-| sed -e s,i[3456789]86,ia32, -e 's,armv7.*,arm,' )
endif
d63 9
a71 4
#
# Where to build the package
#
OBJDIR       := $(TOPDIR)/$(ARCH)
d77 12
a91 2
CFLAGS += -Wno-error=pragmas

d104 1
a104 16
  GCCVERSION   := $(shell $(CC) -dumpversion | cut -f1 -d.)
  GCCMINOR     := $(shell $(CC) -dumpversion | cut -f2 -d.)
  USING_CLANG  := $(shell $(CC) -v 2>&1 | grep -q 'clang version' && echo clang)

  # 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
  else ifeq ($(USING_CLANG),clang)
    CPPFLAGS += -DGNU_EFI_USE_MS_ABI --std=c11
  endif

  CFLAGS += -mno-red-zone
a109 33
ifneq (,$(filter $(ARCH),ia32 x86_64))
  # Disable AVX, if the compiler supports that.
  CC_CAN_DISABLE_AVX=$(shell $(CC) -Werror -c -o /dev/null -xc -mno-avx - </dev/null >/dev/null 2>&1 && echo 1)
  ifeq ($(CC_CAN_DISABLE_AVX), 1)
    CFLAGS += -mno-avx
  endif
endif

ifeq ($(ARCH),mips64el)
  CFLAGS += -march=mips64r2
  ARCH3264 = -mabi=64
endif

#
# Set HAVE_EFI_OBJCOPY if objcopy understands --target efi-[app|bsdrv|rtdrv],
# otherwise we need to compose the PE/COFF header using the assembler
#
ifneq ($(ARCH),aarch64)
ifneq ($(ARCH),arm)
ifneq ($(ARCH),mips64el)
export HAVE_EFI_OBJCOPY=y
endif
endif
endif

ifneq ($(ARCH),arm)
export LIBGCC=$(shell $(CC) $(ARCH3264) -print-libgcc-file-name)
endif

ifeq ($(ARCH),arm)
CFLAGS += -marm
endif

d113 3
a115 20

# Only enable -fpic for non MinGW compilers (unneeded on MinGW)
GCCMACHINE := $(shell $(CC) -dumpmachine)
ifneq (mingw32,$(findstring mingw32, $(GCCMACHINE)))
  CFLAGS += -fpic
endif

ifeq (FreeBSD, $(findstring FreeBSD, $(OS)))
CFLAGS  += $(ARCH3264) -g -O2 -Wall -Wextra -Werror \
           -fshort-wchar -fno-strict-aliasing \
           -ffreestanding -fno-stack-protector
else
CFLAGS  += $(ARCH3264) -g -O2 -Wall -Wextra -Werror \
           -fshort-wchar -fno-strict-aliasing \
	   -ffreestanding -fno-stack-protector -fno-stack-check \
           -fno-stack-check \
           $(if $(findstring gcc,$(CC)),-fno-merge-all-constants,)
endif

ARFLAGS := rDv
d117 1
a117 2
LDFLAGS	+= -nostdlib --warn-common --no-undefined --fatal-warnings \
	   --build-id=sha1
@


1.1.1.3
log
@Import gnu-efi-3.0.14
@
text
@d65 2
a66 2
HOSTARCH     ?= $(shell $(HOSTCC) -dumpmachine | cut -f1 -d- | sed -e s,i[3456789]86,ia32, -e 's,armv[67].*,arm,' )
ARCH         ?= $(shell $(HOSTCC) -dumpmachine | cut -f1 -d- | sed -e s,i[3456789]86,ia32, -e 's,armv[67].*,arm,' )
d70 1
a70 1
  override ARCH := $(shell $(CC) -dumpmachine | cut -f1 -d-| sed -e s,i[3456789]86,ia32, -e 's,armv[67].*,arm,' )
a144 1
ifneq ($(ARCH),riscv64)
a148 1
endif
@


1.1.1.1.10.1
log
@file Make.defaults was added on branch tls-maxphys on 2014-08-20 00:04:23 +0000
@
text
@d1 117
@


1.1.1.1.10.2
log
@Rebase to HEAD as of a few days ago.
@
text
@a0 117
# -*- 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>
#
#    All rights reserved.
#
#    Redistribution and use in source and binary forms, with or without
#    modification, are permitted provided that the following conditions
#    are met:
#
#    * Redistributions of source code must retain the above copyright
#      notice, this list of conditions and the following disclaimer.
#    * Redistributions in binary form must reproduce the above
#      copyright notice, this list of conditions and the following
#      disclaimer in the documentation and/or other materials
#      provided with the distribution.
#    * Neither the name of Hewlett-Packard Co. nor the names of its
#      contributors may be used to endorse or promote products derived
#      from this software without specific prior written permission.
#
#    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
#    CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
#    INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
#    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
#    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
#    BE LIABLE FOR ANYDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
#    OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
#    PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
#    PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
#    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
#    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
INSTALL	     := install

# 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,)

# FreeBSD (and possibly others) reports amd64 instead of x86_64
ifeq ($(ARCH),amd64)
  override ARCH := x86_64
endif

# 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
endif

# Arch-specific compilation flags
CPPFLAGS += -DCONFIG_$(ARCH)

ifeq ($(ARCH),ia64)
  CFLAGS += -mfixed-range=f32-f127
endif

ifeq ($(ARCH),ia32)
  CFLAGS += -mno-mmx -mno-sse
  ifeq ($(HOSTARCH),x86_64)
    ARCH3264 = -m32
  endif
endif

ifeq ($(ARCH),x86_64)
  CFLAGS += -mno-red-zone -mno-mmx -mno-sse
  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
@


1.1.1.1.6.1
log
@file Make.defaults was added on branch yamt-pagecache on 2014-05-22 11:40:57 +0000
@
text
@d1 117
@


1.1.1.1.6.2
log
@sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs.  ("Protocol error: too many arguments")
@
text
@a0 117
# -*- 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>
#
#    All rights reserved.
#
#    Redistribution and use in source and binary forms, with or without
#    modification, are permitted provided that the following conditions
#    are met:
#
#    * Redistributions of source code must retain the above copyright
#      notice, this list of conditions and the following disclaimer.
#    * Redistributions in binary form must reproduce the above
#      copyright notice, this list of conditions and the following
#      disclaimer in the documentation and/or other materials
#      provided with the distribution.
#    * Neither the name of Hewlett-Packard Co. nor the names of its
#      contributors may be used to endorse or promote products derived
#      from this software without specific prior written permission.
#
#    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
#    CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
#    INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
#    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
#    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
#    BE LIABLE FOR ANYDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
#    OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
#    PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
#    PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
#    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
#    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
INSTALL	     := install

# 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,)

# FreeBSD (and possibly others) reports amd64 instead of x86_64
ifeq ($(ARCH),amd64)
  override ARCH := x86_64
endif

# 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
endif

# Arch-specific compilation flags
CPPFLAGS += -DCONFIG_$(ARCH)

ifeq ($(ARCH),ia64)
  CFLAGS += -mfixed-range=f32-f127
endif

ifeq ($(ARCH),ia32)
  CFLAGS += -mno-mmx -mno-sse
  ifeq ($(HOSTARCH),x86_64)
    ARCH3264 = -m32
  endif
endif

ifeq ($(ARCH),x86_64)
  CFLAGS += -mno-red-zone -mno-mmx -mno-sse
  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
@


1.1.1.1.4.1
log
@file Make.defaults was added on branch rmind-smpnet on 2014-05-18 17:46:02 +0000
@
text
@d1 117
@


1.1.1.1.4.2
log
@sync with head
@
text
@a0 117
# -*- 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>
#
#    All rights reserved.
#
#    Redistribution and use in source and binary forms, with or without
#    modification, are permitted provided that the following conditions
#    are met:
#
#    * Redistributions of source code must retain the above copyright
#      notice, this list of conditions and the following disclaimer.
#    * Redistributions in binary form must reproduce the above
#      copyright notice, this list of conditions and the following
#      disclaimer in the documentation and/or other materials
#      provided with the distribution.
#    * Neither the name of Hewlett-Packard Co. nor the names of its
#      contributors may be used to endorse or promote products derived
#      from this software without specific prior written permission.
#
#    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
#    CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
#    INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
#    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
#    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
#    BE LIABLE FOR ANYDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
#    OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
#    PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
#    PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
#    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
#    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
INSTALL	     := install

# 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,)

# FreeBSD (and possibly others) reports amd64 instead of x86_64
ifeq ($(ARCH),amd64)
  override ARCH := x86_64
endif

# 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
endif

# Arch-specific compilation flags
CPPFLAGS += -DCONFIG_$(ARCH)

ifeq ($(ARCH),ia64)
  CFLAGS += -mfixed-range=f32-f127
endif

ifeq ($(ARCH),ia32)
  CFLAGS += -mno-mmx -mno-sse
  ifeq ($(HOSTARCH),x86_64)
    ARCH3264 = -m32
  endif
endif

ifeq ($(ARCH),x86_64)
  CFLAGS += -mno-red-zone -mno-mmx -mno-sse
  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
@


