summaryrefslogtreecommitdiff
path: root/Makefile
blob: b35b1446d06c1dfd1e96953679daf06183643e61 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
PROG=altos
CC=sdcc
NO_OPT=--nogcse --noinvariant --noinduction --nojtbound --noloopreverse \
	--nolabelopt --nooverlay --peep-asm
DEBUG=--debug

CFLAGS=--model-small $(DEBUG) --less-pedantic --opt-code-speed

LDFLAGS=--out-fmt-ihx
LDFLAGS_FLASH=$(LDFLAGS) --code-loc 0x0000 --code-size 0x8000 \
	--xram-loc 0xf000 --xram-size 0xf00 --iram-size 0xff

INC = \
	ao.h \
	cc1111.h \
	altitude.h

SRC = \
	ao_adc.c \
	ao_beep.c \
	ao_cmd.c \
	ao_convert.c \
	ao_dbg.c \
	ao_dma.c \
	ao_ee.c \
	ao_flight.c \
	ao_gps.c \
	ao_led.c \
	ao_log.c \
	ao_mutex.c \
	ao_panic.c \
	ao_report.c \
	ao_serial.c \
	ao_task.c \
	ao_timer.c \
	ao_usb.c \
	ao_main.c \
	_bp.c
	
ADB=$(SRC:.c=.adb)
ASM=$(SRC:.c=.asm)
LNK=$(SRC:.c=.lnk)
LST=$(SRC:.c=.lst)
REL=$(SRC:.c=.rel)
RST=$(SRC:.c=.rst)
SYM=$(SRC:.c=.sym)

PROGS=$(PROG).ihx
PCDB=$(PROGS:.ihx=.cdb)
PLNK=$(PROGS:.ihx=.lnk)
PMAP=$(PROGS:.ihx=.map)
PMEM=$(PROGS:.ihx=.mem)
PAOM=$(PROGS:.ihx=)

%.rel : %.c $(INC)
	$(CC) -c $(CFLAGS) -o$*.rel $*.c

all: $(PROGS)

$(PROG).ihx: $(REL) Makefile
	$(CC) $(LDFLAGS_FLASH) $(CFLAGS) -o $(PROG).ihx $(REL)
	sh check-stack ao.h $(PROG).mem

altitude.h: make-altitude
	nickle make-altitude > altitude.h

clean:
	rm -f $(ADB) $(ASM) $(LNK) $(LST) $(REL) $(RST) $(SYM)
	rm -f $(PROGS) $(PCDB) $(PLNK) $(PMAP) $(PMEM) $(PAOM)

install: