Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altos
[fw/altos] / src / microsplash / Makefile
1 #
2 # Tiny AltOS build
3 #
4 #
5 vpath % ../attiny:../drivers:../kernel:../product:..
6 vpath ao-make-product.5c ../util
7 vpath make-altitude-pa ../util
8
9 include ../avr/Makefile.defs
10
11 PUBLISH_DIR=$(HOME)/altusmetrumllc/Binaries
12 PUBLISH_FILE=$(PUBLISH_DIR)/$(PROG)-$(VERSION).hex
13
14 MCU=attiny85
15 DUDECPUTYPE=t85
16 #PROGRAMMER=stk500v2 -P usb
17 LOADSLOW=-i 32 -B 32
18 LOADARG=-p $(DUDECPUTYPE) -c $(PROGRAMMER) -e -U flash:w:
19
20 #LDFLAGS=-L$(LDSCRIPTS) -Tavr25.x
21
22 ALTOS_SRC = \
23         ao_micropeak.c \
24         ao_spi_attiny.c \
25         ao_led.c \
26         ao_clock.c \
27         ao_ms5607.c \
28         ao_exti.c \
29         ao_convert_pa.c \
30         ao_report_micro.c \
31         ao_notask.c \
32         ao_eeprom_tiny.c \
33         ao_panic.c \
34         ao_log_micro.c \
35         ao_async.c \
36         ao_microflight.c \
37         ao_microkalman.c
38
39 INC=\
40         ao.h \
41         ao_pins.h \
42         ao_arch.h \
43         ao_arch_funcs.h \
44         ao_exti.h \
45         ao_ms5607.h \
46         ao_log_micro.h \
47         ao_micropeak.h \
48         altitude-pa.h
49
50 IDPRODUCT=0
51 PRODUCT=MicroSplash-v0.1
52 PRODUCT_DEF=-DMICROPEAK
53 CFLAGS = $(PRODUCT_DEF) -I. -I../attiny -I../kernel -I.. -I../drivers -I../product
54 CFLAGS += -g -mmcu=$(MCU) -Wall -Wstrict-prototypes -O2 -mcall-prologues -DATTINY
55
56 NICKLE=nickle
57
58 PROG=microsplash-v1.0
59
60 SRC=$(ALTOS_SRC)
61 OBJ=$(SRC:.c=.o)
62
63 V=0
64 # The user has explicitly enabled quiet compilation.
65 ifeq ($(V),0)
66 quiet = @printf "  $1 $2 $@\n"; $($1)
67 endif
68 # Otherwise, print the full command line.
69 quiet ?= $($1)
70
71 all: $(PROG) $(PROG).hex
72
73 CHECK=sh ../util/check-avr-mem
74
75 $(PROG): Makefile $(OBJ)
76         $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ)
77         $(call quiet,CHECK) $(PROG) || ($(RM) -f $(PROG); exit 1)
78
79 $(PROG).hex: $(PROG)
80         avr-size $(PROG)
81         $(OBJCOPY) -R .eeprom -O ihex $(PROG) $@
82
83
84 load: $(PROG).hex
85         $(LOADCMD) $(LOADARG)$(PROG).hex
86
87 load-slow: $(PROG).hex
88         $(LOADCMD) $(LOADSLOW) $(LOADARG)$(PROG).hex
89
90 ao_product.h: ao-make-product.5c ../Version
91         $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
92
93 ao_product.o: ao_product.c ao_product.h
94
95 %.o : %.c $(INC)
96         $(call quiet,CC) -c $(CFLAGS) $<
97
98 distclean:      clean
99
100 clean:
101         rm -f *.o $(PROG) $(PROG).hex
102         rm -f ao_product.h
103
104
105 publish: $(PROG).hex
106         cp -a $(PROG).hex $(PUBLISH_FILE)
107
108 load-product:
109         $(LOADCMD) $(LOADARG)$(PUBLISH_FILE)
110
111 load-product-slow:
112         $(LOADCMD) $(LOADSLOW) $(LOADARG)$(PUBLISH_FILE)
113
114 ../altitude-pa.h: make-altitude-pa
115         nickle $< > $@
116
117 install:
118
119 uninstall:
120
121 $(OBJ): ao_product.h $(INC)