coreboot-kgpe-d16/payloads/external/GRUB2/Makefile.inc
Vladimir Serbinenko e4c657c4af Do not export variables to GRUB build
Variables in coreboot and not in line with GRUB ones. E.g. HOSTCC is both
HOST_CC and BUILD_CC for GRUB (consult INSTALL for more details) and
what coreboot calls CC is TARGET_CC for GRUB.

Current code plugs this by defining variables explicitly but it has a nasty
effect that make stops caring about flags added in makefile itself. Undef
as many variables as possible but still pass them to configure for them to
have correct effect and keep CC assignment as my make version doesn't undefine
it even when instructed to do so.

Tested with qemu.

Change-Id: I9d18f557138a20ae3918d698dee8f5b5c5738f75
Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com>
Reviewed-on: http://review.coreboot.org/4310
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
2013-12-06 16:38:51 +01:00

53 lines
1.2 KiB
Makefile

TAG-$(CONFIG_GRUB2_MASTER)=
NAME-$(CONFIG_GRUB2_MASTER)=HEAD
unexport KCONFIG_AUTOCONFIG
unexport CFLAGS
unexport CPPFLAGS
unexport CCASFLAGS
unexport CC
unexport BUILD_CC
unexport TARGET_CC
unexport TARGET_CFLAGS
unexport TARGET_CPPFLAGS
unexport TARGET_STRIP
unexport TARGET_OBJCOPY
unexport HOST_CFLAGS
unexport HOST_CPPFLAGS
unexport HOST_CC
all: grub2
checkout:
echo " GIT GRUB2 $(NAME-y)"
test -d grub2 || \
git clone git://git.sv.gnu.org/grub.git grub2
cd grub2 && \
git checkout master && \
git pull; \
test -n "$(TAG-y)" && \
git branch -f $(NAME-y) $(TAG-y) && \
git checkout $(NAME-y) || true
config: checkout
echo " CONFIG GRUB2 $(NAME-y)"
rm -rf grub2/build
mkdir grub2/build
cd grub2 && ./autogen.sh
cd grub2/build && ../configure BUILD_CC="$(HOSTCC)" CC="$(HOSTCC)" \
TARGET_CC="$(CC)" \
TARGET_OBJCOPY="$(OBJCOPY)" TARGET_STRIP="$(STRIP)" CFLAGS=-O2 TARGET_CFLAGS=-Os --with-platform=coreboot
grub2: config
echo " MAKE GRUB2 $(NAME-y)"
$(MAKE) -C grub2/build CC="$(HOSTCC)"
$(MAKE) -C grub2/build default_payload.elf
clean:
test -d grub2 && $(MAKE) -C grub2 clean || exit 0
distclean:
rm -rf grub2
.PHONY: checkout config grub2 clean distclean