74 lines
1.3 KiB
Makefile
74 lines
1.3 KiB
Makefile
include makefile.conf
|
|
|
|
NAME = main
|
|
TARGET = $(NAME).elf
|
|
|
|
#VPATH=
|
|
|
|
OBJDIR = obj
|
|
OUTDIR = bin
|
|
|
|
LDSCRIPTS = -L. -L$(BASE)/ldscripts -T gcc.ld
|
|
|
|
DEFINE = -D __NO_SYSTEM_INIT
|
|
|
|
#ASFLAGS=
|
|
#CFLAGS = -std=c99 -Og -g -Wall -ffreestanding
|
|
LDFLAGS=-nostdlib $(ARCH_FLAGS) $(USE_SEMIHOST) $(LDSCRIPTS) $(DEFINE) $(DI) $(MAP)
|
|
|
|
SOURCES = $(wildcard *.s *.S *.c)
|
|
HEADERS = $(wildcard *.h)
|
|
#SOURCES = main.s
|
|
|
|
OBJECTS = $(SOURCES)
|
|
OBJECTS := $(SOURCES:%.s=%.o)
|
|
OBJECTS := $(OBJECTS:%.S=%.o)
|
|
OBJECTS := $(OBJECTS:%.c=%.o)
|
|
|
|
all: build
|
|
|
|
build: $(NAME).elf $(NAME).hex size
|
|
|
|
envmake:
|
|
@echo VARIABLES:
|
|
@echo SHELL: $(SHELL)
|
|
@echo STARTUP: $(STARTUP)
|
|
@echo CFLAGS: $(CFLAGS)
|
|
@echo CXXFLAGS: $(CXXFLAGS)
|
|
@echo LDFLAGS: $(LDFLAGS)
|
|
@echo OBJECTS: $(OBJECTS)
|
|
|
|
$(TARGET): $(SOURCES) $(STARTUP)
|
|
$(LINK.s) $^ $(LDLIBS) -o $@
|
|
|
|
#$(TARGET): $(OBJECTS) $(STARTUP)
|
|
# $(LINK.o) $^ $(LDLIBS) -o $@
|
|
|
|
# This pattern rule extract binary from an ELF executable
|
|
# filename.bin is built from filename.elf
|
|
%.bin: %.elf
|
|
$(OBJCOPY) $< -O binary $@
|
|
|
|
# Produce firmware file in Intel Hex format
|
|
%.hex: %.elf
|
|
$(OBJCOPY) $< -O ihex $@
|
|
|
|
# Disassemble
|
|
%.lst: %.elf
|
|
$(OBJDUMP) -d $< > $@
|
|
|
|
#.PHONY: build
|
|
|
|
size:
|
|
# @echo Size: $(TARGET)
|
|
@$(SIZE) $(TARGET)
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
$(RM) $(TARGET) *.o *.elf *.bin *.hex *.map *.lst
|
|
|
|
#.SUFFIXES:
|
|
#.SUFFIXES: .s .S .c .o .elf .bin .hex .ln
|
|
|
|
#.DEFAULT_TARGET: all
|