mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-11-09 13:12:37 -05:00
This commit adds new files written exclusively for the 3ds port. Additional comments: 1. Plugins works, but will be enabled in future commits. 2. The port has only been tested on the New 3DS. 3. Not all features of rockbox have been tested so there may be bugs or non-functional features. 4. There is a known issue where a random crash can occur when exiting the app. Change-Id: I122d0bea9aa604e04fca45ba8287cf79e6110769
101 lines
3.5 KiB
Makefile
101 lines
3.5 KiB
Makefile
# __________ __ ___.
|
|
# Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
|
# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
|
# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
|
# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
|
# \/ \/ \/ \/ \/
|
|
# $Id$
|
|
#
|
|
|
|
# 3ds_rules
|
|
export DEVKITARM ?= /opt/devkitpro/devkitARM
|
|
export DEVKITPRO ?= /opt/devkitpro
|
|
|
|
PORTLIBS := $(DEVKITPRO)/portlibs/3ds
|
|
|
|
CTRULIB ?= $(DEVKITPRO)/libctru
|
|
|
|
export PATH := $(DEVKITPRO)/portlibs/3ds/bin:$(PATH)
|
|
|
|
# base_rules
|
|
export SHELL := /usr/bin/env bash
|
|
|
|
DEVKITPATH=$(shell echo "$(DEVKITPRO)" | sed -e 's/^\([a-zA-Z]\):/\/\1/')
|
|
|
|
export PATH := $(DEVKITPATH)/tools/bin:$(DEVKITPATH)/devkitARM/bin:$(PATH)
|
|
|
|
# 3DSX
|
|
VERSION_MAJOR := 1
|
|
VERSION_MINOR := 0
|
|
VERSION_MICRO := 0
|
|
|
|
APP_TITLE := rockbox
|
|
APP_DESCRIPTION := Open Source Jukebox Firmware
|
|
APP_AUTHOR := rockbox.org
|
|
APP_ICON := $(ROOTDIR)/packaging/ctru/res/icon.png
|
|
|
|
# CIA
|
|
BANNER_AUDIO := $(ROOTDIR)/packaging/ctru/res/banner.wav
|
|
BANNER_IMAGE := $(ROOTDIR)/packaging/ctru/res/banner.cgfx
|
|
RSF_PATH := $(ROOTDIR)/packaging/ctru/res/app.rsf
|
|
#LOGO := $(ROOTDIR)/packaging/ctru/logo.lz11
|
|
UNIQUE_ID := 0xCB001
|
|
PRODUCT_CODE := CTR-ROCKBOX
|
|
ICON_FLAGS := nosavebackups,visible
|
|
|
|
# CIA Configuration
|
|
USE_ON_SD := true
|
|
APP_ENCRYPTED := false
|
|
CATEGORY := Application
|
|
USE_ON_SD := true
|
|
MEMORY_TYPE := Application
|
|
SYSTEM_MODE := 64MB
|
|
SYSTEM_MODE_EXT := Legacy
|
|
CPU_SPEED := 268MHz
|
|
ENABLE_L2_CACHE := false
|
|
|
|
.SECONDEXPANSION: # $$(OBJ) is not populated until after this
|
|
|
|
MAKEROM ?= makerom
|
|
MAKEROM_ARGS := -elf "$(BINARY).elf" -rsf "$(RSF_PATH)" -banner "$(BUILDDIR)/banner.bnr" -icon "$(BUILDDIR)/icon.icn" -DAPP_TITLE="$(APP_TITLE)" -DAPP_PRODUCT_CODE="$(PRODUCT_CODE)" -DAPP_UNIQUE_ID="$(UNIQUE_ID)" -DAPP_ENCRYPTED="$(APP_ENCRYPTED)" -DAPP_SYSTEM_MODE="$(SYSTEM_MODE)" -DAPP_SYSTEM_MODE_EXT="$(SYSTEM_MODE_EXT)" -DAPP_CATEGORY="$(CATEGORY)" -DAPP_USE_ON_SD="$(USE_ON_SD)" -DAPP_MEMORY_TYPE="$(MEMORY_TYPE)" -DAPP_CPU_SPEED="$(CPU_SPEED)" -DAPP_ENABLE_L2_CACHE="$(ENABLE_L2_CACHE)"
|
|
MAKEROM_ARGS += -major $(VERSION_MAJOR) -minor $(VERSION_MINOR) -micro $(VERSION_MICRO)
|
|
|
|
ifneq ($(strip $(LOGO)),)
|
|
MAKEROM_ARGS += -logo "$(LOGO)"
|
|
endif
|
|
ifneq ($(strip $(ROMFS)),)
|
|
MAKEROM_ARGS += -DAPP_ROMFS="$(ROMFS)"
|
|
endif
|
|
|
|
BANNERTOOL ?= bannertool
|
|
|
|
ifeq ($(suffix $(BANNER_IMAGE)),.cgfx)
|
|
BANNER_IMAGE_ARG := -ci
|
|
else
|
|
BANNER_IMAGE_ARG := -i
|
|
endif
|
|
|
|
ifeq ($(suffix $(BANNER_AUDIO)),.cwav)
|
|
BANNER_AUDIO_ARG := -ca
|
|
else
|
|
BANNER_AUDIO_ARG := -a
|
|
endif
|
|
|
|
# main binary
|
|
$(BUILDDIR)/$(BINARY): $$(OBJ) $(FIRMLIB) $(VOICESPEEXLIB) $(CORE_LIBS)
|
|
ifeq ($(UNAME), Darwin)
|
|
$(call PRINTS,LD $(BINARY))$(CC) -o $@ $^ $(LDOPTS) $(GLOBAL_LDOPTS) -Wl,$(LDMAP_OPT),$(BUILDDIR)/rockbox.map
|
|
else
|
|
$(call PRINTS,LD $(BINARY))$(CC) -o $@ -Wl,--start-group $^ -Wl,--end-group $(LDOPTS) $(GLOBAL_LDOPTS) \
|
|
-Wl,$(LDMAP_OPT),$(BUILDDIR)/rockbox-.map
|
|
@mv $(BINARY) $(BINARY).elf
|
|
smdhtool --create "$(APP_TITLE)" "$(APP_DESCRIPTION)" "$(APP_AUTHOR)" $(APP_ICON) "rockbox.smdh"
|
|
3dsxtool $(BINARY).elf $(BINARY).3dsx --smdh="rockbox.smdh"
|
|
$(BANNERTOOL) makebanner $(BANNER_IMAGE_ARG) "$(BANNER_IMAGE)" $(BANNER_AUDIO_ARG) "$(BANNER_AUDIO)" -o "$(BUILDDIR)/banner.bnr"
|
|
$(BANNERTOOL) makesmdh -s "$(APP_TITLE)" -l "$(APP_DESCRIPTION)" -p "$(APP_AUTHOR)" -i "$(APP_ICON)" -f "$(ICON_FLAGS)" -o "$(BUILDDIR)/icon.icn"
|
|
$(MAKEROM) -f cia -o "$(BINARY).cia" -target t -exefslogo $(MAKEROM_ARGS)
|
|
ifndef DEBUG
|
|
$(SILENT)rm $(BINARY).elf
|
|
endif
|
|
endif
|
|
|