-
Notifications
You must be signed in to change notification settings - Fork 22
/
Copy pathMakefile
83 lines (67 loc) · 2.26 KB
/
Makefile
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
ROOT_DIR=$(CURDIR)
BUILD_DIR=$(ROOT_DIR)/build/gcc
SCRIPT_DIR=$(ROOT_DIR)/scripts
OPENOCD_BIN?=
# Set version to anything required; real version will be provided in the .buildinfo anyway
VERSION=$(shell git describe)
PROJECT=nitrokey-pro-firmware
ARCHIVE_NAME=$(PROJECT)-$(VERSION).tar.gz
# Set to "1" to run GPG signing on the hash files with the default key
SIGN=0
DEPS=gcc-arm-none-eabi
.PHONY: firmware flash-versaloon clean release bootloader
all: firmware bootloader
bootloader:
cd $(BUILD_DIR) && $(MAKE) -f dfu.mk bootloader.hex
firmware:
cd $(BUILD_DIR) && $(MAKE)
clean:
cd $(BUILD_DIR) && make clean
cd $(BUILD_DIR) && make -f dfu.mk clean
-rm nitrokey-*-firmware*.tar.gz
deps:
sudo apt-get install ${DEPS}
.PHONY: release release-all
release: | clean
mkdir -p release
-rm -r release/*.*
$(MAKE) firmware -j12
cd $(BUILD_DIR) && $(MAKE) -f dfu.mk firmware.hex VERSION=$(VERSION)
cd $(BUILD_DIR) && $(MAKE) -f dfu.mk all.hex VERSION=$(VERSION)
cp `readlink -f $(BUILD_DIR)/last_to_flash.hex` `readlink -f $(BUILD_DIR)/last_update.bin` `readlink -f $(BUILD_DIR)/last.buildinfo` release/
cd release && find . -name "*.hex" -type f -printf "%f\0" | xargs -0 -n1 -I{} sh -c 'sha512sum -b {} > {}.sha512'
cd release && find . -name "*.bin" -type f -printf "%f\0" | xargs -0 -n1 -I{} sh -c 'sha512sum -b {} > {}.sha512'
-[ $(SIGN) == 1 ] && cd release && ls -1 *.sha* | xargs -n1 gpg2 --detach-sign
-[ $(SIGN) == 1 ] && cd release && ls -1 *.sig | xargs -n1 gpg2 --verify
ls -lh release
tar -czvf $(ARCHIVE_NAME) -C release . | sort
release-all:
mkdir -p release-all
-rm -r release-all/*.*
$(MAKE) release
mv *tar.gz release-all
ls -lh release-all/
.PHONY: gdbserver
gdbserver:
openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg
.PHONY: ocdtelnet
ocdtelnet:
telnet localhost 4444
.PHONY: devloop
devloop: | clean
$(MAKE) firmware -j12 BUILD_DEBUG=1
-# killall telnet
- killall openocd
cd build/gcc && $(MAKE) -f dfu.mk flash-full-single
$(MAKE) gdbserver > /dev/null &
sleep 1
$(MAKE) ocdtelnet
.PHONY: devloop-release
devloop-release: | clean
$(MAKE) firmware -j12
- killall openocd
cd build/gcc && $(MAKE) -f dfu.mk flash-full-single
.PHONY: devloop-update
devloop-update: | clean
$(MAKE) firmware -j12
cd build/gcc && $(MAKE) -f dfu.mk update