altos: Move common build definitions to src/Makefile.defs master
authorKeith Packard <keithp@keithp.com>
Mon, 18 Feb 2019 20:59:05 +0000 (12:59 -0800)
committerKeith Packard <keithp@keithp.com>
Mon, 18 Feb 2019 21:08:23 +0000 (13:08 -0800)
This cleans up the build process for all architectures, providing a
common place to specify vpath, cflags and build rules for various
common files.

Signed-off-by: Keith Packard <keithp@keithp.com>
70 files changed:
configure.ac
src/Makedefs.in
src/Makefile
src/Makefile.defs [new file with mode: 0644]
src/Version.in [deleted file]
src/avr-demo/Makefile
src/avr/Makefile.defs
src/chaoskey-v0.1/Makefile
src/chaoskey-v1.0/Makefile
src/cortexelf-v1/Makefile
src/detherm/Makefile
src/easymega-v1.0/Makefile
src/easymega-v2.0/Makefile
src/easymini-v1.0/Makefile
src/easymini-v2.0/Makefile
src/fox1ihu/Makefile
src/lambdakey-v1.0/Makefile
src/lpc/Makefile-flash.defs
src/lpc/Makefile-lpc.defs
src/lpc/Makefile.defs
src/lpc/clock_figure.5c [new file with mode: 0644]
src/lpcxpresso/Makefile
src/microkite/Makefile
src/micropeak-v2.0/Makefile
src/micropeak/Makefile
src/microsplash/Makefile
src/mpusb-v3.0/Makefile
src/nucleao-32/Makefile
src/pnpservo-v1/Makefile
src/stm-bringup/Makefile
src/stm-demo/Makefile
src/stm-flash/Makefile
src/stm-scheme-newlib/Makefile
src/stm-vga/Makefile
src/stm/Makefile-flash.defs
src/stm/Makefile-stm.defs [new file with mode: 0644]
src/stm/Makefile.defs
src/stm32f4/Makefile-flash.defs
src/stm32f4/Makefile-stm32f4.defs
src/stm32f4/Makefile.defs
src/stmf0/Makefile-flash.defs
src/stmf0/Makefile-stmf0.defs
src/stmf0/Makefile.defs
src/teleballoon-v2.0/Makefile
src/telebt-v3.0/Makefile
src/telebt-v4.0/Makefile
src/teledongle-v3.0/Makefile
src/telefireeight-v1.0/Makefile
src/telefireeight-v2.0/Makefile
src/telefireone-v1.0/Makefile
src/telefiretwo-v0.1/Makefile
src/telefiretwo-v0.2/Makefile
src/telegps-v0.1/Makefile
src/telegps-v0.3/Makefile
src/telegps-v1.0/Makefile
src/telegps-v2.0/Makefile
src/telelco-v0.2-cc1200/Makefile
src/telelco-v0.2/Makefile
src/telelco-v0.3/Makefile
src/telelco-v2.0/Makefile
src/telelcotwo-v0.1/Makefile
src/telemega-v0.1/Makefile
src/telemega-v1.0/Makefile
src/telemega-v2.0/Makefile
src/telemega-v3.0/Makefile
src/telemetrum-v2.0/Makefile
src/telemetrum-v3.0/Makefile
src/telemini-v3.0/Makefile
src/tmgps-v2.0/Makefile
src/vidtime/Makefile

index a2d84ce..0e4b204 100644 (file)
@@ -573,7 +573,6 @@ map-server/Makefile
 map-server/altos-mapd/Makefile
 map-server/altos-map/Makefile
 map-server/altos-mapj/Makefile
-src/Version
 ])
 
 echo ""
index b87e884..b5639f7 100644 (file)
@@ -7,3 +7,5 @@ HAVE_NEWLIB_NANO=@HAVE_NEWLIB_NANO@
 AVR_CC=@AVR_CC@
 AVR_OBJCOPY=@AVR_OBJCOPY@
 HAVE_AVR_CC=@HAVE_AVR_CC@
+
+VERSION=@VERSION@
index 1efa1b3..b887da3 100644 (file)
@@ -12,8 +12,8 @@ vpath kalman_micro.5c kalman
 vpath load_csv.5c kalman
 vpath matrix.5c kalman
 
-include Version
 TOPDIR=.
+
 include Makedefs
 
 ARMM3DIRS=\
@@ -49,7 +49,7 @@ ARMM0DIRS=\
        micropeak-v2.0 micropeak-v2.0/flash-loader
 
 AVRDIRS=\
-       micropeak microkite
+       micropeak microkite microsplash
 
 SUBDIRS=
 
diff --git a/src/Makefile.defs b/src/Makefile.defs
new file mode 100644 (file)
index 0000000..6df0c3f
--- /dev/null
@@ -0,0 +1,56 @@
+include $(TOPDIR)/Makedefs
+
+AO_VPATH=$(TOPDIR)/product:$(TOPDIR)/drivers:$(TOPDIR)/kernel:$(TOPDIR)/util:$(TOPDIR)/kalman:$(TOPDIR)/aes:$(TOPDIR)/math:$(TOPDIR)/draw:$(TOPDIR)
+vpath make-altitude $(TOPDIR)/util
+vpath make-kalman $(TOPDIR)/util
+vpath kalman.5c $(TOPDIR)/kalman
+vpath kalman_filter.5c $(TOPDIR)/kalman
+vpath load_csv.5c $(TOPDIR)/kalman
+vpath matrix.5c $(TOPDIR)/kalman
+vpath ao-make-product.5c $(TOPDIR)/util
+
+WARN_FLAGS=-Wall -Wextra -Werror -Wcast-align \
+       -Wpointer-arith \
+       -Wstrict-prototypes \
+       -Wmissing-prototypes \
+       -Wmissing-declarations \
+       -Wnested-externs \
+       -Wshadow \
+       -Warray-bounds=2
+
+OPT=-Os
+
+NEWLIB_CFLAGS= \
+       -ffreestanding -nostdlib \
+       -DNEWLIB_INTEGER_PRINTF_SCANF \
+       -isystem $(NEWLIB_NANO)/arm-none-eabi/include
+
+AO_CFLAGS=\
+       -std=gnu99 \
+       -I. -I$(TOPDIR) -I$(TOPDIR)/kernel -I$(TOPDIR)/drivers \
+       -I$(TOPDIR)/math -I$(TOPDIR)/draw -I$(TOPDIR)/product $(WARN_FLAGS) $(OPT) -g
+
+NICKLE=nickle
+ELFTOHEX=$(TOPDIR)/../ao-tools/ao-elftohex/ao-elftohex
+
+.SUFFIXES: .elf .ihx
+
+.elf.ihx:
+       $(ELFTOHEX) --output=$@ $*.elf
+
+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)
+
+.c.o:
+       $(call quiet,CC) -c $(CFLAGS) -o $@ $<
+
+.DEFAULT_GOAL=all
+
+ao_product.h: ao-make-product.5c $(TOPDIR)/Makedefs
+       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
+
diff --git a/src/Version.in b/src/Version.in
deleted file mode 100644 (file)
index aff9490..0000000
+++ /dev/null
@@ -1 +0,0 @@
-VERSION=@VERSION@
index 0aca6f8..2f3a075 100644 (file)
@@ -47,7 +47,7 @@ MCU=atmega32u4
 PRODUCT_DEF=-DAVR_DEMO
 IDPRODUCT=0x000a
 CFLAGS = $(PRODUCT_DEF) -I. -I../avr -I../kernel -I..
-CFLAGS += -g -mmcu=$(MCU) -Wall -Wstrict-prototypes -Os -mcall-prologues
+CFLAGS += -mmcu=$(MCU) -Wall -Wstrict-prototypes -mcall-prologues
 
 NICKLE=nickle
 
index eeb9a88..48aff48 100644 (file)
@@ -2,11 +2,7 @@ ifndef TOPDIR
 TOPDIR=..
 endif
 
-ifndef VERSION
-include $(TOPDIR)/Version
-endif
-
-include $(TOPDIR)/Makedefs
+include $(TOPDIR)/Makefile.defs
 
 CC=$(AVR_CC)
 OBJCOPY=$(AVR_OBJCOPY)
index faa4a29..43f8bf9 100644 (file)
@@ -43,7 +43,7 @@ PRODUCT_DEF=-DCHAOSKEY_V_0_1
 IDVENDOR=0x1d50
 IDPRODUCT=0x60c6
 
-CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS) -g -Os
+CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS)
 
 PROGNAME=chaoskey-v0.1
 PROG=$(PROGNAME)-$(VERSION).elf
index 329f603..2d92d4f 100644 (file)
@@ -48,7 +48,7 @@ PRODUCT_DEF=-DCHAOSKEY_V_1_0
 IDVENDOR=0x1d50
 IDPRODUCT=0x60c6
 
-CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS) -g -Os
+CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS)
 
 PROGNAME=chaoskey-v1.0
 PROG=$(PROGNAME)-$(VERSION).elf
@@ -62,10 +62,7 @@ OBJ=$(SRC:.c=.o)
 all: $(PROG) $(HEX) $(BIN)
 
 $(PROG): Makefile $(OBJ) altos.ld
