Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altos
[fw/altos] / src / micropeak / Makefile
index 0c48ed66477a3db5b652c05d5da1ceaa8060dcfb..f80d61b0743ef297e6eb41dd69503b6fef0414f7 100644 (file)
@@ -2,44 +2,46 @@
 # Tiny AltOS build
 #
 #
-vpath % ../attiny:../drivers:../core:..
+vpath % ../attiny:../drivers:../kernel:../product:..
 vpath ao-make-product.5c ../util
 vpath make-altitude-pa ../util
 
+include ../avr/Makefile.defs
+
+PROGNAME=micropeak-v0.1
+PROG=$(PROGNAME)-$(VERSION).elf
+HEX=$(PROGNAME)-$(VERSION).ihx
+
+SCRIPT=micropeak-load
+
+PUBLISH_DIR=$(HOME)/altusmetrumllc/Binaries
+PUBLISH_HEX=$(PUBLISH_DIR)/$(HEX)
+PUBLISH_SCRIPT=$(PUBLISH_DIR)/$(SCRIPT)
+
 MCU=attiny85
 DUDECPUTYPE=t85
 #PROGRAMMER=stk500v2 -P usb
-PROGRAMMER=usbtiny
-LOADCMD=avrdude
 LOADSLOW=-i 32 -B 32
 LOADARG=-p $(DUDECPUTYPE) -c $(PROGRAMMER) -e -U flash:w:
-CC=avr-gcc
-OBJCOPY=avr-objcopy
 
-ifndef VERSION
-include ../Version
-endif
-
-# Support for a logging EEPROM
-#
-#EEPROM_SRC=ao_async.c \
-#      ao_i2c_attiny.c \
-#      ao_at24c.c
-#
+#LDFLAGS=-L$(LDSCRIPTS) -Tavr25.x
 
 ALTOS_SRC = \
        ao_micropeak.c \
        ao_spi_attiny.c \
-       ao_led.c \
+       ao_led_tiny.c \
        ao_clock.c \
        ao_ms5607.c \
        ao_exti.c \
        ao_convert_pa.c \
-       ao_report_tiny.c \
+       ao_report_micro.c \
        ao_notask.c \
        ao_eeprom_tiny.c \
        ao_panic.c \
-       $(EEPROM_SRC)
+       ao_log_micro.c \
+       ao_async.c \
+       ao_microflight.c \
+       ao_microkalman.c
 
 INC=\
        ao.h \
@@ -48,18 +50,18 @@ INC=\
        ao_arch_funcs.h \
        ao_exti.h \
        ao_ms5607.h \
+       ao_log_micro.h \
+       ao_micropeak.h \
        altitude-pa.h
 
 IDPRODUCT=0
 PRODUCT=MicroPeak-v0.1
 PRODUCT_DEF=-DMICROPEAK
-CFLAGS = $(PRODUCT_DEF) -I. -I../attiny -I../core -I.. -I../drivers
-CFLAGS += -g -mmcu=$(MCU) -Wall -Wstrict-prototypes -O3 -mcall-prologues -DATTINY
+CFLAGS = $(PRODUCT_DEF) -I. -I../attiny -I../kernel -I.. -I../drivers -I../product
+CFLAGS += -g -mmcu=$(MCU) -Wall -Wstrict-prototypes -O2 -mcall-prologues -DATTINY
 
 NICKLE=nickle
 
-PROG=micropeak-v0.1
-
 SRC=$(ALTOS_SRC)
 OBJ=$(SRC:.c=.o)
 
@@ -71,7 +73,7 @@ endif
 # Otherwise, print the full command line.
 quiet ?= $($1)
 
-all: $(PROG) $(PROG).hex
+all: $(PROG) $(HEX) micropeak-load
 
 CHECK=sh ../util/check-avr-mem
 
@@ -79,16 +81,16 @@ $(PROG): Makefile $(OBJ)
        $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ)
        $(call quiet,CHECK) $(PROG) || ($(RM) -f $(PROG); exit 1)
 
-$(PROG).hex: $(PROG)
+$(HEX): $(PROG)
        avr-size $(PROG)
        $(OBJCOPY) -R .eeprom -O ihex $(PROG) $@
 
 
-load: $(PROG).hex
-       $(LOADCMD) $(LOADARG)$(PROG).hex
+load: $(HEX)
+       $(LOADCMD) $(LOADARG)$(HEX)
 
-load-slow: $(PROG).hex
-       $(LOADCMD) $(LOADSLOW) $(LOADARG)$(PROG).hex
+load-slow: $(HEX)
+       $(LOADCMD) $(LOADSLOW) $(LOADARG)$(HEX)
 
 ao_product.h: ao-make-product.5c ../Version
        $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
@@ -101,12 +103,30 @@ ao_product.o: ao_product.c ao_product.h
 distclean:     clean
 
 clean:
-       rm -f *.o $(PROG) $(PROG).hex
+       rm -f *.o *.elf *.ihx $(SCRIPT)
        rm -f ao_product.h
 
+publish: $(PUBLISH_HEX) $(PUBLISH_SCRIPT)
+
+$(PUBLISH_HEX): $(HEX)
+       cp -a $(HEX) $@
+
+$(PUBLISH_SCRIPT): $(SCRIPT)
+       cp -a $(SCRIPT) $@
+
+load-product:
+       ./$(SCRIPT) fast
+
+load-product-slow:
+       ./$(SCRIPT) slow
+
 ../altitude-pa.h: make-altitude-pa
        nickle $< > $@
 
+$(SCRIPT): $(SCRIPT).tmpl Makefile ../Version
+       sed -e 's/%HEX%/$(HEX)/' -e 's/%LOADCMD%/$(LOADCMD)/' -e 's/%LOADARG%/$(LOADARG)/' -e 's/%LOADSLOW%/$(LOADSLOW)/' $(SCRIPT).tmpl > $@ || (rm $@ && exit 1)
+       chmod +x $@
+
 install:
 
 uninstall: