2016-02-13 17:29:56 +01:00
|
|
|
|
|
|
|
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
|
2016-02-13 17:29:56 +01:00
|
|
|
|
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
|
2017-10-04 19:16:07 +03:00
|
|
|
|
2017-11-09 01:24:46 +01:00
|
|
|
# Definitions for initial RAM disk
|
2017-11-15 01:39:23 +01:00
|
|
|
VRAM_OUT := $(OUTDIR)/vram0.tar
|
|
|
|
VRAM_DATA := data
|
2017-12-21 20:03:30 -08:00
|
|
|
VRAM_FLAGS := --make-new --path-limit 99 --size-limit 3145728
|
|
|
|
|
|
|
|
ifeq ($(OS),Windows_NT)
|
|
|
|
PY3 := py -3
|
|
|
|
else
|
|
|
|
PY3 := python3
|
|
|
|
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-08-09 01:39:23 +02:00
|
|
|
|
2017-11-09 01:24:46 +01:00
|
|
|
export ASFLAGS := -g -x assembler-with-cpp $(INCLUDE)
|
2017-11-20 17:50:48 +01:00
|
|
|
export CFLAGS := -DDBUILTS="\"$(DBUILTS)\"" -DDBUILTL="\"$(DBUILTL)\"" -DVERSION="\"$(VERSION)\"" -DFLAVOR="\"$(FLAVOR)\"" \
|
2017-11-09 01:24:46 +01:00
|
|
|
-g -O2 -Wall -Wextra -Wpedantic -Wcast-align -Wno-main \
|
|
|
|
-fomit-frame-pointer -ffast-math -std=gnu11 \
|
|
|
|
-Wno-unused-function $(INCLUDE)
|
|
|
|
export LDFLAGS := -Tlink.ld -nostartfiles -Wl,--gc-sections,-z,max-page-size=512
|
2017-11-15 01:39:23 +01:00
|
|
|
ELF := arm9/arm9.elf arm11/arm11.elf
|
2016-02-13 17:29:56 +01:00
|
|
|
|
2017-11-15 01:39:23 +01:00
|
|
|
.PHONY: all firm vram0 elf release clean
|
2017-11-09 01:24:46 +01:00
|
|
|
all: firm
|
2016-02-13 17:29:56 +01:00
|
|
|
|
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_OUT)
|
2017-08-12 15:07:33 +02:00
|
|
|
|
2017-11-15 01:39:23 +01:00
|
|
|
release: clean
|
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/
|
|
|
|
@cp $(OUTDIR)/$(FLAVOR)_ntr_dev.firm $(RELDIR)/ntrboot/
|
|
|
|
@cp $(OUTDIR)/$(FLAVOR).firm $(RELDIR)/
|
|
|
|
@cp $(OUTDIR)/$(FLAVOR)_dev.firm $(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)
|
2017-12-29 17:32:19 +01:00
|
|
|
@cp $(CURDIR)/*.gm9 $(RELDIR)
|
2017-11-09 01:24:46 +01:00
|
|
|
@cp -R $(CURDIR)/resources/gm9 $(RELDIR)/gm9
|
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
|
|
|
|
2017-11-15 01:39:23 +01:00
|
|
|
vram0:
|
|
|
|
@mkdir -p "$(OUTDIR)"
|
|
|
|
@echo "Creating $(VRAM_OUT)"
|
2017-12-21 20:03:30 -08:00
|
|
|
@$(PY3) utils/add2tar.py $(VRAM_FLAGS) $(VRAM_OUT) $(shell ls -d $(README) $(SPLASH) $(VRAM_DATA)/*)
|
2017-11-09 01:24:46 +01:00
|
|
|
|
2017-11-15 01:39:23 +01:00
|
|
|
elf:
|
|
|
|
@set -e; for elf in $(ELF); do \
|
|
|
|
echo "Building $$elf"; \
|
|
|
|
$(MAKE) --no-print-directory -C $$(dirname $$elf); \
|
|
|
|
done
|
2017-11-09 01:24:46 +01:00
|
|
|
|
2017-11-15 01:39:23 +01:00
|
|
|
firm: elf vram0
|
|
|
|
@test `wc -c <$(VRAM_OUT)` -le 3145728
|
2017-11-09 01:24:46 +01:00
|
|
|
@mkdir -p $(call dirname,"$(FIRM)") $(call dirname,"$(FIRMD)")
|
2017-11-15 01:39:23 +01:00
|
|
|
firmtool build $(FIRM) $(FTFLAGS) -g -A 0x18000000 -D $(ELF) $(VRAM_OUT) -C NDMA XDMA memcpy
|
|
|
|
firmtool build $(FIRMD) $(FTDFLAGS) -g -A 0x18000000 -D $(ELF) $(VRAM_OUT) -C NDMA XDMA memcpy
|