-       $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
-
-ao_product.h: ao-make-product.5c ../Version
-       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -V $(IDVENDOR) -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) -o $@
+       $(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
 
 $(OBJ): $(INC)
 
index 12c658d..63619b7 100644 (file)
@@ -95,7 +95,7 @@ LDFLAGS=-L../stm -L/local/newlib-mini/arm-none-eabi/lib/thumb/v7-m/ -Wl,-Tcortex
 AO_CFLAGS=-I. -I../stm -I../kernel -I../drivers -I../draw -I../scheme -I.. -I/local/newlib-mini/arm-none-eabi/include
 LIBS=-lc -lm -lgcc
 
-CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF) -Os -g
+CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF)
 
 
 SRC=$(ALTOS_SRC) ao_cortexelf.c
index 7681a04..e527fa0 100644 (file)
@@ -52,7 +52,7 @@ PRODUCT=Detherm-v1.0
 PRODUCT_DEF=-DDETHERM_V_1_0
 IDPRODUCT=0x0013
 
-CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS) -g -Os
+CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS)
 
 PROGNAME=detherm-v1.0
 PROG=$(PROGNAME)-$(VERSION).elf
index 76e7319..b8f6df4 100644 (file)
@@ -93,7 +93,7 @@ PRODUCT=EasyMega-v1.0
 PRODUCT_DEF=-DEASYMEGA
 IDPRODUCT=0x0028
 
-CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF) -Os -g
+CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF)
 
 PROGNAME=easymega-v1.0
 PROG=$(PROGNAME)-$(VERSION).elf
@@ -105,16 +105,10 @@ OBJ=$(SRC:.c=.o)
 all: $(PROG) $(HEX)
 
 $(PROG): Makefile $(OBJ) altos.ld
-       $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
-
-../altitude-pa.h: make-altitude-pa
-       nickle $< > $@
+       $(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
 
 $(OBJ): $(INC)
 
-ao_product.h: ao-make-product.5c ../Version
-       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
-
 distclean:     clean
 
 clean:
index bfe8a84..ab478a4 100644 (file)
@@ -90,7 +90,7 @@ PRODUCT=EasyMega-v2.0
 PRODUCT_DEF=-DEASYMEGA
 IDPRODUCT=0x0028
 
-CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF) -Os -g
+CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF)
 
 PROGNAME=easymega-v2.0
 PROG=$(PROGNAME)-$(VERSION).elf
@@ -102,16 +102,10 @@ OBJ=$(SRC:.c=.o)
 all: $(PROG) $(HEX)
 
 $(PROG): Makefile $(OBJ) altos.ld
-       $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
-
-../altitude-pa.h: make-altitude-pa
-       nickle $< > $@
+       $(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
 
 $(OBJ): $(INC)
 
-ao_product.h: ao-make-product.5c ../Version
-       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
-
 distclean:     clean
 
 clean:
index 654be22..301a0c1 100644 (file)
@@ -51,7 +51,7 @@ PRODUCT=EasyMini-v1.0
 PRODUCT_DEF=-DEASYMINI_V_1_0
 IDPRODUCT=0x0026
 
-CFLAGS = $(PRODUCT_DEF) $(LPC_CFLAGS) -g -Os
+CFLAGS = $(PRODUCT_DEF) $(LPC_CFLAGS)
 
 PROGNAME=easymini-v1.0
 PROG=$(PROGNAME)-$(VERSION).elf
@@ -63,10 +63,7 @@ OBJ=$(SRC:.c=.o)
 all: $(PROG) $(HEX)
 
 $(PROG): Makefile $(OBJ) altos.ld
-       $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
-
-ao_product.h: ao-make-product.5c ../Version
-       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
+       $(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
 
 $(OBJ): $(INC)
 
index 9b4cc6d..2f79024 100644 (file)
@@ -53,7 +53,7 @@ PRODUCT=EasyMini-v2.0
 PRODUCT_DEF=-DEASYMINI_V_2_0
 IDPRODUCT=0x0026
 
-CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS) -g -Os
+CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS)
 
 PROGNAME=easymini-v2.0
 PROG=$(PROGNAME)-$(VERSION).elf
@@ -65,10 +65,7 @@ OBJ=$(SRC:.c=.o)
 all: $(PROG) $(HEX)
 
 $(PROG): Makefile $(OBJ)
-       $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
-
-ao_product.h: ao-make-product.5c ../Version
-       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
+       $(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
 
 $(OBJ): $(INC)
 
index 61314db..0277dd7 100644 (file)
@@ -59,7 +59,7 @@ PRODUCT=Fox1IHU-v2
 PRODUCT_DEF=-DFOX
 IDPRODUCT=0x0024
 
-CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF) -Os -g
+CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF)
 
 PROGNAME=fox1ihu-v0.1
 PROG=$(PROGNAME)-$(VERSION).elf
index f8b5c7f..53ecda9 100644 (file)
@@ -40,7 +40,7 @@ PRODUCT=LambdaKey-v1.0
 PRODUCT_DEF=-DLAMBDAKEY
 IDPRODUCT=0x000a
 
-CFLAGS = $(PRODUCT_DEF) -I. -I$(aoschemelib) $(STMF0_CFLAGS) -Os -g
+CFLAGS = $(PRODUCT_DEF) -I. -I$(aoschemelib) $(STMF0_CFLAGS)
 
 PROGNAME=lambdakey-v1.0
 PROG=$(PROGNAME)-$(VERSION).elf
index 4a245d1..44b43bf 100644 (file)
@@ -33,7 +33,7 @@ PRODUCT=AltosFlash
 PRODUCT_DEF=-DALTOS_FLASH
 IDPRODUCT=0x000a
 
-CFLAGS = $(PRODUCT_DEF) $(LPC_CFLAGS) -g -Os
+CFLAGS = $(PRODUCT_DEF) $(LPC_CFLAGS)
 
 LDFLAGS=$(CFLAGS) -L$(TOPDIR)/lpc -Wl,-Taltos-loader.ld
 
@@ -41,10 +41,7 @@ PROGNAME=altos-flash
 PROG=$(HARDWARE)-$(PROGNAME)-$(VERSION).elf
 
 $(PROG): Makefile $(OBJ) altos-loader.ld
-       $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
-
-ao_product.h: ao-make-product.5c $(TOPDIR)/Version
-       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
+       $(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
 
 $(OBJ): $(INC)
 
index 16da583..8b29735 100644 (file)
@@ -2,57 +2,13 @@ ifndef TOPDIR
 TOPDIR=..
 endif
 
-include $(TOPDIR)/Makedefs
+include $(TOPDIR)/Makefile.defs
 
-vpath % $(TOPDIR)/lpc:$(TOPDIR)/product:$(TOPDIR)/drivers:$(TOPDIR)/kernel:$(TOPDIR)/util:$(TOPDIR)/kalman:$(TOPDIR)/aes:$(TOPDIR):$(TOPDIR)/math
-vpath make-altitude $(TOPDIR)/util
-vpath make-kalman $(TOPDIR)/util
-vpath kalman.5c $(TOPDIR)/kalman
-vpath kalman_filter.5c $(TOPDIR)/kalman
-vpath load_csv.5c $(TOPDIR)/kalman
-vpath matrix.5c $(TOPDIR)/kalman
-vpath ao-make-product.5c $(TOPDIR)/util
+vpath % $(TOPDIR)/lpc:$(AO_VPATH)
 
-.SUFFIXES: .elf .ihx
-
-.elf.ihx:
-       $(ELFTOHEX) --output=$@ $*.elf
-
-
-ifndef VERSION
-include $(TOPDIR)/Version
-endif
-
-ELFTOHEX=$(TOPDIR)/../ao-tools/ao-elftohex/ao-elftohex
 CC=$(ARM_CC)
 
-WARN_FLAGS=-Wall -Wextra -Werror -Wcast-align \
-       -Wpointer-arith \
-       -Wstrict-prototypes \
-       -Wmissing-prototypes \
-       -Wmissing-declarations \
-       -Wnested-externs \
-       -Wshadow
-
-AO_CFLAGS=-I. -I$(TOPDIR)/lpc -I$(TOPDIR)/kernel -I$(TOPDIR)/drivers \
-       -DNEWLIB_INTEGER_PRINTF_SCANF \
-       -I$(TOPDIR)/product -I$(TOPDIR) -I$(TOPDIR)/math -I$(TOPDIR) \
-       -isystem $(NEWLIB_NANO)/arm-none-eabi/include
-
-LPC_CFLAGS=-std=gnu99 -mlittle-endian -mcpu=cortex-m0 -mthumb\
-       -ffreestanding -nostdlib $(AO_CFLAGS) $(WARN_FLAGS)
-
-NICKLE=nickle
-
 LIBS=-L$(NEWLIB_NANO)/arm-none-eabi/lib/thumb/v6-m -lc -lm -lgcc
 
-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)
-
-.c.o:
-       $(call quiet,CC) -c $(CFLAGS) -o $@ $<
+LPC_CFLAGS=-mlittle-endian -mcpu=cortex-m0 -mthumb\
+        -I$(TOPDIR)/lpc $(AO_CFLAGS) $(NEWLIB_CFLAGS)
index 5bb8133..7fdcf0d 100644 (file)
@@ -3,7 +3,6 @@ TOPDIR=..
 endif
 
 include $(TOPDIR)/lpc/Makefile-lpc.defs
