Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altos
[fw/altos] / src / Makefile.defs
1 include $(TOPDIR)/Makedefs
2
3 AO_VPATH=$(TOPDIR)/product:$(TOPDIR)/drivers:$(TOPDIR)/kernel:$(TOPDIR)/util:$(TOPDIR)/kalman:$(TOPDIR)/aes:$(TOPDIR)/math:$(TOPDIR)/draw:$(TOPDIR)
4 vpath make-altitude $(TOPDIR)/util
5 vpath make-kalman $(TOPDIR)/util
6 vpath kalman.5c $(TOPDIR)/kalman
7 vpath kalman_filter.5c $(TOPDIR)/kalman
8 vpath load_csv.5c $(TOPDIR)/kalman
9 vpath matrix.5c $(TOPDIR)/kalman
10 vpath ao-make-product.5c $(TOPDIR)/util
11
12 WARN_FLAGS=-Wall -Wextra -Werror -Wcast-align \
13         -Wpointer-arith \
14         -Wstrict-prototypes \
15         -Wmissing-prototypes \
16         -Wmissing-declarations \
17         -Wnested-externs \
18         -Wshadow \
19         -Warray-bounds=2
20
21 OPT=-Os
22
23 NEWLIB_PRINTF_CFLAGS =  -DNEWLIB_INTEGER_PRINTF_SCANF
24
25 NEWLIB_CFLAGS= \
26         -ffreestanding -nostdlib \
27         -isystem $(NEWLIB_NANO)/arm-none-eabi/include \
28         $(NEWLIB_PRINTF_CFLAGS)
29
30 AO_CFLAGS=\
31         -std=gnu99 \
32         -I. -I$(TOPDIR) -I$(TOPDIR)/kernel -I$(TOPDIR)/drivers \
33         -I$(TOPDIR)/math -I$(TOPDIR)/draw -I$(TOPDIR)/product $(WARN_FLAGS) $(OPT) -g
34
35 NICKLE=nickle
36 ELFTOHEX=$(TOPDIR)/../ao-tools/ao-elftohex/ao-elftohex
37
38 .SUFFIXES: .elf .ihx
39
40 .elf.ihx:
41         $(ELFTOHEX) --output=$@ $*.elf
42
43 V=0
44 # The user has explicitly enabled quiet compilation.
45 ifeq ($(V),0)
46 quiet = @printf "  $1 $2 $@\n"; $($1)
47 endif
48 # Otherwise, print the full command line.
49 quiet ?= $($1)
50
51 .c.o:
52         $(call quiet,CC) -c $(CFLAGS) -o $@ $<
53
54 .DEFAULT_GOAL=all
55
56 ao_product.h: ao-make-product.5c $(TOPDIR)/Makedefs
57         $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
58