Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altos
[fw/altos] / src / chaoskey-v1.0 / Makefile
index d9944a124ab7ee3e2f318c8567cf1e0df482cfde..329f603d1107a58cc83b5d8d0767735a25a30c47 100644 (file)
@@ -14,6 +14,8 @@ INC = \
        ao_task.h \
        ao_adc_fast.h \
        ao_power.h \
+       ao_flash_readout.h \
+       ao_crc.h \
        stm32f0.h
 
 #
@@ -28,16 +30,19 @@ ALTOS_SRC = \
        ao_adc_fast.c \
        ao_crc_stm.c \
        ao_stdio.c \
-       ao_led.c \
+       ao_led_stmf0.c \
        ao_romconfig.c \
        ao_boot_chain.c \
        ao_usb_stm.c \
        ao_trng_send.c \
+       ao_flash_readout.c \
        ao_task.c \
        ao_power.c \
        ao_gpio.c \
        ao_product.c
 
+VENDOR=AltusMetrum
+PROJECT_NAME=ChaosKey
 PRODUCT=ChaosKey-hw-1.0-sw-$(VERSION)
 PRODUCT_DEF=-DCHAOSKEY_V_1_0
 IDVENDOR=0x1d50
@@ -48,11 +53,13 @@ CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS) -g -Os
 PROGNAME=chaoskey-v1.0
 PROG=$(PROGNAME)-$(VERSION).elf
 HEX=$(PROGNAME)-$(VERSION).ihx
+BIN=$(PROGNAME)-all-$(VERSION).bin
+METAINFO=org.altusmetrum.ChaosKey.metainfo.xml
 
 SRC=$(ALTOS_SRC) ao_chaoskey.c
 OBJ=$(SRC:.c=.o)
 
-all: $(PROG) $(HEX)
+all: $(PROG) $(HEX) $(BIN)
 
 $(PROG): Makefile $(OBJ) altos.ld
        $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
@@ -62,11 +69,26 @@ ao_product.h: ao-make-product.5c ../Version
 
 $(OBJ): $(INC)
 
+$(BIN): $(PROG) $(LOADER)
+       $(MAKEBIN) --output=$@ --base=$(FLASH_ADDR) $(LOADER) $(PROG)
+
+$(LOADER):
+       +cd flash-loader && make
+
+%.cab: $(PROG) $(HEX) $(METAINFO)
+       gcab --create --nopath $@ $(PROG) $(HEX) $(METAINFO)
+
+cab: $(VENDOR)-$(PROJECT_NAME)-$(VERSION).cab
+
+check: $(METAINFO)
+       appstream-util validate-relax $(METAINFO)
+
 distclean:     clean
 
 clean:
-       rm -f *.o $(PROGNAME)-*.elf $(PROGNAME)-*.ihx
+       rm -f *.o $(PROGNAME)-*.elf $(PROGNAME)-*.ihx *.bin
        rm -f ao_product.h
+       rm -f *.cab
 
 install: