1## SPDX-License-Identifier: GPL-2.0-only 2 3TAG-$(CONFIG_UBOOT_MASTER)=master 4TAG-$(CONFIG_UBOOT_STABLE)=$(STABLE_COMMIT_ID) 5 6project_name=U-Boot 7project_dir=u-boot 8project_git_repo=http://github.com/u-boot/u-boot/ 9project_build_dir=build 10project_config_file=$(project_build_dir)/.config 11 12make_args=-C $(project_dir) O=../build 13 14unexport KCONFIG_AUTOHEADER 15unexport KCONFIG_AUTOCONFIG 16unexport KCONFIG_DEPENDENCIES 17unexport KCONFIG_SPLITCONFIG 18unexport KCONFIG_TRISTATE 19unexport KCONFIG_NEGATIVES 20unexport $(COREBOOT_EXPORTS) 21 22all: build 23 24$(project_dir): 25 echo " Cloning $(project_name) from Git" 26 git clone $(project_git_repo) -b $(TAG-y) $(project_dir) 27 28fetch: $(project_dir) 29ifeq ($(CONFIG_UBOOT_MASTER),y) 30 echo " Fetching new commits from the $(project_name) git repo" 31 git fetch 32 33 #master doesn't get a file, so it's continuously updated 34 rm -f $(STABLE_COMMIT_ID) 35else 36 cd $(project_dir); git show $(TAG-y) >/dev/null 2>&1 ; if [ $$? -ne 0 ]; \ 37 then echo " Fetching new commits from the $(project_name) git repo"; git fetch; fi 38 touch $(STABLE_COMMIT_ID) 39endif 40 41checkout: fetch 42 echo " Checking out $(project_name) revision $(TAG-y)" 43 cd $(project_dir); git checkout master; git branch -D coreboot 2>/dev/null; git checkout -b coreboot $(TAG-y) 44 45config: checkout 46 mkdir -p $(project_build_dir) 47 rm -f $(project_config_file) 48ifneq ($(CONFIG_PAYLOAD_CONFIGFILE),) 49ifneq ("$(wildcard $(CONFIG_PAYLOAD_CONFIGFILE))","") 50 cat $(CONFIG_PAYLOAD_CONFIGFILE)" > tag-$(project_config_file) 51 $(MAKE) $(make_args) olddefconfig 52else 53 echo "Error: File $(CONFIG_PAYLOAD_CONFIGFILE) does not exist" 54 false 55endif 56else 57 $(MAKE) $(make_args) coreboot_defconfig 58endif 59 60build: config 61 echo " MAKE $(project_name) $(TAG-y)" 62 $(MAKE) $(make_args) 63 64clean: 65 test -d $(project_dir) && $(MAKE) $(make_args) clean || exit 0 66 67distclean: 68 rm -rf $(project_dir) 69 70print-repo-info: 71 echo "$(project_git_repo) $(project_dir)" 72 73.PHONY: checkout config build clean distclean fetch print-repo-info 74