forked from Mirror/GodMode9
This commit adds an edited README.md to be built into GM9 as user guide. The scrubbed parts include refs to the GM9 banner, unused MarkDown and the whole "How to build this / developer info" block. Links have been replaced with their corresponding anchor text, when replacing them could be done without altering the sentences' original meaning. Certain parts have been further altered, such as the "License" paragraph, which now includes the full link to GM9's "license.txt".
93 lines
3.0 KiB
Makefile
93 lines
3.0 KiB
Makefile
|
|
ifeq ($(strip $(DEVKITARM)),)
|
|
$(error "Please set DEVKITARM in your environment. export DEVKITARM=<path to>devkitARM")
|
|
endif
|
|
|
|
include $(DEVKITARM)/base_tools
|
|
include Makefile.common
|
|
|
|
# Base definitions
|
|
export VERSION := $(shell git describe --tags --abbrev=8)
|
|
export DBUILTS := $(shell date +'%Y%m%d%H%M%S')
|
|
export DBUILTL := $(shell date +'%Y-%m-%d %H:%M:%S')
|
|
|
|
export OUTDIR := output
|
|
export RELDIR := release
|
|
|
|
# Definitions for initial RAM disk
|
|
VRAM_OUT := $(OUTDIR)/vram0.tar
|
|
VRAM_DATA := data
|
|
VRAM_FLAGS := --make-new --path-limit 99 --size-limit 3145728
|
|
|
|
ifeq ($(OS),Windows_NT)
|
|
PY3 := py -3
|
|
else
|
|
PY3 := python3
|
|
endif
|
|
|
|
# Definitions for ARM binaries
|
|
export INCLUDE := -I"$(shell pwd)/common"
|
|
|
|
export ASFLAGS := -g -x assembler-with-cpp $(INCLUDE)
|
|
export CFLAGS := -DDBUILTS="\"$(DBUILTS)\"" -DDBUILTL="\"$(DBUILTL)\"" -DVERSION="\"$(VERSION)\"" -DFLAVOR="\"$(FLAVOR)\"" \
|
|
-g -O2 -Wall -Wextra -Wpedantic -Wcast-align -Wformat=2 -Wno-main \
|
|
-fomit-frame-pointer -ffast-math -std=gnu11 \
|
|
-Wno-unused-function -Wno-format-truncation $(INCLUDE) -ffunction-sections -fdata-sections
|
|
export LDFLAGS := -Tlink.ld -nostartfiles -Wl,--gc-sections,-z,max-page-size=512
|
|
ELF := arm9/arm9.elf arm11/arm11.elf
|
|
|
|
.PHONY: all firm vram0 elf release clean
|
|
all: firm
|
|
|
|
clean:
|
|
@set -e; for elf in $(ELF); do \
|
|
$(MAKE) --no-print-directory -C $$(dirname $$elf) clean; \
|
|
done
|
|
@rm -rf $(OUTDIR) $(RELDIR) $(FIRM) $(FIRMD) $(VRAM_OUT)
|
|
|
|
release: clean
|
|
@$(MAKE) --no-print-directory firm
|
|
@$(MAKE) --no-print-directory firm NTRBOOT=1
|
|
|
|
@mkdir -p $(RELDIR)
|
|
@mkdir -p $(RELDIR)/ntrboot
|
|
@mkdir -p $(RELDIR)/elf
|
|
|
|
@cp $(FIRM) $(RELDIR)
|
|
@cp $(OUTDIR)/$(FLAVOR)_ntr.firm $(RELDIR)/ntrboot/
|
|
@cp $(OUTDIR)/$(FLAVOR)_ntr.firm.sha $(RELDIR)/ntrboot/
|
|
@cp $(OUTDIR)/$(FLAVOR)_ntr_dev.firm $(RELDIR)/ntrboot/
|
|
@cp $(OUTDIR)/$(FLAVOR)_ntr_dev.firm.sha $(RELDIR)/ntrboot/
|
|
@cp $(OUTDIR)/$(FLAVOR).firm $(RELDIR)/
|
|
@cp $(OUTDIR)/$(FLAVOR).firm.sha $(RELDIR)/
|
|
@cp $(OUTDIR)/$(FLAVOR)_dev.firm $(RELDIR)/
|
|
@cp $(OUTDIR)/$(FLAVOR)_dev.firm.sha $(RELDIR)/
|
|
@cp $(ELF) $(RELDIR)/elf
|
|
@cp $(CURDIR)/README.md $(RELDIR)
|
|
@cp -R $(CURDIR)/resources/gm9 $(RELDIR)/gm9
|
|
@cp -R $(CURDIR)/resources/sample $(RELDIR)/sample
|
|
|
|
@-7za a $(RELDIR)/$(FLAVOR)-$(VERSION)-$(DBUILTS).zip ./$(RELDIR)/*
|
|
|
|
vram0:
|
|
@mkdir -p "$(OUTDIR)"
|
|
@echo "Creating $(VRAM_OUT)"
|
|
@$(PY3) utils/add2tar.py $(VRAM_FLAGS) $(VRAM_OUT) $(shell ls -d $(SPLASH) $(OVERRIDE_FONT) $(VRAM_DATA)/*)
|
|
|
|
%.elf: .FORCE
|
|
@echo "Building $@"
|
|
@$(MAKE) --no-print-directory -C $(@D)
|
|
|
|
firm: $(ELF) vram0
|
|
@test `wc -c <$(VRAM_OUT)` -le 3145728
|
|
@mkdir -p $(call dirname,"$(FIRM)") $(call dirname,"$(FIRMD)")
|
|
@echo "[FLAVOR] $(FLAVOR)"
|
|
@echo "[VERSION] $(VERSION)"
|
|
@echo "[BUILD] $(DBUILTL)"
|
|
@echo "[FIRM] $(FIRM)"
|
|
@firmtool build $(FIRM) $(FTFLAGS) -g -A 0x18000000 -D $(ELF) $(VRAM_OUT) -C NDMA XDMA memcpy
|
|
@echo "[FIRM] $(FIRMD)"
|
|
@firmtool build $(FIRMD) $(FTDFLAGS) -g -A 0x18000000 -D $(ELF) $(VRAM_OUT) -C NDMA XDMA memcpy
|
|
|
|
.FORCE:
|