de30316c7bb4d8ec6d8d5c7a9c0d3d0158620eed
[fw/altos] / src / stm32f4-disco / Makefile
1 include ../stm32f4/Makefile-raw.defs
2
3 aoschemelib=$(shell pkg-config --variable=aoschemelib ao-scheme)
4
5 include $(aoschemelib)/Makefile-scheme
6
7 IDVENDOR=0xfffe
8 IDPRODUCT=0xfffa
9 PRODUCT=stm32f4-disco
10 SERIAL=1
11
12 INC = \
13         ao.h \
14         ao_arch.h \
15         ao_arch_funcs.h \
16         ao_boot.h \
17         ao_pins.h \
18         ao_task.h \
19         ao_product.h \
20         $(SCHEME_HDRS) \
21         ao_scheme_const.h \
22         stm32f4.h \
23         Makefile
24
25 ALTOS_SRC = \
26         ao_interrupt.c \
27         ao_romconfig.c \
28         ao_panic.c \
29         ao_timer.c \
30         ao_task.c \
31         ao_stdio.c \
32         ao_product.c \
33         ao_cmd.c \
34         ao_exti_stm32f4.c \
35         ao_usart_stm32f4.c \
36         ao_usb_gen.c \
37         ao_usb_stm32f4.c \
38         ao_led.c \
39         ao_impure.c \
40         $(SCHEME_SRCS)
41
42 CFLAGS = $(STM32F4_CFLAGS) -I$(aoschemelib)
43
44 PROG=stm32f4-disco-$(VERSION)
45 ELF=$(PROG).elf
46 IHX=$(PROG).ihx
47
48 SRC=$(ALTOS_SRC) ao_disco.c
49 OBJ=$(SRC:.c=.o)
50 MAP=$(PROG).map
51
52 all: $(ELF) $(IHX)
53
54 $(ELF): Makefile $(OBJ)
55         $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $@ $(OBJ) -Wl,-M=$(MAP) $(LIBS)
56
57 $(OBJ): $(INC)
58
59 ao_product.h: ao-make-product.5c ../Version Makefile
60         $(call quiet,NICKLE,$<) $< -m altusmetrum.org -V $(IDVENDOR) -s $(SERIAL) -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
61
62 SCHEME_SCHEME=\
63         ao_scheme_basic_syntax.scheme \
64         ao_scheme_list.scheme \
65         ao_scheme_advanced_syntax.scheme \
66         ao_scheme_vector.scheme \
67         ao_scheme_string.scheme \
68         ao_scheme_char.scheme \
69         ao_scheme_number.scheme
70
71 ao_scheme_const.h: ao-scheme-make-const-big $(SCHEME_SCHEME)
72         $^ -o $@ -d POSIX,PORT,SAVE
73
74 distclean:      clean
75
76 clean:
77         rm -f *.o *.elf *.ihx *.map
78
79 install:
80
81 uninstall: