~ubuntu-branches/ubuntu/quantal/gnu-efi/quantal-proposed

« back to all changes in this revision

Viewing changes to Make.defaults

  • Committer: Package Import Robot
  • Author(s): Steve Langasek
  • Date: 2013-09-24 14:21:08 UTC
  • mfrom: (17.1.6 trunk)
  • Revision ID: package-import@ubuntu.com-20130924142108-wrui7yjsl3sqh2kr
Tags: 3.0u+debian-1ubuntu2~12.10.0
Backport gnu-efi from saucy to quantal to support new versions of
shim.  LP: #1229572.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#
 
1
# -*- makefile -*-
2
2
# Copyright (c) 1999-2007 Hewlett-Packard Development Company, L.P.
3
3
#       Contributed by David Mosberger <davidm@hpl.hp.com>
4
4
#       Contributed by Stephane Eranian <eranian@hpl.hp.com>
5
5
#
6
 
# This file is part of the gnu-efi package.
7
 
#
8
 
#  GNU-EFI is free software; you can redistribute it and/or modify
9
 
#  it under the terms of the GNU General Public License as published by
10
 
#  the Free Software Foundation; either version 2, or (at your option)
11
 
#  any later version.
12
 
#
13
 
#  GNU-EFI is distributed in the hope that it will be useful,
14
 
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
 
#  GNU General Public License for more details.
17
 
#
18
 
#  You should have received a copy of the GNU General Public License
19
 
#  along with GNU-EFI; see the file COPYING.  If not, write to the Free
20
 
#  Software Foundation, 59 Temple Place - Suite 330, Boston, MA
21
 
#  02111-1307, USA.
 
6
#    All rights reserved.
 
7
#
 
8
#    Redistribution and use in source and binary forms, with or without
 
9
#    modification, are permitted provided that the following conditions
 
10
#    are met:
 
11
#
 
12
#    * Redistributions of source code must retain the above copyright
 
13
#      notice, this list of conditions and the following disclaimer.
 
14
#    * Redistributions in binary form must reproduce the above
 
15
#      copyright notice, this list of conditions and the following
 
16
#      disclaimer in the documentation and/or other materials
 
17
#      provided with the distribution.
 
18
#    * Neither the name of Hewlett-Packard Co. nor the names of its
 
19
#      contributors may be used to endorse or promote products derived
 
20
#      from this software without specific prior written permission.
 
21
#
 
22
#    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 
23
#    CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 
24
#    INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 
25
#    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 
26
#    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
 
27
#    BE LIABLE FOR ANYDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
 
28
#    OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 
29
#    PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 
30
#    PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 
31
#    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
 
32
#    TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
 
33
#    THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 
34
#    SUCH DAMAGE.
 
35
#
 
36
 
 
37
TOPDIR := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi)
 
38
 
 
39
#
 
40
# Variables below overridable from command-line:
 
41
#   make VARNAME=value ...
22
42
#
23
43
 
24
44
#
25
45
# Where to install the package. GNU-EFI will create and access
26
46
# lib and include under the root
27
47
#
28
 
INSTALLROOT=/usr/local
29
 
LIBDIR=lib
30
 
 
31
 
TOPDIR    := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi)
32
 
 
33
 
HOSTARCH   = $(shell uname -m | sed s,i[3456789]86,ia32,)
34
 
ARCH       := $(shell uname -m | sed s,i[3456789]86,ia32,)
35
 
OS         = $(shell uname -s)
36
 
INCDIR     = -I$(SRCDIR) -I$(TOPDIR)/inc -I$(TOPDIR)/inc/$(ARCH) -I$(TOPDIR)/inc/protocol 
37
 
CPPFLAGS   = -DCONFIG_$(ARCH)
38
 
CFLAGS     = $(ARCH3264) -O2 -fpic -Wall -fshort-wchar -fno-strict-aliasing -fno-merge-constants -fno-stack-protector
39
 
ASFLAGS    = $(ARCH3264)
40
 
LDFLAGS    = -nostdlib
41
 
INSTALL    = install
42
 
prefix     = /usr/bin/
43
 
 
44
 
