2014-03-02 16:11:04 +01:00
|
|
|
CC = arm-none-eabi-gcc
|
2014-03-11 16:17:05 +01:00
|
|
|
LINK = arm-none-eabi-gcc
|
|
|
|
AS = arm-none-eabi-as
|
2014-03-02 16:11:04 +01:00
|
|
|
OBJCOPY = arm-none-eabi-objcopy
|
|
|
|
CTRULIB = "../libctru"
|
2014-03-11 16:17:05 +01:00
|
|
|
AEMSTROPATH = "../../aemstro"
|
2014-03-02 16:11:04 +01:00
|
|
|
CFLAGS += -Wall -std=c99 -march=armv6 -O3 -I"$(CTRULIB)/include" -I$(DEVKITPRO)/libnds/include
|
2014-03-11 16:17:05 +01:00
|
|
|
# LDFLAGS += --script=ccd00.ld -L"$(DEVKITARM)/arm-none-eabi/lib" -L"$(DEVKITARM)/lib/gcc/arm-none-eabi/4.7.1" -L"$(CTRULIB)/lib"
|
|
|
|
# LDFLAGS += --script=ccd00.ld -L"$(DEVKITARM)/arm-none-eabi/lib" -L"$(CTRULIB)/lib"
|
|
|
|
LDFLAGS += -nostartfiles --specs=ccd00.specs -L"$(DEVKITARM)/arm-none-eabi/lib" -L"$(CTRULIB)/lib"
|
2014-03-02 16:11:04 +01:00
|
|
|
|
|
|
|
CFILES = $(wildcard source/*.c)
|
2014-03-11 16:17:05 +01:00
|
|
|
VSHFILES = $(wildcard source/*.vsh)
|
|
|
|
VSHBINFILES = $(VSHFILES:source/%.vsh=data/%.vsh.bin)
|
|
|
|
BINFILES = $(wildcard data/*.bin)
|
|
|
|
BINFILES += $(VSHBINFILES)
|
|
|
|
OFILES = $(BINFILES:data/%.bin=build/%.bin.o)
|
|
|
|
OFILES += $(CFILES:source/%.c=build/%.o)
|
2014-03-02 16:11:04 +01:00
|
|
|
DFILES = $(CFILES:source/%.c=build/%.d)
|
|
|
|
SFILES = $(wildcard source/*.s)
|
|
|
|
OFILES += $(SFILES:source/%.s=build/%.o)
|
|
|
|
PROJECTNAME = ${shell basename "$(CURDIR)"}
|
|
|
|
|
2014-03-11 16:17:05 +01:00
|
|
|
#---------------------------------------------------------------------------------
|
|
|
|
# canned command sequence for binary data, taken from devkitARM
|
|
|
|
#---------------------------------------------------------------------------------
|
|
|
|
define bin2o
|
|
|
|
bin2s $< | $(AS) -o $(@)
|
|
|
|
echo "extern const u8" `(echo $(<F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`"_end[];" > source/`(echo $(<F) | tr . _)`.h
|
|
|
|
echo "extern const u8" `(echo $(<F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`"[];" >> source/`(echo $(<F) | tr . _)`.h
|
|
|
|
echo "extern const u32" `(echo $(<F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`_size";" >> source/`(echo $(<F) | tr . _)`.h
|
|
|
|
endef
|
|
|
|
|
2014-03-02 16:11:04 +01:00
|
|
|
.PHONY:=all dir
|
|
|
|
|
|
|
|
all: dir $(PROJECTNAME).bin
|
|
|
|
|
|
|
|
dir:
|
|
|
|
@mkdir -p build
|
2014-03-11 16:17:05 +01:00
|
|
|
@mkdir -p data
|
2014-03-02 16:11:04 +01:00
|
|
|
|
|
|
|
$(PROJECTNAME).bin: $(PROJECTNAME).elf
|
|
|
|
$(OBJCOPY) -O binary $< $@
|
|
|
|
|
2014-03-11 16:17:05 +01:00
|
|
|
$(PROJECTNAME).elf: $(VSHBINFILES) $(OFILES)
|
|
|
|
# $(LINK) $(LDFLAGS) -o $(PROJECTNAME).elf $(filter-out build/crt0.o, $(OFILES)) -lctru -lc -lgcc
|
|
|
|
$(LINK) $(LDFLAGS) -o $(PROJECTNAME).elf $(filter-out build/crt0.o, $(OFILES)) -g -lctru -lm -lc -lg
|
2014-03-02 16:11:04 +01:00
|
|
|
|
|
|
|
clean:
|
|
|
|
@rm -f build/*.o build/*.d
|
|
|
|
@rm -f $(PROJECTNAME).elf $(PROJECTNAME).bin
|
|
|
|
@echo "all cleaned up !"
|
|
|
|
|
|
|
|
-include $(DFILES)
|
|
|
|
|
2014-03-11 16:17:05 +01:00
|
|
|
data/%.vsh.bin: source/%.vsh
|
|
|
|
@python $(AEMSTROPATH)/aemstro_as.py $< $@
|
|
|
|
|
2014-03-02 16:11:04 +01:00
|
|
|
build/%.o: source/%.c
|
|
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
@$(CC) -MM $< > build/$*.d
|
|
|
|
|
|
|
|
build/%.o: source/%.s
|
|
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
@$(CC) -MM $< > build/$*.d
|
2014-03-11 16:17:05 +01:00
|
|
|
|
|
|
|
build/%.bin.o: data/%.bin
|
|
|
|
@echo $(notdir $<)
|
|
|
|
@$(bin2o)
|