Files
gps/soc/software/bootrom_gps_mmio_double_read/Makefile
T

57 lines
1.7 KiB
Makefile

REPO_DIR ?= $(abspath ../../..)
include $(REPO_DIR)/tools/project.mk
CC := $(CROSS)gcc
OBJCOPY := $(CROSS)objcopy
OBJDUMP := $(CROSS)objdump
SIZE := $(CROSS)size
BUILD_DIR ?= build
TARGET := bootrom_gps_mmio_double_read
BSP_DIR := ../bsp
MARCH ?= rv64imafdc_zicsr_zifencei
MABI ?= lp64d
BSP_DTIM_BASE ?= 0x80000000
BSP_DTIM_SIZE ?= 0x00100000
CFLAGS := -march=$(MARCH) -mabi=$(MABI) -mcmodel=medany -Os -ffreestanding -fno-builtin -fno-common -Wall -Wextra -I$(BSP_DIR)/include -DBSP_DTIM_BASE=$(BSP_DTIM_BASE)UL -DBSP_DTIM_SIZE=$(BSP_DTIM_SIZE)UL
LDFLAGS := -T ../bootloader/linker.ld -nostdlib -static -Wl,--gc-sections -Wl,--defsym=__dtim_base=$(BSP_DTIM_BASE) -Wl,--defsym=__dtim_size=$(BSP_DTIM_SIZE) -Wl,-Map,$(BUILD_DIR)/$(TARGET).map
OBJS := \
$(BUILD_DIR)/bootloader_start.S.o \
$(BUILD_DIR)/bsp_init.c.o \
$(BUILD_DIR)/bsp_uart.c.o \
$(BUILD_DIR)/main.c.o
.PHONY: all clean
all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).img $(BUILD_DIR)/$(TARGET).dump
$(SIZE) $(BUILD_DIR)/$(TARGET).elf
$(BUILD_DIR):
mkdir -p $@
$(BUILD_DIR)/bootloader_start.S.o: ../bootloader/start.S | $(BUILD_DIR)
$(CC) $(CFLAGS) -c $< -o $@
$(BUILD_DIR)/bsp_init.c.o: $(BSP_DIR)/drivers/init.c | $(BUILD_DIR)
$(CC) $(CFLAGS) -c $< -o $@
$(BUILD_DIR)/bsp_uart.c.o: $(BSP_DIR)/drivers/uart.c | $(BUILD_DIR)
$(CC) $(CFLAGS) -c $< -o $@
$(BUILD_DIR)/main.c.o: main.c | $(BUILD_DIR)
$(CC) $(CFLAGS) -c $< -o $@
$(BUILD_DIR)/$(TARGET).elf: $(OBJS) ../bootloader/linker.ld
$(CC) $(CFLAGS) $(OBJS) $(LDFLAGS) -lgcc -o $@
$(BUILD_DIR)/$(TARGET).img: $(BUILD_DIR)/$(TARGET).elf
$(OBJCOPY) -O binary $< $@
$(BUILD_DIR)/$(TARGET).dump: $(BUILD_DIR)/$(TARGET).elf
$(OBJDUMP) -d -S $< > $@
clean:
rm -rf $(BUILD_DIR)