CC            = $(prefix)gcc
45
 
AS            = $(prefix)as
46
 
LD            = $(prefix)ld
47
 
AR            = $(prefix)ar
48
 
RANLIB        = $(prefix)ranlib
49
 
OBJCOPY       = $(prefix)objcopy
 
48
INSTALLROOT  := /
 
49
PREFIX       := /usr/local
 
50
LIBDIR       := $(PREFIX)/lib
 
51
INSTALL      := install
 
52
 
 
53
# Host/target identification
 
54
OS           := $(shell uname -s)
 
55
HOSTARCH     := $(shell uname -m | sed s,i[3456789]86,ia32,)
 
56
ARCH         := $(shell uname -m | sed s,i[3456789]86,ia32,)
 
57
 
 
58
# FreeBSD (and possibly others) reports amd64 instead of x86_64
 
59
ifeq ($(ARCH),amd64)
 
60
  override ARCH := x86_64
 
61
endif
 
62
 
 
63
# Compilation tools
 
64
prefix       := /usr/bin/
 
65
CC           := $(prefix)gcc
 
66
AS           := $(prefix)as
 
67
LD           := $(prefix)ld
 
68
AR           := $(prefix)ar
 
69
RANLIB       := $(prefix)ranlib
 
70
OBJCOPY      := $(prefix)objcopy
 
71
 
 
72
 
 
73
#
 
74
# Variables below derived from variables above
 
75
#
 
76
 
 
77
GCCVERSION   := $(shell $(CC) -dumpversion | cut -f1 -d.)
 
78
GCCMINOR     := $(shell $(CC) -dumpversion | cut -f2 -d.)
 
79
 
 
80
# Rely on GCC MS ABI support?
 
81
GCCNEWENOUGH := $(shell ( [ $(GCCVERSION) -gt "4" ]           \
 
82
                          || ( [ $(GCCVERSION) -eq "4" ]      \
 
83
                               && [ $(GCCMINOR) -ge "7" ] ) ) \
 
84
                        && echo 1)
 
85
ifeq ($(GCCNEWENOUGH),1)
 
86
  CPPFLAGS += -DGNU_EFI_USE_MS_ABI -maccumulate-outgoing-args --std=c11
 
87
endif
 
88
 
 
89
# Arch-specific compilation flags
 
90
CPPFLAGS += -DCONFIG_$(ARCH)
50
91
 
51
92
ifeq ($(ARCH),ia64)
52
93
  CFLAGS += -mfixed-range=f32-f127
53
94
endif
54
95
 
55
 
ifeq ($(ARCH), ia32)
56
 
  ifeq ($(HOSTARCH), x86_64)
 
96
ifeq ($(ARCH),ia32)
 
97
  CFLAGS += -mno-mmx -mno-sse
 
98
  ifeq ($(HOSTARCH),x86_64)
57
99
    ARCH3264 = -m32
58
100
  endif
59
101
endif
60
102
 
61
 
ifeq ($(ARCH), x86_64)
62
 
  CFLAGS += -DEFI_FUNCTION_WRAPPER -mno-red-zone 
63
 
  LIBDIR = lib
64
 
  ifeq ($(HOSTARCH), ia32)
 
103
ifeq ($(ARCH),x86_64)
 
104
  CFLAGS += -mno-red-zone -mno-mmx -mno-sse
 
105
  ifeq ($(HOSTARCH),ia32)
65
106
    ARCH3264 = -m64
66
107
  endif
67
108
endif
 
109
 
 
110
# Generic compilation flags
 
111
INCDIR  += -I$(SRCDIR) -I$(TOPDIR)/inc -I$(TOPDIR)/inc/$(ARCH) \
 
112
           -I$(TOPDIR)/inc/protocol
 
113
CFLAGS  += $(ARCH3264) -O2 -fpic -Wall -fshort-wchar -fno-strict-aliasing \
 
114
           -fno-merge-constants -ffreestanding -fno-stack-protector       \
 
115
           -fno-stack-check
 
116
ASFLAGS += $(ARCH3264)
 
117
LDFLAGS += -nostdlib --no-undefined