-include $(TOPDIR)/Makedefs
 
 LDFLAGS=$(CFLAGS) -L$(TOPDIR)/lpc -Wl,-Taltos.ld -n
 
@@ -11,5 +10,3 @@ ao_serial_lpc.h: $(TOPDIR)/lpc/baud_rate ao_pins.h
        nickle $(TOPDIR)/lpc/baud_rate `awk '/AO_LPC_CLKOUT/{print $$3}' ao_pins.h` > $@
 
 ao_serial_lpc.o: ao_serial_lpc.h
-
-.DEFAULT_GOAL=all
diff --git a/src/lpc/clock_figure.5c b/src/lpc/clock_figure.5c
new file mode 100644 (file)
index 0000000..d2f632a
--- /dev/null
@@ -0,0 +1,113 @@
+#!/usr/bin/nickle
+
+real
+pll_out(real clock_in, int mul, int div)
+{
+       return clock_in * mul / div;
+}
+
+real
+pll_in(real pll_out, int mul, int div)
+{
+       return pll_out * div / mul;
+}
+
+real
+fcco_out(real clock_in, int mul, int div)
+{
+       real    out = pll_out(clock_in, mul, div);
+       return out * div;
+}
+
+bool
+valid_clock_in(real clock_in)
+{
+       return 10 <= clock_in && clock_in < 25;
+}
+
+bool
+valid_fcco(real clock_in, int mul, int div)
+{
+       real fcco = fcco_out (clock_in, mul, div);
+       return 156 <= fcco && fcco <= 320;
+}
+
+void
+all_clocks(real clock_in) {
+       for (int mul = 1; mul <= 32; mul++) {
+               for (int div = 2; div <= 16; div *= 2) {
+                       if (!valid_fcco(clock_in, mul, div))
+                               printf ("clock_in %f mul  %d div %d invalid fcco %f\n",
+                                       clock_in, mul, div, fcco_out(clock_in, mul, div));
+                       else
+                               printf ("clock_in %f mul %d div %d pll_out %f\n",
+                                       clock_in, mul, div, pll_out(clock_in, mul, div));
+               }
+       }
+}
+
+typedef struct {
+       real    clock_in;
+       int     mul;
+       int     div;
+       real    pll_out;
+} clock;
+
+clock[]
+all_ins(real pll_out)
+{
+       clock[...] clocks = {};
+       for (int mul = 1; mul <= 32; mul++) {
+               for (int div = 2; div <= 16; div *= 2) {
+                       real clock_in = pll_in(pll_out, mul, div);
+                       if (valid_clock_in(clock_in) && valid_fcco(clock_in, mul, div)) {
+                               clocks[dim(clocks)] = (clock) {
+                                       .clock_in = clock_in,
+                                       .mul = mul,
+                                       .div = div,
+                                       .pll_out = pll_out
+                               };
+                       }
+               }
+       }
+       return clocks;
+}
+
+#all_clocks(12.0);
+
+autoload Sort;
+
+void
+dump_clocks(clock[] clocks)
+{
+       printf ("Clocks for %f\n", clocks[0].pll_out);
+       Sort::qsort(&clocks, bool func(clock a, clock b) { return a.clock_in > b.clock_in; });
+       for (int i = 0; i < dim (clocks); i++) {
+               printf("\tclock_in %f mul %d div %d\n",
+                      clocks[i].clock_in,
+                      clocks[i].mul,
+                      clocks[i].div);
+       }
+}
+
+void
+find_clocks() {
+       clock[] c40 = all_ins(40.0);
+       clock[] c48 = all_ins(48.0);
+
+       dump_clocks(c40);
+       dump_clocks(c48);
+       for (int i40 = 0; i40 < dim(c40); i40++) {
+               for (int i48 = 0; i48 < dim(c48); i48++) {
+                       if (c40[i40].clock_in == c48[i48].clock_in)
+                               printf ("clock_in %f mul_40 %d div_40 %d mul_48 %d div_48 %d\n",
+                                       c40[i40].clock_in,
+                                       c40[i40].mul,
+                                       c40[i40].div,
+                                       c48[i48].mul,
+                                       c48[i48].div);
+               }
+       }
+}
+
+find_clocks();
index 374c052..2eef24b 100644 (file)
@@ -33,7 +33,7 @@ PRODUCT=LpcDemo-v0.0
 PRODUCT_DEF=-DLPC_DEMO
 IDPRODUCT=0x000a
 
-CFLAGS = $(PRODUCT_DEF) $(LPC_CFLAGS) -g -Os
+CFLAGS = $(PRODUCT_DEF) $(LPC_CFLAGS)
 
 PROG=lpc-demo.elf
 
index 5eb9720..5b38f57 100644 (file)
@@ -2,11 +2,8 @@
 # Tiny AltOS build
 #
 #
-vpath % ../attiny:../drivers:../kernel:../product:..
-vpath ao-make-product.5c ../util
-vpath make-altitude-pa ../util
-
-include ../avr/Makefile.defs
+TOPDIR=..
+include $(TOPDIR)/attiny/Makefile.defs
 
 PROGNAME=microkite-v0.1
 PROG=$(PROGNAME)-$(VERSION).elf
@@ -18,14 +15,6 @@ PUBLISH_DIR=$(HOME)/altusmetrumllc/Binaries
 PUBLISH_HEX=$(PUBLISH_DIR)/$(HEX)
 PUBLISH_SCRIPT=$(PUBLISH_DIR)/$(SCRIPT)
 
-MCU=attiny85
-DUDECPUTYPE=t85
-#PROGRAMMER=stk500v2 -P usb
-LOADSLOW=-i 32 -B 32
-LOADARG=-p $(DUDECPUTYPE) -c $(PROGRAMMER) -e -U flash:w:
-
-#LDFLAGS=-L$(LDSCRIPTS) -Tavr25.x
-
 ALTOS_SRC = \
        ao_micropeak.c \
        ao_spi_attiny.c \
@@ -52,28 +41,18 @@ INC=\
        ao_ms5607.h \
        ao_log_micro.h \
        ao_micropeak.h \
+       ao_product.h \
        altitude-pa.h
 
 IDPRODUCT=0
 PRODUCT=MicroKite-v0.1
 PRODUCT_DEF=-DMICROPEAK
-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
+CFLAGS = $(PRODUCT_DEF) $(ATTINY_CFLAGS)
 
 SRC=$(ALTOS_SRC)
 OBJ=$(SRC:.c=.o)
 
-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)
-
-all: $(PROG) $(HEX) microkite-load
+all: $(PROG) $(HEX) $(SCRIPT)
 
 CHECK=sh ../util/check-avr-mem
 
@@ -85,25 +64,16 @@ $(HEX): $(PROG)
        avr-size $(PROG)
        $(OBJCOPY) -R .eeprom -O ihex $(PROG) $@
 
-
 load: $(HEX)
        $(LOADCMD) $(LOADARG)$(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) > $@
-
-ao_product.o: ao_product.c ao_product.h
-
-%.o : %.c $(INC)
-       $(call quiet,CC) -c $(CFLAGS) $<
-
 distclean:     clean
 
 clean:
-       rm -f *.o $(PROG) $(HEX) $(SCRIPT)
+       rm -f *.o *.elf *.ihx $(SCRIPT)
        rm -f ao_product.h
 
 publish: $(PUBLISH_HEX) $(PUBLISH_SCRIPT)
@@ -120,10 +90,7 @@ load-product:
 load-product-slow:
        ./$(SCRIPT) slow
 
-../altitude-pa.h: make-altitude-pa
-       nickle $< > $@
-
-$(SCRIPT): $(SCRIPT).tmpl Makefile ../Version
+$(SCRIPT): $(SCRIPT).tmpl Makefile $(TOPDIR)/Makedefs
        sed -e 's/%HEX%/$(HEX)/' -e 's/%LOADCMD%/$(LOADCMD)/' -e 's/%LOADARG%/$(LOADARG)/' -e 's/%LOADSLOW%/$(LOADSLOW)/' $(SCRIPT).tmpl > $@ || (rm $@ && exit 1)
        chmod +x $@
 
@@ -131,4 +98,4 @@ install:
 
 uninstall:
 
-$(OBJ): ao_product.h $(INC)
+$(OBJ): $(INC)
index c7d1b22..6bac3e2 100644 (file)
@@ -52,13 +52,14 @@ INC=\
        ao_log_micro.h \
        ao_micropeak.h \
        altitude-pa.h \
+       ao_product.h \
        stm32f0.h
 
 IDPRODUCT=0x14
 PRODUCT=MicroPeak-v2.0
 PRODUCT_DEF=-DMICROPEAK
 
-CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS) -g -Os
+CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS)
 
 PROGNAME=micropeak-v2.0
 PROG=$(PROGNAME)-$(VERSION).elf
@@ -72,12 +73,7 @@ all: $(PROG) $(HEX)
 LDFLAGS=$(CFLAGS) -L$(TOPDIR)/stmf0 -Wl,-Tmicropeak.ld -n
 
 $(PROG): Makefile $(OBJ) micropeak.ld
