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 -proc $(PROCESSOR) -xm l 167LDFLAGS = -nodefaults -proc $(PROCESSOR) 168REL_LDFLAGS = -nodefaults -proc $(PROCESSOR) -nostdlib 169PREREL_LDFLAGS = -nodefaults -proc $(PROCESSOR) -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/hio2$(LIBSUFFIX) \ 330 $(INSTALL_ROOT)/lib/nand$(LIBSUFFIX) \ 331 $(INSTALL_ROOT)/lib/sc$(LIBSUFFIX) \ 332 $(INSTALL_ROOT)/lib/wenc$(LIBSUFFIX) \ 333 $(INSTALL_ROOT)/lib/enc$(LIBSUFFIX) \ 334 $(INSTALL_ROOT)/lib/arc$(LIBSUFFIX) \ 335 $(INSTALL_ROOT)/lib/darch$(LIBSUFFIX) \ 336 $(INSTALL_ROOT)/lib/esp$(LIBSUFFIX) \ 337 $(INSTALL_ROOT)/lib/midi$(LIBSUFFIX) \ 338 339# $(INSTALL_ROOT)/lib/cnt$(LIBSUFFIX) \ 340# $(INSTALL_ROOT)/lib/mcc$(LIBSUFFIX) \ 341# $(INSTALL_ROOT)/lib/hio$(LIBSUFFIX) \ 342 343####################################################################### 344# Libraries available with existence of IO processor firmware 345####################################################################### 346# 11-Mar-06 IPC lib was activated for all IO processor available targets. 347 348ifdef IOP_REV 349REVOLUTION_LIBS += $(INSTALL_ROOT)/lib/ipc$(LIBSUFFIX) \ 350 $(INSTALL_ROOT)/lib/fs$(LIBSUFFIX) 351else 352REVOLUTION_LIBS += $(INSTALL_ROOT)/lib/isfsEmu$(LIBSUFFIX) \ 353 $(INSTALL_ROOT)/lib/sdwp$(LIBSUFFIX) 354endif 355 356ifdef HOLLYWOOD_REV 357else 358REVOLUTION_LIBS += $(INSTALL_ROOT)/lib/ipcRegEmu$(LIBSUFFIX) 359endif 360 361 362######################################################################## 363# Conditionals for list of REVOLUTION libraries. Because when you care 364# enough to emulate... 365######################################################################## 366 367# 368# 20-Jan-06 The fabled WK library. For emulation platforms ONLY. @EUG 369# 370ifeq ($(PLATFORM), RVL_EMU) 371REVOLUTION_LIBS += $(INSTALL_ROOT)/lib/wk$(LIBSUFFIX) 372endif 373 374# 29-Jan-06 We will keep ARAM around for RVL_EMU and PRE_RVL targets (so sound can work). 375# This means we must get rid of ARAM (and related libraries) for real HOLLYWOOD. @EUG 376# 377ifndef HOLLYWOOD_REV 378REVOLUTION_LIBS += $(INSTALL_ROOT)/lib/ar$(LIBSUFFIX) \ 379 $(INSTALL_ROOT)/lib/am$(LIBSUFFIX) 380endif 381 382# 383# 06-Feb-06 If in RVL_EMU environment, DIEMU API is called from DVD lib. 384# 385ifndef DI_DIRECT 386ifdef IOP_EMU 387REVOLUTION_LIBS += $(INSTALL_ROOT)/lib/diemu$(LIBSUFFIX) \ 388 $(INSTALL_ROOT)/lib/wk$(LIBSUFFIX) \ 389 $(INSTALL_ROOT)/lib/wkmc$(LIBSUFFIX) 390endif # IOP_EMU 391endif # DI_DIRECT 392 393 394# 395# 07-Feb-06 For backward compatibility. @EUG 396# 17-May-06 Added preprocessor macro WPADEMU. 397# 16-Jun-06 Added KPAD/KPADEmu/wireless WPAD libraries. 398# 399ifndef WPADEMU_LIB 400REVOLUTION_LIBS += $(INSTALL_ROOT)/lib/pad$(LIBSUFFIX) 401REVOLUTION_LIBS += $(INSTALL_ROOT)/lib/wpad$(LIBSUFFIX) 402REVOLUTION_LIBS += $(INSTALL_ROOT)/lib/kpad$(LIBSUFFIX) 403else # we're using the emulated WPAD library 404REVOLUTION_LIBS += $(INSTALL_ROOT)/lib/padempty$(LIBSUFFIX) 405REVOLUTION_LIBS += $(INSTALL_ROOT)/lib/wpadEmu$(LIBSUFFIX) 406REVOLUTION_LIBS += $(INSTALL_ROOT)/lib/kpadEmu$(LIBSUFFIX) 407CCFLAGS += -DWPADEMU 408endif 409 410# 22-Feb-06 To enable Mr.EXI serial report output. 411# 412ifdef HOLLYWOOD_REV 413REVOLUTION_LIBS += $(INSTALL_ROOT)/lib/euart$(LIBSUFFIX) 414endif 415 416# 16-Jun-06 USB and wireless UI. 417# 418REVOLUTION_LIBS += $(INSTALL_ROOT)/lib/usb$(LIBSUFFIX) \ 419 $(INSTALL_ROOT)/lib/wud$(LIBSUFFIX) \ 420 $(INSTALL_ROOT)/lib/bte$(LIBSUFFIX) 421 422 423LINCLUDES = -I$(MODULE_ROOT)/include 424 425# -i- delimits user paths from system paths. 426# By default, the only user path points to the local include tree. 427GINCLUDES = -I$(INC_ROOT) \ 428 -ir $(MWDIR)/PowerPC_EABI_Support/Msl/Msl_c \ 429 -I$(MWDIR)/PowerPC_EABI_Support/Runtime/Inc 430INCLUDES = $(LINCLUDES) -i- $(GINCLUDES) 431 432LIB_PATH = -L$(INSTALL_ROOT)/lib 433 434# -map - create a .MAP file that shows final memory layout of 435# all sections 436# -unused - show unused symbols 437# -fp hardware - linker must use same fp settings as compiler 438# Note that LDFLAGS automagically includes the required Metrowerks library 439LDFLAGS += $(LIB_PATH) -fp hardware $(EPPCMWLIBS) 440REL_LDFLAGS += -fp hardware 441PREREL_LDFLAGS += -fp hardware 442 443ifdef COUNTRY_REGION 444REGION_SUFFIX ?= _$(COUNTRY_REGION) 445else 446REGION_SUFFIX ?= 447endif 448 449ifdef DEBUG 450LIBSUFFIX = D.a 451BINSUFFIX = D.elf 452DOLSUFFIX = D.dol 453PLFSUFFIX = D.plf 454PREPLFSUFFIX = D.preplf 455RELSUFFIX = D.rel 456STRSUFFIX = D.str 457LCFSUFFIX = D.lcf 458LSTSUFFIX = D.lst 459WADSUFFIX = D.wad 460ASUFFIX = D 461MCHSUFFIX = D.mch 462LZ77SUFFIX = D.lz7 463else # DEBUG 464LIBSUFFIX = .a 465BINSUFFIX = .elf 466DOLSUFFIX = .dol 467PLFSUFFIX = .plf 468PREPLFSUFFIX = .preplf 469RELSUFFIX = .rel 470STRSUFFIX = .str 471LCFSUFFIX = .lcf 472LSTSUFFIX = .lst 473WADSUFFIX = .wad 474ASUFFIX = 475MCHSUFFIX = .mch 476LZ77SUFFIX = .lz7 477endif # DEBUG 478 479DEPSUFFIX = .d 480 481CC = $(MWCLDIR)/mwcceppc.exe 482AS = $(MWCLDIR)/mwasmeppc.exe 483LD = $(MWCLDIR)/mwldeppc.exe 484AR = $(MWCLDIR)/mwldeppc.exe 485COMPILE = -c 486 487# New 2007/10/17 488ifdef NANDAPP 489CCFLAGS += -DNANDAPP 490endif 491 492# New 2006/02/15 493ifdef RVL_OS 494CCFLAGS += -DRVL_OS 495ASFLAGS += -DRVL_OS 496endif # RVL_OS 497 498ifdef EPPC 499CCFLAGS += -DEPPC 500ASFLAGS += -DEPPC 501endif # EPPC 502 503ifeq ($(PROCESSOR), gekko) 504GEKKO = TRUE 505CCFLAGS += -DGEKKO 506ASFLAGS += -DGEKKO 507endif # gekko 508 509# New Code 2005/12/16 510ifdef HOLLYWOOD_REV 511CCFLAGS += -DHOLLYWOOD_REV=$(HOLLYWOOD_REV) 512ASFLAGS += -DHOLLYWOOD_REV=$(HOLLYWOOD_REV) 513endif # HOLLYWOOD_REV 514 515ifdef BROADWAY_REV 516CCFLAGS += -DBROADWAY_REV=$(BROADWAY_REV) 517ASFLAGS += -DBROADWAY_REV=$(BROADWAY_REV) 518endif # BROADWAY_REV 519 520ifdef IOP_REV 521CCFLAGS += -DIOP_REV=$(IOP_REV) 522ASFLAGS += -DIOP_REV=$(IOP_REV) 523endif # IOP_REV 524 525# for RVL_EMU 526ifdef HOLLYWOOD_EMU 527CCFLAGS += -DHOLLYWOOD_EMU 528ASFLAGS += -DHOLLYWOOD_EMU 529endif # HOLLYWOOD_EMU 530 531ifdef BROADWAY_EMU 532CCFLAGS += -DBROADWAY_EMU 533ASFLAGS += -DBROADWAY_EMU 534endif # BROADWAY_EMU 535 536ifdef IOP_EMU 537CCFLAGS += -DIOP_EMU 538ASFLAGS += -DIOP_EMU 539endif # IOP_EMU 540 541ifdef DI_DIRECT 542CCFLAGS += -DDI_DIRECT 543ASFLAGS += -DDI_DIRECT 544endif # DI_DIRECT 545 546ifdef NO_AHBPI_DSEA 547CCFLAGS += -DNO_AHBPI_DSEA 548ASFLAGS += -DNO_AHBPI_DSEA 549endif # NO_AHBPI_DSEA 550 551############################################################################### 552# 553# Dolphin SDK build configuration settings 554# This section can be skipped by defining DOLPHIN_MINFLAGS for building 555# application program. 556# 557############################################################################### 558 559ifndef DOLPHIN_MINFLAGS 560 561# 562# for CodeWarror 563# 564# Reduced warning level from "ALL" to "MOST", got rid of 565# intercapping complaints in header filenames. 566# 567CCFLAGS += -W all -W nofilecaps -W nosysfilecaps 568 569WARNLV_SDKINC = -W padding,notused 570WARNLV_SDKLIB = 571 572LDFLAGS += -unused -map ${@:.elf=.map} 573REL_LDFLAGS += -unused -map ${@:.plf=.map} -m _prolog -r1 -strip_partial 574PREREL_LDFLAGS += -unused -map ${@:.preplf=.premap} -m _prolog -r 575 576# debug related flags 577ifdef DEBUG 578# -opt off - The debugger is very unhappy with any optimizations at all. 579# -inline off - disable all inlining 580CCFLAGS += -opt off -inline off 581 582# 583# make DEBUG=TRUE NDEBUGINFO=TRUE 584# for DEBUG lib without debug information 585# 586ifndef NDEBUGINFO 587# -gdwarf-2 - generate full debug symbolics 588LDFLAGS += -gdwarf-2 589CCFLAGS += -gdwarf-2 590ASFLAGS += -gdwarf-2 591REL_LDFLAGS += -gdwarf-2 592PREREL_LDFLAGS += 593endif 594 595else # DEBUG 596# -O4,p - full optimizations, optimize for speed (not code size) 597# -inline auto - inline small functions where possible, 598# even without inline directirve 599# -unused - show unused symbols 600CCFLAGS += -ipa file -O4,p -inline auto -pragma "warn_notinlined off" 601ASFLAGS += 602 603# 604# make NDEBUG=TRUE DEBUGINFO=TRUE 605# for NDEBUG lib with debug information 606# 607ifdef DEBUGINFO 608LDFLAGS += -gdwarf-2 609CCFLAGS += -gdwarf-2 610ASFLAGS += -gdwarf-2 611REL_LDFLAGS += -gdwarf-2 612PREREL_LDFLAGS += 613endif # DEBUGINFO 614 615endif # DEBUG 616 617endif #DOLPHIN_MINFLAGS 618 619 620############################################################################### 621# 622# Dolphin configuration settings 623# This section is only for Nintendo internal use. 624# 625############################################################################### 626 627# if REALDEBUGGER is TRUE, then DBInit will not initialize the low memory 628# structure 629REALDEBUGGER = TRUE 630 631############################################################################### 632# 633# Precompile header 634# 635############################################################################### 636 637ifdef USE_PRECOMPILE_HEADER 638 639PREFIX_FILE = -include private/revolution$(MCHSUFFIX) 640 641else 642 643# PREFIX_FILE = -include revolution.h 644PREFIX_FILE = 645 646endif 647 648 649