blob: 91074fea99f10400b5e16afb45a277d0bd366063 [file] [log] [blame]
Patrick Georgi8480c0b2020-05-08 22:50:46 +02001## SPDX-License-Identifier: GPL-2.0-only
Martin Roth888a98b2016-03-13 13:00:43 -06002
Michał Żygowski8a47a142022-02-23 11:15:28 +01003# 2022.1 - Last commit of January 2022
Martin Roth888a98b2016-03-13 13:00:43 -06004# When updating, change the name both here and in payloads/external/iPXE/Kconfig
Michał Żygowski8a47a142022-02-23 11:15:28 +01005STABLE_COMMIT_ID=6ba671acd922ee046b257c5119b8a0f64d275473
Martin Roth888a98b2016-03-13 13:00:43 -06006
7TAG-$(CONFIG_IPXE_MASTER)=origin/master
8TAG-$(CONFIG_IPXE_STABLE)=$(STABLE_COMMIT_ID)
9
10project_name=iPXE
11project_dir=ipxe
Jonathan Neuschäferb02e3412016-12-27 16:31:30 +010012project_git_repo=https://git.ipxe.org/ipxe.git
Martin Roth888a98b2016-03-13 13:00:43 -060013
14all: build
15
16$(project_dir):
17 echo " Cloning $(project_name) from Git"
18 git clone $(project_git_repo) $(project_dir)
19
20fetch: $(project_dir)
21 cd $(project_dir); \
22 git show $(TAG-y) >/dev/null 2>&1 ; \
23 if [ $$? -ne 0 ] || [ "$(TAG-y)" = "origin/master" ]; then \
24 echo " Fetching new commits from the $(project_name) repo"; \
25 git fetch; \
26 fi
27
28checkout: fetch
29 echo " Checking out $(project_name) revision $(TAG-y)"
30 cd $(project_dir); \
31 git checkout master; \
32 git branch -D coreboot 2>/dev/null; \
33 git checkout -b coreboot $(TAG-y)
34
35config: checkout
36ifeq ($(CONSOLE_SERIAL),yy)
37 cp "$(project_dir)/src/config/console.h" "$(project_dir)/src/config/console.h.cb"
38 cp "$(project_dir)/src/config/serial.h" "$(project_dir)/src/config/serial.h.cb"
Felix Singer0fcdfcd2023-11-04 01:39:44 +000039 sed -i'' 's|//#define\s*CONSOLE_SERIAL.*|#define CONSOLE_SERIAL|' "$(project_dir)/src/config/console.h"
40 sed -i'' 's|#define\s*COMCONSOLE.*|#define COMCONSOLE $(IPXE_UART)|' "$(project_dir)/src/config/serial.h"
41 sed -i'' 's|#define\s*COMSPEED.*|#define COMSPEED $(CONFIG_TTYS0_BAUD)|' "$(project_dir)/src/config/serial.h"
Martin Roth888a98b2016-03-13 13:00:43 -060042endif
Felix Singer238ff1e2023-11-05 02:09:34 +000043ifneq ($(filter y,$(CONFIG_HAS_SCRIPT) $(CONFIG_IPXE_NO_PROMPT)),)
Patrick Rudolph23cb12b2017-07-25 19:36:25 +020044 cp "$(project_dir)/src/config/general.h" "$(project_dir)/src/config/general.h.cb"
45endif
46ifeq ($(CONFIG_HAS_SCRIPT),y)
Felix Singer0fcdfcd2023-11-04 01:39:44 +000047 sed -i'' 's|//#define\s*IMAGE_SCRIPT.*|#define IMAGE_SCRIPT|' "$(project_dir)/src/config/general.h"
Patrick Rudolph23cb12b2017-07-25 19:36:25 +020048endif
Felix Singer238ff1e2023-11-05 02:09:34 +000049ifeq ($(CONFIG_IPXE_NO_PROMPT),y)
Felix Singer0fcdfcd2023-11-04 01:39:44 +000050 sed -i'' 's|#define\s*BANNER_TIMEOUT.*|#define BANNER_TIMEOUT 0|' "$(project_dir)/src/config/general.h"
Patrick Rudolph23cb12b2017-07-25 19:36:25 +020051endif
Felix Singer238ff1e2023-11-05 02:09:34 +000052ifeq ($(CONFIG_IPXE_HAS_HTTPS),y)
Felix Singer0fcdfcd2023-11-04 01:39:44 +000053 sed -i'' 's|.*DOWNLOAD_PROTO_HTTPS|#define DOWNLOAD_PROTO_HTTPS|g' "$(project_dir)/src/config/general.h"
Felix Singerc7f47362019-01-25 03:44:20 +010054endif
Maciej Pijanowski0306cc22023-12-21 21:38:03 +010055ifeq ($(CONFIG_PXE_TRUST_CMD),y)
56 sed -i'' 's|.*IMAGE_TRUST_CMD|#define IMAGE_TRUST_CMD|g' "$(project_dir)/src/config/general.h"
57endif
Martin Roth888a98b2016-03-13 13:00:43 -060058
Patrick Rudolph23cb12b2017-07-25 19:36:25 +020059build: config $(CONFIG_SCRIPT)
60ifeq ($(CONFIG_HAS_SCRIPT),y)
61 echo " MAKE $(project_name) $(TAG-y) EMBED=$(CONFIG_SCRIPT)"
62 $(MAKE) -C $(project_dir)/src bin/$(PXE_ROM_PCI_ID).rom EMBED=$(CONFIG_SCRIPT)
63else
Martin Roth888a98b2016-03-13 13:00:43 -060064 echo " MAKE $(project_name) $(TAG-y)"
65 $(MAKE) -C $(project_dir)/src bin/$(PXE_ROM_PCI_ID).rom
Patrick Rudolph23cb12b2017-07-25 19:36:25 +020066endif
Martin Roth888a98b2016-03-13 13:00:43 -060067 cp $(project_dir)/src/bin/$(PXE_ROM_PCI_ID).rom $(project_dir)/ipxe.rom
68ifeq ($(CONSOLE_SERIAL),yy)
69 cp "$(project_dir)/src/config/console.h.cb" "$(project_dir)/src/config/console.h"
70 cp "$(project_dir)/src/config/serial.h.cb" "$(project_dir)/src/config/serial.h"
71endif
Felix Singer238ff1e2023-11-05 02:09:34 +000072ifneq ($(filter y,$(CONFIG_HAS_SCRIPT) $(CONFIG_IPXE_NO_PROMPT)),)
Patrick Rudolph23cb12b2017-07-25 19:36:25 +020073 cp "$(project_dir)/src/config/general.h.cb" "$(project_dir)/src/config/general.h"
74endif
Martin Roth888a98b2016-03-13 13:00:43 -060075
76clean:
77 test -d $(project_dir) && $(MAKE) -C $(project_dir)/src veryclean || exit 0
78 rm -f $(project_dir)/ipxe.rom
79
80distclean:
81 rm -rf $(project_dir)
82
83.PHONY: all fetch config build clean distclean