Merge remote-tracking branch 'origin/master'
[fw/altos] / src / lpc / Makefile-flash.defs
1 vpath % $(TOPDIR)/lpc:$(TOPDIR)/product:$(TOPDIR)/drivers:$(TOPDIR)/core:$(TOPDIR)/util:$(TOPDIR)
2 vpath ao-make-product.5c $(TOPDIR)/util
3
4 .SUFFIXES: .elf .ihx
5
6 .elf.ihx:
7         objcopy -O ihex $*.elf $@
8
9
10 ifndef VERSION
11 include $(TOPDIR)/Version
12 endif
13 include $(TOPDIR)/Makedefs
14
15 CC=$(ARM_CC)
16 SAT=/opt/cortex
17 SAT_CLIB=$(SAT)/lib/pdclib-cortex-m0.a
18 SAT_CFLAGS=-I$(SAT)/include
19
20 AO_CFLAGS=-I. -I$(TOPDIR)/lpc -I$(TOPDIR)/core -I$(TOPDIR)/drivers -I$(TOPDIR)/product -I$(TOPDIR)
21 STM_CFLAGS=-std=gnu99 -mlittle-endian -mcpu=cortex-m0 -mthumb -ffreestanding -nostdlib $(AO_CFLAGS) $(SAT_CFLAGS)
22
23 LDFLAGS=-L$(TOPDIR)/lpc -Wl,-Taltos-loader.ld
24
25 NICKLE=nickle
26
27 V=0
28 # The user has explicitly enabled quiet compilation.
29 ifeq ($(V),0)
30 quiet = @printf "  $1 $2 $@\n"; $($1)
31 endif
32 # Otherwise, print the full command line.
33 quiet ?= $($1)
34
35 .c.o:
36         $(call quiet,CC) -c $(CFLAGS) -o $@ $<
37
38 INC = \
39         ao.h \
40         ao_arch.h \
41         ao_arch_funcs.h \
42         ao_flash_pins.h \
43         ao_flash_lpc_pins.h \
44         ao_flash_task.h \
45         ao_pins.h \
46         ao_product.h \
47         Makefile
48
49 #
50 # Common AltOS sources
51 #
52 SRC = \
53         ao_interrupt.c \
54         ao_romconfig.c \
55         ao_boot_chain.c \
56         ao_boot_pin.c \
57         ao_product.c \
58         ao_notask.c \
59         ao_timer_lpc.c \
60         ao_usb_lpc.c \
61         ao_flash_lpc.c \
62         ao_flash_task.c \
63         ao_flash_loader_lpc.c
64
65 OBJ=$(SRC:.c=.o)
66
67 PRODUCT=AltosFlash-$(VERSION)
68 PRODUCT_DEF=-DALTOS_FLASH
69 IDPRODUCT=0x000a
70
71 CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) -g -Os
72
73 PROGNAME=altos-flash
74 PROG=$(HARDWARE)-$(PROGNAME)-$(VERSION).elf
75
76 $(PROG): Makefile $(OBJ) altos-loader.ld
77         $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(SAT_CLIB) -lgcc
78
79 ao_product.h: ao-make-product.5c $(TOPDIR)/Version
80         $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
81
82 $(OBJ): $(INC)
83
84 all: $(PROG)
85
86 distclean:      clean
87
88 clean:
89         rm -f *.o $(PROG)
90         rm -f ao_product.h
91
92 install:
93
94 uninstall: