blob: 6f5525bcd6d6caed04fe75ad876cc65e077f9b2f [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
Martin Roth888a98b2016-03-13 13:00:43 -060055
Patrick Rudolph23cb12b2017-07-25 19:36:25 +020056build: config $(CONFIG_SCRIPT)
57ifeq ($(CONFIG_HAS_SCRIPT),y)
58 echo " MAKE $(project_name) $(TAG-y) EMBED=$(CONFIG_SCRIPT)"
59 $(MAKE) -C $(project_dir)/src bin/$(PXE_ROM_PCI_ID).rom EMBED=$(CONFIG_SCRIPT)
60else
Martin Roth888a98b2016-03-13 13:00:43 -060061 echo " MAKE $(project_name) $(TAG-y)"
62 $(MAKE) -C $(project_dir)/src bin/$(PXE_ROM_PCI_ID).rom
Patrick Rudolph23cb12b2017-07-25 19:36:25 +020063endif
Martin Roth888a98b2016-03-13 13:00:43 -060064 cp $(project_dir)/src/bin/$(PXE_ROM_PCI_ID).rom $(project_dir)/ipxe.rom
65ifeq ($(CONSOLE_SERIAL),yy)
66 cp "$(project_dir)/src/config/console.h.cb" "$(project_dir)/src/config/console.h"
67 cp "$(project_dir)/src/config/serial.h.cb" "$(project_dir)/src/config/serial.h"
68endif
Felix Singer238ff1e2023-11-05 02:09:34 +000069ifneq ($(filter y,$(CONFIG_HAS_SCRIPT) $(CONFIG_IPXE_NO_PROMPT)),)
Patrick Rudolph23cb12b2017-07-25 19:36:25 +020070 cp "$(project_dir)/src/config/general.h.cb" "$(project_dir)/src/config/general.h"
71endif
Martin Roth888a98b2016-03-13 13:00:43 -060072
73clean:
74 test -d $(project_dir) && $(MAKE) -C $(project_dir)/src veryclean || exit 0
75 rm -f $(project_dir)/ipxe.rom
76
77distclean:
78 rm -rf $(project_dir)
79
80.PHONY: all fetch config build clean distclean