2004-02-23 13:11:30 +00:00
|
|
|
#
|
|
|
|
# Copyright (C) 2001-2003 Hewlett-Packard Co.
|
|
|
|
# Contributed by Stephane Eranian <eranian@hpl.hp.com>
|
2007-07-20 13:30:47 +00:00
|
|
|
# Contributed by Chandramouli Narayanan<mouli@linux.intel.com>
|
2004-02-23 13:11:30 +00:00
|
|
|
#
|
|
|
|
# This file is part of ELILO, the LINUX EFI boot loader.
|
|
|
|
#
|
|
|
|
# ELILO is free software; you can redistribute it and/or modify
|
|
|
|
# it under the terms of the GNU General Public License as published by
|
|
|
|
# the Free Software Foundation; either version 2, or (at your option)
|
|
|
|
# any later version.
|
|
|
|
#
|
|
|
|
# ELILO is distributed in the hope that it will be useful,
|
|
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
# GNU General Public License for more details.
|
|
|
|
#
|
|
|
|
# You should have received a copy of the GNU General Public License
|
|
|
|
# along with ELILO; see the file COPYING. If not, write to the Free
|
|
|
|
# Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
|
|
|
# 02111-1307, USA.
|
|
|
|
#
|
|
|
|
# Please check out the elilo.txt for complete documentation on how
|
|
|
|
# to use this program.
|
|
|
|
#
|
|
|
|
|
|
|
|
#
|
|
|
|
# File system selection. At least one filesystem must be enabled
|
|
|
|
#
|
|
|
|
CONFIG_localfs=y
|
|
|
|
CONFIG_netfs=y
|
|
|
|
|
|
|
|
#
|
|
|
|
# WARNING WARNING WARNING
|
|
|
|
#
|
|
|
|
# Use this option with caution. This filesystem module does not
|
|
|
|
# support ext3 formatted partitions, i.e., it does not know how
|
|
|
|
# to recover from failures (ignores the log).
|
|
|
|
#
|
|
|
|
CONFIG_ext2fs=n
|
|
|
|
|
|
|
|
#
|
|
|
|
# Chooser selection(at least one must be defined)
|
|
|
|
#
|
|
|
|
CONFIG_chooser_simple=y
|
|
|
|
CONFIG_chooser_textmenu=y
|
|
|
|
|
|
|
|
#
|
|
|
|
# Enable IP-address based config file (elilo.conf) when netbooted
|
|
|
|
#
|
|
|
|
CONFIG_machspec_netconfig=y
|
|
|
|
|
|
|
|
#
|
|
|
|
# Indicate where the EFI include and libaries are.
|
|
|
|
# They are installed as part of the GNU-EFI package installation
|
|
|
|
#
|
|
|
|
EFIINC = /usr/include/efi
|
2007-07-20 13:30:47 +00:00
|
|
|
GNUEFILIB = /usr/lib
|
2004-02-23 13:11:30 +00:00
|
|
|
EFILIB = /usr/lib
|
|
|
|
EFICRT0 = /usr/lib
|
|
|
|
|
|
|
|
CDIR := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi)
|
|
|
|
TOPDIR =
|
2013-03-29 13:49:53 +00:00
|
|
|
ALLSUBDIRS = ia32 ia64 x86_64 fs choosers devschemes tools
|
2004-02-23 13:11:30 +00:00
|
|
|
|
2013-03-29 13:49:53 +00:00
|
|
|
HOSTARCH = $(shell dpkg-architecture -qDEB_BUILD_ARCH | sed s,i[3456789]86,ia32, | sed s,amd64,x86_64, )
|
|
|
|
ARCH := $(shell dpkg-architecture -qDEB_BUILD_ARCH | sed s,i[3456789]86,ia32, | sed s,amd64,x86_64, )
|
2009-10-26 13:42:58 +00:00
|
|
|
INCDIR = -I. -I$(TOPDIR) -I$(EFIINC) -I$(EFIINC)/$(ARCH) -I$(EFIINC)/protocol -I$(TOPDIR)/efi110
|
2004-02-23 13:11:30 +00:00
|
|
|
CPPFLAGS = -DCONFIG_$(ARCH)
|
|
|
|
|
|
|
|
OPTIMFLAGS = -O2
|
|
|
|
DEBUGFLAGS = -Wall
|
2013-03-29 13:49:53 +00:00
|
|
|
CFLAGS = $(ARCH3264) $(OPTIMFLAGS) -fno-stack-protector -fno-strict-aliasing -fpic -fshort-wchar $(DEBUGFLAGS)
|
|
|
|
ASFLAGS = $(ARCH3264)
|
2004-02-24 13:17:30 +00:00
|
|
|
LDFLAGS = -nostdlib -znocombreloc
|
2004-02-23 13:11:30 +00:00
|
|
|
INSTALL = install
|
|
|
|
|
|
|
|
ifeq ($(CONFIG_machspec_netconfig),y)
|
|
|
|
CFLAGS += -DENABLE_MACHINE_SPECIFIC_NETCONFIG
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq ($(CONFIG_localfs),y)
|
|
|
|
CFLAGS += -DCONFIG_LOCALFS
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq ($(CONFIG_netfs),y)
|
|
|
|
CFLAGS += -DCONFIG_NETFS
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq ($(CONFIG_ext2fs),y)
|
|
|
|
CFLAGS += -DCONFIG_EXT2FS
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq ($(CONFIG_chooser_simple),y)
|
|
|
|
CFLAGS += -DCONFIG_CHOOSER_SIMPLE
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq ($(CONFIG_chooser_textmenu),y)
|
|
|
|
CFLAGS += -DCONFIG_CHOOSER_TEXTMENU
|
|
|
|
endif
|
|
|
|
|
2005-12-06 13:21:36 +00:00
|
|
|
prefix = /usr/bin/
|
|
|
|
# Redhat 8.0 ia32 gcc-3.x version is reported to produce working EFI binaries.
|
|
|
|
# Redhat 9.0 ia32 gcc-3.x version is reported to produce BAD binaries.
|
|
|
|
CC = $(prefix)gcc
|
|
|
|
AS = $(prefix)as
|
|
|
|
LD = $(prefix)ld
|
|
|
|
AR = $(prefix)ar
|
|
|
|
RANLIB = $(prefix)ranlib
|
|
|
|
OBJCOPY = $(prefix)objcopy
|
|
|
|
|
2007-07-20 13:30:47 +00:00
|
|
|
# Use Modified binutils that supports x86_64 using UEFI ABI
|
|
|
|
ifeq ($(ARCH), x86_64)
|
2013-03-29 13:49:53 +00:00
|
|
|
ifeq ($(HOSTARCH), ia32)
|
|
|
|
ARCH3264 = -m64
|
|
|
|
LD3264 = -melf_x86_64
|
|
|
|
|
|
|
|
GNUEFILIB := $(GNUEFILIB)64
|
|
|
|
EFILIB := $(EFILIB)64
|
|
|
|
EFICRT0 := $(EFICRT0)64
|
|
|
|
endif
|
|
|
|
|
2007-07-20 13:30:47 +00:00
|
|
|
CFLAGS += -DEFI_FUNCTION_WRAPPER
|
|
|
|
OBJCOPY = /usr/bin/objcopy
|
|
|
|
endif
|
|
|
|
|
2013-03-29 13:49:53 +00:00
|
|
|
ifeq ($(ARCH), ia32)
|
|
|
|
ifeq ($(HOSTARCH), x86_64)
|
|
|
|
ARCH3264 = -m32
|
|
|
|
LD3264 = -melf_i386
|
|
|
|
|
|
|
|
GNUEFILIB := /usr/lib32
|
|
|
|
EFILIB := /usr/lib32
|
|
|
|
EFICRT0 := /usr/lib32
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
2004-02-23 13:11:30 +00:00
|
|
|
ifeq ($(ARCH),ia64)
|
2005-12-06 13:21:36 +00:00
|
|
|
GCC_VERSION=$(shell $(CROSS_COMPILE)$(CC) -v 2>&1 | fgrep 'gcc version' | cut -f3 -d' ' | cut -f1 -d'.')
|
|
|
|
|
|
|
|
ifneq ($(GCC_VERSION),2)
|
2004-02-23 13:11:30 +00:00
|
|
|
CFLAGS += -frename-registers
|
|
|
|
endif
|
2005-12-06 13:21:36 +00:00
|
|
|
|
|
|
|
# EFI specs allows only lower floating point partition to be used
|
|
|
|
CFLAGS += -mfixed-range=f32-f127
|
2004-02-23 13:11:30 +00:00
|
|
|
endif
|