Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altos
[fw/altos] / src / chaoskey-v1.0 / Makefile
1 #
2 # AltOS build
3 #
4 #
5
6 include ../stmf0/Makefile.defs
7
8 INC = \
9         ao.h \
10         ao_arch.h \
11         ao_arch_funcs.h \
12         ao_pins.h \
13         ao_product.h \
14         ao_task.h \
15         ao_adc_fast.h \
16         ao_power.h \
17         ao_crc.h \
18         stm32f0.h
19
20 #
21 # Common AltOS sources
22 #
23 ALTOS_SRC = \
24         ao_interrupt.c \
25         ao_timer.c \
26         ao_panic.c \
27         ao_mutex.c \
28         ao_dma_stm.c \
29         ao_adc_fast.c \
30         ao_crc_stm.c \
31         ao_stdio.c \
32         ao_led.c \
33         ao_romconfig.c \
34         ao_boot_chain.c \
35         ao_usb_stm.c \
36         ao_trng_send.c \
37         ao_task.c \
38         ao_power.c \
39         ao_gpio.c \
40         ao_product.c
41
42 VENDOR=AltusMetrum
43 PROJECT_NAME=ChaosKey
44 PRODUCT=ChaosKey-hw-1.0-sw-$(VERSION)
45 PRODUCT_DEF=-DCHAOSKEY_V_1_0
46 IDVENDOR=0x1d50
47 IDPRODUCT=0x60c6
48
49 CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS) -g -Os
50
51 PROGNAME=chaoskey-v1.0
52 PROG=$(PROGNAME)-$(VERSION).elf
53 HEX=$(PROGNAME)-$(VERSION).ihx
54 BIN=$(PROGNAME)-all-$(VERSION).bin
55 METAINFO=org.altusmetrum.ChaosKey.metainfo.xml
56
57 SRC=$(ALTOS_SRC) ao_chaoskey.c
58 OBJ=$(SRC:.c=.o)
59
60 all: $(PROG) $(HEX) $(BIN)
61
62 $(PROG): Makefile $(OBJ) altos.ld
63         $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
64
65 ao_product.h: ao-make-product.5c ../Version
66         $(call quiet,NICKLE,$<) $< -m altusmetrum.org -V $(IDVENDOR) -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) -o $@
67
68 $(OBJ): $(INC)
69
70 $(BIN): $(PROG) $(LOADER)
71         $(MAKEBIN) --output=$@ --base=$(FLASH_ADDR) $(LOADER) $(PROG)
72
73 $(LOADER):
74         +cd flash-loader && make
75
76 %.cab: $(PROG) $(HEX) $(METAINFO)
77         gcab --create --nopath $@ $(PROG) $(HEX) $(METAINFO)
78
79 cab: $(VENDOR)-$(PROJECT_NAME)-$(VERSION).cab
80
81 check: $(METAINFO)
82         appstream-util validate-relax $(METAINFO)
83
84 distclean:      clean
85
86 clean:
87         rm -f *.o $(PROGNAME)-*.elf $(PROGNAME)-*.ihx
88         rm -f ao_product.h
89         rm -f *.cab
90
91 install:
92
93 uninstall: