56 lines
1.2 KiB
Makefile
56 lines
1.2 KiB
Makefile
LIBNAME = ../usbstack
|
|
APPNAME = main
|
|
|
|
# Tool definitions
|
|
CC = arm-elf-gcc
|
|
LD = arm-elf-ld -v
|
|
AR = arm-elf-ar
|
|
AS = arm-elf-as
|
|
CP = arm-elf-objcopy
|
|
OD = arm-elf-objdump
|
|
RM = rm
|
|
|
|
# Tool flags
|
|
CFLAGS = -I./ -I../ -c -W -Wall -Os -g -DDEBUG -mcpu=arm7tdmi
|
|
ASFLAGS = -ahls -mapcs-32 -o crt.o
|
|
LFLAGS = -nostartfiles --warn-common
|
|
CPFLAGS = -O ihex
|
|
ODFLAGS = -x --syms
|
|
|
|
LINKFILE = lpc2148-rom.ld
|
|
|
|
CSRCS = startup.c printf.c console.c
|
|
OBJS = crt.o $(CSRCS:.c=.o)
|
|
|
|
EXAMPLES = custom
|
|
|
|
all: depend $(EXAMPLES)
|
|
|
|
custom: $(OBJS) main_custom.o $(LIBNAME).a
|
|
|
|
$(EXAMPLES):
|
|
@ echo "Building $@ example..."
|
|
$(CC) -T $(LINKFILE) $(LFLAGS) $^ -o $@.elf -Wl,-Map,$@.map
|
|
$(CP) $(CPFLAGS) $@.elf $@.hex
|
|
$(CP) -O binary $@.elf $@.bin
|
|
$(OD) $(ODFLAGS) $@.elf > $@.dmp
|
|
crt.o: crt.s
|
|
@ echo ".assembling"
|
|
$(CC) -c $(AFLAGS) -Wa,-ahlms=crt.lst crt.s -o crt.o
|
|
|
|
clean:
|
|
rm -f *.hex *.elf *.o *.lst *.dmp *.map .depend
|
|
|
|
# recompile if the Makefile changes
|
|
$(OBJS): Makefile
|
|
|
|
# dependency checking
|
|
depend: $(CSRCS)
|
|
$(CC) $(CFLAGS) -MM $^ > .depend || rm -f .depend
|
|
|
|
# phony targets
|
|
.PHONY: clean
|
|
|
|
-include .depend
|
|
|