altos/test: Add dependencies in the Makefile for ao_flight_test
[fw/altos] / src / Makefile.proto
1 #
2 # AltOS build
3 #
4 #
5 vpath %.c ..
6 vpath %.h ..
7 vpath make-altitude ..
8 vpath ao-make-product.5c ..
9
10 CC=sdcc
11
12 ifndef VERSION
13 include ../Version
14 endif
15
16 CFLAGS=--model-small --debug --opt-code-speed
17
18 LDFLAGS=--out-fmt-ihx --code-loc 0x0000 --code-size 0x8000 \
19         --xram-loc 0xf000 --xram-size 0xda2 --iram-size 0xff
20
21 INC = \
22         ao.h \
23         ao_pins.h \
24         cc1111.h \
25         altitude.h \
26         25lc1024.h
27
28 #
29 # Common AltOS sources
30 #
31 ALTOS_SRC = \
32         ao_cmd.c \
33         ao_dma.c \
34         ao_mutex.c \
35         ao_panic.c \
36         ao_task.c \
37         ao_timer.c \
38         ao_romconfig.c \
39         _bp.c
40
41 #
42 # Shared AltOS drivers
43 #
44 ALTOS_DRIVER_SRC = \
45         ao_beep.c \
46         ao_config.c \
47         ao_led.c \
48         ao_radio.c \
49         ao_stdio.c \
50         ao_usb.c
51
52 TELE_COMMON_SRC = \
53         ao_packet.c \
54         ao_packet_slave.c \
55         ao_state.c
56
57 #
58 # Receiver code
59 #
60 TELE_RECEIVER_SRC =\
61         ao_monitor.c \
62         ao_gps_print.c \
63         ao_packet_master.c \
64         ao_rssi.c
65
66 #
67 # Shared Tele drivers (on TeleMetrum, TeleTerra, TeleDongle)
68 #
69
70 TELE_DRIVER_SRC = \
71         ao_convert.c \
72         ao_serial.c
73
74 #
75 # Spi bus driver
76 #
77 SPI_DRIVER_SRC = \
78         ao_spi.c
79
80 #
81 # Debug dongle driver (only on TI)
82 #
83 DBG_SRC = \
84         ao_dbg.c
85
86 #
87 # Drivers only on TeleMetrum
88 #
89 TM_DRIVER_SRC = \
90         ao_adc.c \
91         ao_gps_report.c \
92         ao_ignite.c
93
94 #
95 # 25LC1024 driver source
96 EE_DRIVER_SRC = \
97         ao_storage.c \
98         ao_ee.c
99
100 #
101 # AT45DB161D driver source
102
103 FLASH_DRIVER_SRC = \
104         ao_storage.c \
105         ao_flash.c
106
107 #
108 # Numonyx M25P80 driver source
109 #
110
111 M25_DRIVER_SRC = \
112         ao_storage.c \
113         ao_m25.c
114
115 #
116 # SiRF driver source
117 #
118 SIRF_DRIVER_SRC = \
119         ao_gps_sirf.c
120 #
121 # Skytraq driver source
122 #
123 SKY_DRIVER_SRC = \
124         ao_gps_skytraq.c
125
126 #
127 # Tasks run on TeleMetrum
128 #
129 TM_TASK_SRC = \
130         ao_flight.c \
131         ao_log.c \
132         ao_report.c \
133         ao_telemetry.c
134
135 TM_MAIN_SRC = \
136         ao_telemetrum.c
137
138 #
139 # Base sources for TeleMetrum
140 #
141 TM_BASE_SRC = \
142         $(ALTOS_SRC) \
143         $(ALTOS_DRIVER_SRC) \
144         $(TELE_DRIVER_SRC) \
145         $(TELE_COMMON_SRC) \
146         $(TM_DRIVER_SRC) \
147         $(TM_TASK_SRC) \
148         $(TM_MAIN_SRC)
149
150 TI_MAIN_SRC = \
151         ao_tidongle.c
152
153 #
154 # All sources for the TI debug dongle
155 #
156 TI_SRC = \
157         $(ALTOS_SRC) \
158         $(ALTOS_DRIVER_SRC) \
159         $(TELE_RECEIVER_SRC) \
160         $(TELE_COMMON_SRC) \
161         $(TI_MAIN_SRC) \
162         $(DBG_SRC)
163
164 TT_MAIN_SRC = \
165         ao_teleterra.c
166 #
167 # All sources for TeleTerra
168 #
169 TT_SRC = \
170         $(ALTOS_SRC) \
171         $(ALTOS_DRIVER_SRC) \
172         $(TELE_RECEIVER_SRC) \
173         $(TELE_DRIVER_SRC) \
174         $(TELE_COMMON_SRC) \
175         $(TT_MAIN_SRC)
176
177
178 #
179 # Sources for TeleDongle
180 #
181
182 TD_MAIN_SRC = \
183         ao_teledongle.c
184
185 TD_SRC = \
186         $(ALTOS_SRC) \
187         $(ALTOS_DRIVER_SRC) \
188         $(TELE_RECEIVER_SRC) \
189         $(TELE_COMMON_SRC) \
190         $(TD_MAIN_SRC)
191
192 include Makefile.defs
193
194 CFLAGS += $(PRODUCT_DEF) -I.
195
196 NICKLE=nickle
197 CHECK_STACK=sh ../check-stack
198
199 REL=$(SRC:.c=.rel) ao_product.rel
200 ADB=$(REL:.rel=.adb)
201 ASM=$(REL:.rel=.asm)
202 LNK=$(REL:.rel=.lnk)
203 LST=$(REL:.rel=.lst)
204 RST=$(REL:.rel=.rst)
205 SYM=$(REL:.rel=.sym)
206
207 PCDB=$(PROG:.ihx=.cdb)
208 PLNK=$(PROG:.ihx=.lnk)
209 PMAP=$(PROG:.ihx=.map)
210 PMEM=$(PROG:.ihx=.mem)
211 PAOM=$(PROG:.ihx=)
212
213 V=0
214 # The user has explicitly enabled quiet compilation.
215 ifeq ($(V),0)
216 quiet = @printf "  $1 $2 $@\n"; $($1)
217 endif
218 # Otherwise, print the full command line.
219 quiet ?= $($1)
220
221 %.rel : %.c $(INC)
222         $(call quiet,CC,$(PRODUCT_DEF)) $(CFLAGS) -c -o$@ $<
223
224 all: ../$(PROG)
225
226 ../$(PROG): $(REL) Makefile Makefile.defs ../Makefile.proto
227         $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(REL) && cp $(PROG) $(PMAP) ..
228         $(call quiet,CHECK_STACK) ../ao.h $(PMEM)
229
230 ../altitude.h: make-altitude
231         nickle $< > $@
232
233 ao_product.h: ao-make-product.5c ../Version
234         $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
235
236 ao_product.rel: ao_product.c ao_product.h
237         $(call quiet,CC) -c $(CFLAGS) -D PRODUCT_DEFS='\"ao_product.h\"' -o$@ $<
238
239 distclean:      clean
240
241 clean:
242         rm -f $(ADB) $(ASM) $(LNK) $(LST) $(REL) $(RST) $(SYM)
243         rm -f $(PCDB) $(PLNK) $(PMAP) $(PMEM) $(PAOM)
244         rm -f ao_product.h
245         rm -f ../$(PROG)
246
247 install:
248
249 uninstall: