payloads/edk2: Move building to directory called workspace

The current edk2 makefile will work in a directory that's name is
derived from the repository, such as `mrchromebox` or `starlabsltd`.

Move this under a directory, so that it can be ignored by git and
so that the makefile can be adjusted to use file targets, rather
than phony recipes with wildcards.

Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Change-Id: If0c80dbc59130f229b78cab9578115e14172301d
Reviewed-on: https://review.coreboot.org/c/coreboot/+/66356
Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Sean Rhodes 2022-08-02 08:54:12 +01:00 committed by Tim Wawrzynczak
parent 766bd0040f
commit 403d22076c
3 changed files with 24 additions and 24 deletions

View File

@ -3,7 +3,7 @@ FILO/filo/
GRUB2/grub2/ GRUB2/grub2/
LinuxBoot/linuxboot/ LinuxBoot/linuxboot/
SeaBIOS/seabios/ SeaBIOS/seabios/
edk2/edk2/ edk2/workspace
tint/tint/ tint/tint/
U-Boot/u-boot/ U-Boot/u-boot/
Memtest86Plus/memtest86plus/ Memtest86Plus/memtest86plus/

View File

@ -190,7 +190,7 @@ $(obj)/UEFIPAYLOAD.fd edk2: $(DOTCONFIG)
OBJCOPY_arm=$(OBJCOPY_arm) \ OBJCOPY_arm=$(OBJCOPY_arm) \
OBJCOPY_arm64=$(OBJCOPY_arm64) \ OBJCOPY_arm64=$(OBJCOPY_arm64) \
MFLAGS= MAKEFLAGS= MFLAGS= MAKEFLAGS=
mv payloads/external/edk2/output/UEFIPAYLOAD.fd $@ mv payloads/external/edk2/workspace/output/UEFIPAYLOAD.fd $@
# FILO # FILO

View File

@ -4,7 +4,9 @@
export SHELL := env bash export SHELL := env bash
project_name = edk2 project_name = edk2
project_dir = $(CURDIR)/$(word 3,$(subst /, ,$(CONFIG_EDK2_REPOSITORY))) export WORKSPACE := $(CURDIR)/workspace
export EDK2_PATH := $(WORKSPACE)/$(word 3,$(subst /, ,$(CONFIG_EDK2_REPOSITORY)))
export PACKAGES_PATH := $(EDK2_PATH)
BUILD_STR = -a IA32 -a X64 -t COREBOOT BUILD_STR = -a IA32 -a X64 -t COREBOOT
BUILD_STR += -p UefiPayloadPkg/UefiPayloadPkg.dsc BUILD_STR += -p UefiPayloadPkg/UefiPayloadPkg.dsc
@ -96,16 +98,16 @@ endif
all: clean build all: clean build
$(project_dir): $(WORKSPACE):
mkdir -p $(WORKSPACE)
echo " Cloning $(project_name) from $(CONFIG_EDK2_REPOSITORY)" echo " Cloning $(project_name) from $(CONFIG_EDK2_REPOSITORY)"
git clone $(CONFIG_EDK2_REPOSITORY) $(project_dir); \ git clone $(CONFIG_EDK2_REPOSITORY) $(EDK2_PATH)
cd $(project_dir);
update: $(project_dir) update: $(WORKSPACE)
if [ ! -d "$(project_dir)" ]; then \ if [ ! -d "$(EDK2_PATH)" ]; then \
git clone $(CONFIG_EDK2_REPOSITORY) $(project_dir); \ git clone $(CONFIG_EDK2_REPOSITORY) $(EDK2_PATH); \
fi fi
cd $(project_dir); \ cd $(EDK2_PATH); \
git checkout MdeModulePkg/Logo/Logo.bmp > /dev/null 2>&1 || true; \ git checkout MdeModulePkg/Logo/Logo.bmp > /dev/null 2>&1 || true; \
echo " Fetching new commits from $(CONFIG_EDK2_REPOSITORY)"; \ echo " Fetching new commits from $(CONFIG_EDK2_REPOSITORY)"; \
git fetch origin 2>/dev/null; \ git fetch origin 2>/dev/null; \
@ -121,13 +123,13 @@ update: $(project_dir)
fi; \ fi; \
git submodule update --init --checkout git submodule update --init --checkout
logo: $(project_dir) logo: update
case "$(CONFIG_EDK2_BOOTSPLASH_FILE)" in \ case "$(CONFIG_EDK2_BOOTSPLASH_FILE)" in \
"") ;; \ "") ;; \
/*) convert -background None $(CONFIG_EDK2_BOOTSPLASH_FILE) \ /*) convert -background None $(CONFIG_EDK2_BOOTSPLASH_FILE) \
BMP3:$(project_dir)/MdeModulePkg/Logo/Logo.bmp;; \ BMP3:$(EDK2_PATH)/MdeModulePkg/Logo/Logo.bmp;; \
*) convert -background None $(top)/$(CONFIG_EDK2_BOOTSPLASH_FILE) \ *) convert -background None $(top)/$(CONFIG_EDK2_BOOTSPLASH_FILE) \
BMP3:$(project_dir)/MdeModulePkg/Logo/Logo.bmp;; \ BMP3:$(EDK2_PATH)/MdeModulePkg/Logo/Logo.bmp;; \
esac \ esac \
checktools: checktools:
@ -167,23 +169,21 @@ print:
-e 's/t /Toolchain: /' -e 's/t /Toolchain: /'
build: update print logo checktools build: update print logo checktools
unset CC; $(MAKE) -C $(project_dir)/BaseTools 2>&1 unset CC; $(MAKE) -C $(EDK2_PATH)/BaseTools 2>&1
cd $(project_dir); \ cd $(WORKSPACE); \
export EDK_TOOLS_PATH=$(project_dir)/BaseTools; \ source $(EDK2_PATH)/edksetup.sh BaseTools; \
export WORKSPACE=$(project_dir); \ grep -q "COREBOOT" $(EDK2_PATH)/Conf/tools_def.txt; \
. ./edksetup.sh BaseTools; \
grep -q "COREBOOT" $(project_dir)/Conf/tools_def.txt; \
if [ $$? -ne 0 ]; then \ if [ $$? -ne 0 ]; then \
cat ../tools_def.txt >> $(project_dir)/Conf/tools_def.txt; \ cat ../tools_def.txt >> $(EDK2_PATH)/Conf/tools_def.txt; \
fi; \ fi; \
build $(BUILD_STR); \ build $(BUILD_STR); \
mkdir -p $(project_dir)/../output; \ mkdir -p $(WORKSPACE)/output; \
mv $(project_dir)/Build/$(bootloader)*/*/FV/UEFIPAYLOAD.fd $(project_dir)/../output/UEFIPAYLOAD.fd; \ mv $(WORKSPACE)/Build/UefiPayloadPkgX64/*_COREBOOT/FV/UEFIPAYLOAD.fd $(WORKSPACE)/output
clean: clean:
test -d $(project_dir) && (cd $(project_dir); rm -rf Build; rm -f Conf/tools_def.txt) || exit 0 test -d $(WORKSPACE) && (cd $(WORKSPACE); rm -rf Build; rm -f Conf/tools_def.txt) || exit 0
distclean: distclean:
rm -rf */ rm -rf $(WORKSPACE)
.PHONY: all update checktools config build clean distclean logo .PHONY: all update checktools config build clean distclean logo