rp2040/project.build

60 lines
1.7 KiB
Plaintext

ifndef VERBOSE
MAKEFLAGS += --no-print-directory
endif
CFLAGS += -mcpu=cortex-m0plus
CFLAGS += -mthumb
CFLAGS += -g3
CFLAGS += -O2
CFLAGS += -Wall
CFLAGS += -ffunction-sections
CFLAGS += -fdata-sections
LDFLAGS += -mcpu=cortex-m0plus
LDFLAGS += -mthumb
LDFLAGS += -g3
LDFLAGS += -O2
LDFLAGS += -Wall
LDFLAGS += -Wl,--gc-sections
LDFLAGS += -nostartfiles
LDFLAGS += -T$(SDK_BASE_DIR)/ram.ld
LDFLAGS += -Wl,-Map=$(EXAMPLE_NAME).map
LDFLAGS += -Wl,--print-memory-usage
CMAKE := cmake
# The command to remove a file.
RM = $(CMAKE) -E remove_directory
COMX ?=COM1
BAUDRATE ?=2000000
# cmake definition config
# toolchain
cmake_definition+= -DCMAKE_C_COMPILER=$(CROSS_COMPILE)gcc
cmake_definition+= -DCMAKE_CXX_COMPILER=$(CROSS_COMPILE)g++
cmake_definition+= -DCMAKE_ASM_COMPILER=$(CROSS_COMPILE)gcc
cmake_definition+= -DCMAKE_LINKER=$(CROSS_COMPILE)ld
cmake_definition+= -DCMAKE_OBJCOPY=$(CROSS_COMPILE)objcopy
cmake_definition+= -DCMAKE_OBJDUMP=$(CROSS_COMPILE)objdump
cmake_definition+= -DCMAKE_AR=$(CROSS_COMPILE)ar
cmake_definition+= -DCMAKE_RANLIB=$(CROSS_COMPILE)ranlib
cmake_definition+= -DCMAKE_C_FLAGS="$(CFLAGS)"
cmake_definition+= -DCMAKE_CXX_FLAGS="$(CFLAGS)"
cmake_definition+= -DCMAKE_EXE_LINKER_FLAGS="$(LDFLAGS)"
cmake_definition+= -DCONFIG_COMX=$(COMX)
cmake_definition+= -DSDK_BASE_DIR=$(SDK_BASE_DIR)
cmake_definition+= -DEXAMPLE_NAME=$(EXAMPLE_NAME)
build:Makefile
$(CMAKE) -S . -B build -G "Unix Makefiles" $(cmake_definition)
$(MAKE) -C build -j
$(CROSS_COMPILE)objcopy -O binary $(EXAMPLE_BASE_DIR)/build/$(EXAMPLE_NAME).elf $(EXAMPLE_BASE_DIR)/build/$(EXAMPLE_NAME).bin
$(CROSS_COMPILE)objdump -d -S $(EXAMPLE_BASE_DIR)/build/$(EXAMPLE_NAME).elf > $(EXAMPLE_BASE_DIR)/build/$(EXAMPLE_NAME).asm
clean::
$(RM) build
.PHONY:build clean