e4c657c4af
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>
53 lines
1.2 KiB
Makefile
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
|