-       $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
-
-ao_product.h: ao-make-product.5c ../Version
-       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
-
-ao_product.o: ao_product.c ao_product.h
+       $(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
 
 distclean:     clean
 
@@ -90,11 +86,8 @@ publish: $(PUBLISH_HEX)
 $(PUBLISH_HEX): $(HEX)
        cp -a $(HEX) $@
 
-../altitude-pa.h: make-altitude-pa
-       nickle $< > $@
-
 install:
 
 uninstall:
 
-$(OBJ): ao_product.h $(INC)
+$(OBJ): $(INC)
index f80d61b..7476980 100644 (file)
@@ -2,11 +2,8 @@
 # Tiny AltOS build
 #
 #
-vpath % ../attiny:../drivers:../kernel:../product:..
-vpath ao-make-product.5c ../util
-vpath make-altitude-pa ../util
-
-include ../avr/Makefile.defs
+TOPDIR=..
+include $(TOPDIR)/attiny/Makefile.defs
 
 PROGNAME=micropeak-v0.1
 PROG=$(PROGNAME)-$(VERSION).elf
@@ -18,14 +15,6 @@ PUBLISH_DIR=$(HOME)/altusmetrumllc/Binaries
 PUBLISH_HEX=$(PUBLISH_DIR)/$(HEX)
 PUBLISH_SCRIPT=$(PUBLISH_DIR)/$(SCRIPT)
 
-MCU=attiny85
-DUDECPUTYPE=t85
-#PROGRAMMER=stk500v2 -P usb
-LOADSLOW=-i 32 -B 32
-LOADARG=-p $(DUDECPUTYPE) -c $(PROGRAMMER) -e -U flash:w:
-
-#LDFLAGS=-L$(LDSCRIPTS) -Tavr25.x
-
 ALTOS_SRC = \
        ao_micropeak.c \
        ao_spi_attiny.c \
@@ -52,28 +41,18 @@ INC=\
        ao_ms5607.h \
        ao_log_micro.h \
        ao_micropeak.h \
+       ao_product.h \
        altitude-pa.h
 
 IDPRODUCT=0
 PRODUCT=MicroPeak-v0.1
 PRODUCT_DEF=-DMICROPEAK
-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
+CFLAGS = $(PRODUCT_DEF) $(ATTINY_CFLAGS)
 
 SRC=$(ALTOS_SRC)
 OBJ=$(SRC:.c=.o)
 
-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)
-
-all: $(PROG) $(HEX) micropeak-load
+all: $(PROG) $(HEX) $(SCRIPT)
 
 CHECK=sh ../util/check-avr-mem
 
@@ -85,21 +64,12 @@ $(HEX): $(PROG)
        avr-size $(PROG)
        $(OBJCOPY) -R .eeprom -O ihex $(PROG) $@
 
-
 load: $(HEX)
        $(LOADCMD) $(LOADARG)$(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) > $@
-
-ao_product.o: ao_product.c ao_product.h
-
-%.o : %.c $(INC)
-       $(call quiet,CC) -c $(CFLAGS) $<
-
 distclean:     clean
 
 clean:
@@ -120,10 +90,7 @@ load-product:
 load-product-slow:
        ./$(SCRIPT) slow
 
-../altitude-pa.h: make-altitude-pa
-       nickle $< > $@
-
-$(SCRIPT): $(SCRIPT).tmpl Makefile ../Version
+$(SCRIPT): $(SCRIPT).tmpl Makefile $(TOPDIR)/Makedefs
        sed -e 's/%HEX%/$(HEX)/' -e 's/%LOADCMD%/$(LOADCMD)/' -e 's/%LOADARG%/$(LOADARG)/' -e 's/%LOADSLOW%/$(LOADSLOW)/' $(SCRIPT).tmpl > $@ || (rm $@ && exit 1)
        chmod +x $@
 
@@ -131,4 +98,4 @@ install:
 
 uninstall:
 
-$(OBJ): ao_product.h $(INC)
+$(OBJ): $(INC)
index 0342838..4850ef1 100644 (file)
@@ -2,11 +2,8 @@
 # Tiny AltOS build
 #
 #
-vpath % ../attiny:../drivers:../kernel:../product:..
-vpath ao-make-product.5c ../util
-vpath make-altitude-pa ../util
-
-include ../avr/Makefile.defs
+TOPDIR=..
+include $(TOPDIR)/attiny/Makefile.defs
 
 PROGNAME=microsplash-v1.0
 PROG=$(PROGNAME)-$(VERSION).elf
@@ -18,14 +15,6 @@ PUBLISH_DIR=$(HOME)/altusmetrumllc/Binaries
 PUBLISH_HEX=$(PUBLISH_DIR)/$(HEX)
 PUBLISH_SCRIPT=$(PUBLISH_DIR)/$(SCRIPT)
 
-MCU=attiny85
-DUDECPUTYPE=t85
-#PROGRAMMER=stk500v2 -P usb
-LOADSLOW=-i 32 -B 32
-LOADARG=-p $(DUDECPUTYPE) -c $(PROGRAMMER) -e -U flash:w:
-
-#LDFLAGS=-L$(LDSCRIPTS) -Tavr25.x
-
 ALTOS_SRC = \
        ao_micropeak.c \
        ao_spi_attiny.c \
@@ -52,27 +41,17 @@ INC=\
        ao_ms5607.h \
        ao_log_micro.h \
        ao_micropeak.h \
+       ao_product.h \
        altitude-pa.h
 
 IDPRODUCT=0
 PRODUCT=MicroSplash-v1.0
 PRODUCT_DEF=-DMICROPEAK
-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
+CFLAGS = $(PRODUCT_DEF) $(ATTINY_CFLAGS)
 
 SRC=$(ALTOS_SRC)
 OBJ=$(SRC:.c=.o)
 
-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)
-
 all: $(PROG) $(HEX) $(SCRIPT)
 
 CHECK=sh ../util/check-avr-mem
@@ -85,25 +64,16 @@ $(HEX): $(PROG)
        avr-size $(PROG)
        $(OBJCOPY) -R .eeprom -O ihex $(PROG) $@
 
-
 load: $(HEX)
        $(LOADCMD) $(LOADARG)$(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) > $@
-
-ao_product.o: ao_product.c ao_product.h
-
-%.o : %.c $(INC)
-       $(call quiet,CC) -c $(CFLAGS) $<
-
 distclean:     clean
 
 clean:
-       rm -f *.o $(PROG) $(HEX) $(SCRIPT)
+       rm -f *.o *.elf *.ihx $(SCRIPT)
        rm -f ao_product.h
 
 publish: $(PUBLISH_HEX) $(PUBLISH_SCRIPT)
@@ -120,10 +90,7 @@ load-product:
 load-product-slow:
        ./$(SCRIPT) slow
 
-../altitude-pa.h: make-altitude-pa
-       nickle $< > $@
-
-$(SCRIPT): $(SCRIPT).tmpl Makefile ../Version
+$(SCRIPT): $(SCRIPT).tmpl Makefile $(TOPDIR)/Makedefs
        sed -e 's/%HEX%/$(HEX)/' -e 's/%LOADCMD%/$(LOADCMD)/' -e 's/%LOADARG%/$(LOADARG)/' -e 's/%LOADSLOW%/$(LOADSLOW)/' $(SCRIPT).tmpl > $@ || (rm $@ && exit 1)
        chmod +x $@
 
@@ -131,4 +98,4 @@ install:
 
 uninstall:
 
-$(OBJ): ao_product.h $(INC)
+$(OBJ): $(INC)
index 9615674..c09eedc 100644 (file)
@@ -38,7 +38,7 @@ PRODUCT=MicroPeakUSB-v3.0
 PRODUCT_DEF=-DMPUSB
 IDPRODUCT=0x002b
 
-CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS) -Os -g
+CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS)
 
 PROGNAME=mpusb-v3.0
 PROG=$(PROGNAME)-$(VERSION).elf
index 1ab2eea..fba99c8 100644 (file)
@@ -58,7 +58,7 @@ PRODUCT=Nucleo-32
 PRODUCT_DEF=-DNUCLEO
 IDPRODUCT=0x000a
 
-CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS) -Os -g
+CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS)
 
 LDFLAGS=$(CFLAGS) -L$(TOPDIR)/stmf0 -Wl,-Tload.ld -n
 
index 443a6af..b3994a9 100644 (file)
@@ -37,7 +37,7 @@ PRODUCT=PNPservo-v1
 PRODUCT_DEF=-DPNPSERVO
 IDPRODUCT=0x000a
 
-CFLAGS = $(PRODUCT_DEF) -I. $(STMF0_CFLAGS) -Os -g
+CFLAGS = $(PRODUCT_DEF) -I. $(STMF0_CFLAGS)
 
 LDFLAGS=$(CFLAGS) -L$(TOPDIR)/stmf0 -Wl,-Tlambda.ld
 
index b0943e5..5373877 100644 (file)
@@ -7,12 +7,12 @@ endif
 TOPDIR=..
 include $(TOPDIR)/Makedefs
 
