panda/board/build.mk

73 lines
2.1 KiB
Makefile
Raw Normal View History

2017-04-27 23:06:31 -06:00
CFLAGS += -I inc -I ../ -nostdlib
2017-04-06 19:11:36 -06:00
CFLAGS += -Tstm32_flash.ld
CC = arm-none-eabi-gcc
OBJCOPY = arm-none-eabi-objcopy
OBJDUMP = arm-none-eabi-objdump
2017-04-25 19:03:58 -06:00
CERT = ../certs/debug
2017-04-06 19:11:36 -06:00
MACHINE = $(shell uname -m)
OS = $(shell uname -o)
ifeq ($(OS),GNU/Linux)
MACHINE := "$(MACHINE)-linux"
endif
# this pushes the unchangable bootstub too
all: obj/bootstub.$(PROJ_NAME).bin obj/$(PROJ_NAME).bin
./tools/enter_download_mode.py
./tools/dfu-util-$(MACHINE) -a 0 -s 0x08000000 -D obj/bootstub.$(PROJ_NAME).bin
./tools/dfu-util-$(MACHINE) -a 0 -s 0x08004000 -D obj/$(PROJ_NAME).bin
./tools/dfu-util-$(MACHINE) --reset-stm32 -a 0 -s 0x08000000
main: obj/$(PROJ_NAME).bin
./tools/enter_download_mode.py
./tools/dfu-util-$(MACHINE) -a 0 -s 0x08004000 -D obj/$(PROJ_NAME).bin
./tools/dfu-util-$(MACHINE) --reset-stm32 -a 0 -s 0x08000000
2017-04-06 19:11:36 -06:00
ota: obj/$(PROJ_NAME).bin
./tools/ota.py $<
ifneq ($(wildcard ../.git/HEAD),)
obj/gitversion.h: ../.git/HEAD ../.git/index
echo "const uint8_t gitversion[] = \"$(shell git rev-parse HEAD)\";" > $@
else
obj/gitversion.h:
echo "const uint8_t gitversion[] = \"RELEASE\";" > $@
endif
2017-04-27 23:06:31 -06:00
obj/cert.h: ../crypto/getcertheader.py
../crypto/getcertheader.py $(CERT).pub > $@
2017-04-25 19:03:58 -06:00
obj/bootstub.$(PROJ_NAME).o: bootstub.c early.h obj/cert.h
2017-04-06 19:11:36 -06:00
$(CC) $(CFLAGS) -o $@ -c $<
obj/main.$(PROJ_NAME).o: main.c *.h obj/gitversion.h
$(CC) $(CFLAGS) -o $@ -c $<
# TODO(geohot): learn to use Makefiles
2017-04-27 23:06:31 -06:00
obj/sha.o: ../crypto/sha.c
$(CC) $(CFLAGS) -o $@ -c $<
2017-04-27 23:06:31 -06:00
obj/rsa.o: ../crypto/rsa.c
$(CC) $(CFLAGS) -o $@ -c $<
2017-04-06 19:11:36 -06:00
obj/$(STARTUP_FILE).o: $(STARTUP_FILE).s
mkdir -p obj
$(CC) $(CFLAGS) -o $@ -c $<
obj/$(PROJ_NAME).bin: obj/$(STARTUP_FILE).o obj/main.$(PROJ_NAME).o
# hack
$(CC) -Wl,--section-start,.isr_vector=0x8004000 $(CFLAGS) -o obj/$(PROJ_NAME).elf $^
2017-04-17 14:57:34 -06:00
$(OBJCOPY) -v -O binary obj/$(PROJ_NAME).elf obj/code.bin
2017-04-27 23:06:31 -06:00
../crypto/sign.py obj/code.bin $@ $(CERT)
2017-04-06 19:11:36 -06:00
obj/bootstub.$(PROJ_NAME).bin: obj/$(STARTUP_FILE).o obj/bootstub.$(PROJ_NAME).o obj/sha.o obj/rsa.o
2017-04-06 19:11:36 -06:00
$(CC) $(CFLAGS) -o obj/bootstub.$(PROJ_NAME).elf $^
$(OBJCOPY) -v -O binary obj/bootstub.$(PROJ_NAME).elf $@
clean:
rm -f obj/*