GodMode9/Makefile

107 lines
3.3 KiB
Makefile
Raw Normal View History

ifeq ($(strip $(DEVKITARM)),)
$(error "Please set DEVKITARM in your environment. export DEVKITARM=<path to>devkitARM")
endif
2017-11-09 01:24:46 +01:00
include $(DEVKITARM)/base_tools
include Makefile.common
2017-11-09 01:24:46 +01:00
# 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')
2016-07-18 03:15:04 +02:00
2017-11-09 01:24:46 +01:00
export OUTDIR := output
export RELDIR := release
export COMMON_DIR := ../common
2017-11-09 01:24:46 +01:00
# Definitions for initial RAM disk
VRAM_TAR := $(OUTDIR)/vram0.tar
2017-11-15 01:39:23 +01:00
VRAM_DATA := data
VRAM_FLAGS := --make-new --path-limit 99 --size-limit 262144
ifeq ($(NTRBOOT),1)
VRAM_SCRIPTS := resources/gm9/scripts
endif
ifeq ($(OS),Windows_NT)
2021-08-31 13:35:36 +02:00
ifeq ($(TERM),cygwin)
PY3 := py -3 # Windows / CMD/PowerShell
else
PY3 := python3 # Windows / MSYS2
endif
else
PY3 := python3 # Unix-like
endif
2017-04-26 01:53:13 +02:00
2017-11-09 01:24:46 +01:00
# Definitions for ARM binaries
export INCLUDE := -I"$(shell pwd)/common"
2017-11-09 01:24:46 +01:00
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 \
2019-04-19 15:19:37 -03:00
-fomit-frame-pointer -ffast-math -std=gnu11 -MMD -MP \
2022-03-22 18:13:18 -05:00
-Wno-unused-function -Wno-format-truncation -Wno-format-nonliteral $(INCLUDE) -ffunction-sections -fdata-sections
export LDFLAGS := -Tlink.ld -nostartfiles -Wl,--gc-sections,-z,max-page-size=4096
2017-11-15 01:39:23 +01:00
ELF := arm9/arm9.elf arm11/arm11.elf
.PHONY: all firm $(VRAM_TAR) elf release clean
2017-11-09 01:24:46 +01:00
all: firm
2017-11-09 01:24:46 +01:00
clean:
@set -e; for elf in $(ELF); do \
$(MAKE) --no-print-directory -C $$(dirname $$elf) clean; \
done
@rm -rf $(OUTDIR) $(RELDIR) $(FIRM) $(FIRMD) $(VRAM_TAR)
unmarked_readme: .FORCE
@$(PY3) utils/unmark.py -f README.md data/README_internal.md
release: clean unmarked_readme
2017-07-17 19:17:19 +01:00
@$(MAKE) --no-print-directory firm
2017-11-09 01:24:46 +01:00
@$(MAKE) --no-print-directory firm NTRBOOT=1
@mkdir -p $(RELDIR)
2017-11-17 20:48:51 +01:00
@mkdir -p $(RELDIR)/ntrboot
@mkdir -p $(RELDIR)/elf
2017-11-09 01:24:46 +01:00
@cp $(FIRM) $(RELDIR)
@cp $(OUTDIR)/$(FLAVOR)_ntr.firm $(RELDIR)/ntrboot/
2018-03-27 18:39:21 -03:00
@cp $(OUTDIR)/$(FLAVOR)_ntr.firm.sha $(RELDIR)/ntrboot/
2017-11-09 01:24:46 +01:00
@cp $(OUTDIR)/$(FLAVOR)_ntr_dev.firm $(RELDIR)/ntrboot/
2018-03-27 18:39:21 -03:00
@cp $(OUTDIR)/$(FLAVOR)_ntr_dev.firm.sha $(RELDIR)/ntrboot/
2017-11-09 01:24:46 +01:00
@cp $(OUTDIR)/$(FLAVOR).firm $(RELDIR)/
2018-03-27 18:39:21 -03:00
@cp $(OUTDIR)/$(FLAVOR).firm.sha $(RELDIR)/
2017-11-09 01:24:46 +01:00
@cp $(OUTDIR)/$(FLAVOR)_dev.firm $(RELDIR)/
2018-03-27 18:39:21 -03:00
@cp $(OUTDIR)/$(FLAVOR)_dev.firm.sha $(RELDIR)/
2017-11-17 20:48:51 +01:00
@cp $(ELF) $(RELDIR)/elf
2017-11-09 01:24:46 +01:00
@cp $(CURDIR)/README.md $(RELDIR)
@cp -R $(CURDIR)/resources/gm9 $(RELDIR)/gm9
@cp -R $(CURDIR)/resources/sample $(RELDIR)/sample
2017-11-17 20:48:51 +01:00
2017-12-05 18:38:57 +01:00
@-7za a $(RELDIR)/$(FLAVOR)-$(VERSION)-$(DBUILTS).zip ./$(RELDIR)/*
2017-11-09 01:24:46 +01:00
$(VRAM_TAR): $(SPLASH) $(OVERRIDE_FONT) $(VRAM_DATA) $(VRAM_SCRIPTS)
@mkdir -p "$(@D)"
@echo "Creating $@"
@$(PY3) utils/add2tar.py $(VRAM_FLAGS) $(VRAM_TAR) $(shell find $^ -type f)
2017-11-09 01:24:46 +01:00
%.elf: .FORCE
@echo "Building $@"
@$(MAKE) --no-print-directory -C $(@D)
2017-11-09 01:24:46 +01:00
arm9/arm9.elf: $(VRAM_TAR)
firm: $(ELF)
2017-11-09 01:24:46 +01:00
@mkdir -p $(call dirname,"$(FIRM)") $(call dirname,"$(FIRMD)")
@echo "[FLAVOR] $(FLAVOR)"
@echo "[VERSION] $(VERSION)"
@echo "[BUILD] $(DBUILTL)"
2018-03-20 00:56:37 +01:00
@echo "[FIRM] $(FIRM)"
@$(PY3) -m firmtool build $(FIRM) $(FTFLAGS) -g -D $(ELF) -C NDMA XDMA
2018-03-20 00:56:37 +01:00
@echo "[FIRM] $(FIRMD)"
@$(PY3) -m firmtool build $(FIRMD) $(FTDFLAGS) -g -D $(ELF) -C NDMA XDMA
vram0: $(VRAM_TAR) .FORCE # legacy target name
.FORCE: