Implement elfloader/module support
This commit is contained in:
23
Makefile
23
Makefile
@@ -6,7 +6,9 @@ include $(DEVKITARM)/base_rules
|
||||
|
||||
TARGET := ipl
|
||||
BUILD := build_ipl
|
||||
OUTPUT := output
|
||||
SOURCEDIR := ipl
|
||||
|
||||
OBJS = $(addprefix $(BUILD)/, \
|
||||
start.o \
|
||||
main.o \
|
||||
@@ -43,27 +45,34 @@ OBJS = $(addprefix $(BUILD)/, \
|
||||
uart.o \
|
||||
ini.o \
|
||||
)
|
||||
|
||||
OBJS += $(addprefix $(BUILD)/, diskio.o ff.o ffunicode.o ffsystem.o)
|
||||
OBJS += $(addprefix $(BUILD)/elfloader/, elfload.o elfreloc_arm.o)
|
||||
|
||||
ARCH := -march=armv4t -mtune=arm7tdmi -mthumb -mthumb-interwork
|
||||
CUSTOMDEFINES := -DMENU_LOGO_ENABLE
|
||||
CUSTOMDEFINES := -DMENU_LOGO_ENABLE #-DDEBUG
|
||||
CFLAGS = $(ARCH) -O2 -nostdlib -ffunction-sections -fdata-sections -fomit-frame-pointer -fno-inline -std=gnu11 -Wall $(CUSTOMDEFINES)
|
||||
LDFLAGS = $(ARCH) -nostartfiles -lgcc -Wl,--nmagic,--gc-sections
|
||||
|
||||
.PHONY: all clean
|
||||
MODULEDIRS := $(wildcard modules/*)
|
||||
|
||||
.PHONY: all clean $(MODULEDIRS)
|
||||
|
||||
all: $(TARGET).bin
|
||||
@echo -n "Payload size is "
|
||||
@wc -c < $(TARGET).bin
|
||||
@wc -c < $(OUTPUT)/$(TARGET).bin
|
||||
@echo "Max size is 126296 Bytes."
|
||||
|
||||
clean:
|
||||
@rm -rf $(OBJS)
|
||||
@rm -rf $(BUILD)
|
||||
@rm -rf $(TARGET).bin
|
||||
@rm -rf $(OUTPUT)
|
||||
|
||||
$(TARGET).bin: $(BUILD)/$(TARGET).elf
|
||||
$(OBJCOPY) -S -O binary $< $@
|
||||
$(MODULEDIRS):
|
||||
$(MAKE) -C $@ $(MAKECMDGOALS)
|
||||
|
||||
$(TARGET).bin: $(BUILD)/$(TARGET).elf $(MODULEDIRS)
|
||||
$(OBJCOPY) -S -O binary $< $(OUTPUT)/$@
|
||||
|
||||
$(BUILD)/$(TARGET).elf: $(OBJS)
|
||||
$(CC) $(LDFLAGS) -T ipl/link.ld $^ -o $@
|
||||
@@ -73,4 +82,6 @@ $(BUILD)/%.o: $(SOURCEDIR)/%.c
|
||||
|
||||
$(BUILD)/%.o: $(SOURCEDIR)/%.S
|
||||
@mkdir -p "$(BUILD)"
|
||||
@mkdir -p "$(BUILD)/elfloader"
|
||||
@mkdir -p "$(OUTPUT)"
|
||||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
|
||||
Reference in New Issue
Block a user