Initial AltOS import
[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-large $(DEBUG) --less-pedantic \
8         --no-peep --int-long-reent --float-reent \
9
10 LDFLAGS=--out-fmt-ihx
11 LDFLAGS_RAM=$(LDFLAGS) --code-loc 0xf000 --code-size 0x800 \
12         --xram-loc 0xf800 --xram-size 0x700 --iram-size 0xff
13
14
15 LDFLAGS_FLASH=$(LDFLAGS) --code-loc 0x0000 --code-size 0x8000 \
16         --xram-loc 0xf000 --xram-size 0xf00 --iram-size 0xff
17
18 INC = \
19         ao.h \
20         cc1111.h
21
22 SRC = \
23         ao_task.c \
24         ao_panic.c \
25         ao_test.c \
26         _bp.c
27         
28 ADB=$(SRC:.c=.adb)
29 ASM=$(SRC:.c=.asm)
30 LNK=$(SRC:.c=.lnk)
31 LST=$(SRC:.c=.lst)
32 REL=$(SRC:.c=.rel)
33 RST=$(SRC:.c=.rst)
34 SYM=$(SRC:.c=.sym)
35
36 PROGS=$(PROG)-flash.ihx $(PROG)-ram.ihx
37 PCDB=$(PROGS:.ihx=.cdb)
38 PLNK=$(PROGS:.ihx=.lnk)
39 PMAP=$(PROGS:.ihx=.map)
40 PMEM=$(PROGS:.ihx=.mem)
41 PAOM=$(PROGS:.ihx=)
42
43 %.rel : %.c $(INC)
44         $(CC) -c $(CFLAGS) -o$*.rel $*.c
45
46 all: $(PROGS)
47
48 $(PROG)-ram.ihx: $(REL) Makefile
49         $(CC) $(LDFLAGS_RAM) $(CFLAGS) -o $(PROG)-ram.ihx $(REL)
50         $(CC) $(LDFLAGS_FLASH) $(CFLAGS) -o $(PROG)-flash.ihx $(REL)
51         sh check-stack ao.h $(PROG)-flash.mem
52
53 $(PROG)-flash.ihx: $(PROG)-ram.ihx
54
55 clean:
56         rm -f $(ADB) $(ASM) $(LNK) $(LST) $(REL) $(RST) $(SYM)
57         rm -f $(PROGS) $(PCDB) $(PLNK) $(PMAP) $(PMEM) $(PAOM)
58
59 install: