9b51d466e29d98ce3418a57928c33a427dd79474
[fw/altos] / src / telepyro-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 INC = \
16         ao.h \
17         ao_usb.h \
18         ao_pins.h \
19         ao_arch.h \
20         ao_arch_funcs.h \
21         ao_product.h
22
23 ALTOS_SRC = \
24         ao_clock.c \
25         ao_cmd.c \
26         ao_mutex.c \
27         ao_panic.c \
28         ao_product.c \
29         ao_stdio.c \
30         ao_task.c \
31         ao_timer.c \
32         ao_led_avr.c \
33         ao_avr_stdio.c \
34         ao_romconfig.c \
35         ao_usb_avr.c \
36         ao_adc_avr.c \
37         ao_pyro_slave.c \
38         ao_spi_slave.c \
39         ao_eeprom_avr.c \
40         ao_storage.c \
41         ao_config.c \
42         ao_pyro.c
43
44 PRODUCT=TelePyro-v0.1
45 MCU=atmega32u4
46 PRODUCT_DEF=-DTELEPYRO
47 IDPRODUCT=0x0011
48 CFLAGS = $(PRODUCT_DEF) -I. -I../avr -I../kernel -I..
49 CFLAGS += -mmcu=$(MCU) -Wall -Wstrict-prototypes -O3 -mcall-prologues -DAVR
50
51 NICKLE=nickle
52
53 PROG=telepyro-v0.1
54
55 SRC=$(ALTOS_SRC) ao_telepyro.c
56 OBJ=$(SRC:.c=.o)
57
58 V=0
59 # The user has explicitly enabled quiet compilation.
60 ifeq ($(V),0)
61 quiet = @printf "  $1 $2 $@\n"; $($1)
62 endif
63 # Otherwise, print the full command line.
64 quiet ?= $($1)
65
66 all: $(PROG)
67
68 CHECK=sh ../util/check-avr-mem
69
70 $(PROG): Makefile $(OBJ)
71         $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ)
72         $(call quiet,CHECK) $(PROG) || ($(RM) -f $(PROG); exit 1)
73
74 $(PROG).hex: $(PROG)
75         avr-size $(PROG)
76         $(OBJCOPY) -R .eeprom -O ihex $(PROG) $@
77
78
79 load: $(PROG).hex
80         $(LOADCMD) $(LOADARG)$(PROG).hex
81
82 ao_product.h: ao-make-product.5c ../Version
83         $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
84
85 ao_product.o: ao_product.c ao_product.h
86
87 %.o : %.c
88         $(call quiet,CC) -c $(CFLAGS) $<
89
90 distclean:      clean
91
92 clean:
93         rm -f $(OBJ) $(PROG) $(PROG).hex
94         rm -f ao_product.h
95
96 install:
97
98 uninstall:
99
100 $(OBJ): $(INC)