altos: Build pdclib locally if necessary
[fw/altos] / src / Makefile
1 #
2 # AltOS build
3 #
4
5 vpath make-altitude util
6 vpath make-altitude-pa util
7 vpath make-kalman util
8 vpath make-whiten util
9 vpath kalman.5c kalman
10 vpath kalman_filter.5c kalman
11 vpath kalman_micro.5c kalman
12 vpath load_csv.5c kalman
13 vpath matrix.5c kalman
14
15 include Version
16 include Makedefs
17
18 SDCCDIRS=\
19         telemetrum-v1.2 telemetrum-v1.1 telemetrum-v1.0 \
20         teledongle-v0.2 \
21         telemini-v1.0 \
22         telebt-v1.0 \
23         teleterra-v0.2 teleshield-v0.1 \
24         telefire-v0.1 telefire-v0.2 \
25         telemini-v2.0
26
27 ARMM3DIRS=\
28         telemega-v0.1 telemega-v0.1/flash-loader \
29         telemega-v1.0 telemega-v1.0/flash-loader \
30         telemetrum-v2.0 telemetrum-v2.0/flash-loader \
31         megadongle-v0.1 megadongle-v0.1/flash-loader \
32         telegps-v0.3 telegps-v0.3/flash-loader \
33         stm-bringup stm-demo \
34         telelco-v0.2 telelco-v0.2/flash-loader \
35         telescience-v0.2 telescience-v0.2/flash-loader
36
37 ARMM0DIRS=\
38         easymini-v1.0 easymini-v1.0/flash-loader
39
40 AVRDIRS=\
41         telescience-v0.1 telescience-pwm micropeak nanopeak-v0.1
42
43 SUBDIRS=
44
45 ifeq ($(strip $(HAVE_PDCLIB)),yes)
46 PDCLIB=pdclib
47 endif
48
49 ifeq ($(strip $(HAVE_SDCC)),yes)
50 SUBDIRS+=$(SDCCDIRS)
51 endif
52
53 ifeq ($(strip $(HAVE_ARM_M3_CC)),yes)
54 SUBDIRS+=$(ARMM3DIRS)
55 foo=bar
56 endif
57
58 ifeq ($(strip $(HAVE_ARM_M0_CC)),yes)
59 SUBDIRS+=$(ARMM0DIRS)
60 baz=bletch
61 endif
62
63 ifeq ($(strip $(HAVE_AVR_CC)),yes)
64 SUBDIRS += $(AVRDIRS)
65 endif
66
67 ALLDIRS=$(SDCCDIRS) $(ARMM3DIRS) $(ARMM0DIRS) $(AVRDIRS)
68
69 all: all-local all-recursive
70
71 RECURSIVE_TARGETS = all-recursive install-recursive
72
73 $(RECURSIVE_TARGETS):
74         @target=`echo $@ | sed 's/-recursive//'`; \
75         for subdir in $(SUBDIRS); do \
76                 echo "Making $$target in $$subdir"; \
77                 (cd $$subdir && $(MAKE) $$target) || exit 1; \
78         done
79
80 ALL_RECURSIVE_TARGETS = clean-recursive
81
82 $(ALL_RECURSIVE_TARGETS):
83         @target=`echo $@ | sed 's/-recursive//'`; \
84         for subdir in $(ALLDIRS); do \
85                 echo "Making $$target in $$subdir"; \
86                 (cd $$subdir && $(MAKE) $$target) || exit 1; \
87         done
88
89 distclean:      clean
90
91 clean: clean-local clean-recursive
92
93 install: install-recursive
94
95 uninstall:
96
97 all-recursive: all-local
98
99 all-local: altitude.h altitude-pa.h ao_kalman.h ao_whiten.h $(PDCLIB)
100
101 altitude.h: make-altitude
102         nickle $< > $@
103
104 altitude-pa.h: make-altitude-pa
105         nickle $< > $@
106
107 ao_kalman.h: make-kalman kalman.5c kalman_filter.5c load_csv.5c matrix.5c
108         bash $< kalman > $@
109
110 ao_whiten.h: make-whiten
111         nickle $< > $@
112
113 clean-local:
114         rm -f altitude.h ao_kalman.h
115
116 pdclib:
117         cd ../pdclib && make && make prefix=`pwd`/opt install