1#! make -f
2#----------------------------------------------------------------------------
3# Project:  TwlSDK
4# File:     commondefs
5#
6#  Copyright 2007-2008 Nintendo.  All rights reserved.
7#
8# These coded instructions, statements, and computer programs contain
9# proprietary information of Nintendo of America Inc. and/or Nintendo
10# Company Ltd., and are protected by Federal copyright law.  They may
11# not be disclosed to third parties or copied or duplicated in any form,
12# in whole or in part, without the prior written consent of Nintendo.
13#
14# $Date:: 2009-01-05#$
15# $Rev: 9777 $
16# $Author: okubata_ryoma $
17#----------------------------------------------------------------------------
18ifndef TWLSDK_NITRO_COMMONDEFS_
19TWLSDK_NITRO_COMMONDEFS_ = TRUE
20
21#
22# SDK Major Version
23#
24
25NITROSDK_VERSION_MAJOR	?= 5
26
27#
28# CodeGen Target
29#
30#	NITRO_PLATFORM  = [TS]
31#	NITRO_MEMSIZE   = [4M/8M]
32#	NITRO_PROC      = [ARM9/ARM7]
33#
34
35NITRO_PLATFORM			?= TS
36NITRO_MEMSIZE			?= 4M
37NITRO_PROC				?= ARM9
38
39CODEGEN_PROC			 = $(strip $(NITRO_PROC))
40
41
42#
43# C Compiler type
44#
45#	NITRO_CCTYPE = [CW]
46#
47
48NITRO_CCTYPE		?= CW
49
50
51#
52# Binary build tool switch
53#
54NITRO_MAKEROM		?= TRUE
55
56#
57# RomSpeedType for makerom.exe
58#
59#	one of [MROM/1TROM/UNDEFINED]
60#
61
62NITRO_ROMSPEED		?= UNDEFINED
63
64#
65# SDK build type
66#
67#	one of [NITRO_DEBUG/NITRO_RELEASE/NITRO_FINALROM]
68#
69
70ifneq	($(TARGET_DEBUG),)
71NITRO_BUILD_TYPE	?= DEBUG
72NITRO_BUILD_DIR		?= Debug
73
74else
75ifneq	($(TARGET_FINALROM),)
76NITRO_BUILD_TYPE	?= FINALROM
77NITRO_BUILD_DIR		?= Rom
78
79else	#NITRO_RELEASE(default)
80NITRO_BUILD_TYPE	?= RELEASE
81NITRO_BUILD_DIR		?= Release
82
83endif
84endif
85
86#----------------------------------------------------------------------------
87#  NITRO-SDK path settings
88#
89
90NITRO_INCDIR			:= $(ROOT)/include
91NITRO_TOOLSDIR			:= $(TOOLSDIR)
92NITRO_COMPONENTSDIR		:= $(COMPONENTSDIR)
93NITRO_ADDINS			?= $(ADDINSDIR)
94
95NITRO_BUILDARCH			?= $(CODEGEN_PROC)-$(NITRO_PLATFORM)$(CODEGEN_ARCH)
96NITRO_BUILDARCH_ARM9	 = ARM9-$(NITRO_PLATFORM)$(CODEGEN_ARCH)
97ifeq ($(DEMO_CHECK_BUILD),)
98NITRO_BUILDARCH_ARM7	 = ARM7-$(NITRO_PLATFORM)$(ARCHGEN_TYPE)$(CODEGEN_ARCH)
99else
100NITRO_BUILDARCH_ARM7	 = ARM7-$(NITRO_PLATFORM)$(ARCHGEN_TYPE)$(CODEGEN_ARCH_ARM7)
101endif
102
103NITRO_BUILDTYPE			?= $(NITRO_BUILDARCH)/$(NITRO_BUILD_DIR)
104NITRO_BUILDTYPE_ARM9	 = $(NITRO_BUILDARCH_ARM9)/$(NITRO_BUILD_DIR)
105NITRO_BUILDTYPE_ARM7	 = $(NITRO_BUILDARCH_ARM7)/$(NITRO_BUILD_DIR)
106
107NITRO_LIBARCH			 = $(CODEGEN_PROC)-$(NITRO_PLATFORM)
108NITRO_LIBTYPE			 = $(NITRO_LIBARCH)/$(NITRO_BUILD_DIR)
109NITRO_LIBDIR			 = $(ROOT)/lib/$(NITRO_LIBTYPE)
110NITRO_LIBSYSCALLDIR		 = $(ROOT)/lib/$(NITRO_LIBARCH)/etc
111NITRO_LIBSUFFIX			?= $(CODEGEN_ARCH)
112
113
114#----------------------------------------------------------------------------
115#  TWL-SYSTEM path settings
116#
117
118ifdef	TWLSYSTEM_ROOT
119TWLSYSTEM_ROOT_		:= $(subst $(SPACE),\ ,$(subst \,/,$(TWLSYSTEM_ROOT)))
120-include $(TWLSYSTEM_ROOT_)/build/buildtools/nnslibdefs
121endif
122
123#----------------------------------------------------------------------------
124#  Compiler settings
125#
126
127ifneq	($(FORCE_BUILD),)
128
129### module subdir src/ obj/ lib/ include/
130
131LCF_SUFFIX_				= $(if $(NITRO_DIGEST),-C)
132NITRO_SPECDIR			= $(NITRO_INCDIR)/nitro/specfiles
133
134ifneq	($(filter NITRO,$(TARGET_PLATFORM_LIST)),)
135DEFAULT_LCFILE			= $(NITRO_SPECDIR)/$(NITRO_LIBARCH).lcf
136DEFAULT_LCFILE_TEMPLATE	= $(NITRO_SPECDIR)/$(NITRO_LIBARCH)$(LCF_SUFFIX_).lcf.template
137DEFAULT_LCFILE_SPEC		= $(NITRO_SPECDIR)/$(NITRO_LIBARCH).lsf
138DEFAULT_ROM_SPEC		= $(NITRO_SPECDIR)/ROM-$(NITRO_PLATFORM).rsf
139endif
140
141SRCDIR					?= $(DEFAULT_SRCDIR)
142INCDIR					?= $(DEFAULT_INCDIR)
143ETCDIR					?= $(DEFAULT_ETCDIR)
144OBJDIR					?= ./obj/$(NITRO_BUILDTYPE)
145BINDIR					?= ./bin/$(NITRO_BUILDTYPE)
146LIBDIR					?= ./lib/$(NITRO_BUILDTYPE)
147
148ifdef	MSYSTEM
149DEPENDDIR				?= ./depend.MinGW/$(NITRO_BUILDTYPE)
150else
151DEPENDDIR				?= ./depend/$(NITRO_BUILDTYPE)
152endif
153
154LIBSYSCALL_				 = $(if $(LIBSYSCALL),$(LIBSYSCALL),$(NITRO_LIBSYSCALLDIR)/libsyscall.a)
155
156### Compiler & Linker settings
157
158-include $(NITRO_BUILDTOOLSDIR)/commondefs.cctype.$(NITRO_CCTYPE)
159
160ifneq	($(NITRO_MAKEROM),)
161LCFILE_TEMPLATE			?= $(DEFAULT_LCFILE_TEMPLATE)
162LCFILE_SPEC				?= $(DEFAULT_LCFILE_SPEC)
163LCFILE_AUTOGEN			?= $(BINDIR)/$(notdir $(LCFILE_SPEC:.lsf=.autogen.lcf))
164LCFILE					?= $(LCFILE_AUTOGEN)
165DEFAULT_LDRES_TEMPLATE	:= $(NITRO_SPECDIR)/$(basename $(word $(words $(subst /, ,$(LD))),$(subst /, ,$(LD)))).response.template
166LDRES_TEMPLATE			?= $(DEFAULT_LDRES_TEMPLATE)
167LDRES_AUTOGEN			?= $(BINDIR)/$(notdir $(LCFILE_SPEC:.lsf=.autogen.response))
168LDRES_FILE				?= $(LDRES_AUTOGEN)
169else
170LCFILE					?= $(DEFAULT_LCFILE)
171endif
172
173TARGETS					?= $(addprefix $(BINDIR)/,$(TARGET_BIN) $(TARGET_ELF) $(TARGET_SIGN_BIN)) \
174						   $(addprefix $(OBJDIR)/,$(TARGET_OBJ)) 		\
175						   $(addprefix $(LIBDIR)/,$(TARGET_LIB))
176
177TARGET_BIN_BASENAME		 = $(notdir $(basename $(firstword $(TARGET_BIN) $(TARGET_ELF))))
178TARGET_NAME				?= $(TARGET_BIN_BASENAME)
179
180### Debugger settings
181
182-include $(NITRO_BUILDTOOLSDIR)/commondefs.emtype.IS
183
184
185### SDK Library settings
186
187CRT0_O			?=  crt0.o
188
189ifeq	($(CODEGEN_PROC),ARM9)
190
191NITRO_LIBS		?= 									\
192				   libcard$(NITRO_LIBSUFFIX).a		\
193				   libcp$(NITRO_LIBSUFFIX).a		\
194				   libenv$(NITRO_LIBSUFFIX).a		\
195				   libext$(NITRO_LIBSUFFIX).a		\
196				   libfs$(NITRO_LIBSUFFIX).a		\
197				   libfx$(NITRO_LIBSUFFIX).a		\
198				   libgx$(NITRO_LIBSUFFIX).a		\
199				   libmath$(NITRO_LIBSUFFIX).a		\
200				   libmb$(NITRO_LIBSUFFIX).a		\
201				   libmi$(NITRO_LIBSUFFIX).a		\
202				   libnvram$(NITRO_LIBSUFFIX).a		\
203				   libos$(NITRO_LIBSUFFIX).a		\
204				   libprc$(NITRO_LIBSUFFIX).a		\
205				   libpxi$(NITRO_LIBSUFFIX).a		\
206				   librtc$(NITRO_LIBSUFFIX).a		\
207				   libsnd$(NITRO_LIBSUFFIX).a		\
208				   libspi$(NITRO_LIBSUFFIX).a		\
209				   libstd$(NITRO_LIBSUFFIX).a		\
210				   libwbt$(NITRO_LIBSUFFIX).a		\
211				   libwfs$(NITRO_LIBSUFFIX).a		\
212				   libwm$(NITRO_LIBSUFFIX).a		\
213				   libcrypto$(NITRO_LIBSUFFIX).a	\
214				   libctrdg$(NITRO_LIBSUFFIX).a		\
215			       libcht$(NITRO_LIBSUFFIX).a		\
216				   libssp_jpegEncoder$(NITRO_LIBSUFFIX).a \
217				   libssp_jpegDecoder$(NITRO_LIBSUFFIX).a \
218				   $(notdir $(LIBSYSCALL_))			\
219				   $(CRT0_O)
220
221NITRO_LIBS		+= $(if $(NITRO_PROFILE_TYPE),libos.$(NITRO_PROFILE_TYPE)$(NITRO_LIBSUFFIX).a)
222
223else #	($(CODEGEN_PROC),ARM7)
224
225NITRO_LIBS		?= 									\
226				   libcard_sp$(NITRO_LIBSUFFIX).a	\
227				   libexi_sp$(NITRO_LIBSUFFIX).a	\
228				   libfs_sp$(NITRO_LIBSUFFIX).a		\
229				   libmi_sp$(NITRO_LIBSUFFIX).a		\
230				   libmic_sp$(NITRO_LIBSUFFIX).a	\
231				   libnvram_sp$(NITRO_LIBSUFFIX).a	\
232				   libos_sp$(NITRO_LIBSUFFIX).a		\
233				   libpad_sp$(NITRO_LIBSUFFIX).a	\
234				   libpm_sp$(NITRO_LIBSUFFIX).a		\
235				   libpxi_sp$(NITRO_LIBSUFFIX).a	\
236				   librtc_sp$(NITRO_LIBSUFFIX).a	\
237				   libsnd_sp$(NITRO_LIBSUFFIX).a	\
238				   libspi_sp$(NITRO_LIBSUFFIX).a	\
239				   libstd_sp$(NITRO_LIBSUFFIX).a	\
240				   libtp_sp$(NITRO_LIBSUFFIX).a		\
241				   libwvr_sp$(NITRO_LIBSUFFIX).a	\
242				   libctrdg_sp$(NITRO_LIBSUFFIX).a	\
243				   libsubpsyscall.a					\
244				   $(CRT0_O)
245
246
247NITRO_LIBS		+= $(if $(NITRO_PROFILE_TYPE),libos_sp.$(NITRO_PROFILE_TYPE)$(NITRO_LIBSUFFIX).a)
248
249endif
250
251### Global Library settings
252
253SYSTEM_GINCLUDES		 = $(NITROWIRELESS_INCDIR)							\
254						   $(NITRO_INCDIR) $(ISDBG_INCDIRS)
255
256DEFAULT_GINCLUDES		 = $(INCDIR) $(SRCDIR)								\
257						   $(NITROSYSTEM_INCDIR) $(SYSTEM_GINCLUDES)
258
259DEFAULT_GLIBRARY_DIRS	 = $(LIBDIR) $(dir $(LIBSYSCALL_))					\
260						   $(NITROSYSTEM_LIBDIR) $(NITROWIRELESS_LIBDIR)	\
261						   $(NITRO_LIBDIR) $(ISDBG_LIBDIRS)
262
263DEFAULT_GLIBRARIES		 = $(NITROSYSTEM_LIBS) $(NITRO_LIBS) $(STUBS_LIBS) $(ISDBG_LIBS)
264
265GINCLUDES				?= $(DEFAULT_GINCLUDES)
266GLIBRARY_DIRS			?= $(DEFAULT_GLIBRARY_DIRS)
267GLIBRARIES				?= $(DEFAULT_GLIBRARIES)
268
269LINCLUDES				?=
270LLIBRARY_DIRS			?=
271LLIBRARIES				?=
272LNEWDIRS				?=
273
274NEWDIRS					?= $(strip $(if $(SRCS),$(OBJDIR) $(DEPENDDIR))			\
275						   $(if $(TARGET_LIB),$(LIBDIR))				\
276						   $(if $(TARGET_BIN)$(TARGET_ELF),$(BINDIR))	\
277						   $(LNEWDIRS))
278
279GDIRT_CLEAN_DIRS		:= ./obj ./bin ./lib ./depend
280GDIRT_CLOBBER_DIRS		:=
281
282endif
283
284#----------------------------------------------------------------------------
285#  MY BUILD TOOLS
286#
287
288MAKELCF			:= $(NITRO_TOOLSDIR)/bin/makelcf.exe
289MAKEBANNER		:= $(NITRO_TOOLSDIR)/bin/makebanner.exe
290ADDBANNER		:= $(NITRO_TOOLSDIR)/bin/addbanner.exe
291NTEXCONV		:= $(NITRO_TOOLSDIR)/bin/ntexconv.exe
292COMPSTATIC		:= $(NITRO_TOOLSDIR)/bin/compstatic.exe
293MAKEROM			:= $(NITRO_TOOLSDIR)/bin/makerom.exe
294EMUCHILD		:= $(NITRO_TOOLSDIR)/bin/emuchild.exe
295ATTACHSIGN		:= $(NITRO_TOOLSDIR)/bin/attachsign.exe
296BIN2OBJ			:= $(NITRO_TOOLSDIR)/bin/bin2obj.exe
297MAKELST			:= $(NITRO_TOOLSDIR)/bin/makelst.exe
298STRIPDEBUG		:= $(NITRO_TOOLSDIR)/bin/stripdebug.exe
299LOADRUN			:= $(NITRO_TOOLSDIR)/bin/loadrun.exe
300
301MAKELCF_FLAGS	 			?=
302MAKEBANNER_FLAGS			?=
303MAKEROM_FLAGS	 			?=
304COMPSTATIC_FLAGS			?=
305LOADRUN_FLAGS				?=
306DEFAULT_COMP_ARM7			?= mongoose
307DEFAULT_ADDRESS_STATIC		?= 0x02000000
308DEFAULT_ADDRESS_ITCM		?= 0x01FF8000
309DEFAULT_ADDRESS_DTCM		?= 0x027e0000
310DEFAULT_COMPSUFFIX			?= _LZ
311DEFAULT_MAKEROM_ARM9		 = $(NITRO_COMPONENTSDIR)/printserver/$(NITRO_BUILDTYPE_ARM9)/main.$(NITRO_ELF_EXT)
312DEFAULT_MAKEROM_ARM7		 = $(NITRO_COMPONENTSDIR)/$(DEFAULT_COMP_ARM7)/$(NITRO_BUILDTYPE_ARM7)/$(DEFAULT_COMP_ARM7)_sub.$(NITRO_ELF_EXT)
313
314DEFAULT_MAKEROM_ROMROOT		:= ./files
315DEFAULT_MAKEROM_ROMFILES	:=
316DEFAULT_MAKEROM_ROMSPEED	?= $(NITRO_ROMSPEED)
317
318
319#----------------------------------------------------------------------------
320#  LIST OF JUNKS for "make
321#
322
323GDIRT_CLEAN	= a.out core *~ *.bak \\\#*\\\# $(GDIRT_CLEAN_DIRS)
324
325GDIRT_CLOBBER	= $(GDIRT_CLOBBER_DIRS)
326
327GDIRT_INSTALLED	= $(addprefix $(INSTALL_DIR)/,$(notdir $(INSTALL_TARGETS)))
328
329
330#----------------------------------------------------------------------------
331#  Load add-ins' commondefs
332#
333#-include $(NITRO_BUILDTOOLSDIR)/commondefs.add-ins.*
334
335
336#----------------------------------------------------------------------------
337#  DEFAULT TARGET
338#
339ifdef NITRO_UTEST
340default all:	utest
341else
342default all:	build
343endif
344
345#----------------------------------------------------------------------------
346endif	# TWLSDK_NITRO_COMMONDEFS_
347#----- End of commondefs -----
348