altos: Share log code between telescience and telebt. Add telebt log
[fw/altos] / src / telescience-v0.1 / Makefile
1 #
2 # AltOS build
3 #
4 #
5 vpath % ..:../core:../product:../drivers:../avr
6 vpath ao-make-product.5c ../util
7
8 MCU=atmega32u4
9 DUDECPUTYPE=m32u4
10 #PROGRAMMER=stk500v2 -P usb
11 PROGRAMMER=usbtiny
12 LOADCMD=avrdude
13 LOADARG=-p $(DUDECPUTYPE) -c $(PROGRAMMER) -e -U flash:w:
14 CC=avr-gcc
15 OBJCOPY=avr-objcopy
16
17 ifndef VERSION
18 include ../Version
19 endif
20
21 INC = \
22         ao.h \
23         ao_usb.h \
24         ao_pins.h \
25         altitude.h
26
27 #
28 # Common AltOS sources
29 #
30 TELESCIENCE_STORAGE= \
31         ao_m25.c \
32         ao_spi_usart.c \
33         ao_storage.c \
34
35 ALTOS_SRC = \
36         ao_cmd.c \
37         ao_mutex.c \
38         ao_panic.c \
39         ao_product.c \
40         ao_stdio.c \
41         ao_task.c \
42         ao_timer.c \
43         ao_led.c \
44         ao_avr_stdio.c \
45         ao_romconfig.c \
46         ao_usb_avr.c \
47         ao_adc_avr.c \
48         ao_spi_slave.c \
49         ao_log_single.c \
50         ao_log_telescience.c \
51         $(TELESCIENCE_STORAGE)
52
53 PRODUCT=TeleScience-v0.1
54 MCU=atmega32u4
55 PRODUCT_DEF=-DTELESCIENCE
56 IDPRODUCT=0x0011
57 CFLAGS = $(PRODUCT_DEF) -I. -I../avr -I../core -I..
58 CFLAGS += -g -mmcu=$(MCU) -Wall -Wstrict-prototypes -O3 -mcall-prologues -DAVR
59
60 NICKLE=nickle
61
62 PROG=telescience-v0.1
63
64 SRC=$(ALTOS_SRC) ao_telescience.c
65 OBJ=$(SRC:.c=.o)
66
67 V=0
68 # The user has explicitly enabled quiet compilation.
69 ifeq ($(V),0)
70 quiet = @printf "  $1 $2 $@\n"; $($1)
71 endif
72 # Otherwise, print the full command line.
73 quiet ?= $($1)
74
75 all: $(PROG)
76
77 CHECK=sh ../util/check-avr-mem
78
79 $(PROG): Makefile $(OBJ)
80         $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ)
81         $(call quiet,CHECK) $(PROG) || ($(RM) -f $(PROG); exit 1)
82
83 $(PROG).hex: $(PROG)
84         avr-size $(PROG)
85         $(OBJCOPY) -R .eeprom -O ihex $(PROG) $@
86
87
88 load: $(PROG).hex
89         $(LOADCMD) $(LOADARG)$(PROG).hex
90
91 ../altitude.h: make-altitude
92         nickle $< > $@
93
94 ao_product.h: ao-make-product.5c ../Version
95         $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
96
97 ao_product.rel: ao_product.c ao_product.h
98         $(call quiet,CC) -c $(CFLAGS) -D PRODUCT_DEFS='\"ao_product.h\"' -o$@ $<
99
100 distclean:      clean
101
102 clean:
103         rm -f $(OBJ)
104         rm -f ao_product.h
105
106 install:
107
108 uninstall:
109
110 $(OBJ): ao.h ao_product.h ao_usb.h