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 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
vpath % $(TOPDIR)/stm:$(TOPDIR)/product:$(TOPDIR)/drivers:$(TOPDIR)/kernel:$(TOPDIR)/util:$(TOPDIR)
vpath ao-make-product.5c $(TOPDIR)/util
.SUFFIXES: .elf .ihx
.elf.ihx:
objcopy -O ihex $*.elf $@
ifndef VERSION
include $(TOPDIR)/Version
endif
include $(TOPDIR)/Makedefs
CC=$(ARM_CC)
LIBS=$(PDCLIB_LIBS_M3) -lgcc
AO_CFLAGS=-I. -I$(TOPDIR)/stm -I$(TOPDIR)/kernel -I$(TOPDIR)/drivers -I$(TOPDIR)/product -I$(TOPDIR) $(PDCLIB_INCLUDES)
STM_CFLAGS=-std=gnu99 -mlittle-endian -mcpu=cortex-m3 -mthumb -ffreestanding -nostdlib $(AO_CFLAGS) $(SAT_CFLAGS)
LDFLAGS=-L$(TOPDIR)/stm -Wl,-Taltos-loader.ld
NICKLE=nickle
V=0
# The user has explicitly enabled quiet compilation.
ifeq ($(V),0)
quiet = @printf " $1 $2 $@\n"; $($1)
endif
# Otherwise, print the full command line.
quiet ?= $($1)
.c.o:
$(call quiet,CC) -c $(CFLAGS) -o $@ $<
INC = \
ao.h \
ao_arch.h \
ao_arch_funcs.h \
ao_flash_pins.h \
ao_flash_stm_pins.h \
ao_flash_task.h \
ao_pins.h \
ao_product.h \
Makefile
#
# Common AltOS sources
#
SRC = \
ao_interrupt.c \
ao_romconfig.c \
ao_boot_chain.c \
ao_boot_pin.c \
ao_product.c \
ao_notask.c \
ao_timer.c \
ao_usb_stm.c \
ao_flash_stm.c \
ao_flash_task.c \
ao_flash_loader_stm.c
OBJ=$(SRC:.c=.o)
PRODUCT=AltosFlash
PRODUCT_DEF=-DALTOS_FLASH
IDPRODUCT=0x000a
CFLAGS = $(PRODUCT_DEF) $(STM_CFLAGS) -g -Os
PROGNAME=altos-flash
PROG=$(HARDWARE)-$(PROGNAME)-$(VERSION).elf
$(PROG): Makefile $(OBJ) altos-loader.ld
$(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ) $(LIBS)
ao_product.h: ao-make-product.5c $(TOPDIR)/Version
$(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
$(OBJ): $(INC)
all: $(PROG)
distclean: clean
clean:
rm -f *.o $(HARDWARE)-$(PROGNAME)-*.elf
rm -f ao_product.h
install:
uninstall:
|