#! make -f
#----------------------------------------------------------------------------
# Project:  TwlSDK - MB - demos - cloneboot
# File:     Makefile
#
# Copyright 2007-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:: 2008-12-24#$
# $Rev: 9728 $
# $Author: okubata_ryoma $
#----------------------------------------------------------------------------

SUBDIRS		=

# MBCũTv̓}`u[g@\g߁A
# ʐM(邢͗L)ǂ̊J@ނ𕡐KvƂ܂B
# $TwlSDK/bin/ARM9-TS/Release/ fBNgɂ
# mb_child.bin vOŏI@ɂ}`u[gq@Ɠ
# @\񋟂TvɂȂĂ܂̂ŁA
# ̃oCiTvvOƓ@ő̋@ނɓǂݍ݁A
# ꏏɎsĂB

#----------------------------------------------------------------------------

TWL_ARCHGEN	:=	HYBRID

#----------------------------------------------------------------------------
# ̃vOŎgp\[Xt@C͈ȉ̒ʂł.
#----------------------------------------------------------------------------

SRCDIR		 = ./src
INCDIR		 = ./include

SRCS		 = main.c		\
			   common.c		\
			   disp.c		\
			   font.c		\
			   child.c		\
			   parent.c		\
			   gmain.c

# Tv̊ȗ̂ WH W[gp܂.

WH_DIR		 = $(ROOT)/build/demos/wireless_shared/wh
SRCDIR		+= $(WH_DIR)
INCDIR		+= $(WH_DIR)
SRCS		+= $(WH_DIR)/wh.c

# Tv̊ȗ̂ MBP W[gp܂.

MBP_DIR		 = $(ROOT)/build/demos/wireless_shared/mbp
SRCDIR		+= $(MBP_DIR)
INCDIR		+= $(MBP_DIR)
SRCS		+= $(MBP_DIR)/mbp.c


#----------------------------------------------------------------------------
# AvP[V̈ʓIȐݒ͈ȉ̒ʂł.
#----------------------------------------------------------------------------

TARGET_NEF		 = main.nef
TARGET_BIN		 = main.srl

TWL_MAKEROM		 = TRUE

# vO̊eZOgkꍇ͂̃tOLɂ܂.
# kꂽZOg CARD-ROM ł̃oCiTCY팸
# CARD-ROM ܂̓CXoRł̃[hԂZk邩,
# s͓WĴ߂ɂ炩 CPU Ԃ܂.
TWL_COMPRESS	 = TRUE

# CX_E[hq@ƂăI[o[Cgpꍇ,
# NITRO_DIGEST LɂKv܂.
TWL_DIGEST		 = TRUE

#----------------------------------------------------------------------------

include	$(TWLSDK_ROOT)/build/buildtools/commondefs

do-build:	$(TARGETS)

#----------------------------------------------------------------------------

ifeq ($(TARGET_PLATFORM),TWL)
ROM_SPEC		 = main.TWL.rsf
#LCFILE_SPEC	 = main.TWL.lsf
else
ROM_SPEC		 = main.rsf
#LCFILE_SPEC	 = main.lsf
endif

# MB̃R[obNŕGȏꍇɂ́Alcft@C
# IRQX^bNTCY傫߂ɐݒ肵ĂSłB
# OS_Printf()͑ʂ̃X^bN̂ŁAR[obNł
# ł邾yʔłOS_TPrintf()gp悤ɂĂB

#----------------------------------------------------------------------------
# N[u[ge@ƂĂ̓ʂȐݒ͈ȉ̒ʂł.
#----------------------------------------------------------------------------

# ZLeBړI̐e@p̈ .parent ZNVzu邽
# N[u[gpNݒev[gw肵܂.
#
# .parent ZNV̓eDS_E[hvCq@ɂ͑M܂.
# ̃ZNVɐe@pK{̊֐zu邱Ƃɂ,
# T󂳂ꂽMee@gČ邱Ƃs\ɂ܂.
# R[h̔zuɂĂ, ȉ̓_ɒӂĂ.
#   E.text/.rodata ZNVȊO܂܂Ȃ
#   Ee@݂̂KvƂdvȏ܂ނ
# 
# .parent ZNV, YR[hɂĈȉ̂悤ɔzu܂.
# 
#     #include <nitro/parent_begin.h>
#
#     void  ForParentOnly(void)
#     {
#         /* e@ŗL̏ */
#     }
#
#     #include <nitro/parent_end.h>
#
# ̃Tvfł parent.c ̑SĂ̊֐ .parent ZNV
# zuĂ܂. ڍׂ̓\[XR[hQƂ.

ifeq	($(TARGET_PLATFORM),TWL)
LCFILE_TEMPLATE	= $(TWL_SPECDIR)/ARM9-TS-cloneboot-C.lcf.template
else
LCFILE_TEMPLATE	= $(NITRO_SPECDIR)/ARM9-TS-cloneboot-C.lcf.template
endif

# iŃAvP[V̂߂ɊeX֔zzꂽ
# ȃVXeR[CuŎw肵܂.
# ̃Tvł͎bpƂāA炩߂̃fBNg,
# SDK t(lib/ARM9-TS/etc/libsyscall.a)̃Rs[uĂ܂D
# ̃fɂăAvP[Vꍇ́AЃT|[g
# zzĂĂ libsyscal.a ł̎bVXeR[
# ㏑ĂD

LIBSYSCALL			 = ./etc/libsyscall.a
LIBSYSCALL_CHILD	 = ./etc/libsyscall_child.bin

#----------------------------------------------------------------------------
# AvP[V𐻕iłŎs邽߂̎OF؎葱͈ȉ̒ʂł.
#----------------------------------------------------------------------------

# OF؎葱͂悻ȉ̗ɂȂ܂.
# ڍׂ́uDS_E[hvCvQƂ.
# (/docs/TechnicalNotes/AboutMultiBoot.doc)
#
# (0) N[u[gȂ emuchild R}hőMpvOpӂ܂.
#     łȂ main.srl ̂܂ܗpӂ܂.
#      makefile ł, pӂ̂ bin/sign.srl Ƃ܂.
#
# (1) F؃R[h擾̂, (0) ŗpӂ tmp/sign.srl T[o֑t܂.
#     ̍Ƃ͂gp̃uEUƂōsKv܂.
#      makefile ł, 擾F؃R[h bin/sign.sgn Ƃ܂.
#
# (2) attachsign R}hgp, (1) Ŏ擾 bin/sign.sgn 
#     main.srl ŏIvO𐶐܂.
#      makefile ł,  main_with_sign.srl Ƃ܂.
#

# N[u[g̏ꍇ͒ʏDS_E[hvCvOƎ኱قȂ,
# g̃vOłȂ emuchild ŉHvOT[o֑t܂.

presign:
	$(EMUCHILD) \
		bin/$(TWL_BUILDTYPE)/$(TARGET_BIN) \
		$(LIBSYSCALL_CHILD) \
		bin/sign.srl

# ꂽF؃R[hoCiɊ܂߂葱̓N[u[gʏƓlł.
postsign:
	$(ATTACHSIGN) \
		bin/$(TWL_BUILDTYPE)/$(TARGET_BIN) \
		bin/sign.sgn  \
		main_with_sign.srl

#----------------------------------------------------------------------------

include	$(TWLSDK_ROOT)/build/buildtools/modulerules

ifdef	TWL_ELFTOBIN
$(TARGETS): $(ELFTOBIN_ARM7)

else	#TWL_ELFTOBIN
$(TARGETS): $(MAKEROM_ARM7)

endif	#TWL_ELFTOBIN


#===== End of Makefile =====
