183 lines
No EOL
4.6 KiB
Makefile
183 lines
No EOL
4.6 KiB
Makefile
BOARD=debug
|
|
-include Makefile.user
|
|
include boards/$(BOARD)/board.mk
|
|
CC=arm-none-eabi-gcc
|
|
CXX=arm-none-eabi-g++
|
|
|
|
ifeq ($(DEBUG), 1)
|
|
ENABLE_LOGGING = -DENABLE_LOGGING
|
|
else
|
|
ENABLE_LOGGING =
|
|
endif
|
|
|
|
COMMON_FLAGS = -mthumb -mcpu=cortex-m0plus -Os -g3 -D$(CHIP_FAMILY) -D__$(CHIP_VARIANT)__ -DBOARD_$(BOARD_NAME) $(ENABLE_LOGGING)
|
|
|
|
WFLAGS = \
|
|
-Wall -Werror
|
|
|
|
SFLAGS = $(COMMON_FLAGS) \
|
|
-x assembler-with-cpp -c \
|
|
$(WFLAGS)
|
|
CFLAGS = $(COMMON_FLAGS) \
|
|
-x c -std=gnu99 -c \
|
|
-MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" \
|
|
$(WFLAGS)
|
|
CXXFLAGS = $(COMMON_FLAGS) \
|
|
-ffunction-sections -fdata-sections \
|
|
-fno-rtti -fno-exceptions -c -std=c++11 \
|
|
-MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" \
|
|
$(WFLAGS)
|
|
|
|
LDFLAGS= $(COMMON_FLAGS) \
|
|
-Wall -Werror -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--unresolved-symbols=report-all -Wl,--warn-common \
|
|
-Wl,--warn-section-align -Wl,--warn-unresolved-symbols \
|
|
-save-temps \
|
|
--specs=nano.specs --specs=nosys.specs
|
|
BUILD_PATH=build/$(BOARD)
|
|
|
|
QPPORT = lib/qp/ports/arm-cm/qxk/gnu
|
|
|
|
INCLUDES = -I. -I./include -I./include/USB -I./bsp -I./lib/qp/extras -I./lib/qp/include -I./lib/qp/source -I$(QPPORT)
|
|
INCLUDES += -I./boards/$(BOARD) -Ilib/cmsis/CMSIS/Include
|
|
INCLUDES += -I$(BUILD_PATH)
|
|
|
|
ifeq ($(CHIP_FAMILY), SAMD21)
|
|
INCLUDES += -Ilib/samd21/samd21a/include/
|
|
endif
|
|
|
|
ifeq ($(CHIP_FAMILY), SAMD09)
|
|
INCLUDES += -Ilib/samd09/include/
|
|
endif
|
|
|
|
ifeq ($(CHIP_FAMILY), SAMD10)
|
|
INCLUDES += -Ilib/samd10/include/
|
|
endif
|
|
|
|
SSOURCES = \
|
|
$(QPPORT)/qxk_port.S \
|
|
|
|
ifeq ($(CHIP_FAMILY), SAMD21)
|
|
CSOURCES = Device_Startup/startup_samd21.c \
|
|
Device_Startup/system_samd21.c
|
|
endif
|
|
|
|
ifeq ($(CHIP_FAMILY), SAMD09)
|
|
CSOURCES = Device_Startup/startup_samd09.c \
|
|
Device_Startup/system_samd09.c
|
|
endif
|
|
|
|
ifeq ($(CHIP_FAMILY), SAMD10)
|
|
CSOURCES = Device_Startup/startup_samd10.c \
|
|
Device_Startup/system_samd10.c
|
|
endif
|
|
|
|
COMMON_SRC = \
|
|
lib/qp/source/qep_hsm.cpp \
|
|
lib/qp/source/qep_msm.cpp \
|
|
lib/qp/source/qf_act.cpp \
|
|
lib/qp/source/qf_actq.cpp \
|
|
lib/qp/source/qf_defer.cpp \
|
|
lib/qp/source/qf_dyn.cpp \
|
|
lib/qp/source/qf_mem.cpp \
|
|
lib/qp/source/qf_ps.cpp \
|
|
lib/qp/source/qf_qact.cpp \
|
|
lib/qp/source/qf_qeq.cpp \
|
|
lib/qp/source/qf_qmact.cpp \
|
|
lib/qp/source/qf_time.cpp \
|
|
lib/qp/source/qxk.cpp \
|
|
lib/qp/source/qxk_mutex.cpp \
|
|
lib/qp/source/qxk_sema.cpp \
|
|
lib/qp/source/qxk_xthr.cpp \
|
|
lib/qp/include/qstamp.cpp \
|
|
lib/qp/extras/fw_evt.cpp \
|
|
lib/qp/extras/fw_log.cpp \
|
|
|
|
SOURCES = $(COMMON_SRC) \
|
|
source/bsp.cpp \
|
|
source/event.cpp \
|
|
source/AOADC.cpp \
|
|
source/AODAC.cpp \
|
|
source/AOTouch.cpp \
|
|
source/AOInterrupt.cpp \
|
|
source/AOSERCOM.cpp \
|
|
source/AOTimer.cpp \
|
|
source/dap.cpp \
|
|
source/Delegate.cpp \
|
|
source/I2CSlave.cpp \
|
|
source/SPISlave.cpp \
|
|
source/main.cpp \
|
|
source/Neopixel.cpp \
|
|
source/System.cpp \
|
|
source/AOKeypad.cpp \
|
|
source/AOEncoder.cpp \
|
|
bsp/bsp_adc.cpp \
|
|
bsp/bsp_gpio.cpp \
|
|
bsp/bsp_sercom.cpp \
|
|
bsp/bsp_timer.cpp \
|
|
bsp/bsp_dma.cpp \
|
|
bsp/pinmux.cpp \
|
|
bsp/bsp_neopix.cpp \
|
|
bsp/adafruit_ptc.cpp \
|
|
|
|
ifeq ($(CHIP_FAMILY), SAMD21)
|
|
FULL_SOURCES = $(SOURCES) \
|
|
source/AOUSB.cpp \
|
|
source/USB/CDC.cpp \
|
|
source/USB/USBCore.cpp
|
|
endif
|
|
|
|
ifeq ($(CHIP_FAMILY), SAMD09)
|
|
FULL_SOURCES = $(SOURCES)
|
|
endif
|
|
|
|
ifeq ($(CHIP_FAMILY), SAMD10)
|
|
FULL_SOURCES = $(SOURCES)
|
|
endif
|
|
|
|
SOBJECTS = $(patsubst %.S,$(BUILD_PATH)/%.o,$(SSOURCES))
|
|
COBJECTS = $(patsubst %.c,$(BUILD_PATH)/%.o,$(CSOURCES))
|
|
OBJECTS = $(patsubst %.cpp,$(BUILD_PATH)/%.o,$(FULL_SOURCES))
|
|
|
|
NAME=seesaw-$(BOARD)
|
|
EXECUTABLE=$(BUILD_PATH)/$(NAME).bin
|
|
|
|
all: dirs $(EXECUTABLE)
|
|
|
|
dirs:
|
|
@echo "Building $(BOARD)"
|
|
@python scripts/datecode.py
|
|
-@mkdir -p $(BUILD_PATH)
|
|
-@mkdir -p $(BUILD_PATH)/lib/qp/source
|
|
-@mkdir -p $(BUILD_PATH)/lib/qp/include
|
|
-@mkdir -p $(BUILD_PATH)/lib/qp/extras
|
|
-@mkdir -p $(BUILD_PATH)/lib/qp/ports/arm-cm/qxk/gnu/
|
|
-@mkdir -p $(BUILD_PATH)/source/USB
|
|
-@mkdir -p $(BUILD_PATH)/Device_Startup
|
|
-@mkdir -p $(BUILD_PATH)/bsp
|
|
|
|
$(EXECUTABLE): $(SOBJECTS) $(COBJECTS) $(OBJECTS)
|
|
$(CC) -L$(BUILD_PATH) $(LDFLAGS) \
|
|
-T$(LINKER_SCRIPT) \
|
|
-Wl,-Map,$(BUILD_PATH)/$(NAME).map -o $(BUILD_PATH)/$(NAME).elf $(SOBJECTS) $(COBJECTS) $(OBJECTS)
|
|
arm-none-eabi-objcopy -O binary $(BUILD_PATH)/$(NAME).elf $@
|
|
@echo
|
|
-@arm-none-eabi-size $(BUILD_PATH)/$(NAME).elf
|
|
@echo
|
|
|
|
$(BUILD_PATH)/%.o: %.S $(wildcard include/*.h boards/*/*.h)
|
|
echo "$<"
|
|
$(CC) $(SFLAGS) $(BLD_EXTA_FLAGS) $(INCLUDES) $< -o $@
|
|
|
|
$(BUILD_PATH)/%.o: %.c $(wildcard include/*.h boards/*/*.h)
|
|
echo "$<"
|
|
$(CC) $(CFLAGS) $(BLD_EXTA_FLAGS) $(INCLUDES) $< -o $@
|
|
|
|
$(BUILD_PATH)/%.o: %.cpp $(wildcard include/*.h boards/*/*.h)
|
|
echo "$<"
|
|
$(CXX) $(CXXFLAGS) $(BLD_EXTA_FLAGS) $(INCLUDES) $< -o $@
|
|
|
|
clean:
|
|
rm -rf build
|
|
|
|
all-boards:
|
|
for f in `cd boards; ls` ; do "$(MAKE)" BOARD=$$f ; done
|