d3b49b4cda
Drop the deprecated COREBOOTPAYLOAD option, and replace it with MrChromebox's updated UefiPayloadPkg option. Simplify the Kconfig options to make it easier to build from upstream edk2 master. Drop the TIANOCORE_USE_8254_TIMER Kconfig option since it applied only to CorebootPayloadPkg. Clean up the Makefile now that we're only building from a single Tianocore package/target. Test: build/boot qemu Q35 target with both UefiPayload and Upstream options. Change-Id: If545fbd0c30be6dcc6ff43107b80980fa23a527e Signed-off-by: Matt DeVillier <matt.devillier@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/54019 Reviewed-by: Arthur Heymans <arthur@aheymans.xyz> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
108 lines
3.5 KiB
Makefile
108 lines
3.5 KiB
Makefile
## SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
# force the shell to bash - the edksetup.sh script doesn't work with dash
|
|
export SHELL := env bash
|
|
|
|
project_name=Tianocore
|
|
project_dir=$(CURDIR)/tianocore
|
|
project_git_repo=https://github.com/mrchromebox/edk2
|
|
project_git_branch=uefipayloadpkg
|
|
upstream_git_repo=https://github.com/tianocore/edk2
|
|
|
|
build_flavor=-D BOOTLOADER=COREBOOT -D PCIE_BASE=$(CONFIG_MMCONF_BASE_ADDRESS) -DPS2_KEYBOARD_ENABLE
|
|
|
|
ifeq ($(CONFIG_TIANOCORE_UPSTREAM),y)
|
|
TAG=upstream/master
|
|
else
|
|
# STABLE revision is MrChromebox's UefiPayloadPkg (ueifpayloadpkg) branch
|
|
TAG=origin/$(project_git_branch)
|
|
endif
|
|
|
|
ifneq ($(CONFIG_TIANOCORE_REVISION_ID),)
|
|
TAG=$(CONFIG_TIANOCORE_REVISION_ID)
|
|
endif
|
|
|
|
export EDK_TOOLS_PATH=$(project_dir)/BaseTools
|
|
|
|
ifeq ($(CONFIG_TIANOCORE_DEBUG),y)
|
|
BUILD_TYPE=DEBUG
|
|
else
|
|
BUILD_TYPE=RELEASE
|
|
endif
|
|
|
|
TIMEOUT=-D PLATFORM_BOOT_TIMEOUT=$(CONFIG_TIANOCORE_BOOT_TIMEOUT)
|
|
|
|
ifeq ($(CONFIG_TIANOCORE_TARGET_IA32), y)
|
|
ARCH=-a IA32
|
|
else
|
|
ARCH=-a IA32 -a X64
|
|
endif
|
|
|
|
BUILD_STR=-q $(ARCH) -p UefiPayloadPkg/UefiPayloadPkg.dsc -t COREBOOT -b $(BUILD_TYPE) $(TIMEOUT) $(build_flavor)
|
|
|
|
all: clean build
|
|
|
|
$(project_dir):
|
|
echo " Cloning $(project_name) from Git"
|
|
git clone --branch $(project_git_branch) $(project_git_repo) $(project_dir); \
|
|
cd $(project_dir); \
|
|
git remote add upstream $(upstream_git_repo)
|
|
|
|
update: $(project_dir)
|
|
cd $(project_dir); \
|
|
echo " Fetching new commits from the $(project_name) repo"; \
|
|
git fetch --multiple origin upstream 2>/dev/null; \
|
|
if ! git rev-parse --verify -q $(TAG) >/dev/null; then \
|
|
echo " $(TAG) is not a valid git reference"; \
|
|
exit 1; \
|
|
fi; \
|
|
if git status --ignore-submodules=dirty | grep -qv clean; then \
|
|
echo " Checking out $(project_name) revision $(TAG)"; \
|
|
git checkout --detach $(TAG); \
|
|
else \
|
|
echo " Working directory not clean; will not overwrite"; \
|
|
fi; \
|
|
git submodule update --init
|
|
|
|
checktools:
|
|
echo "Checking uuid-dev..."
|
|
echo "#include <uuid/uuid.h>" > libtest.c
|
|
echo "int main(int argc, char **argv) { (void) argc; (void) argv; return 0; }" >> libtest.c
|
|
$(HOSTCC) $(HOSTCCFLAGS) libtest.c -o libtest >/dev/null 2>&1 && echo " found uuid-dev." || \
|
|
( echo " Not found."; echo "ERROR: please_install uuid-dev (libuuid-devel)"; exit 1 )
|
|
rm -rf libtest.c libtest
|
|
echo "Checking nasm..."
|
|
type nasm > /dev/null 2>&1 && echo " found nasm." || \
|
|
( echo " Not found."; echo "Error: Please install nasm."; exit 1 )
|
|
|
|
build: update checktools
|
|
unset CC; $(MAKE) -C $(project_dir)/BaseTools
|
|
echo " build $(project_name) $(TAG)"
|
|
if [ -n "$(CONFIG_TIANOCORE_BOOTSPLASH_FILE)" ]; then \
|
|
echo " Copying custom bootsplash image"; \
|
|
case "$(CONFIG_TIANOCORE_BOOTSPLASH_FILE)" in \
|
|
/*) cp $(CONFIG_TIANOCORE_BOOTSPLASH_FILE) \
|
|
$(project_dir)/MdeModulePkg/Logo/Logo.bmp;; \
|
|
*) cp $(top)/$(CONFIG_TIANOCORE_BOOTSPLASH_FILE) \
|
|
$(project_dir)/MdeModulePkg/Logo/Logo.bmp;; \
|
|
esac \
|
|
fi; \
|
|
cd $(project_dir); \
|
|
export EDK_TOOLS_PATH=$(project_dir)/BaseTools; \
|
|
export WORKSPACE=$(project_dir); \
|
|
. ./edksetup.sh BaseTools; \
|
|
grep -q "COREBOOT" $(project_dir)/Conf/tools_def.txt; \
|
|
if [ $$? -ne 0 ]; then \
|
|
cat ../tools_def.txt >> $(project_dir)/Conf/tools_def.txt; \
|
|
fi; \
|
|
build $(BUILD_STR); \
|
|
mv $(project_dir)/Build/$(bootloader)*/*/FV/UEFIPAYLOAD.fd $(project_dir)/Build/UEFIPAYLOAD.fd; \
|
|
git checkout MdeModulePkg/Logo/Logo.bmp > /dev/null 2>&1 || true
|
|
|
|
clean:
|
|
test -d $(project_dir) && (cd $(project_dir); rm -rf Build; rm -f Conf/tools_def.txt) || exit 0
|
|
|
|
distclean:
|
|
rm -rf $(project_dir)
|
|
|
|
.PHONY: all update checktools config build clean distclean
|