#
#  Copyright (C) 2001-2003 Hewlett-Packard Co.
#	Contributed by Stephane Eranian <eranian@hpl.hp.com>
#	Contributed by Chandramouli Narayanan<mouli@linux.intel.com>
#
# 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
GNUEFILIB  = /usr/lib
EFILIB	   = /usr/lib
EFICRT0	   = /usr/lib

CDIR    := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi)
TOPDIR  =

ARCH	   = $(shell uname -m | sed s,i[3456789]86,ia32,)
INCDIR	   = -I. -I$(TOPDIR) -I$(EFIINC) -I$(EFIINC)/$(ARCH) -I$(EFIINC)/protocol -I$(TOPDIR)/efi110
CPPFLAGS   = -DCONFIG_$(ARCH) 

OPTIMFLAGS = -O2 
DEBUGFLAGS = -Wall
CFLAGS     = $(OPTIMFLAGS) -fno-stack-protector -fno-strict-aliasing -fpic -fshort-wchar $(DEBUGFLAGS)
LDFLAGS	   = -nostdlib -znocombreloc
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

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

# Use Modified binutils that supports x86_64 using UEFI ABI
ifeq ($(ARCH), x86_64)
        CFLAGS   += -DEFI_FUNCTION_WRAPPER
	OBJCOPY	  = /usr/bin/objcopy
endif

ifeq ($(ARCH),ia64)
 GCC_VERSION=$(shell $(CROSS_COMPILE)$(CC) -v 2>&1 | fgrep 'gcc version' | cut -f3 -d' ' | cut -f1 -d'.')

 ifneq ($(GCC_VERSION),2)
        CFLAGS += -frename-registers
 endif

 # EFI specs allows only lower floating point partition to be used
 CFLAGS += -mfixed-range=f32-f127
endif
