@ -24,6 +24,11 @@ endif
DFU_UTIL = "dfu-util"
DFU_UTIL = "dfu-util"
DEPDIR = generated_dependencies
$( shell mkdir -p -m 777 $ ( DEPDIR ) >/dev /null )
DEPFLAGS = -MT $@ -MMD -MP -MF $( DEPDIR) /$* .Td
POSTCOMPILE = @mv -f $( DEPDIR) /$* .Td $( DEPDIR) /$* .d && touch $@
# this no longer pushes the bootstub
# this no longer pushes the bootstub
flash : obj /$( PROJ_NAME ) .bin
flash : obj /$( PROJ_NAME ) .bin
PYTHONPATH = ../ python -c " from python import Panda; Panda().flash('obj/ $( PROJ_NAME) .bin') "
PYTHONPATH = ../ python -c " from python import Panda; Panda().flash('obj/ $( PROJ_NAME) .bin') "
@ -45,8 +50,9 @@ include ../common/version.mk
obj/cert.h : ../crypto /getcertheader .py
obj/cert.h : ../crypto /getcertheader .py
../crypto/getcertheader.py ../certs/debug.pub ../certs/release.pub > $@
../crypto/getcertheader.py ../certs/debug.pub ../certs/release.pub > $@
obj/%.$(PROJ_NAME).o : %.c obj /cert .h obj /gitversion .h config .h drivers /*.h gpio .h libc .h provision .h safety .h safety /*.h spi_flasher .h
obj/%.$(PROJ_NAME).o : %.c obj /gitversion .h obj /cert .h $( DEPDIR ) /%.d
$( CC) $( CFLAGS) -o $@ -c $<
$( CC) $( DEPFLAGS) $( CFLAGS) -o $@ -c $<
$( POSTCOMPILE)
obj/%.$(PROJ_NAME).o : ../crypto /%.c
obj/%.$(PROJ_NAME).o : ../crypto /%.c
$( CC) $( CFLAGS) -o $@ -c $<
$( CC) $( CFLAGS) -o $@ -c $<
@ -59,12 +65,18 @@ obj/$(PROJ_NAME).bin: obj/$(STARTUP_FILE).o obj/main.$(PROJ_NAME).o
$( CC) -Wl,--section-start,.isr_vector= 0x8004000 $( CFLAGS) -o obj/$( PROJ_NAME) .elf $^
$( CC) -Wl,--section-start,.isr_vector= 0x8004000 $( CFLAGS) -o obj/$( PROJ_NAME) .elf $^
$( OBJCOPY) -v -O binary obj/$( PROJ_NAME) .elf obj/code.bin
$( OBJCOPY) -v -O binary obj/$( PROJ_NAME) .elf obj/code.bin
SETLEN = 1 ../crypto/sign.py obj/code.bin $@ $( CERT)
SETLEN = 1 ../crypto/sign.py obj/code.bin $@ $( CERT)
@BINSIZE= $$ ( du -b " obj/ $( PROJ_NAME) .bin " | cut -f 1) ; if [ $$ BINSIZE -ge 32768 ] ; then echo " ERROR obj/ $( PROJ_NAME) .bin is too big! " ; exit 1; fi ;
@BINSIZE= $$ ( du -b " obj/ $( PROJ_NAME) .bin " | cut -f 1) ; \
if [ $$ BINSIZE -ge 32768 ] ; then echo " ERROR obj/ $( PROJ_NAME) .bin is too big! " ; exit 1; fi ;
obj/bootstub.$(PROJ_NAME).bin : obj /$( STARTUP_FILE ) .o obj /bootstub .$( PROJ_NAME ) .o obj /sha .$( PROJ_NAME ) .o obj /rsa .$( PROJ_NAME ) .o
obj/bootstub.$(PROJ_NAME).bin : obj /$( STARTUP_FILE ) .o obj /bootstub .$( PROJ_NAME ) .o obj /sha .$( PROJ_NAME ) .o obj /rsa .$( PROJ_NAME ) .o
$( CC) $( CFLAGS) -o obj/bootstub.$( PROJ_NAME) .elf $^
$( CC) $( CFLAGS) -o obj/bootstub.$( PROJ_NAME) .elf $^
$( OBJCOPY) -v -O binary obj/bootstub.$( PROJ_NAME) .elf $@
$( OBJCOPY) -v -O binary obj/bootstub.$( PROJ_NAME) .elf $@
$(DEPDIR)/%.d : ;
.PRECIOUS : $( DEPDIR ) /%.d
i n c l u d e $( wildcard $ ( patsubst %,$ ( DEPDIR ) /%.d ,$ ( basename $ ( wildcard *.c ) ) ) )
clean :
clean :
@rm -f obj/*
@$( RM) obj/*
@rm -rf $( DEPDIR)