b35b1446d06c1dfd1e96953679daf06183643e61
[fw/altos] / Makefile
1 PROG=altos
2 CC=sdcc
3 NO_OPT=--nogcse --noinvariant --noinduction --nojtbound --noloopreverse \
4         --nolabelopt --nooverlay --peep-asm
5 DEBUG=--debug
6
7 CFLAGS=--model-small $(DEBUG) --less-pedantic --opt-code-speed
8
9 LDFLAGS=--out-fmt-ihx
10 LDFLAGS_FLASH=$(LDFLAGS) --code-loc 0x0000 --code-size 0x8000 \
11         --xram-loc 0xf000 --xram-size 0xf00 --iram-size 0xff
12
13 INC = \
14         ao.h \
15         cc1111.h \
16         altitude.h
17
18 SRC = \
19         ao_adc.c \
20         ao_beep.c \
21         ao_cmd.c \
22         ao_convert.c \
23         ao_dbg.c \
24         ao_dma.c \
25         ao_ee.c \
26         ao_flight.c \
27         ao_gps.c \
28         ao_led.c \
29         ao_log.c \
30         ao_mutex.c \
31         ao_panic.c \
32         ao_report.c \
33         ao_serial.c \
34         ao_task.c \
35         ao_timer.c \
36         ao_usb.c \
37         ao_main.c \
38         _bp.c
39         
40 ADB=$(SRC:.c=.adb)
41 ASM=$(SRC:.c=.asm)
42 LNK=$(SRC:.c=.lnk)
43 LST=$(SRC:.c=.lst)
44 REL=$(SRC:.c=.rel)
45 RST=$(SRC:.c=.rst)
46 SYM=$(SRC:.c=.sym)
47
48 PROGS=$(PROG).ihx
49 PCDB=$(PROGS:.ihx=.cdb)
50 PLNK=$(PROGS:.ihx=.lnk)
51 PMAP=$(PROGS:.ihx=.map)
52 PMEM=$(PROGS:.ihx=.mem)
53 PAOM=$(PROGS:.ihx=)
54
55 %.rel : %.c $(INC)
56         $(CC) -c $(CFLAGS) -o$*.rel $*.c
57
58 all: $(PROGS)
59
60 $(PROG).ihx: $(REL) Makefile
61         $(CC) $(LDFLAGS_FLASH) $(CFLAGS) -o $(PROG).ihx $(REL)
62         sh check-stack ao.h $(PROG).mem
63
64 altitude.h: make-altitude
65         nickle make-altitude > altitude.h
66
67 clean:
68         rm -f $(ADB) $(ASM) $(LNK) $(LST) $(REL) $(RST) $(SYM)
69         rm -f $(PROGS) $(PCDB) $(PLNK) $(PMAP) $(PMEM) $(PAOM)
70
71 install: