Skip to content

Commit 7a89aa1

Browse files
committed
altos: Move common build definitions to src/Makefile.defs
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 <[email protected]>
1 parent 889518a commit 7a89aa1

File tree

70 files changed

+315
-588
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+315
-588
lines changed

configure.ac

-1
Original file line numberDiff line numberDiff line change
@@ -573,7 +573,6 @@ map-server/Makefile
573573
map-server/altos-mapd/Makefile
574574
map-server/altos-map/Makefile
575575
map-server/altos-mapj/Makefile
576-
src/Version
577576
])
578577

579578
echo ""

src/Makedefs.in

+2
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,5 @@ HAVE_NEWLIB_NANO=@HAVE_NEWLIB_NANO@
77
AVR_CC=@AVR_CC@
88
AVR_OBJCOPY=@AVR_OBJCOPY@
99
HAVE_AVR_CC=@HAVE_AVR_CC@
10+
11+
VERSION=@VERSION@

src/Makefile

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ vpath kalman_micro.5c kalman
1212
vpath load_csv.5c kalman
1313
vpath matrix.5c kalman
1414

15-
include Version
1615
TOPDIR=.
16+
1717
include Makedefs
1818

1919
ARMM3DIRS=\
@@ -49,7 +49,7 @@ ARMM0DIRS=\
4949
micropeak-v2.0 micropeak-v2.0/flash-loader
5050

5151
AVRDIRS=\
52-
micropeak microkite
52+
micropeak microkite microsplash
5353

5454
SUBDIRS=
5555

src/Makefile.defs

+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
include $(TOPDIR)/Makedefs
2+
3+
AO_VPATH=$(TOPDIR)/product:$(TOPDIR)/drivers:$(TOPDIR)/kernel:$(TOPDIR)/util:$(TOPDIR)/kalman:$(TOPDIR)/aes:$(TOPDIR)/math:$(TOPDIR)/draw:$(TOPDIR)
4+
vpath make-altitude $(TOPDIR)/util
5+
vpath make-kalman $(TOPDIR)/util
6+
vpath kalman.5c $(TOPDIR)/kalman
7+
vpath kalman_filter.5c $(TOPDIR)/kalman
8+
vpath load_csv.5c $(TOPDIR)/kalman
9+
vpath matrix.5c $(TOPDIR)/kalman
10+
vpath ao-make-product.5c $(TOPDIR)/util
11+
12+
WARN_FLAGS=-Wall -Wextra -Werror -Wcast-align \
13+
-Wpointer-arith \
14+
-Wstrict-prototypes \
15+
-Wmissing-prototypes \
16+
-Wmissing-declarations \
17+
-Wnested-externs \
18+
-Wshadow \
19+
-Warray-bounds=2
20+
21+
OPT=-Os
22+
23+
NEWLIB_CFLAGS= \
24+
-ffreestanding -nostdlib \
25+
-DNEWLIB_INTEGER_PRINTF_SCANF \
26+
-isystem $(NEWLIB_NANO)/arm-none-eabi/include
27+
28+
AO_CFLAGS=\
29+
-std=gnu99 \
30+
-I. -I$(TOPDIR) -I$(TOPDIR)/kernel -I$(TOPDIR)/drivers \
31+
-I$(TOPDIR)/math -I$(TOPDIR)/draw -I$(TOPDIR)/product $(WARN_FLAGS) $(OPT) -g
32+
33+
NICKLE=nickle
34+
ELFTOHEX=$(TOPDIR)/../ao-tools/ao-elftohex/ao-elftohex
35+
36+
.SUFFIXES: .elf .ihx
37+
38+
.elf.ihx:
39+
$(ELFTOHEX) --output=$@ $*.elf
40+
41+
V=0
42+
# The user has explicitly enabled quiet compilation.
43+
ifeq ($(V),0)
44+
quiet = @printf " $1 $2 $@\n"; $($1)
45+
endif
46+
# Otherwise, print the full command line.
47+
quiet ?= $($1)
48+
49+
.c.o:
50+
$(call quiet,CC) -c $(CFLAGS) -o $@ $<
51+
52+
.DEFAULT_GOAL=all
53+
54+
ao_product.h: ao-make-product.5c $(TOPDIR)/Makedefs
55+
$(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
56+

src/Version.in

-1
This file was deleted.

src/avr-demo/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ MCU=atmega32u4
4747
PRODUCT_DEF=-DAVR_DEMO
4848
IDPRODUCT=0x000a
4949
CFLAGS = $(PRODUCT_DEF) -I. -I../avr -I../kernel -I..
50-
CFLAGS += -g -mmcu=$(MCU) -Wall -Wstrict-prototypes -Os -mcall-prologues
50+
CFLAGS += -mmcu=$(MCU) -Wall -Wstrict-prototypes -mcall-prologues
5151

5252
NICKLE=nickle
5353

src/avr/Makefile.defs

+1-5
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,7 @@ ifndef TOPDIR
22
TOPDIR=..
33
endif
44

5-
ifndef VERSION
6-
include $(TOPDIR)/Version
7-
endif
8-
9-
include $(TOPDIR)/Makedefs
5+
include $(TOPDIR)/Makefile.defs
106

117
CC=$(AVR_CC)
128
OBJCOPY=$(AVR_OBJCOPY)

src/chaoskey-v0.1/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ PRODUCT_DEF=-DCHAOSKEY_V_0_1
4343
IDVENDOR=0x1d50
4444
IDPRODUCT=0x60c6
4545

46-
CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS) -g -Os
46+
CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS)
4747

4848
PROGNAME=chaoskey-v0.1
4949
PROG=$(PROGNAME)-$(VERSION).elf

src/chaoskey-v1.0/Makefile

+2-5
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ PRODUCT_DEF=-DCHAOSKEY_V_1_0
4848
IDVENDOR=0x1d50
4949
IDPRODUCT=0x60c6
5050

51-
CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS) -g -Os
51+
CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS)
5252

5353
PROGNAME=chaoskey-v1.0
5454
PROG=$(PROGNAME)-$(VERSION).elf
@@ -62,10 +62,7 @@ OBJ=$(SRC:.c=.o)
6262
all: $(PROG) $(HEX) $(BIN)
6363

6464
$(PROG): Makefile $(OBJ) altos.ld
65-
$(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
66-
67-
ao_product.h: ao-make-product.5c ../Version
68-
$(call quiet,NICKLE,$<) $< -m altusmetrum.org -V $(IDVENDOR) -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) -o $@
65+
$(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
6966

7067
$(OBJ): $(INC)
7168

src/cortexelf-v1/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ LDFLAGS=-L../stm -L/local/newlib-mini/arm-none-eabi/lib/thumb/v7-m/ -Wl,-Tcortex
9595
AO_CFLAGS=-I. -I../stm -I../kernel -I../drivers -I../draw -I../scheme -I.. -I/local/newlib-mini/arm-none-eabi/include
9696
LIBS=-lc -lm -lgcc
9797

98-
CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF) -Os -g
98+
CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF)
9999

100100

101101
SRC=$(ALTOS_SRC) ao_cortexelf.c

src/detherm/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ PRODUCT=Detherm-v1.0
5252
PRODUCT_DEF=-DDETHERM_V_1_0
5353
IDPRODUCT=0x0013
5454

55-
CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS) -g -Os
55+
CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS)
5656

5757
PROGNAME=detherm-v1.0
5858
PROG=$(PROGNAME)-$(VERSION).elf

src/easymega-v1.0/Makefile

+2-8
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ PRODUCT=EasyMega-v1.0
9393
PRODUCT_DEF=-DEASYMEGA
9494
IDPRODUCT=0x0028
9595

96-
CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF) -Os -g
96+
CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF)
9797

9898
PROGNAME=easymega-v1.0
9999
PROG=$(PROGNAME)-$(VERSION).elf
@@ -105,16 +105,10 @@ OBJ=$(SRC:.c=.o)
105105
all: $(PROG) $(HEX)
106106