-CC=arm-none-eabi-gcc
+CC=arm-none-eabicc
 OBJCOPY=arm-none-eabi-objcopy
 
 C_LIB=$(PDCLIB_LIBS_M3)
 
-DEF_CFLAGS=-g -std=gnu99 -Os -mlittle-endian -mthumb -ffreestanding -nostdlib -I. -I../stm $(PDCLIB_INCLUDES)
+DEF_CFLAGS= -std=gnu99 -mlittle-endian -mthumb -ffreestanding -nostdlib -I. -I../stm $(PDCLIB_INCLUDES)
 
 # to run from SRAM
 LD_FLAGS_RAM=-L../stm -Wl,-Taltos-ram.ld
index ccce37a..483d578 100644 (file)
@@ -44,7 +44,7 @@ PRODUCT=StmDemo-v0.0
 PRODUCT_DEF=-DSTM_DEMO
 IDPRODUCT=0x000a
 
-CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) -g -Os
+CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS)
 
 PROG=stm-demo-$(VERSION)
 ELF=$(PROG).elf
index 568ab85..4b0a987 100644 (file)
@@ -30,7 +30,7 @@ PRODUCT=AltosFlash-$(VERSION)
 PRODUCT_DEF=-DALTOS_FLASH
 IDPRODUCT=0x000a
 
-CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) -g -Os
+CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS)
 
 PROG=altos-flash-$(VERSION).elf
 
index 1db58f1..b02b762 100644 (file)
@@ -44,7 +44,7 @@ PRODUCT=StmScheme-v0.0
 PRODUCT_DEF=-DSTM_SCHEME
 IDPRODUCT=0x000a
 
-CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) -g -Os
+CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS)
 
 PROG=stm-scheme-$(VERSION)
 ELF=$(PROG).elf
index fa0d008..fb73ba2 100644 (file)
@@ -53,7 +53,7 @@ ALTOS_SRC = \
 PRODUCT=StmVga-v0.0
 IDPRODUCT=0x000a
 
-CFLAGS = $(STM_CFLAGS) -g -Os
+CFLAGS = $(STM_CFLAGS)
 
 PROG=stm-vga-$(VERSION)
 ELF=$(PROG).elf
index 66ad163..08a4b17 100644 (file)
@@ -1,40 +1,4 @@
-vpath % $(TOPDIR)/stm:$(TOPDIR)/product:$(TOPDIR)/drivers:$(TOPDIR)/kernel:$(TOPDIR)/util:$(TOPDIR)
-vpath ao-make-product.5c $(TOPDIR)/util
-
-.SUFFIXES: .elf .ihx
-
-.elf.ihx:
-       objcopy -O ihex $*.elf $@
-
-ifndef VERSION
-include $(TOPDIR)/Version
-endif
-include $(TOPDIR)/Makedefs
-
-CC=$(ARM_CC)
-LIBS=-L$(NEWLIB_NANO)/arm-none-eabi/lib/thumb/v7-m -lc -lm -lgcc
-
-AO_CFLAGS=-I. -I$(TOPDIR)/stm -I$(TOPDIR)/kernel -I$(TOPDIR)/drivers \
-       -DNEWLIB_INTEGER_PRINTF_SCANF \
-       -I$(TOPDIR)/product -I$(TOPDIR) -isystem $(NEWLIB_NANO)/arm-none-eabi/include
-
-STM_CFLAGS=-std=gnu99 -mlittle-endian -mcpu=cortex-m3 -mthumb \
-       -ffreestanding -nostdlib $(AO_CFLAGS) $(SAT_CFLAGS)
-
-LDFLAGS=-L$(TOPDIR)/stm -Wl,-Taltos-loader.ld
-
-NICKLE=nickle
-
-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)
-
-.c.o:
-       $(call quiet,CC) -c $(CFLAGS) -o $@ $<
+include $(TOPDIR)/stm/Makefile-stm.defs
 
 INC = \
        ao.h \
@@ -69,7 +33,9 @@ PRODUCT=AltosFlash
 PRODUCT_DEF=-DALTOS_FLASH
 IDPRODUCT=0x000a
 
-CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) -g -Os
+CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS)
+
+LDFLAGS=$(CFLAGS) -L$(TOPDIR)/stm -Wl,-Taltos-loader.ld -n
 
 PROGNAME=altos-flash
 PROG=$(HARDWARE)-$(PROGNAME)-$(VERSION).elf
@@ -77,9 +43,6 @@ PROG=$(HARDWARE)-$(PROGNAME)-$(VERSION).elf
 $(PROG): Makefile $(OBJ) altos-loader.ld
        $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
 
-ao_product.h: ao-make-product.5c $(TOPDIR)/Version
-       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
-
 $(OBJ): $(INC)
 
 all: $(PROG)
diff --git a/src/stm/Makefile-stm.defs b/src/stm/Makefile-stm.defs
new file mode 100644 (file)
index 0000000..cce28f0
--- /dev/null
@@ -0,0 +1,13 @@
+ifndef TOPDIR
+TOPDIR=..
+endif
+
+include $(TOPDIR)/Makefile.defs
+
+vpath % $(TOPDIR)/stm:$(AO_VPATH)
+
+CC=$(ARM_CC)
+LIBS=-L$(NEWLIB_NANO)/arm-none-eabi/lib/thumb/v7-m -lm -lc -lgcc
+
+STM_CFLAGS=-mlittle-endian -mcpu=cortex-m3 -mthumb \
+       -I$(TOPDIR)/stm $(AO_CFLAGS) $(NEWLIB_CFLAGS)
index 2db534c..26ba582 100644 (file)
@@ -1,56 +1,7 @@
-vpath % ../stm:../product:../drivers:../kernel:../util:../kalman:../aes:../math:../draw:../scheme:..
-vpath make-altitude ../util
-vpath make-kalman ../util
-vpath kalman.5c ../kalman
-vpath kalman_filter.5c ../kalman
-vpath load_csv.5c ../kalman
-vpath matrix.5c ../kalman
-vpath ao-make-product.5c ../util
-
-.SUFFIXES: .elf .ihx
-
-.elf.ihx:
-       $(ELFTOHEX) --output=$@ $*.elf
-
 ifndef TOPDIR
 TOPDIR=..
 endif
 
-ifndef VERSION
-include $(TOPDIR)/Version
-endif
-include $(TOPDIR)/Makedefs
-
-CC=$(ARM_CC)
-LIBS=-L$(NEWLIB_NANO)/arm-none-eabi/lib/thumb/v7-m -lm -lc -lgcc
-
-WARN_FLAGS=-Wall -Wextra -Werror -Wcast-align \
-       -Wpointer-arith \
-       -Wstrict-prototypes \
-       -Wmissing-prototypes \
-       -Wmissing-declarations \
-       -Wnested-externs \
-       -Wshadow
-
-AO_CFLAGS=-I. -I../stm -I../kernel -I../drivers -I../math -I../draw \
-       -DNEWLIB_INTEGER_PRINTF_SCANF \
-       -I../lisp -I.. -isystem $(NEWLIB_NANO)/arm-none-eabi/include
-
-STM_CFLAGS=-std=gnu99 -mlittle-endian -mcpu=cortex-m3 -mthumb -Wcast-align \
-       -ffreestanding -nostdlib $(AO_CFLAGS) $(WARN_FLAGS)
-
-LDFLAGS=-L../stm -Wl,-Taltos.ld -nostartfiles -Wl,-Map=$(PROGNAME).map
-
-NICKLE=nickle
-ELFTOHEX=$(TOPDIR)/../ao-tools/ao-elftohex/ao-elftohex
-
-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)
+include $(TOPDIR)/stm/Makefile-stm.defs
 
-.c.o:
-       $(call quiet,CC) -c $(CFLAGS) -o $@ $<
+LDFLAGS=$(CFLAGS) -L$(TOPDIR)/stm -Wl,-Taltos.ld -n
index 1a2aa75..bc5aa1a 100644 (file)
@@ -33,7 +33,7 @@ PRODUCT=AltosFlash
 PRODUCT_DEF=-DALTOS_FLASH
 IDPRODUCT=0x000a
 
-CFLAGS = $(PRODUCT_DEF) $(STM32F4_CFLAGS) -g -Os
+CFLAGS = $(PRODUCT_DEF) $(STM32F4_CFLAGS)
 
 LDFLAGS=$(CFLAGS) -L$(TOPDIR)/stm32f4 -Wl,-Taltos-loader.ld
 
@@ -52,9 +52,6 @@ $(PROG): Makefile $(OBJ) altos-loader.ld
 $(BIN): $(PROG)
        $(MAKEBIN) --output=$@ --base=$(FLASH_ADDR) $(PROG)
        
-ao_product.h: ao-make-product.5c $(TOPDIR)/Version
-       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
-
 $(OBJ): $(INC)
 
 distclean:     clean
index c39633c..1c87b5b 100644 (file)
@@ -2,51 +2,12 @@ ifndef TOPDIR
 TOPDIR=..
 endif
 
-include $(TOPDIR)/Makedefs
+include $(TOPDIR)/Makefile.defs
 
