mirror of
https://github.com/d0k3/GodMode9.git
synced 2025-06-26 05:32:47 +00:00
- properly performs gpu/backlight reset - nukes vram so the initrd had to be moved to arm9 memory, and have its size (at least temporarily) limited to 256k
97 lines
3.1 KiB
Makefile
97 lines
3.1 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
|
|
export COMMON_DIR := ../common
|
|
|
|
# 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 -Os -Wall -Wextra -Wcast-align -Wformat=2 -Wno-main \
|
|
-fomit-frame-pointer -ffast-math -std=gnu11 -MMD -MP \
|
|
-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)
|
|
|
|
unmarked_readme: .FORCE
|
|
@$(PY3) utils/unmark.py -f README.md data/README_internal.md
|
|
|
|
release: clean unmarked_readme
|
|
@$(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 262144
|
|
@mkdir -p $(call dirname,"$(FIRM)") $(call dirname,"$(FIRMD)")
|
|
@echo "[FLAVOR] $(FLAVOR)"
|
|
@echo "[VERSION] $(VERSION)"
|
|
@echo "[BUILD] $(DBUILTL)"
|
|
@echo "[FIRM] $(FIRM)"
|
|
@$(PY3) -m firmtool build $(FIRM) $(FTFLAGS) -g -A 0x80C0000 -D $(ELF) $(VRAM_OUT) -C NDMA XDMA memcpy
|
|
@echo "[FIRM] $(FIRMD)"
|
|
@$(PY3) -m firmtool build $(FIRMD) $(FTDFLAGS) -g -A 0x80C0000 -D $(ELF) $(VRAM_OUT) -C NDMA XDMA memcpy
|
|
|
|
.FORCE:
|