-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGNUmakefile
More file actions
90 lines (66 loc) · 2.25 KB
/
GNUmakefile
File metadata and controls
90 lines (66 loc) · 2.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
export PATH := $(CURDIR)/var/bin:$(PATH)
PYTHON ?= python3
# Pulled from the Winbond W25Q128FV dataheet
SPI_PAGE_SIZE ?= 256
SPI_N_PAGES ?= 65536
BLANK_IMG ?= var/spiflash/blank_$(SPI_PAGE_SIZE)x$(SPI_N_PAGES).img
ESP_IMG ?= var/spiflash/ESP_$(SPI_PAGE_SIZE)x$(SPI_N_PAGES).img
efi-booter/efi-booter.ihex: libfx2 $(wildcard efi-booter/*.c efi-booter/*.h)
$(MAKE) -j -C efi-booter
efi-booter: efi-booter/efi-booter.ihex
load-booter: efi-booter/efi-booter.ihex
sudo fx2tool load $<
var/spiflash: var
mkdir -p $@
$(BLANK_IMG): var/spiflash var/.has_sgdisk
dd if=/dev/zero bs=$(SPI_PAGE_SIZE) count=$(SPI_N_PAGES) of=$@
sgdisk -a 1 --new=0:0:0 $@
sgdisk --change-name=1:"Targetdisk (EFI)" $@
sgdisk --typecode=1:ef00 $@
sgdisk -A 1:set:0 $@
sgdisk -A 1:set:60 $@
scripts/mk-esp $@
@sgdisk -p $@
blank-img: $(BLANK_IMG)
var/mnt: var
mkdir -p $@
$(ESP_IMG): $(BLANK_IMG) var/efi/targetdisk.efi var/mnt
cp $(BLANK_IMG) $@
scripts/populate-esp $@
esp-img: $(ESP_IMG)
flash-spi: $(ESP_IMG)
minipro -p W25Q128FV@SOIC8 -w $<
tags: libfx2
find modules/libfx2/firmware/library -name '*.c' -print0 | xargs -0 ctags -dt
find modules/libfx2/firmware/library -name '*.h' -print0 | xargs -0 ctags -adt
find efi-booter -name '*.c' -print0 | xargs -0 ctags -adt
find efi-booter -name '*.h' -print0 | xargs -0 ctags -adt
var:
mkdir -p $@
$(PYTHON) -m venv var
var/bin/sdcc: var
git submodule update --init --recursive -- modules/sdcc
scripts/build-sdcc
modules/efi/gfx/img_data.h:
git submodule update --init --recursive -- modules/efi
. var/bin/activate && cd modules/efi/gfx && ./configure.py
var/efi: var
mkdir -p $@
var/efi/targetdisk.efi: modules/efi/gfx/img_data.h var/efi
$(MAKE) -Cmodules/efi
cp modules/efi/targetdisk.efi $@
efi: var/efi/targetdisk.efi
efitest: efi
modules/efi/qemu_test.sh var/efi
var/bin/fx2tool: var
$(MAKE) -j sdcc
git submodule update --init --recursive -- modules/libfx2
$(MAKE) -j -Cmodules/libfx2/firmware/library
. var/bin/activate && $(PYTHON) -m pip install modules/libfx2/software
libfx2: var/bin/fx2tool
sdcc:
command -v $@ || $(MAKE) var/bin/$@
var/.has_sgdisk: var
@command -v sgdisk || (echo Please install gptfdisk/gdisk >&2 && exit 1)
touch var/.has_sgdisk
.PHONY: tags sdcc libfx2 efi-booter blank-img esp-img efi efitest