1###############################################################################
2# Global common definitions for build system
3#
4# Copyright 2005-2006 Nintendo.  All rights reserved.
5#
6# These coded instructions, statements, and computer programs contain
7# proprietary information of Nintendo of America Inc. and/or Nintendo
8# Company Ltd., and are protected by Federal copyright law.  They may
9# not be disclosed to third parties or copied or duplicated in any form,
10# in whole or in part, without the prior written consent of Nintendo.
11###############################################################################
12
13# This file contains common definitions that exist across the build
14
15#
16# Check make version
17#
18ifneq   ($(MAKE_VERSION),3.80)
19__version:
20	@echo ---- Sorry, this makefile is for \'make\' version 3.80
21	@make -v
22	@exit 1
23endif
24
25###############################################################################
26#
27#    COMMON BUILD FLAGS AND CONSTANTS
28#
29###############################################################################
30
31# This is where all directories will live.
32# Note that if you change ROOT, you must change the BUILDTOOLS_ROOT
33# environment variable.
34empty:=
35space:= $(empty) $(empty)
36comma:= ,
37
38#=============================================================================
39# REVOLUTION_SDK_ROOT
40#=============================================================================
41#REVOLUTION_SDK_ROOT:=C:\RevolutionSDK
42ROOT:= $(subst $(space),\$(space),$(subst \,/,$(REVOLUTION_SDK_ROOT)))
43
44
45# Default destination install directory, where installs will occur
46BASEINSTALL_ROOT= $(ROOT)
47
48# determine the architecture target
49# If PLATFORM is not set, it will default to RVL
50ifeq ($(origin PLATFORM), undefined)
51PLATFORM:=RVL
52endif
53
54ARCH_TARGET = $(PLATFORM)
55
56
57ifeq ($(PLATFORM), RVL)
58RVL_OS           = TRUE
59HOLLYWOOD_REV    = 1
60BROADWAY_REV     = 1
61IOP_REV          = 1
62EPPC             = TRUE
63PROCESSOR        = gekko
64TRK_INTEGRATION  = TRUE
65endif #RVL
66
67# RVL0 (former RVL_AHBPI)
68ifeq ($(PLATFORM), RVL0)
69RVL_OS           = TRUE
70HOLLYWOOD_REV    = 1
71BROADWAY_REV     = 1
72IOP_REV          = 1
73DI_DIRECT        = TRUE
74EPPC             = TRUE
75PROCESSOR        = gekko
76TRK_INTEGRATION  = TRUE
77endif #RVL0
78
79ifeq ($(PLATFORM), RVL_LEGACYDI)
80RVL_OS           = TRUE
81HOLLYWOOD_REV    = 1
82BROADWAY_REV     = 1
83IOP_REV          = 1
84DI_DIRECT        = TRUE
85NO_AHBPI_DSEA    = TRUE
86EPPC             = TRUE
87PROCESSOR        = gekko
88TRK_INTEGRATION  = TRUE
89endif #RVL_LEGACYDI
90
91ifeq ($(PLATFORM), RVL_EMU)
92RVL_OS           = TRUE
93BROADWAY_EMU     = TRUE
94HOLLYWOOD_EMU    = TRUE
95IOP_EMU          = TRUE
96NO_AHBPI_DSEA    = TRUE
97EPPC             = TRUE
98PROCESSOR        = gekko
99TRK_INTEGRATION  = TRUE
100endif #RVL_EMU
101
102ifeq ($(PLATFORM), PRE_RVL)
103RVL_OS           = TRUE
104DI_DIRECT        = TRUE
105NO_AHBPI_DSEA    = TRUE
106EPPC             = TRUE
107PROCESSOR        = gekko
108TRK_INTEGRATION  = TRUE
109endif # PRE_RVL
110
111
112ifndef NDEBUG
113DEBUG           = TRUE
114BUILD_TARGET    = DEBUG
115else  # NDEBUG
116BUILD_TARGET    = NDEBUG
117endif # NDEBUG
118
119INSTALL_ROOT    = $(BASEINSTALL_ROOT)/$(ARCH_TARGET)
120
121# Default binaries/tools directory
122BIN           = $(INSTALL_ROOT)/bin
123
124# Default location of the sources and makefiles
125INC_ROOT      = $(ROOT)/include
126BUILD_ROOT    = $(ROOT)/build
127MAKE_ROOT     = $(BUILD_ROOT)/buildtools
128DOL_INC_ROOT  = $(INC_ROOT)
129LIB_ROOT      = $(BUILD_ROOT)/libraries
130DEMO_ROOT     = $(BUILD_ROOT)/demos
131TEST_ROOT     = $(BUILD_ROOT)/tests
132SAMPLE_ROOT   = $(BUILD_ROOT)/samplebuild
133TOOL_ROOT     = $(BUILD_ROOT)/tools
134
135
136# Default location of the Metrowerks.  CWFOLDER is set by the
137# Codewarrior installer.  Change the backslashes into normal slashes,
138# and backslash any spaces in the path.
139ifdef CWFOLDER_RVL
140MWDIR       = $(subst $(space),\$(space),$(subst \,/,$(CWFOLDER_RVL)))
141else
142MWDIR       = $(subst $(space),\$(space),$(subst \,/,$(CWFOLDER)))
143endif
144
145AMCDIR      = $(subst $(space),\$(space),$(subst \,/,$(AMCDDKBIN)))
146ODEDIR      = $(subst $(space),\$(space),$(subst \,/,$(ODEMUSDKBIN)))
147NDEVDIR      = $(subst $(space),\$(space),$(subst \,/,$(NDEV_TOOLS)))
148
149###############################################################################
150#
151#    COMMON COMPILER FLAGS
152#
153###############################################################################
154
155#
156# for CodeWarrior
157#
158# -nodefaults       - required so the compiler does not search all the
159#                      Codewarrior paths
160# -proc 750         - which CPU
161# -align powerpc    - 4 byte alignment by default
162# -xm l             - create a library
163
164CCFLAGS = -nodefaults -proc $(PROCESSOR) -D$(ARCH_TARGET) -align powerpc -enum int
165ASFLAGS = -nodefaults -proc $(PROCESSOR) -D$(ARCH_TARGET)
166ARFLAGS = -nodefaults -xm l
167LDFLAGS = -nodefaults
168REL_LDFLAGS    = -nodefaults -nostdlib
169PREREL_LDFLAGS = -nodefaults -nostdlib
170
171# add yasuh-to 2005/12/28
172CCFLAGS += -enc SJIS
173# ifeq  ($(REVOLUTION_SDK_LANG),en)
174# CCFLAGS += -enc ascii
175# else
176# CCFLAGS += -enc SJIS
177# endif
178
179ifdef MULTIBYTE
180CCFLAGS += -multibyte -char unsigned
181endif #MULTIBYTE
182
183# common debug related flags
184ifdef DEBUG
185# _DEBUG is our symbol for saying "debug version".  The absence of NDEBUG
186# can also be used by code.
187CCFLAGS += -D_DEBUG
188ASFLAGS += -D_DEBUG
189else   # DEBUG
190# NDEBUG is our symbol for saying "no debug version".  The absence of _DEBUG
191# can also be used by code.
192CCFLAGS += -DNDEBUG
193ASFLAGS += -DNDEBUG
194endif  # DEBUG
195
196# SDK switch
197ifneq ($(SDK), DOL)
198CCFLAGS      += -DRVL_SDK
199ASFLAGS      += -DRVL_SDK
200endif
201
202###############################################################################
203#
204#    EPPC-SPECIFIC Build Flags and Variables
205#
206###############################################################################
207
208#
209# for CodeWarrior
210#
211# -fp hardware      - allow use of hardware FP instructions
212# -Cpp_exceptions   - turns off C++ exceptions.
213CCFLAGS += -fp hardware -Cpp_exceptions off
214ifndef CATS_ON
215CCFLAGS += -pragma "cats off"
216endif # CATS_ON
217
218
219MWCLDIR       = $(MWDIR)/PowerPC_EABI_TOOLS/Command_Line_Tools
220MWLIBDIR      = $(MWDIR)/PowerPC_EABI_Support/Runtime/Lib
221
222# H is for hardware floating point
223EPPCMWLIBS    = $(MWLIBDIR)/Runtime.PPCEABI.H.a \
224                $(MWDIR)/PowerPC_EABI_Support/MSL/MSL_C/PPC_EABI/Lib/MSL_C.PPCEABI.bare.H.a \
225                $(MWDIR)/PowerPC_EABI_Support/MSL/MSL_C++/PPC_EABI/Lib/MSL_C++.PPCEABI.bare.H.a
226
227ifdef TRK_INTEGRATION
228
229ifdef HOLLYWOOD_REV
230EPPCMWLIBS   += $(MWDIR)/PowerPC_EABI_Support/MetroTRK/TRK_Hollywood_Revolution.a
231else
232EPPCMWLIBS   += $(MWDIR)/PowerPC_EABI_Support/MetroTRK/TRK_MINNOW_DOLPHIN.a
233endif
234
235
236ifeq ($(PLATFORM), RVL)
237  ifdef NDEV
238    EPPCMWLIBS   += $(NDEVDIR)/../lib/NdevExi2A$(LIBSUFFIX) -lodenotstub$(LIBSUFFIX)
239  else
240    EPPCMWLIBS   += -lodemustubs$(LIBSUFFIX)
241  endif
242endif
243
244ifeq ($(PLATFORM), RVL0)
245  ifdef NDEV
246    EPPCMWLIBS   += $(NDEVDIR)/../lib/NdevExi2A$(LIBSUFFIX) -lodenotstub$(LIBSUFFIX)
247  else
248    EPPCMWLIBS   += -lodemustubs$(LIBSUFFIX)
249  endif
250endif
251
252ifeq ($(PLATFORM), RVL_LEGACYDI)
253  ifdef NDEV
254    EPPCMWLIBS   += $(NDEVDIR)/../lib/NdevExi2$(LIBSUFFIX) -lodenotstub$(LIBSUFFIX)
255  else
256    EPPCMWLIBS   += -lodemustubs$(LIBSUFFIX)
257  endif
258endif
259
260ifeq ($(PLATFORM), PRE_RVL)
261  ifdef NDEV
262    EPPCMWLIBS   += $(NDEVDIR)/../lib/NdevExi2$(LIBSUFFIX) -lodenotstub$(LIBSUFFIX)
263  else
264    ifdef ODEMUSDKBIN
265      EPPCMWLIBS   += $(ODEDIR)/../lib/odemuexi2.a -lodenotstub$(LIBSUFFIX)
266    else # not (NDEV and GDEV)
267      EPPCMWLIBS   += -lodemustubs$(LIBSUFFIX)
268    endif
269  endif
270
271  ifdef AMCDDKBIN
272    EPPCMWLIBS   += $(AMCDIR)/../lib/AmcExi2.a -lamcnotstub$(LIBSUFFIX)
273  else
274    EPPCMWLIBS   += -lamcstubs$(LIBSUFFIX)
275  endif
276endif
277
278ifeq ($(PLATFORM), RVL_EMU)
279  ifdef NDEV
280    EPPCMWLIBS   += $(NDEVDIR)/../lib/NdevExi2$(LIBSUFFIX) -lodenotstub$(LIBSUFFIX)
281  else
282    ifdef ODEMUSDKBIN
283      EPPCMWLIBS   += $(ODEDIR)/../lib/odemuexi2.a -lodenotstub$(LIBSUFFIX)
284    else # not (NDEV and GDEV)
285      EPPCMWLIBS   += -lodemustubs$(LIBSUFFIX)
286    endif
287  endif
288
289  ifdef AMCDDKBIN
290    EPPCMWLIBS   += $(AMCDIR)/../lib/AmcExi2.a -lamcnotstub$(LIBSUFFIX)
291  else
292    EPPCMWLIBS   += -lamcstubs$(LIBSUFFIX)
293  endif
294endif
295
296
297CCFLAGS      += -DTRK_INTEGRATION
298
299endif # TRK_INTEGRATION
300
301# NOTE: If editing REVOLUTION_LIBS, ensure that the library you're adding is
302#       also built by the top-level makefile (/dolphin/build/makefile)
303#       for this target (EPPC)
304
305# We use full paths so that we can depend on $( REVOLUTION_LIBS)
306# libsn.a will be prepended to link line to override __start
307
308REVOLUTION_LIBS =   $(INSTALL_ROOT)/lib/base$(LIBSUFFIX)  \
309                    $(INSTALL_ROOT)/lib/os$(LIBSUFFIX)    \
310                    $(INSTALL_ROOT)/lib/exi$(LIBSUFFIX)   \
311                    $(INSTALL_ROOT)/lib/si$(LIBSUFFIX)    \
312                    $(INSTALL_ROOT)/lib/db$(LIBSUFFIX)    \
313                    $(INSTALL_ROOT)/lib/vi$(LIBSUFFIX)    \
314                    $(INSTALL_ROOT)/lib/mtx$(LIBSUFFIX)   \
315                    $(INSTALL_ROOT)/lib/gx$(LIBSUFFIX)    \
316                    $(INSTALL_ROOT)/lib/dvd$(LIBSUFFIX)   \
317                    $(INSTALL_ROOT)/lib/demo$(LIBSUFFIX)  \
318                    $(INSTALL_ROOT)/lib/ai$(LIBSUFFIX)    \
319                    $(INSTALL_ROOT)/lib/ax$(LIBSUFFIX)    \
320                    $(INSTALL_ROOT)/lib/axfx$(LIBSUFFIX)  \
321                    $(INSTALL_ROOT)/lib/mem$(LIBSUFFIX)   \
322                    $(INSTALL_ROOT)/lib/cx$(LIBSUFFIX)    \
323                    $(INSTALL_ROOT)/lib/mix$(LIBSUFFIX)   \
324                    $(INSTALL_ROOT)/lib/sp$(LIBSUFFIX)    \
325                    $(INSTALL_ROOT)/lib/axart$(LIBSUFFIX) \
326                    $(INSTALL_ROOT)/lib/syn$(LIBSUFFIX)   \
327                    $(INSTALL_ROOT)/lib/seq$(LIBSUFFIX)   \
328                    $(INSTALL_ROOT)/lib/dsp$(LIBSUFFIX)   \
329                    $(INSTALL_ROOT)/lib/card$(LIBSUFFIX)  \
330                    $(INSTALL_ROOT)/lib/hio2$(LIBSUFFIX)  \
331                    $(INSTALL_ROOT)/lib/nand$(LIBSUFFIX)  \
332                    $(INSTALL_ROOT)/lib/sc$(LIBSUFFIX)    \
333                    $(INSTALL_ROOT)/lib/wenc$(LIBSUFFIX)  \
334                    $(INSTALL_ROOT)/lib/enc$(LIBSUFFIX)	  \
335					$(INSTALL_ROOT)/lib/arc$(LIBSUFFIX)
336#					$(INSTALL_ROOT)/lib/cnt$(LIBSUFFIX)   \
337#                     $(INSTALL_ROOT)/lib/mcc$(LIBSUFFIX)   \
338#                     $(INSTALL_ROOT)/lib/hio$(LIBSUFFIX)   \
339
340#######################################################################
341#   Libraries available with existence of IO processor firmware
342#######################################################################
343# 11-Mar-06 IPC lib was activated for all IO processor available targets.
344
345ifdef IOP_REV
346REVOLUTION_LIBS +=  $(INSTALL_ROOT)/lib/ipc$(LIBSUFFIX) \
347                    $(INSTALL_ROOT)/lib/fs$(LIBSUFFIX)
348else
349REVOLUTION_LIBS +=  $(INSTALL_ROOT)/lib/isfsEmu$(LIBSUFFIX) \
350                    $(INSTALL_ROOT)/lib/sdwp$(LIBSUFFIX)
351endif
352
353ifdef HOLLYWOOD_REV
354else
355REVOLUTION_LIBS +=  $(INSTALL_ROOT)/lib/ipcRegEmu$(LIBSUFFIX)
356endif
357
358
359########################################################################
360# Conditionals for list of REVOLUTION libraries. Because when you care
361# enough to emulate...
362########################################################################
363
364#
365# 20-Jan-06 The fabled WK library. For emulation platforms ONLY. @EUG
366#
367ifeq ($(PLATFORM), RVL_EMU)
368REVOLUTION_LIBS +=  $(INSTALL_ROOT)/lib/wk$(LIBSUFFIX)
369endif
370
371# 29-Jan-06 We will keep ARAM around for RVL_EMU and PRE_RVL targets (so sound can work).
372#           This means we must get rid of ARAM (and related libraries) for real HOLLYWOOD. @EUG
373#
374ifndef HOLLYWOOD_REV
375REVOLUTION_LIBS +=  $(INSTALL_ROOT)/lib/ar$(LIBSUFFIX) \
376                    $(INSTALL_ROOT)/lib/am$(LIBSUFFIX)
377endif
378
379#
380# 06-Feb-06 If in RVL_EMU environment, DIEMU API is called from DVD lib.
381#
382ifndef DI_DIRECT
383ifdef IOP_EMU
384REVOLUTION_LIBS +=  $(INSTALL_ROOT)/lib/diemu$(LIBSUFFIX) \
385                    $(INSTALL_ROOT)/lib/wk$(LIBSUFFIX) \
386                    $(INSTALL_ROOT)/lib/wkmc$(LIBSUFFIX)
387endif # IOP_EMU
388endif # DI_DIRECT
389
390
391#
392# 07-Feb-06 For backward compatibility. @EUG
393# 17-May-06 Added preprocessor macro WPADEMU.
394# 16-Jun-06 Added KPAD/KPADEmu/wireless WPAD libraries.
395#
396ifndef WPADEMU_LIB
397REVOLUTION_LIBS +=  $(INSTALL_ROOT)/lib/pad$(LIBSUFFIX)
398REVOLUTION_LIBS +=  $(INSTALL_ROOT)/lib/wpad$(LIBSUFFIX)
399REVOLUTION_LIBS +=  $(INSTALL_ROOT)/lib/kpad$(LIBSUFFIX)
400else # we're using the emulated WPAD library
401REVOLUTION_LIBS +=  $(INSTALL_ROOT)/lib/padempty$(LIBSUFFIX)
402REVOLUTION_LIBS +=  $(INSTALL_ROOT)/lib/wpadEmu$(LIBSUFFIX)
403REVOLUTION_LIBS +=  $(INSTALL_ROOT)/lib/kpadEmu$(LIBSUFFIX)
404CCFLAGS         += -DWPADEMU
405endif
406
407# 22-Feb-06 To enable Mr.EXI serial report output.
408#
409ifdef HOLLYWOOD_REV
410REVOLUTION_LIBS +=  $(INSTALL_ROOT)/lib/euart$(LIBSUFFIX)
411endif
412
413# 16-Jun-06 USB and wireless UI.
414#
415REVOLUTION_LIBS +=  $(INSTALL_ROOT)/lib/usb$(LIBSUFFIX) \
416                    $(INSTALL_ROOT)/lib/wud$(LIBSUFFIX) \
417                    $(INSTALL_ROOT)/lib/bte$(LIBSUFFIX)
418
419
420LINCLUDES   = -I$(MODULE_ROOT)/include
421
422# -i- delimits user paths from system paths.
423# By default, the only user path points to the local include tree.
424GINCLUDES   = -I$(INC_ROOT)         \
425              -ir $(MWDIR)/PowerPC_EABI_Support/Msl/Msl_c \
426              -I$(MWDIR)/PowerPC_EABI_Support/Runtime/Inc
427INCLUDES    = $(LINCLUDES) -i- $(GINCLUDES)
428
429LIB_PATH    = -L$(INSTALL_ROOT)/lib
430
431# -map              - create a .MAP file that shows final memory layout of
432#                     all sections
433# -unused           - show unused symbols
434# -fp hardware      - linker must use same fp settings as compiler
435# Note that LDFLAGS automagically includes the required Metrowerks library
436LDFLAGS += $(LIB_PATH) -fp hardware $(EPPCMWLIBS)
437REL_LDFLAGS    += -fp hardware
438PREREL_LDFLAGS += -fp hardware
439
440ifdef DEBUG
441LIBSUFFIX    = D.a
442BINSUFFIX    = D.elf
443DOLSUFFIX    = D.dol
444PLFSUFFIX    = D.plf
445PREPLFSUFFIX = D.preplf
446RELSUFFIX    = D.rel
447STRSUFFIX    = D.str
448LCFSUFFIX    = D.lcf
449LSTSUFFIX    = D.lst
450WADSUFFIX	 = D.wad
451ASUFFIX		 = D
452else # DEBUG
453LIBSUFFIX    = .a
454BINSUFFIX    = .elf
455DOLSUFFIX    = .dol
456PLFSUFFIX    = .plf
457PREPLFSUFFIX = .preplf
458RELSUFFIX    = .rel
459STRSUFFIX    = .str
460LCFSUFFIX    = .lcf
461LSTSUFFIX    = .lst
462WADSUFFIX	 = .wad
463ASUFFIX		 =
464endif # DEBUG
465
466DEPSUFFIX    = .d
467
468CC           = $(MWCLDIR)/mwcceppc.exe
469AS           = $(MWCLDIR)/mwasmeppc.exe
470LD           = $(MWCLDIR)/mwldeppc.exe
471AR           = $(MWCLDIR)/mwldeppc.exe
472COMPILE      = -c
473
474# New 2006/02/15
475ifdef RVL_OS
476CCFLAGS      += -DRVL_OS
477ASFLAGS      += -DRVL_OS
478endif # RVL_OS
479
480ifdef EPPC
481CCFLAGS      += -DEPPC
482ASFLAGS      += -DEPPC
483endif # EPPC
484
485ifeq ($(PROCESSOR), gekko)
486GEKKO        =  TRUE
487CCFLAGS      += -DGEKKO
488ASFLAGS      += -DGEKKO
489endif # gekko
490
491# New Code 2005/12/16
492ifdef HOLLYWOOD_REV
493CCFLAGS      += -DHOLLYWOOD_REV=$(HOLLYWOOD_REV)
494ASFLAGS      += -DHOLLYWOOD_REV=$(HOLLYWOOD_REV)
495endif # HOLLYWOOD_REV
496
497ifdef BROADWAY_REV
498CCFLAGS      += -DBROADWAY_REV=$(BROADWAY_REV)
499ASFLAGS      += -DBROADWAY_REV=$(BROADWAY_REV)
500endif # BROADWAY_REV
501
502ifdef IOP_REV
503CCFLAGS      += -DIOP_REV=$(IOP_REV)
504ASFLAGS      += -DIOP_REV=$(IOP_REV)
505endif # IOP_REV
506
507# for RVL_EMU
508ifdef HOLLYWOOD_EMU
509CCFLAGS      += -DHOLLYWOOD_EMU
510ASFLAGS      += -DHOLLYWOOD_EMU
511endif # HOLLYWOOD_EMU
512
513ifdef BROADWAY_EMU
514CCFLAGS      += -DBROADWAY_EMU
515ASFLAGS      += -DBROADWAY_EMU
516endif # BROADWAY_EMU
517
518ifdef IOP_EMU
519CCFLAGS      += -DIOP_EMU
520ASFLAGS      += -DIOP_EMU
521endif # IOP_EMU
522
523ifdef DI_DIRECT
524CCFLAGS      += -DDI_DIRECT
525ASFLAGS      += -DDI_DIRECT
526endif # DI_DIRECT
527
528ifdef NO_AHBPI_DSEA
529CCFLAGS      += -DNO_AHBPI_DSEA
530ASFLAGS      += -DNO_AHBPI_DSEA
531endif # NO_AHBPI_DSEA
532
533###############################################################################
534#
535#    Dolphin SDK build configuration settings
536#    This section can be skipped by defining DOLPHIN_MINFLAGS for building
537#    application program.
538#
539###############################################################################
540
541ifndef DOLPHIN_MINFLAGS
542
543#
544# for CodeWarror
545#
546# Reduced warning level from "ALL" to "MOST", got rid of
547# intercapping complaints in header filenames.
548#
549CCFLAGS += -W all -W nofilecaps -W nosysfilecaps
550
551WARNLV_SDKINC   = -W padding,notused
552WARNLV_SDKLIB   =
553
554LDFLAGS += -unused -map ${@:.elf=.map}
555REL_LDFLAGS    += -unused -map ${@:.plf=.map} -m _prolog -r1 -strip_partial
556PREREL_LDFLAGS += -unused -map ${@:.preplf=.premap} -m _prolog -r
557
558# debug related flags
559ifdef DEBUG
560# -opt off          - The debugger is very unhappy with any optimizations at all.
561# -inline off       - disable all inlining
562CCFLAGS += -opt off -inline off
563
564#
565# make DEBUG=TRUE NDEBUGINFO=TRUE
566#  for DEBUG lib without debug information
567#
568ifndef  NDEBUGINFO
569# -g                - generate full debug symbolics
570LDFLAGS += -g
571CCFLAGS += -g
572ASFLAGS += -g
573REL_LDFLAGS    += -g
574PREREL_LDFLAGS +=
575endif
576
577else  # DEBUG
578# -O4,p             - full optimizations, optimize for speed (not code size)
579# -inline auto      - inline small functions where possible,
580#                     even without inline directive
581# -unused           - show unused symbols
582CCFLAGS += -ipa file -O4,p -inline auto -pragma "warn_notinlined off"
583ASFLAGS +=
584
585#
586# make NDEBUG=TRUE DEBUGINFO=TRUE
587#  for NDEBUG lib with debug information
588#
589ifdef   DEBUGINFO
590LDFLAGS     += -g
591CCFLAGS     += -g
592ASFLAGS     += -g
593REL_LDFLAGS += -g
594PREREL_LDFLAGS  +=
595endif # DEBUGINFO
596
597endif # DEBUG
598
599endif  #DOLPHIN_MINFLAGS
600
601
602###############################################################################
603#
604#    Dolphin configuration settings
605#    This section is only for Nintendo internal use.
606#
607###############################################################################
608
609# if REALDEBUGGER is TRUE, then DBInit will not initialize the low memory
610# structure
611REALDEBUGGER    = TRUE
612
613