107107
$(PROG): Makefile $(OBJ) altos.ld
108-
$(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
109-
110-
../altitude-pa.h: make-altitude-pa
111-
nickle $< > $@
108+
$(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
112109

113110
$(OBJ): $(INC)
114111

115-
ao_product.h: ao-make-product.5c ../Version
116-
$(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
117-
118112
distclean: clean
119113

120114
clean:

src/easymega-v2.0/Makefile

+2-8
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ PRODUCT=EasyMega-v2.0
9090
PRODUCT_DEF=-DEASYMEGA
9191
IDPRODUCT=0x0028
9292

93-
CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF) -Os -g
93+
CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF)
9494

9595
PROGNAME=easymega-v2.0
9696
PROG=$(PROGNAME)-$(VERSION).elf
@@ -102,16 +102,10 @@ OBJ=$(SRC:.c=.o)
102102
all: $(PROG) $(HEX)
103103

104104
$(PROG): Makefile $(OBJ) altos.ld
105-
$(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
106-
107-
../altitude-pa.h: make-altitude-pa
108-
nickle $< > $@
105+
$(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
109106

110107
$(OBJ): $(INC)
111108

112-
ao_product.h: ao-make-product.5c ../Version
113-
$(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
114-
115109
distclean: clean
116110

117111
clean:

src/easymini-v1.0/Makefile

+2-5
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ PRODUCT=EasyMini-v1.0
5151
PRODUCT_DEF=-DEASYMINI_V_1_0
5252
IDPRODUCT=0x0026
5353

54-
CFLAGS = $(PRODUCT_DEF) $(LPC_CFLAGS) -g -Os
54+
CFLAGS = $(PRODUCT_DEF) $(LPC_CFLAGS)
5555

5656
PROGNAME=easymini-v1.0
5757
PROG=$(PROGNAME)-$(VERSION).elf
@@ -63,10 +63,7 @@ OBJ=$(SRC:.c=.o)
6363
all: $(PROG) $(HEX)
6464

6565
$(PROG): Makefile $(OBJ) altos.ld
66-
$(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
67-
68-
ao_product.h: ao-make-product.5c ../Version
69-
$(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
66+
$(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
7067

7168
$(OBJ): $(INC)
7269

src/easymini-v2.0/Makefile

+2-5
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ PRODUCT=EasyMini-v2.0
5353
PRODUCT_DEF=-DEASYMINI_V_2_0
5454
IDPRODUCT=0x0026
5555

56-
CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS) -g -Os
56+
CFLAGS = $(PRODUCT_DEF) $(STMF0_CFLAGS)
5757

5858
PROGNAME=easymini-v2.0
5959
PROG=$(PROGNAME)-$(VERSION).elf
@@ -65,10 +65,7 @@ OBJ=$(SRC:.c=.o)
6565
all: $(PROG) $(HEX)
6666

6767
$(PROG): Makefile $(OBJ)
68-
$(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
69-
70-
ao_product.h: ao-make-product.5c ../Version
71-
$(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
68+
$(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
7269

7370
$(OBJ): $(INC)
7471

src/fox1ihu/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ PRODUCT=Fox1IHU-v2
5959
PRODUCT_DEF=-DFOX
6060
IDPRODUCT=0x0024
6161

62-
CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF) -Os -g
62+
CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) $(PROFILE_DEF) $(SAMPLE_PROFILE_DEF) $(STACK_GUARD_DEF)
6363

6464
PROGNAME=fox1ihu-v0.1
6565
PROG=$(PROGNAME)-$(VERSION).elf

src/lambdakey-v1.0/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ PRODUCT=LambdaKey-v1.0
4040
PRODUCT_DEF=-DLAMBDAKEY
4141
IDPRODUCT=0x000a
4242

43-
CFLAGS = $(PRODUCT_DEF) -I. -I$(aoschemelib) $(STMF0_CFLAGS) -Os -g
43+
CFLAGS = $(PRODUCT_DEF) -I. -I$(aoschemelib) $(STMF0_CFLAGS)
4444

4545
PROGNAME=lambdakey-v1.0
4646
PROG=$(PROGNAME)-$(VERSION).elf

src/lpc/Makefile-flash.defs

+2-5
Original file line numberDiff line numberDiff line change
@@ -33,18 +33,15 @@ PRODUCT=AltosFlash
3333
PRODUCT_DEF=-DALTOS_FLASH
3434
IDPRODUCT=0x000a
3535

36-
CFLAGS = $(PRODUCT_DEF) $(LPC_CFLAGS) -g -Os
36+
CFLAGS = $(PRODUCT_DEF) $(LPC_CFLAGS)
3737

3838
LDFLAGS=$(CFLAGS) -L$(TOPDIR)/lpc -Wl,-Taltos-loader.ld
3939

4040
PROGNAME=altos-flash
4141
PROG=$(HARDWARE)-$(PROGNAME)-$(VERSION).elf
4242

4343
$(PROG): Makefile $(OBJ) altos-loader.ld
44-
$(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
45-
46-
ao_product.h: ao-make-product.5c $(TOPDIR)/Version
47-
$(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
44+
$(call quiet,CC) $(LDFLAGS) -o $(PROG) $(OBJ) $(LIBS)
4845

4946
$(OBJ): $(INC)
5047

src/lpc/Makefile-lpc.defs

+4-48
Original file line numberDiff line numberDiff line change
@@ -2,57 +2,13 @@ ifndef TOPDIR
22
TOPDIR=..
33
endif
44

5-
include $(TOPDIR)/Makedefs
5+
include $(TOPDIR)/Makefile.defs
66

7-
vpath % $(TOPDIR)/lpc:$(TOPDIR)/product:$(TOPDIR)/drivers:$(TOPDIR)/kernel:$(TOPDIR)/util:$(TOPDIR)/kalman:$(TOPDIR)/aes:$(TOPDIR):$(TOPDIR)/math
8-
vpath make-altitude $(TOPDIR)/util
9-
vpath make-kalman $(TOPDIR)/util
10-
vpath kalman.5c $(TOPDIR)/kalman
11-
vpath kalman_filter.5c $(TOPDIR)/kalman
12-
vpath load_csv.5c $(TOPDIR)/kalman
13-
vpath matrix.5c $(TOPDIR)/kalman
14-
vpath ao-make-product.5c $(TOPDIR)/util
7+
vpath % $(TOPDIR)/lpc:$(AO_VPATH)
158

16-
.SUFFIXES: .elf .ihx
17-
18-
.elf.ihx:
19-
$(ELFTOHEX) --output=$@ $*.elf
20-
21-
22-
ifndef VERSION
23-
include $(TOPDIR)/Version
24-
endif
25-
26-
ELFTOHEX=$(TOPDIR)/../ao-tools/ao-elftohex/ao-elftohex
279
CC=$(ARM_CC)
2810

29-
WARN_FLAGS=-Wall -Wextra -Werror -Wcast-align \
30-
-Wpointer-arith \
31-
-Wstrict-prototypes \
32-
-Wmissing-prototypes \
33-
-Wmissing-declarations \
34-
-Wnested-externs \
35-
-Wshadow
36-
37-
AO_CFLAGS=-I. -I$(TOPDIR)/lpc -I$(TOPDIR)/kernel -I$(TOPDIR)/drivers \
38-
-DNEWLIB_INTEGER_PRINTF_SCANF \
39-
-I$(TOPDIR)/product -I$(TOPDIR) -I$(TOPDIR)/math -I$(TOPDIR) \
40-
-isystem $(NEWLIB_NANO)/arm-none-eabi/include
41-
42-
LPC_CFLAGS=-std=gnu99 -mlittle-endian -mcpu=cortex-m0 -mthumb\
43-
-ffreestanding -nostdlib $(AO_CFLAGS) $(WARN_FLAGS)
44-
45-
NICKLE=nickle
46-
4711
LIBS=-L$(NEWLIB_NANO)/arm-none-eabi/lib/thumb/v6-m -lc -lm -lgcc
4812

49-
V=0
50-
# The user has explicitly enabled quiet compilation.
51-
ifeq ($(V),0)
52-
quiet = @printf " $1 $2 $@\n"; $($1)
53-
endif
54-
# Otherwise, print the full command line.
55-
quiet ?= $($1)
56-
57-
.c.o:
58-
$(call quiet,CC) -c $(CFLAGS) -o $@ $<
13+
LPC_CFLAGS=-mlittle-endian -mcpu=cortex-m0 -mthumb\
14+
-I$(TOPDIR)/lpc $(AO_CFLAGS) $(NEWLIB_CFLAGS)

src/lpc/Makefile.defs

-3
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,10 @@ TOPDIR=..
33
endif
44

55
include $(TOPDIR)/lpc/Makefile-lpc.defs
6-
include $(TOPDIR)/Makedefs
76

87
LDFLAGS=$(CFLAGS) -L$(TOPDIR)/lpc -Wl,-Taltos.ld -n
98

109
ao_serial_lpc.h: $(TOPDIR)/lpc/baud_rate ao_pins.h
1110
nickle $(TOPDIR)/lpc/baud_rate `awk '/AO_LPC_CLKOUT/{print $$3}' ao_pins.h` > $@
1211

1312
ao_serial_lpc.o: ao_serial_lpc.h
14-
15-
.DEFAULT_GOAL=all

0 commit comments

Comments
 (0)