-vpath % $(TOPDIR)/stm32f4:$(TOPDIR)/product:$(TOPDIR)/drivers:$(TOPDIR)/kernel:$(TOPDIR)/util:$(TOPDIR)/kalman:$(TOPDIR)/aes:$(TOPDIR):$(TOPDIR)/math
-vpath make-altitude $(TOPDIR)/util
-vpath make-kalman $(TOPDIR)/util
-vpath kalman.5c $(TOPDIR)/kalman
-vpath kalman_filter.5c $(TOPDIR)/kalman
-vpath load_csv.5c $(TOPDIR)/kalman
-vpath matrix.5c $(TOPDIR)/kalman
-vpath ao-make-product.5c $(TOPDIR)/util
+vpath % $(TOPDIR)/stm32f4:$(AO_VPATH)
 
-.SUFFIXES: .elf .ihx
-
-.elf.ihx:
-       $(ELFTOHEX) --output=$@ $*.elf
-
-ifndef VERSION
-include $(TOPDIR)/Version
-endif
-
-ELFTOHEX=$(TOPDIR)/../ao-tools/ao-elftohex/ao-elftohex
 CC=$(ARM_CC)
-
-WARN_FLAGS=-Wall -Wextra -Werror -Wcast-align
-
-AO_CFLAGS=-I. -I$(TOPDIR)/stm32f4 -I$(TOPDIR)/kernel -I$(TOPDIR)/drivers \
-       -Os -g \
-       -I$(TOPDIR)/product -I$(TOPDIR) -I$(TOPDIR)/math \
-       -isystem $(NEWLIB_NANO)/arm-none-eabi/include
-
-STM32F4_CFLAGS=-std=gnu99 -mlittle-endian -mcpu=cortex-m4 -mthumb \
-       -mfloat-abi=hard -mfpu=fpv4-sp-d16 \
-       -ffreestanding -nostdlib $(AO_CFLAGS) $(WARN_FLAGS)
-
-NICKLE=nickle
-
 LIBS=-L$(NEWLIB_NANO)/arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard -lc -lm -lgcc
 
-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)
-
-.c.o:
-       $(call quiet,CC) -c $(CFLAGS) -o $@ $<
+STM32F4_CFLAGS=-mlittle-endian -mcpu=cortex-m4 -mthumb \
+       -I$(TOPDIR)/stm32f4 $(AO_CFLAGS) $(NEWLIB_CFLAGS)
index be185a5..8c0e884 100644 (file)
@@ -4,10 +4,4 @@ endif
 
 include $(TOPDIR)/stm32f4/Makefile-stm32f4.defs
 
-LOADER=flash-loader/$(PROGNAME)-altos-flash-$(VERSION).elf
-MAKEBIN=$(TOPDIR)/../ao-tools/ao-makebin/ao-makebin
-FLASH_ADDR=0x08000000
-
 LDFLAGS=$(CFLAGS) -L$(TOPDIR)/stm32f4 -Wl,-Taltos.ld -n
-
-.DEFAULT_GOAL=all
index 804595b..b6e4499 100644 (file)
@@ -33,7 +33,7 @@ PRODUCT=AltosFlash
 PRODUCT_DEF=-DALTOS_FLASH
 IDPRODUCT=0x000a
 
-CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS) -g -Os
+CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS)
 
 LDFLAGS=$(CFLAGS) -L$(TOPDIR)/stmf0 -Wl,-Taltos-loader.ld
 
@@ -51,9 +51,6 @@ $(PROG): Makefile $(OBJ) altos-loader.ld
 
 $(BIN): $(PROG)
        $(MAKEBIN) --output=$@ --base=$(FLASH_ADDR) $(PROG)
-       
-ao_product.h: ao-make-product.5c $(TOPDIR)/Version
-       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
 
 $(OBJ): $(INC)
 
index 0438fc7..5a883ad 100644 (file)
@@ -2,56 +2,13 @@ ifndef TOPDIR
 TOPDIR=..
 endif
 
-include $(TOPDIR)/Makedefs
+include $(TOPDIR)/Makefile.defs
 
-vpath % $(TOPDIR)/stmf0:$(TOPDIR)/product:$(TOPDIR)/drivers:$(TOPDIR)/kernel:$(TOPDIR)/util:$(TOPDIR)/kalman:$(TOPDIR)/aes:$(TOPDIR):$(TOPDIR)/math
-vpath make-altitude $(TOPDIR)/util
-vpath make-kalman $(TOPDIR)/util
-vpath kalman.5c $(TOPDIR)/kalman
-vpath kalman_filter.5c $(TOPDIR)/kalman
-vpath load_csv.5c $(TOPDIR)/kalman
-vpath matrix.5c $(TOPDIR)/kalman
-vpath ao-make-product.5c $(TOPDIR)/util
+vpath % $(TOPDIR)/stmf0:$(AO_VPATH)
 
-.SUFFIXES: .elf .ihx
-
-.elf.ihx:
-       $(ELFTOHEX) --output=$@ $*.elf
-
-ifndef VERSION
-include $(TOPDIR)/Version
-endif
-
-ELFTOHEX=$(TOPDIR)/../ao-tools/ao-elftohex/ao-elftohex
 CC=$(ARM_CC)
 
-WARN_FLAGS=-Wall -Wextra -Werror -Wcast-align \
-       -Wpointer-arith \
-       -Wstrict-prototypes \
-       -Wmissing-prototypes \
-       -Wmissing-declarations \
-       -Wnested-externs \
-       -Wshadow
-
-AO_CFLAGS=-I. -I$(TOPDIR)/stmf0 -I$(TOPDIR)/kernel -I$(TOPDIR)/drivers \
-       -DNEWLIB_INTEGER_PRINTF_SCANF \
-       -I$(TOPDIR)/product -I$(TOPDIR) -I$(TOPDIR)/math \
-       -isystem $(NEWLIB_NANO)/arm-none-eabi/include
-
-STMF0_CFLAGS=-std=gnu99 -mlittle-endian -mcpu=cortex-m0 -mthumb\
-       -ffreestanding -nostdlib $(AO_CFLAGS) $(WARN_FLAGS)
-
-NICKLE=nickle
+STMF0_CFLAGS=-mlittle-endian -mcpu=cortex-m0 -mthumb\
+       -I$(TOPDIR)/stmf0 $(AO_CFLAGS) $(NEWLIB_CFLAGS)
 
 LIBS=-L$(NEWLIB_NANO)/arm-none-eabi/lib/thumb/v6-m -lc -lm -lgcc
-
-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)
-
-.c.o:
-       $(call quiet,CC) -c $(CFLAGS) -o $@ $<
index a0aa558..2baba4f 100644 (file)
@@ -4,10 +4,10 @@ endif
 
 include $(TOPDIR)/stmf0/Makefile-stmf0.defs
 
+LDFLAGS=$(CFLAGS) -L$(TOPDIR)/stmf0 -Wl,-Taltos.ld -n
+
 LOADER=flash-loader/$(PROGNAME)-altos-flash-$(VERSION).elf
 MAKEBIN=$(TOPDIR)/../ao-tools/ao-makebin/ao-makebin
 FLASH_ADDR=0x08000000
 
-LDFLAGS=$(CFLAGS) -L$(TOPDIR)/stmf0 -Wl,-Taltos.ld -n
-
 .DEFAULT_GOAL=all
index ddbfaf5..4230d1b 100644 (file)
@@ -93,7 +93,7 @@ PRODUCT=TeleBalloon-v2.0
 PRODUCT_DEF=-DTELEMETRUM_V_2_0
 IDPRODUCT=0x000b
 
-CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF) -Os -g
+CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF)
 
 PROGNAME=teleballoon-v2.0
 PROG=$(PROGNAME)-$(VERSION).elf
@@ -105,16 +105,10 @@ OBJ=$(SRC:.c=.o)
 all: $(PROG) $(HEX)
 
 $(PROG): Makefile $(OBJ) altos.ld
-       $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
-
-../altitude-pa.h: make-altitude-pa
-       nickle $< > $@
+       $(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
 
 $(OBJ): $(INC)
 
-ao_product.h: ao-make-product.5c ../Version
-       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
-
 distclean:     clean
 
 clean:
index 9892ad5..49b70aa 100644 (file)
@@ -70,7 +70,7 @@ PRODUCT=TeleBT-v3.0
 PRODUCT_DEF=-DTELEBT_V_3_0
 IDPRODUCT=0x000e
 
-CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF) -Os -g
+CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF)
 
 PROGNAME=telebt-v3.0
 PROG=$(PROGNAME)-$(VERSION).elf
@@ -82,13 +82,10 @@ OBJ=$(SRC:.c=.o)
 all: $(PROG) $(HEX)
 
 $(PROG): Makefile $(OBJ) altos.ld
-       $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
+       $(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
 
 $(OBJ): $(INC)
 
-ao_product.h: ao-make-product.5c ../Version
-       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
-
 distclean:     clean
 
 clean:
index 4ad3287..eba83fb 100644 (file)
@@ -51,7 +51,7 @@ PRODUCT=TeleBT-v4.0
 PRODUCT_DEF=-DTELEBT_V_4_0
 IDPRODUCT=0x000e
 
-CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS) -Os -g
+CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS)
 
 PROGNAME=telebt-v4.0
 PROG=$(PROGNAME)-$(VERSION).elf
@@ -63,13 +63,10 @@ OBJ=$(SRC:.c=.o)
 all: $(PROG) $(HEX)
 
 $(PROG): Makefile $(OBJ) altos.ld
-       $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
+       $(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
 
 $(OBJ): $(INC)
 
-ao_product.h: ao-make-product.5c ../Version
-       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
-
 distclean:     clean
 
 clean:
index a656cde..abb97ba 100644 (file)
@@ -46,7 +46,7 @@ PRODUCT=TeleDongle-v3.0
 PRODUCT_DEF=-DTELEDONGLE
 IDPRODUCT=0x000c
 
-CFLAGS = $(PRODUCT_DEF) $(LPC_CFLAGS) -Os -g
+CFLAGS = $(PRODUCT_DEF) $(LPC_CFLAGS)
 
 PROGNAME=teledongle-v3.0
 PROG=$(PROGNAME)-$(VERSION).elf
@@ -58,13 +58,10 @@ OBJ=$(SRC:.c=.o)
 all: $(PROG) $(HEX)
 
 $(PROG): Makefile $(OBJ) altos.ld
-       $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
+       $(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
 
 $(OBJ): $(INC)
 
-ao_product.h: ao-make-product.5c ../Version
-       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
-
 load: $(PROG)
        lpc-load $(PROG)
 
index 200c315..1ec0dcc 100644 (file)
@@ -59,7 +59,7 @@ PRODUCT=TeleFireEight-v1.0
 PRODUCT_DEF=-DTELEFIREEIGHT_V_1_0
 IDPRODUCT=0x000f
 
-CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) -Os -g
+CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF)
 
 PROGNAME = telefireeight-v1.0
 PROG = $(PROGNAME)-$(VERSION).elf
@@ -71,13 +71,10 @@ OBJ=$(SRC:.c=.o)
 all: $(PROG) $(HEX)
 
 $(PROG): Makefile $(OBJ) altos.ld
-       $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
+       $(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
 
 $(OBJ): $(INC)
 
-ao_product.h: ao-make-product.5c ../Version
-       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
-
 distclean:     clean
 
 clean:
index 7cc3720..48a7123 100644 (file)
@@ -58,7 +58,7 @@ PRODUCT=TeleFireEight-v2.0
 PRODUCT_DEF=-DTELEFIREEIGHT_V_2_0
 IDPRODUCT=0x000f
 
-CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) -Os -g
+CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF)
 
 PROGNAME = telefireeight-v2.0
 PROG = $(PROGNAME)-$(VERSION).elf
@@ -70,13 +70,10 @@ OBJ=$(SRC:.c=.o)
 all: $(PROG) $(HEX)
 
 $(PROG): Makefile $(OBJ) altos.ld
-       $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
+       $(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
 
 $(OBJ): $(INC)
 
-ao_product.h: ao-make-product.5c ../Version
-       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
-
 distclean:     clean
 
 clean:
index 773c8f6..94b8cd4 100644 (file)
@@ -64,7 +64,7 @@ PRODUCT=TeleFireOne-v1.0
 PRODUCT_DEF=-DTELEFIREONE_V_1_0
 IDPRODUCT=0x000f
 
-CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) -Os -g
+CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF)
 
 PROGNAME = telefireone-v1.0
 PROG = $(PROGNAME)-$(VERSION).elf
index 72171fa..a462d5b 100644 (file)
@@ -58,7 +58,7 @@ PRODUCT=TeleFire-v0.1
 PRODUCT_DEF=-DTELEFIRETWO_V_0_1
 IDPRODUCT=0x000f
 
-CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) -Os -g
+CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF)
 
 PROGNAME = telefiretwo-v0.1
 PROG = $(PROGNAME)-$(VERSION).elf
@@ -70,13 +70,10 @@ OBJ=$(SRC:.c=.o)
 all: $(PROG) $(HEX)
 
 $(PROG): Makefile $(OBJ) altos.ld
-       $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
+       $(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
 
 $(OBJ): $(INC)
 
-ao_product.h: ao-make-product.5c ../Version
-       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
-
 distclean:     clean
 
 clean:
index f43ece7..d48dcc3 100644 (file)
@@ -59,7 +59,7 @@ PRODUCT=TeleFire-v0.2
 PRODUCT_DEF=-DTELEFIRETWO_V_0_2
 IDPRODUCT=0x000f
 
-CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) -Os -g
+CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF)
 
 PROGNAME = telefiretwo-v0.2
 PROG = $(PROGNAME)-$(VERSION).elf
index 0365f91..90fd8a5 100644 (file)
@@ -75,7 +75,7 @@ PRODUCT=TeleGPS-v0.1
 PRODUCT_DEF=-DTELEGPS
 IDPRODUCT=0x0025
 
-CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF) -Os -g
+CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF)
 
 PROGNAME=telegps-v0.1
 PROG=$(PROGNAME)-$(VERSION).elf
index 834609d..73d8c24 100644 (file)
@@ -56,7 +56,7 @@ PRODUCT=TeleGPS-v0.3
 PRODUCT_DEF=-DTELEGPS
 IDPRODUCT=0x0025
 
-CFLAGS = $(PRODUCT_DEF) $(LPC_CFLAGS) $(PROFILE_DEF) -Os -g
+CFLAGS = $(PRODUCT_DEF) $(LPC_CFLAGS) $(PROFILE_DEF)
 
 PROGNAME=telegps-v0.3
 PROG=$(PROGNAME)-$(VERSION).elf
@@ -68,13 +68,10 @@ OBJ=$(SRC:.c=.o)
 all: $(PROG) $(HEX)
 
 $(PROG): Makefile $(OBJ) altos.ld
-       $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
+       $(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
 
 $(OBJ): $(INC)
 
-ao_product.h: ao-make-product.5c ../Version
-       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
-
 distclean:     clean
 
 clean:
index 76dc037..fc1b1f2 100644 (file)
@@ -59,7 +59,7 @@ PRODUCT=TeleGPS-v1.0
 PRODUCT_DEF=-DTELEGPS
 IDPRODUCT=0x0025
 
-CFLAGS = $(PRODUCT_DEF) $(LPC_CFLAGS) $(PROFILE_DEF) -Os -g
+CFLAGS = $(PRODUCT_DEF) $(LPC_CFLAGS) $(PROFILE_DEF)
 
 PROGNAME=telegps-v1.0
 PROG=$(PROGNAME)-$(VERSION).elf
@@ -71,13 +71,10 @@ OBJ=$(SRC:.c=.o)
 all: $(PROG) $(HEX)
 
 $(PROG): Makefile $(OBJ) altos.ld
-       $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
+       $(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
 
 $(OBJ): $(INC)
 
-ao_product.h: ao-make-product.5c ../Version
-       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
-
 distclean:     clean
 
 clean:
index 617efa6..7ce2847 100644 (file)
@@ -3,7 +3,9 @@
 #
 #
 
-include ../stmf0/Makefile.defs
+TOPDIR=..
+
+include $(TOPDIR)/stmf0/Makefile.defs
 
 INC = \
        ao.h \
@@ -59,7 +61,7 @@ PRODUCT=TeleGPS-v2.0
 PRODUCT_DEF=-DTELEGPS
 IDPRODUCT=0x0025
 
-CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS) $(PROFILE_DEF) -g -Os
+CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS) $(PROFILE_DEF)
 
 PROGNAME=telegps-v2.0
 PROG=$(PROGNAME)-$(VERSION).elf
@@ -75,9 +77,6 @@ $(PROG): Makefile $(OBJ) altos.ld
 
 $(OBJ): $(INC)
 
-ao_product.h: ao-make-product.5c ../Version
-       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
-
 distclean:     clean
 
 clean:
index 9307aa2..04f3b8f 100644 (file)
@@ -76,7 +76,7 @@ PRODUCT=TeleLCO-v0.2
 PRODUCT_DEF=-DTELELCO
 IDPRODUCT=0x0023
 
-CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) -Os -g
+CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF)
 
 PROGNAME=telelco-v0.2
 PROG=$(PROGNAME)-$(VERSION).elf
@@ -88,16 +88,10 @@ OBJ=$(SRC:.c=.o)
 all: $(PROG) $(HEX)
 
 $(PROG): Makefile $(OBJ) altos.ld
-       $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
-
-../altitude.h: make-altitude
-       nickle $< > $@
+       $(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
 
 $(OBJ): $(INC)
 
-ao_product.h: ao-make-product.5c ../Version
-       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
-
 distclean:     clean
 
 clean:
index 91ae67f..2b8af05 100644 (file)
@@ -70,10 +70,10 @@ ALTOS_SRC = \
        ao_radio_cmac_cmd.c
 
 PRODUCT=TeleLCO-v0.2
-PRODUCT_DEF=-DTELEMEGA
+PRODUCT_DEF=-DTELELCO
 IDPRODUCT=0x0023
 
-CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) -Os -g
+CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF)
 
 PROGNAME=telelco-v0.2
 PROG=$(PROGNAME)-$(VERSION).elf
@@ -85,16 +85,10 @@ OBJ=$(SRC:.c=.o)
 all: $(PROG) $(HEX)
 
 $(PROG): Makefile $(OBJ) altos.ld
-       $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
-
-../altitude.h: make-altitude
-       nickle $< > $@
+       $(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
 
 $(OBJ): $(INC)
 
-ao_product.h: ao-make-product.5c ../Version
-       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
-
 distclean:     clean
 
 clean:
index 567ddf4..87e5d72 100644 (file)
@@ -74,7 +74,7 @@ PRODUCT=TeleLCO-v0.3
 PRODUCT_DEF=-DTELELCO
 IDPRODUCT=0x0023
 
-CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) -Os -g
+CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF)
 
 PROGNAME=telelco-v0.3
 PROG=$(PROGNAME)-$(VERSION).elf
@@ -86,16 +86,10 @@ OBJ=$(SRC:.c=.o)
 all: $(PROG) $(HEX)
 
 $(PROG): Makefile $(OBJ) altos.ld
-       $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
-
-../altitude.h: make-altitude
-       nickle $< > $@
+       $(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
 
 $(OBJ): $(INC)
 
-ao_product.h: ao-make-product.5c ../Version
-       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
-
 distclean:     clean
 
 clean:
index 43295fd..1ae5981 100644 (file)
@@ -76,7 +76,7 @@ PRODUCT=TeleLCO-v2.0
 PRODUCT_DEF=-DTELELCO
 IDPRODUCT=0x0023
 
-CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) -Os -g
+CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF)
 
 PROGNAME=telelco-v2.0
 PROG=$(PROGNAME)-$(VERSION).elf
@@ -88,13 +88,10 @@ OBJ=$(SRC:.c=.o)
 all: $(PROG) $(HEX)
 
 $(PROG): Makefile $(OBJ) altos.ld
-       $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
+       $(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
 
 $(OBJ): $(INC)
 
-ao_product.h: ao-make-product.5c ../Version
-       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
-
 distclean:     clean
 
 clean:
index 6a114aa..c0a90d9 100644 (file)
@@ -67,7 +67,7 @@ PRODUCT=TeleLCOTwo-v0.1
 PRODUCT_DEF=-DTELELCOTWO
 IDPRODUCT=0x0023
 
-CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) -Os -g
+CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF)
 
 PROGNAME=telelcotwo-v0.1
 PROG=$(PROGNAME)-$(VERSION).elf
@@ -79,13 +79,10 @@ OBJ=$(SRC:.c=.o)
 all: $(PROG) $(HEX)
 
 $(PROG): Makefile $(OBJ) altos.ld
-       $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
+       $(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
 
 $(OBJ): $(INC)
 
-ao_product.h: ao-make-product.5c ../Version
-       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
-
 distclean:     clean
 
 clean:
index fde35aa..3357a92 100644 (file)
@@ -104,7 +104,7 @@ PRODUCT=TeleMega-v0.1
 PRODUCT_DEF=-DTELEMEGA
 IDPRODUCT=0x0023
 
-CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF) -Os -g
+CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF)
 
 PROGNAME=telemega-v0.1
 PROG=$(PROGNAME)-$(VERSION).elf
@@ -116,16 +116,10 @@ OBJ=$(SRC:.c=.o)
 all: $(PROG) $(HEX)
 
 $(PROG): Makefile $(OBJ) altos.ld
-       $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
-
-../altitude-pa.h: make-altitude-pa
-       nickle $< > $@
+       $(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
 
 $(OBJ): $(INC)
 
-ao_product.h: ao-make-product.5c ../Version
-       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
-
 distclean:     clean
 
 clean:
index 62eda4a..c88ff42 100644 (file)
@@ -106,7 +106,7 @@ PRODUCT=TeleMega-v1.0
 PRODUCT_DEF=-DTELEMEGA
 IDPRODUCT=0x0023
 
-CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF) -Os -g
+CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF)
 
 PROGNAME=telemega-v1.0
 PROG=$(PROGNAME)-$(VERSION).elf
@@ -118,16 +118,10 @@ OBJ=$(SRC:.c=.o)
 all: $(PROG) $(HEX)
 
 $(PROG): Makefile $(OBJ) altos.ld
-       $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
-
-../altitude-pa.h: make-altitude-pa
-       nickle $< > $@
+       $(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
 
 $(OBJ): $(INC)
 
-ao_product.h: ao-make-product.5c ../Version
-       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
-
 distclean:     clean
 
 clean:
index 78829ff..6c84792 100644 (file)
@@ -105,7 +105,7 @@ PRODUCT=TeleMega-v2.0
 PRODUCT_DEF=-DTELEMEGA
 IDPRODUCT=0x0023
 
-CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF) -Os -g
+CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF)
 
 PROGNAME=telemega-v2.0
 PROG=$(PROGNAME)-$(VERSION).elf
@@ -117,16 +117,10 @@ OBJ=$(SRC:.c=.o)
 all: $(PROG) $(HEX)
 
 $(PROG): Makefile $(OBJ) altos.ld
-       $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
-
-../altitude-pa.h: make-altitude-pa
-       nickle $< > $@
+       $(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
 
 $(OBJ): $(INC)
 
-ao_product.h: ao-make-product.5c ../Version
-       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
-
 distclean:     clean
 
 clean:
index b449b39..87a59c6 100644 (file)
@@ -102,7 +102,7 @@ PRODUCT=TeleMega-v3.0
 PRODUCT_DEF=-DTELEMEGA
 IDPRODUCT=0x0023
 
-CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF) -Os -g
+CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF)
 
 PROGNAME=telemega-v3.0
 PROG=$(PROGNAME)-$(VERSION).elf
@@ -114,16 +114,10 @@ OBJ=$(SRC:.c=.o)
 all: $(PROG) $(HEX)
 
 $(PROG): Makefile $(OBJ) altos.ld
-       $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
-
-../altitude-pa.h: make-altitude-pa
-       nickle $< > $@
+       $(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
 
 $(OBJ): $(INC)
 
-ao_product.h: ao-make-product.5c ../Version
-       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
-
 distclean:     clean
 
 clean:
index e0192f6..c1e220e 100644 (file)
@@ -93,7 +93,7 @@ PRODUCT=TeleMetrum-v2.0
 PRODUCT_DEF=-DTELEMETRUM_V_2_0
 IDPRODUCT=0x000b
 
-CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF) -Os -g
+CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF)
 
 PROGNAME=telemetrum-v2.0
 PROG=$(PROGNAME)-$(VERSION).elf
@@ -105,16 +105,10 @@ OBJ=$(SRC:.c=.o)
 all: $(PROG) $(HEX)
 
 $(PROG): Makefile $(OBJ) altos.ld
-       $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
-
-../altitude-pa.h: make-altitude-pa
-       nickle $< > $@
+       $(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
 
 $(OBJ): $(INC)
 
-ao_product.h: ao-make-product.5c ../Version
-       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
-
 distclean:     clean
 
 clean:
index 071fd8d..fb379aa 100644 (file)
@@ -93,7 +93,7 @@ PRODUCT=TeleMetrum-v3.0
 PRODUCT_DEF=-DTELEMETRUM_V_3_0
 IDPRODUCT=0x000b
 
-CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF) -Os -g
+CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF)
 
 PROGNAME=telemetrum-v3.0
 PROG=$(PROGNAME)-$(VERSION).elf
@@ -105,16 +105,10 @@ OBJ=$(SRC:.c=.o)
 all: $(PROG) $(HEX)
 
 $(PROG): Makefile $(OBJ) altos.ld
-       $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
-
-../altitude-pa.h: make-altitude-pa
-       nickle $< > $@
+       $(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
 
 $(OBJ): $(INC)
 
-ao_product.h: ao-make-product.5c ../Version
-       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
-
 distclean:     clean
 
 clean:
index 4713b3a..1ed25c1 100644 (file)
@@ -60,7 +60,7 @@ PRODUCT=TeleMini-v3.0
 PRODUCT_DEF=-DTELEMINI_V_3_0
 IDPRODUCT=0x0027
 
-CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS) -g -Os
+CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS)
 
 PROGNAME=telemini-v3.0
 PROG=$(PROGNAME)-$(VERSION).elf
@@ -72,10 +72,7 @@ OBJ=$(SRC:.c=.o)
 all: $(PROG) $(HEX)
 
 $(PROG): Makefile $(OBJ)
-       $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
-
-ao_product.h: ao-make-product.5c ../Version
-       $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
+       $(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
 
 $(OBJ): $(INC)
 
index 8a1293d..015fea7 100644 (file)
@@ -84,7 +84,7 @@ PRODUCT=TMGPS-v2.0
 PRODUCT_DEF=-DTMGPS_V_2_0
 IDPRODUCT=0x0025
 
-CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF) -Os -g
+CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF)
 
 PROGNAME=tmgps-v2.0
 PROG=$(PROGNAME)-$(VERSION).elf
index 327614b..f8e47a3 100644 (file)
@@ -35,7 +35,7 @@ PRODUCT=VidTime
 PRODUCT_DEF=-DVIDTIME
 IDPRODUCT=0x002b
 
-CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS) -Os -g
+CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS)
 
 PROGNAME=vidtime-v1.0
 PROG=$(PROGNAME)-$(VERSION).elf