mirror of
https://github.com/rvtr/ctr_firmware.git
synced 2025-10-31 07:51:08 -04:00
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-09-30%20-%20paladin.7z/paladin/ctr_firmware@301 b871894f-2f95-9b40-918c-086798483c85
675 lines
17 KiB
Makefile
675 lines
17 KiB
Makefile
#! make -f
|
||
#----------------------------------------------------------------------------
|
||
# Project: CtrFirm - commondefs - common definitions for build system
|
||
# File: commondefs
|
||
#
|
||
# Copyright 2008 Nintendo. All rights reserved.
|
||
#
|
||
# These coded instructions, statements, and computer programs contain
|
||
# proprietary information of Nintendo of America Inc. and/or Nintendo
|
||
# Company Ltd., and are protected by Federal copyright law. They may
|
||
# not be disclosed to third parties or copied or duplicated in any form,
|
||
# in whole or in part, without the prior written consent of Nintendo.
|
||
#
|
||
# $Date:: $
|
||
# $Rev$
|
||
# $Author$
|
||
#----------------------------------------------------------------------------
|
||
ifndef CTRSDK_COMMONDEFS_
|
||
CTRSDK_COMMONDEFS_ = TRUE
|
||
|
||
#
|
||
# SDK root directory
|
||
#
|
||
|
||
CTRSDK_ROOT ?= C:/ctr_sdk
|
||
|
||
|
||
#
|
||
# SDK Major Version
|
||
#
|
||
|
||
CTRSDK_VERSION_MAJOR ?= 4
|
||
|
||
#
|
||
# CodeGen Target
|
||
#
|
||
# CTR_PLATFORM = [TS/TEG/MG20EMU/NE1EMU]
|
||
# CTR_MEMSIZE = [64M/128M]
|
||
# CTR_CODEGEN = [ARM/THUMB]
|
||
# CTR_PROC = [ARM11/ARM9/ARM7]
|
||
#
|
||
|
||
CTR_PLATFORM ?= TEG
|
||
CTR_MEMSIZE ?= 64M
|
||
CTR_CODEGEN ?= ARM
|
||
CTR_PROC ?= ARM11
|
||
|
||
ifndef CODEGEN_PROC
|
||
CODEGEN_PROC := $(CTR_PROC)
|
||
endif
|
||
|
||
ifeq ($(CTR_CODEGEN),ALL)
|
||
CTR_CODEGEN_ALL ?= TRUE
|
||
override CTR_CODEGEN = ARM
|
||
endif
|
||
|
||
ifeq ($(CTR_CODEGEN),ARM)
|
||
CODEGEN_ARCH =
|
||
else # ($(CTR_CODEGEN),THUMB)
|
||
CODEGEN_ARCH = .thumb
|
||
endif
|
||
CODEGEN_CC ?= $(CTR_CODEGEN)
|
||
CODEGEN_AS ?= ARM
|
||
|
||
TS_VERSION = $(if $(CTR_TS_VERSION),_TS$(CTR_TS_VERSION))
|
||
|
||
#
|
||
# C Compiler type
|
||
#
|
||
# CTR_CCTYPE = [CW/SNC/RVCT]
|
||
#
|
||
|
||
CTR_CCTYPE ?= RVCT
|
||
|
||
|
||
#
|
||
# Binary build tool switch
|
||
#
|
||
|
||
ifeq ($(CTR_ELFTOBIN),)
|
||
CTR_MAKEROM ?= TRUE
|
||
endif
|
||
|
||
ifeq ($(CTR_MAKEROM)$(CTR_PLATFORM),TS)
|
||
__error:
|
||
@echo "---- Stop, Don't use ELFTOBIN with CTR_PLATFORM=TS ----"
|
||
@exit 1
|
||
endif
|
||
|
||
#
|
||
# RomSpeedType for makerom.exe
|
||
#
|
||
# one of [MROM/1TROM/UNDEFINED]
|
||
#
|
||
|
||
CTR_ROMSPEED ?= UNDEFINED
|
||
|
||
#
|
||
# SDK build type
|
||
#
|
||
# one of [CTR_DEBUG/CTR_RELEASE/CTR_FINALROM]
|
||
#
|
||
|
||
ifdef CTR_DEBUG
|
||
CTR_BUILD_TYPE ?= DEBUG
|
||
CTR_BUILD_DIR ?= Debug
|
||
|
||
else
|
||
ifdef CTR_FINALROM
|
||
CTR_BUILD_TYPE ?= FINALROM
|
||
CTR_BUILD_DIR ?= Rom
|
||
|
||
else # CTR_RELEASE (default)
|
||
CTR_BUILD_TYPE ?= RELEASE
|
||
CTR_BUILD_DIR ?= Release
|
||
|
||
endif
|
||
endif
|
||
|
||
#
|
||
# Debugger Type
|
||
#
|
||
# one of [ARM/KMC]
|
||
#
|
||
|
||
ifneq ($(CTR_PLATFORM),MG20EMU)
|
||
ifneq ($(CTR_PLATFORM),NE1EMU)
|
||
CTR_DEBUGGER ?= ARM
|
||
endif
|
||
endif
|
||
CTR_DEBUGGER ?= KMC
|
||
|
||
|
||
|
||
#----------------------------------------------------------------
|
||
#
|
||
# Utilities
|
||
#
|
||
EMPTY :=
|
||
SPACE := $(EMPTY) $(EMPTY)
|
||
ifdef MSYSTEM # for MinGW32
|
||
QUOTE ='
|
||
else
|
||
QUOTE ="
|
||
endif
|
||
|
||
|
||
define NEWLINE
|
||
$(EMPTY)
|
||
|
||
endef
|
||
|
||
#----------------------------------------------------------------------------
|
||
# MAKE COMMAND SETTINGS
|
||
#
|
||
# --no-print-directory: No print directory when 'change directory'
|
||
# -r no builtin rules
|
||
# -R no builtin variables
|
||
# -j do make with multi-thread (not used now)
|
||
#
|
||
|
||
MAKEFILE = $(firstword $(MAKEFILE_LIST))
|
||
MAKEFLAGS_SHORT = $(filter-out --%,$(MAKEFLAGS))
|
||
|
||
MAKEFLAGS += -R -r
|
||
|
||
ifdef SILENT
|
||
MAKEFLAGS += -s
|
||
endif
|
||
|
||
# Check -w option
|
||
ifeq (,$(findstring w,$(MAKEFLAGS_SHORT)))
|
||
MAKEFLAGS += --no-print-directory
|
||
endif
|
||
|
||
# Check -k option
|
||
ifeq (,$(findstring k,$(MAKEFLAGS_SHORT)))
|
||
AND = &&
|
||
else
|
||
AND = ;
|
||
endif
|
||
|
||
# Check -s option
|
||
ifneq (,$(findstring s,$(MAKEFLAGS_SHORT)))
|
||
STDOUT = > /dev/null
|
||
endif
|
||
|
||
# Check -B option
|
||
MAKEFLAGS_OPTIONS = $(MAKEFLAGS)
|
||
MAKEFLAGS_ALWAYS = $(if $(findstring B,$(MAKEFLAGS_SHORT))$(findstring --always-make,$(MAKEFLAGS_OPTIONS)),TRUE,FALSE)
|
||
|
||
#----------------------------------------------------------------------------
|
||
# CYGWIN tools
|
||
#
|
||
CD := cd
|
||
CP := cp -rf
|
||
RM := rm -rf
|
||
MV := mv
|
||
MKDIRP := mkdir -p
|
||
SED := sed
|
||
INSTALL := install -p
|
||
TOUCH := touch
|
||
ECHO := echo
|
||
PERL := perl
|
||
OBJCOPY := objcopy -I elf32-little -O binary
|
||
|
||
# <20>f<EFBFBD>o<EFBFBD>b<EFBFBD>O<EFBFBD>p<EFBFBD>t<EFBFBD><74><EFBFBD>O
|
||
MAKEFLAGS_D ?=
|
||
|
||
REMAKE := $(MAKE) -f $(MAKEFILE) $(MAKEFLAGS_D)
|
||
|
||
LEX := flex
|
||
YACC := bison -y
|
||
CC_X86 := gcc -mno-cygwin
|
||
CXX_X86 := g++ -mno-cygwin
|
||
LD_X86 := gcc -mno-cygwin
|
||
AR_X86 := ar ruc
|
||
GREP ?= /bin/grep
|
||
MOUNT ?= /bin/mount
|
||
HEAD ?= /bin/head
|
||
AWK ?= /bin/gawk
|
||
CUT ?= /bin/cut
|
||
TR ?= /bin/tr
|
||
# /bin/true <20>̑<EFBFBD><CC91><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> builtin <20>Ő^<5E><><EFBFBD>Ԃ<EFBFBD><D482>R<EFBFBD>}<7D><><EFBFBD>h<EFBFBD><68><EFBFBD>g<EFBFBD><67>
|
||
TRUE ?= test true
|
||
|
||
ifdef USE_ASH
|
||
export SHELL=ash
|
||
endif
|
||
|
||
#----------------------------------------------------------------
|
||
#
|
||
# cygpath
|
||
#
|
||
|
||
CYGPATH ?= cygpath
|
||
|
||
# <20><><EFBFBD><EFBFBD> cygpath <20>͕W<CD95><57><EFBFBD>ł͖<C582><CD96><EFBFBD> (make 3.80 <20>ł<EFBFBD> eval <20><EFBFBD><D690>ɕs<C995><EFBFBD><EF8D87><EFBFBD><EFBFBD><EFBFBD>蓮<EFBFBD>삵<EFBFBD>Ȃ<EFBFBD><C882><EFBFBD><EFBFBD><EFBFBD>)
|
||
CYGPATH_NOCMD ?= FALSE
|
||
|
||
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʂ<EFBFBD><CA82><EFBFBD><EFBFBD>ꍇ<EFBFBD>͏<EFBFBD><CD8F>̒<EFBFBD><CC92>`<60><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD>얢<EFBFBD>m<EFBFBD>F)
|
||
#ifndef CYGPATH_NOCMD
|
||
#
|
||
#MAKE_VERSION := $(shell $(MAKE) -v | $(HEAD) -1 | $(AWK) '{print $3}')
|
||
#
|
||
#ifndef MSYSTEM
|
||
#
|
||
#ifeq ($(shell(expr "$(MAKE_VERSION)" ">=" "3.81")),1)
|
||
#CYGPATH_NOCMD=TRUE
|
||
#else # MAKE_VERSION
|
||
#CYGPATH_NOCMD=FALSE
|
||
#endif # MAKE_VERSION
|
||
#
|
||
#endif # MSYSTEM
|
||
#
|
||
#endif # CYGPATH_NOCMD
|
||
|
||
|
||
# cygdrive path prefix <20><><EFBFBD>擾
|
||
|
||
ifeq ($(CYGPATH_MOUNTPOINT),)
|
||
CYGPATH_MOUNTPOINT := $(patsubst %/,%,$(dir $(shell $(CYGPATH) -u c:/)))
|
||
endif # CYGPATH_MOUNTPOINT
|
||
|
||
ifeq ($(CYGPATH_NOCMD),TRUE)
|
||
|
||
ifeq ($(CYGPATH_DRIVELIST),)
|
||
# <20><><EFBFBD>S
|
||
CYGPATH_DRIVELIST_ALL = $(shell DRIVES=`$(MOUNT) | $(GREP) 'type user' | $(CUT) -c1 | tr '\n' ' '` \
|
||
&& echo $${DRIVES} `echo $${DRIVES} | $(TR) '[a-z]' '[A-Z]'`)
|
||
|
||
# <20>ŏ<EFBFBD><C58F><EFBFBD><EFBFBD>ő<EFBFBD><C591><EFBFBD>
|
||
CYGPATH_DRIVELIST_FAST = $(shell $(CYGPATH) -aw '$(CTRSDK_ROOT)c' \
|
||
'$(CWFOLDER_CTR)c' '$(CWFOLDER_TWL)c' '$(CWFOLDER_NITRO)c' \
|
||
'$(CTRSYSTEM_ROOT)c' \
|
||
'$(IS_CTR_DIR)c' '$(IS_TWL_DIR)c' '$(IS_NITRO_DIR)c' \
|
||
| $(CUT) -c1)
|
||
|
||
CYGPATH_DRIVELIST := $(sort $(CYGPATH_DRIVELIST_FAST))
|
||
#CYGPATH_DRIVELIST := $(sort $(CYGPATH_DRIVELIST_ALL))
|
||
endif # CYGPATH_DRIVELIST
|
||
|
||
|
||
define cygpathm
|
||
$(strip $(eval VALUE=$(1))$(foreach DRIVE,$(CYGPATH_DRIVELIST),$(eval VALUE:=$$(patsubst $(CYGPATH_MOUNTPOINT)/$(DRIVE)/%,$(DRIVE):/%,$$(subst \,/,$$(VALUE)))))$(VALUE))
|
||
endef # cygpathm
|
||
|
||
define cygpathu
|
||
$(strip $(eval VALUE:=$(1))$(foreach DRIVE,$(CYGPATH_DRIVELIST),$(eval VALUE:=$$(patsubst $(DRIVE):/%,$(CYGPATH_MOUNTPOINT)/$(DRIVE)/%,$$(subst \,/,$$(VALUE)))))$(VALUE))
|
||
endef # cygpathu
|
||
|
||
define cygpathm_multi
|
||
$(foreach pathvar,$(1),$(call cygpathm,$(pathvar)))
|
||
endef # cygpathm_multi
|
||
|
||
define cygpathu_multi
|
||
$(foreach pathvar,$(1),$(call cygpathu,$(pathvar)))
|
||
endef # cygpathu_multi
|
||
|
||
define eupath
|
||
$(subst $(SPACE),\ ,$(call cygpathu,$(subst \ , ,$(1))))
|
||
endef # eupath
|
||
|
||
define empath
|
||
$(subst $(SPACE),\ ,$(call cygpathm,$(subst \ , ,$(1))))
|
||
endef # empath
|
||
|
||
else # CYGPATH_NOCMD
|
||
|
||
define empath
|
||
$(subst $(SPACE),\ ,$(shell $(CYGPATH) -m $(subst \,\\,$(subst \ , ,$(1)))))
|
||
endef # empath
|
||
|
||
ifdef MSYSTEM
|
||
|
||
define eupath
|
||
$(call empath,$(1))
|
||
endef #eupath
|
||
|
||
define cygpathu
|
||
$(shell cygpath -m $(subst \,\\,$(subst \ , ,$(1))))
|
||
endef
|
||
|
||
else # MSYSTEM
|
||
|
||
define eupath
|
||
$(subst $(SPACE),\ ,$(shell $(CYGPATH) -u $(subst \,\\,$(subst \ , ,$(1)))))
|
||
endef
|
||
|
||
define cygpathu
|
||
$(shell cygpath -u $(subst \,\\,$(subst \ , ,$(1))))
|
||
endef
|
||
|
||
endif # MSYSTEM
|
||
|
||
define cygpathm
|
||
$(shell cygpath -m $(subst \,\\,$(subst \ , ,$(1))))
|
||
endef
|
||
|
||
define cygpathu_multi
|
||
$(call cygpathu,$(1))
|
||
endef
|
||
|
||
define cygpathm_multi
|
||
$(call cygpathm,$(1))
|
||
endef
|
||
|
||
endif # CYGPATH_NOCMD
|
||
|
||
export CYGPATH_MOUNTPOINT CYGPATH_DRIVELIST CYGPATH_NOCMD
|
||
|
||
define encode_specialchar
|
||
$(subst $(SPACE),%20,$(1))
|
||
endef
|
||
|
||
define decode_specialchar
|
||
$(subst %20,$(SPACE),$(1))
|
||
endef
|
||
|
||
#----------------------------------------------------------------------------
|
||
# CTR-SDK path settings
|
||
#
|
||
#-include $(CTR_BUILDTOOLSDIR)/commondefs.cygpath
|
||
|
||
ROOT := $(call eupath,$(CTRSDK_ROOT))
|
||
CTR_BUILDTOOLSDIR := $(ROOT)/build/buildtools
|
||
CTR_BUILDSETUPDIR := $(ROOT)/build/buildsetup
|
||
CTR_INCDIR := $(ROOT)/include
|
||
CTR_IOREG_INCDIR := $(CTR_INCDIR)/ctr/hw/$(CTR_PROC)/$(CTR_PLATFORM)
|
||
CTR_TOOLSDIR := $(ROOT)/tools
|
||
CTR_COMPONENTSDIR := $(ROOT)/components
|
||
CTR_ADDINS ?= $(ROOT)/add-ins
|
||
|
||
CTR_BUILDARCH ?= $(CODEGEN_PROC)-$(CTR_PLATFORM)$(CODEGEN_ARCH)
|
||
CTR_BUILDARCH_ARM11 := ARM9-$(CTR_PLATFORM)$(CODEGEN_ARCH)
|
||
CTR_BUILDARCH_ARM9 := ARM7-$(CTR_PLATFORM)$(CODEGEN_ARCH)
|
||
|
||
CTR_BUILDTYPE ?= $(CTR_BUILDARCH)/$(CTR_BUILD_DIR)
|
||
CTR_BUILDTYPE_ARM11 := $(CTR_BUILDARCH_ARM9)/$(CTR_BUILD_DIR)
|
||
CTR_BUILDTYPE_ARM9 := $(CTR_BUILDARCH_ARM7)/$(CTR_BUILD_DIR)
|
||
|
||
CTR_LIBARCH := $(CODEGEN_PROC)-$(CTR_PLATFORM)
|
||
CTR_LIBTYPE := $(CTR_LIBARCH)/$(CTR_BUILD_DIR)
|
||
CTR_LIBDIR := $(ROOT)/lib/$(CTR_LIBTYPE)
|
||
CTR_LIBSYSCALLDIR := $(ROOT)/lib/$(CTR_LIBARCH)/etc
|
||
CTR_LIBSUFFIX := $(CODEGEN_ARCH)
|
||
|
||
|
||
#----------------------------------------------------------------------------
|
||
# CTR-SYSTEM path settings
|
||
#
|
||
|
||
ifdef CTRSYSTEM_ROOT
|
||
CTRSYSTEM_ROOT_ := $(subst $(SPACE),\ ,$(subst \,/,$(CTRSYSTEM_ROOT)))
|
||
-include $(CTRSYSTEM_ROOT_)/build/buildtools/nnslibdefs
|
||
endif
|
||
|
||
CTRSYSTEM_LIBDIR ?= $(ROOT)/lib/CtrSystem/$(CTR_LIBTYPE)
|
||
CTRSYSTEM_INCDIR ?=
|
||
|
||
|
||
#----------------------------------------------------------------------------
|
||
# CTR-WIRELESS path settings
|
||
#
|
||
# libraries should be in
|
||
# $(ROOT)/lib/CtrWireless
|
||
#
|
||
# includes should be in
|
||
# $(ROOT)/include/ctr_wl/ARM11/*.h
|
||
#
|
||
# access by #include <ctr_wl/ARM11/*.h>
|
||
#
|
||
# SDK_VERSION_WL is defined in <ctr_wl/ARM11/version_wl.h>
|
||
#
|
||
|
||
CTRWIRELESS_VERSION ?= 2.78.00
|
||
CTRWIRELESS_ROOT ?= $(ROOT)/add-ins/CtrWireless/Marionea-$(CTRWIRELESS_VERSION)
|
||
CTRWIRELESS_ROOT_ = $(subst $(SPACE),\ ,$(subst \,/,$(CTRWIRELESS_ROOT)))
|
||
ifneq ($(CTR_PROC),ARM9)
|
||
CTRWIRELESS_LIBDIR ?= $(ROOT)/lib/CtrWireless/$(CTR_LIBTYPE)
|
||
CTRWIRELESS_INCDIR ?= $(ROOT)/include
|
||
endif
|
||
|
||
|
||
#----------------------------------------------------------------------------
|
||
# Compiler settings
|
||
#
|
||
|
||
CTR_FORCE_BUILD ?= $(strip $(TARGET_BIN) $(TARGET_OBJ) $(TARGET_NEF) $(TARGET_LIB) $(TARGET_SIGN_BIN))
|
||
|
||
ifneq ($(CTR_FORCE_BUILD),)
|
||
|
||
### module subdir src/ obj/ lib/ include/
|
||
|
||
DEFAULT_SRCDIR := ./src
|
||
DEFAULT_INCDIR := ./include
|
||
DEFAULT_ETCDIR := ./etc
|
||
|
||
LCF_SUFFIX_ := $(if $(CTR_DIGEST),-C)
|
||
CTR_SPECDIR = $(CTR_INCDIR)/ctr/specfiles
|
||
DEFAULT_LCFILE = $(CTR_SPECDIR)/$(CTR_LIBARCH).lcf
|
||
DEFAULT_LCFILE_TEMPLATE = $(CTR_SPECDIR)/$(CTR_LIBARCH)$(LCF_SUFFIX_).lcf.template
|
||
DEFAULT_LCFILE_SPEC = $(CTR_SPECDIR)/$(CTR_LIBARCH).lsf
|
||
DEFAULT_ROM_SPEC = $(CTR_SPECDIR)/ROM-$(CTR_PLATFORM).rsf
|
||
|
||
SRCDIR ?= $(DEFAULT_SRCDIR)
|
||
INCDIR ?= $(DEFAULT_INCDIR)
|
||
ETCDIR ?= $(DEFAULT_ETCDIR)
|
||
OBJDIR ?= ./obj/$(CTR_BUILDTYPE)
|
||
BINDIR ?= ./bin/$(CTR_BUILDTYPE)
|
||
LIBDIR ?= ./lib/$(CTR_BUILDTYPE)
|
||
DEPENDDIR ?= ./depend/$(CTR_BUILDTYPE)
|
||
|
||
LIBSYSCALL_ = $(if $(LIBSYSCALL),$(LIBSYSCALL),$(CTR_LIBSYSCALLDIR)/libsyscall.a)
|
||
|
||
### Compiler & Linker settings
|
||
|
||
-include $(CTR_BUILDTOOLSDIR)/commondefs.cctype.$(CTR_CCTYPE)
|
||
|
||
ifneq ($(CTR_MAKEROM),)
|
||
LCFILE_TEMPLATE ?= $(DEFAULT_LCFILE_TEMPLATE)
|
||
LCFILE_SPEC ?= $(DEFAULT_LCFILE_SPEC)
|
||
LCFILE_AUTOGEN ?= $(BINDIR)/$(notdir $(LCFILE_SPEC:.lsf=.autogen.lcf))
|
||
LCFILE ?= $(LCFILE_AUTOGEN)
|
||
DEFAULT_LDRES_TEMPLATE = $(CTR_SPECDIR)/$(basename $(notdir $(LD))).response.template
|
||
LDRES_TEMPLATE ?= $(DEFAULT_LDRES_TEMPLATE)
|
||
LDRES_AUTOGEN ?= $(BINDIR)/$(notdir $(LCFILE_SPEC:.lsf=.autogen.response))
|
||
LDRES_FILE ?= $(LDRES_AUTOGEN)
|
||
else
|
||
LCFILE ?= $(DEFAULT_LCFILE)
|
||
endif
|
||
|
||
TARGETS = $(addprefix $(BINDIR)/,$(TARGET_BIN) $(TARGET_NEF) $(TARGET_SIGN_BIN)) \
|
||
$(addprefix $(OBJDIR)/,$(TARGET_OBJ)) \
|
||
$(addprefix $(LIBDIR)/,$(TARGET_LIB))
|
||
|
||
TARGET_BIN_BASENAME = $(notdir $(basename $(firstword $(TARGET_BIN) $(TARGET_NEF))))
|
||
TARGET_NAME ?= $(TARGET_BIN_BASENAME)
|
||
|
||
### Debugger settings
|
||
|
||
ifndef IS_CTR_DIR
|
||
ifdef IS_IRIS_DIR
|
||
IS_CTR_DIR = $(IS_IRIS_DIR)
|
||
endif
|
||
endif
|
||
|
||
-include $(CTR_BUILDTOOLSDIR)/commondefs.emtype.ISD
|
||
|
||
|
||
### SDK Library settings
|
||
|
||
CRT0_O ?= crt0.o
|
||
|
||
ifeq ($(CODEGEN_PROC),ARM11)
|
||
|
||
CTR_LIBS ?= libfx$(CTR_LIBSUFFIX).a \
|
||
libgx$(CTR_LIBSUFFIX).a \
|
||
libos$$(CTR_LIBSUFFIX).a \
|
||
libmi$(CTR_LIBSUFFIX).a \
|
||
libsnd$(CTR_LIBSUFFIX).a \
|
||
libpxi$(CTR_LIBSUFFIX).a \
|
||
libext$(CTR_LIBSUFFIX).a \
|
||
libfs$(CTR_LIBSUFFIX).a \
|
||
libdgt$(CTR_LIBSUFFIX).a \
|
||
libcp$(CTR_LIBSUFFIX).a \
|
||
libspi$(CTR_LIBSUFFIX).a \
|
||
librtc$(CTR_LIBSUFFIX).a \
|
||
libprc$(CTR_LIBSUFFIX).a \
|
||
libcard$(CTR_LIBSUFFIX).a \
|
||
libwm$(CTR_LIBSUFFIX).a \
|
||
libwbt$(CTR_LIBSUFFIX).a \
|
||
libmb$(CTR_LIBSUFFIX).a \
|
||
libctrdg$(CTR_LIBSUFFIX).a \
|
||
libmath$(CTR_LIBSUFFIX).a \
|
||
libcht$(CTR_LIBSUFFIX).a \
|
||
libstd$(CTR_LIBSUFFIX).a \
|
||
libenv$(CTR_LIBSUFFIX).a \
|
||
$(notdir $(LIBSYSCALL_)) \
|
||
$(CRT0_O)
|
||
|
||
ifdef CTR_PROFILE_TYPE
|
||
CTR_LIBS += libos.$(CTR_PROFILE_TYPE)$(CTR_LIBSUFFIX).a
|
||
endif
|
||
|
||
else # ($(CODEGEN_PROC),ARM9)
|
||
|
||
CTR_LIBS ?= libos_sp$(CTR_LIBSUFFIX).a \
|
||
libmi_sp$(CTR_LIBSUFFIX).a \
|
||
libsnd_sp$(CTR_LIBSUFFIX).a \
|
||
libpxi_sp$(CTR_LIBSUFFIX).a \
|
||
libpad_sp$(CTR_LIBSUFFIX).a \
|
||
libexi_sp$(CTR_LIBSUFFIX).a \
|
||
libfs_sp$(CTR_LIBSUFFIX).a \
|
||
libcard_sp$(CTR_LIBSUFFIX).a \
|
||
librtc_sp$(CTR_LIBSUFFIX).a \
|
||
libspi_sp$(CTR_LIBSUFFIX).a \
|
||
libtp_sp$(CTR_LIBSUFFIX).a \
|
||
libnvram_sp$(CTR_LIBSUFFIX).a \
|
||
libmic_sp$(CTR_LIBSUFFIX).a \
|
||
libpm_sp$(CTR_LIBSUFFIX).a \
|
||
libctrdg_sp$(CTR_LIBSUFFIX).a \
|
||
libwvr_sp$(CTR_LIBSUFFIX).a \
|
||
libstd_sp$(CTR_LIBSUFFIX).a \
|
||
libsubpsyscall.a \
|
||
$(CRT0_O)
|
||
|
||
ifdef CTR_PROFILE_TYPE
|
||
CTR_LIBS += libos_sp.$(CTR_PROFILE_TYPE)$(CTR_LIBSUFFIX).a
|
||
endif
|
||
|
||
endif
|
||
|
||
### Global Library settings
|
||
|
||
DEFAULT_GINCLUDES = $(INCDIR) $(SRCDIR) \
|
||
$(CTRSYSTEM_INCDIR) $(CTRWIRELESS_INCDIR) \
|
||
$(CTR_INCDIR) $(ISD_INCDIRS) \
|
||
$(CTR_IOREG_INCDIR) \
|
||
|
||
DEFAULT_GLIBRARY_DIRS = $(LIBDIR) $(dir $(LIBSYSCALL_)) \
|
||
$(CTRSYSTEM_LIBDIR) $(CTRWIRELESS_LIBDIR) \
|
||
$(CTR_LIBDIR) $(ISD_LIBDIRS)
|
||
|
||
DEFAULT_GLIBRARIES = $(CTRSYSTEM_LIBS) $(CTR_LIBS) $(STUBS_LIBS) $(ISD_LIBS)
|
||
|
||
GINCLUDES ?= $(DEFAULT_GINCLUDES)
|
||
GLIBRARY_DIRS ?= $(DEFAULT_GLIBRARY_DIRS)
|
||
GLIBRARIES ?= $(DEFAULT_GLIBRARIES)
|
||
|
||
LINCLUDES ?=
|
||
LLIBRARY_DIRS ?=
|
||
LLIBRARIES ?=
|
||
LNEWDIRS ?=
|
||
|
||
NEWDIRS ?= $(if $(SRCS),$(OBJDIR) $(DEPENDDIR)) \
|
||
$(if $(TARGET_LIB),$(LIBDIR)) \
|
||
$(if $(TARGET_BIN)$(TARGET_NEF),$(BINDIR)) \
|
||
$(LNEWDIRS)
|
||
|
||
GDIRT_CLEAN_DIRS := ./obj ./bin ./lib ./depend
|
||
GDIRT_CLOBBER_DIRS :=
|
||
|
||
endif
|
||
|
||
#----------------------------------------------------------------------------
|
||
# MY BUILD TOOLS
|
||
#
|
||
|
||
MAKELCF := $(CTR_TOOLSDIR)/bin/makelcf.exe
|
||
MAKEBANNER := $(CTR_TOOLSDIR)/bin/makebanner.exe
|
||
ADDBANNER := $(CTR_TOOLSDIR)/bin/addbanner.exe
|
||
NTEXCONV := $(CTR_TOOLSDIR)/bin/ntexconv.exe
|
||
COMPSTATIC := $(CTR_TOOLSDIR)/bin/compstatic.exe
|
||
MAKEROM := $(CTR_TOOLSDIR)/bin/makerom.exe
|
||
EMUCHILD := $(CTR_TOOLSDIR)/bin/emuchild.exe
|
||
ATTACHSIGN := $(CTR_TOOLSDIR)/bin/attachsign.exe
|
||
BIN2OBJ := $(CTR_TOOLSDIR)/bin/bin2obj.exe
|
||
|
||
MAKELCF_FLAGS ?=
|
||
MAKEBANNER_FLAGS ?=
|
||
MAKEROM_FLAGS ?=
|
||
COMPSTATIC_FLAGS ?=
|
||
DEFAULT_COMP_ARM9 ?= $(if $(findstring TEG,$(CTR_PLATFORM)),ferret,mongoose)
|
||
DEFAULT_ADDRESS_DTCM ?= $(if $(findstring TEG,$(CTR_PLATFORM)),0x02380000,0x027e0000)
|
||
DEFAULT_COMPSUFFIX ?= _LZ
|
||
DEFAULT_MAKEROM_ARM11 = $(CTR_COMPONENTSDIR)/printserver/$(CTR_BUILDTYPE_ARM9)/main.nef
|
||
DEFAULT_MAKEROM_ARM9 = $(CTR_COMPONENTSDIR)/$(DEFAULT_COMP_ARM9)/$(CTR_BUILDTYPE_ARM7)/$(DEFAULT_COMP_ARM9)_sub$(TS_VERSION).nef
|
||
|
||
DEFAULT_MAKEROM_ROMROOT := ./files
|
||
DEFAULT_MAKEROM_ROMFILES :=
|
||
DEFAULT_MAKEROM_ROMSPEED ?= $(CTR_ROMSPEED)
|
||
|
||
|
||
#----------------------------------------------------------------------------
|
||
# LIST OF JUNKS for "make
|
||
#
|
||
|
||
GDIRT_CLEAN = a.out core *~ *.bak \\\#*\\\# $(GDIRT_CLEAN_DIRS)
|
||
|
||
GDIRT_CLOBBER = $(GDIRT_CLOBBER_DIRS)
|
||
|
||
GDIRT_INSTALLED = $(addprefix $(INSTALL_DIR)/,$(notdir $(INSTALL_TARGETS)))
|
||
|
||
|
||
#----------------------------------------------------------------------------
|
||
# CTRSDK_INSTALL_ROOT
|
||
#
|
||
|
||
ifdef CTRSDK_INSTALL_ROOT
|
||
CTRSDK_INSTALL_ROOT_ := $(CTRSDK_INSTALL_ROOT)
|
||
else
|
||
CTRSDK_INSTALL_ROOT_ := $(CTRSDK_ROOT)
|
||
endif
|
||
|
||
CTR_INSTALL_ROOT := $(subst $(SPACE),\ ,$(subst \,/,$(CTRSDK_INSTALL_ROOT_)))
|
||
CTR_INSTALL_INCDIR := $(CTR_INSTALL_ROOT)/include
|
||
CTR_INSTALL_TOOLSDIR := $(CTR_INSTALL_ROOT)/tools
|
||
CTR_INSTALL_LIBDIR := $(CTR_INSTALL_ROOT)/lib/$(CTR_LIBTYPE)
|
||
CTR_INSTALL_COMPONENTSDIR := $(CTR_INSTALL_ROOT)/components
|
||
CTR_INSTALL_ADDINS := $(CTR_INSTALL_ROOT)/add-ins
|
||
|
||
|
||
#----------------------------------------------------------------------------
|
||
# PRIVATE FLAGS
|
||
#
|
||
-include $(CTR_BUILDTOOLSDIR)/_privatedefs
|
||
-include $(CTR_BUILDTOOLSDIR)/@privatedefs
|
||
|
||
|
||
#----------------------------------------------------------------------------
|
||
# Compiler flags
|
||
#
|
||
MACRO_FLAGS += -DSDK_DEBUGGER_$(CTR_DEBUGGER)
|
||
|
||
|
||
#----------------------------------------------------------------------------
|
||
# Load add-ins' commondefs
|
||
#
|
||
-include $(CTR_BUILDTOOLSDIR)/commondefs.add-ins.*
|
||
|
||
|
||
#----------------------------------------------------------------------------
|
||
# DEFAULT TARGET
|
||
#
|
||
ifdef CTR_UTEST
|
||
default all: utest
|
||
else
|
||
default all: build
|
||
endif
|
||
|
||
#----------------------------------------------------------------------------
|
||
endif # CTRSDK_COMMONDEFS_
|
||
#----- End of commondefs -----
|