summaryrefslogtreecommitdiff
path: root/src-avr/Makefile.proto
diff options
context:
space:
mode:
Diffstat (limited to 'src-avr/Makefile.proto')
-rw-r--r--src-avr/Makefile.proto366
1 files changed, 366 insertions, 0 deletions
diff --git a/src-avr/Makefile.proto b/src-avr/Makefile.proto
new file mode 100644
index 00000000..ca68edbc
--- /dev/null
+++ b/src-avr/Makefile.proto
@@ -0,0 +1,366 @@
+#
+# AltOS build
+#
+#
+vpath %.c ..
+vpath %.h ..
+vpath make-altitude ..
+vpath make-kalman ..
+vpath kalman.5c ../kalman
+vpath kalman_filter.5c ../kalman
+vpath load_csv.5c ../kalman
+vpath matrix.5c ../kalman
+vpath ao-make-product.5c ..
+
+CC=sdcc
+
+ifndef VERSION
+include ../Version
+endif
+
+CFLAGS=--model-small --debug --opt-code-speed -DCODESIZE=$(CODESIZE)
+
+CODESIZE ?= 0x8000
+
+LDFLAGS=--out-fmt-ihx --code-loc 0x0000 --code-size $(CODESIZE) \
+ --xram-loc 0xf000 --xram-size 0xda2 --iram-size 0xff
+
+INC = \
+ ao.h \
+ ao_pins.h \
+ cc1111.h \
+ altitude.h \
+ ao_kalman.h \
+ 25lc1024.h
+
+#
+# Common AltOS sources
+#
+ALTOS_SRC = \
+ ao_cmd.c \
+ ao_dma.c \
+ ao_mutex.c \
+ ao_panic.c \
+ ao_task.c \
+ ao_timer.c \
+ ao_romconfig.c \
+ _bp.c
+
+#
+# Shared AltOS drivers
+#
+ALTOS_DRIVER_SRC = \
+ ao_config.c \
+ ao_led.c \
+ ao_radio.c \
+ ao_stdio.c
+
+BEEP_DRIVER_SRC = \
+ ao_beep.c
+
+USB_DRIVER_SRC = \
+ ao_usb.c
+
+TELE_COMMON_SRC = \
+ ao_packet.c \
+ ao_packet_slave.c \
+ ao_state.c
+
+#
+# Receiver code
+#
+TELE_RECEIVER_SRC =\
+ ao_monitor.c \
+ ao_gps_print.c \
+ ao_packet_master.c \
+ ao_rssi.c
+
+#
+# Shared Tele drivers (on TeleMetrum, TeleTerra, TeleDongle)
+#
+
+TELE_DRIVER_SRC = \
+ ao_convert.c
+
+#
+# Serial port driver
+#
+SERIAL_DRIVER_SRC = \
+ ao_serial.c
+
+#
+# Spi bus driver
+#
+SPI_DRIVER_SRC = \
+ ao_spi.c
+
+#
+# Debug dongle driver (only on TI)
+#
+DBG_SRC = \
+ ao_dbg.c
+
+#
+# Drivers only on TeleMetrum
+#
+TM_DRIVER_SRC = \
+ ao_adc.c \
+ ao_gps_report.c \
+ ao_ignite.c \
+ $(BEEP_DRIVER_SRC) \
+ $(USB_DRIVER_SRC)
+
+#
+# 25LC1024 driver source
+EE_DRIVER_SRC = \
+ ao_storage.c \
+ ao_ee.c
+
+#
+# AT45DB161D driver source
+
+FLASH_DRIVER_SRC = \
+ ao_storage.c \
+ ao_flash.c
+
+#
+# Numonyx M25P80 driver source
+#
+
+M25_DRIVER_SRC = \
+ ao_storage.c \
+ ao_m25.c
+
+#
+# SiRF driver source
+#
+SIRF_DRIVER_SRC = \
+ ao_gps_sirf.c
+
+#
+# Skytraq driver source
+#
+SKY_DRIVER_SRC = \
+ ao_gps_skytraq.c
+
+
+#
+# BTM-182 driver source
+#
+BTM_DRIVER_SRC = \
+ ao_btm.c
+
+#
+# Tasks run on TeleMetrum
+#
+TM_TASK_SRC = \
+ ao_flight.c \
+ ao_sample.c \
+ ao_kalman.c \
+ ao_log.c \
+ ao_log_big.c \
+ ao_report.c \
+ ao_telemetry.c
+
+TM_MAIN_SRC = \
+ ao_telemetrum.c
+
+#
+# Base sources for TeleMetrum
+#
+TM_BASE_SRC = \
+ $(ALTOS_SRC) \
+ $(ALTOS_DRIVER_SRC) \
+ $(TELE_DRIVER_SRC) \
+ $(SERIAL_DRIVER_SRC) \
+ $(TELE_COMMON_SRC) \
+ $(TM_DRIVER_SRC) \
+ $(TM_TASK_SRC) \
+ $(TM_MAIN_SRC)
+
+#
+# Sources for TeleMini
+TMINI_DRIVER_SRC = \
+ ao_adc.c \
+ ao_ignite.c \
+ ao_config.c \
+ ao_storage.c \
+ ao_intflash.c
+
+TMINI_TASK_SRC = \
+ ao_flight.c \
+ ao_sample.c \
+ ao_kalman.c \
+ ao_log.c \
+ ao_log_tiny.c \
+ ao_report.c \
+ ao_telemetry_tiny.c
+
+TMINI_MAIN_SRC = \
+ ao_telemini.c
+
+TMINI_BASE_SRC = \
+ $(ALTOS_SRC) \
+ $(ALTOS_DRIVER_SRC) \
+ $(TELE_DRIVER_SRC) \
+ $(TELE_COMMON_SRC) \
+ $(TMINI_DRIVER_SRC) \
+ $(TMINI_TASK_SRC) \
+ $(TMINI_MAIN_SRC)
+
+#
+# Sources for TeleNano
+TNANO_DRIVER_SRC = \
+ ao_adc.c \
+ ao_config.c \
+ ao_storage.c \
+ ao_intflash.c
+
+TNANO_TASK_SRC = \
+ ao_flight_nano.c \
+ ao_sample.c \
+ ao_kalman.c \
+ ao_log.c \
+ ao_log_tiny.c \
+ ao_report.c \
+ ao_telemetry_tiny.c
+
+TNANO_MAIN_SRC = \
+ ao_telenano.c
+
+TNANO_BASE_SRC = \
+ $(ALTOS_SRC) \
+ $(ALTOS_DRIVER_SRC) \
+ $(TELE_DRIVER_SRC) \
+ $(TELE_COMMON_SRC) \
+ $(TNANO_DRIVER_SRC) \
+ $(TNANO_TASK_SRC) \
+ $(TNANO_MAIN_SRC)
+
+#
+# Sources for TeleDongle
+#
+
+TBT_MAIN_SRC = \
+ ao_telebt.c
+
+TBT_BASE_SRC = \
+ $(ALTOS_SRC) \
+ $(ALTOS_DRIVER_SRC) \
+ $(TELE_RECEIVER_SRC) \
+ $(TELE_COMMON_SRC) \
+ $(SERIAL_DRIVER_SRC) \
+ $(USB_DRIVER_SRC) \
+ $(BTM_DRIVER_SRC) \
+ $(DBG_SRC) \
+ $(TBT_MAIN_SRC)
+
+#
+# TI Dongle sources
+#
+TI_MAIN_SRC = \
+ ao_tidongle.c
+
+#
+# All sources for the TI debug dongle
+#
+TI_SRC = \
+ $(ALTOS_SRC) \
+ $(ALTOS_DRIVER_SRC) \
+ $(TELE_RECEIVER_SRC) \
+ $(TELE_COMMON_SRC) \
+ $(USB_DRIVER_SRC) \
+ $(TI_MAIN_SRC) \
+ $(DBG_SRC)
+
+TT_MAIN_SRC = \
+ ao_teleterra.c
+#
+# All sources for TeleTerra
+#
+TT_SRC = \
+ $(ALTOS_SRC) \
+ $(ALTOS_DRIVER_SRC) \
+ $(TELE_RECEIVER_SRC) \
+ $(TELE_DRIVER_SRC) \
+ $(TELE_COMMON_SRC) \
+ $(USB_DRIVER_SRC) \
+ $(TT_MAIN_SRC)
+
+
+#
+# Sources for TeleDongle
+#
+
+TD_MAIN_SRC = \
+ ao_teledongle.c
+
+TD_SRC = \
+ $(ALTOS_SRC) \
+ $(ALTOS_DRIVER_SRC) \
+ $(TELE_RECEIVER_SRC) \
+ $(TELE_COMMON_SRC) \
+ $(USB_DRIVER_SRC) \
+ $(TD_MAIN_SRC)
+
+include Makefile.defs
+
+CFLAGS += $(PRODUCT_DEF) -I.
+
+NICKLE=nickle
+CHECK_STACK=sh ../check-stack
+
+REL=$(SRC:.c=.rel) ao_product.rel
+ADB=$(REL:.rel=.adb)
+ASM=$(REL:.rel=.asm)
+LNK=$(REL:.rel=.lnk)
+LST=$(REL:.rel=.lst)
+RST=$(REL:.rel=.rst)
+SYM=$(REL:.rel=.sym)
+
+PCDB=$(PROG:.ihx=.cdb)
+PLNK=$(PROG:.ihx=.lnk)
+PMAP=$(PROG:.ihx=.map)
+PMEM=$(PROG:.ihx=.mem)
+PAOM=$(PROG:.ihx=)
+
+V=0
+# The user has explicitly enabled quiet compilation.
+ifeq ($(V),0)
+quiet = @printf " $1 $2 $@\n"; $($1)
+endif
+# Otherwise, print the full command line.
+quiet ?= $($1)
+
+%.rel : %.c $(INC)
+ $(call quiet,CC,$(PRODUCT_DEF)) $(CFLAGS) -c -o$@ $<
+
+all: ../$(PROG)
+
+../$(PROG): $(REL) Makefile Makefile.defs ../Makefile.proto
+ $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(REL) && cp $(PROG) $(PMAP) ..
+ $(call quiet,CHECK_STACK) ../ao.h $(PMEM)
+
+../altitude.h: make-altitude
+ nickle $< > $@
+
+../ao_kalman.h: make-kalman kalman.5c kalman_filter.5c load_csv.5c matrix.5c
+ sh $< > $@
+
+ao_product.h: ao-make-product.5c ../Version
+ $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
+
+ao_product.rel: ao_product.c ao_product.h
+ $(call quiet,CC) -c $(CFLAGS) -D PRODUCT_DEFS='\"ao_product.h\"' -o$@ $<
+
+distclean: clean
+
+clean:
+ rm -f $(ADB) $(ASM) $(LNK) $(LST) $(REL) $(RST) $(SYM)
+ rm -f $(PCDB) $(PLNK) $(PMAP) $(PMEM) $(PAOM)
+ rm -f ao_product.h
+ rm -f ../$(PROG)
+
+install:
+
+uninstall: