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