Files
Horizon-OC/Source/sys-clk/bpmp/Makefile
souldbminersmwc e1c66815f9 add bpmp basics
2026-03-08 18:13:15 -04:00

54 lines
1.0 KiB
Makefile

# Configuration
PROJECT_NAME = firmware
CPU = arm7tdmi
ARCH = armv4t
OPTIMIZATION = -Ofast
# Toolchain
CC = arm-none-eabi-gcc
OBJCOPY = arm-none-eabi-objcopy
SIZE = arm-none-eabi-size
# Directories
SRC_DIR = src
BUILD_DIR = build
# Source files
SOURCES = $(wildcard $(SRC_DIR)/*.c)
OBJECTS = $(patsubst $(SRC_DIR)/%.c, $(BUILD_DIR)/%.o, $(SOURCES))
# Output files
ELF = $(PROJECT_NAME).elf
BIN = $(PROJECT_NAME).bin
# Compiler flags
CFLAGS = -mcpu=$(CPU) -march=$(ARCH) \
$(OPTIMIZATION) -Wall -ffunction-sections -fdata-sections \
-I$(SRC_DIR)
# Linker flags
LDFLAGS = -mcpu=$(CPU) -march=$(ARCH) \
-T linker.ld -Wl,--gc-sections
# Targets
.PHONY: all clean
all: $(BIN)
@echo "✓ Built: $(BIN)"
@$(SIZE) $(ELF)
$(BIN): $(ELF)
@$(OBJCOPY) -O binary $(ELF) $(BIN)
$(ELF): $(OBJECTS)
@echo "Linking..."
@$(CC) $(LDFLAGS) $(OBJECTS) -o $(ELF)
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.c
@mkdir -p $(BUILD_DIR)
@echo "Compiling: $<"
@$(CC) $(CFLAGS) -c $< -o $@
clean:
@rm -rf $(BUILD_DIR) $(ELF) $(BIN)
@echo "✓ Cleaned"