1#----------------------------------------------------------------------------
2# Project:  Horizon
3# File:     commondefs.cctype.GCC.om
4#
5# Copyright (C)2009-2011 Nintendo Co., Ltd.  All rights reserved.
6#
7# These coded instructions, statements, and computer programs contain
8# proprietary information of Nintendo of America Inc. and/or Nintendo
9# Company Ltd., and are protected by Federal copyright law.  They may
10# not be disclosed to third parties or copied or duplicated in any form,
11# in whole or in part, without the prior written consent of Nintendo.
12#
13# $Rev: 34627 $
14#----------------------------------------------------------------------------
15
16open configure/Configure
17
18declare public.GCC
19
20.STATIC:
21    GCC_SUFFIX =
22    if $(CheckProg_ gcc)
23        GCC_SUFFIX =
24    elseif $(CheckProg_ gcc-3)[
25        GCC_SUFFIX = -3
26    elseif $(CheckProg_ gcc-4)
27        GCC_SUFFIX = -4
28
29.STATIC:
30    GCC = $(where gcc$(GCC_SUFFIX))
31    if $(GCC)
32        GCC = $(nth 0, $(GCC))
33        export
34
35CYGWIN_DIR          = $(absname $(dirname $(GCC))/..)
36CYGWIN_BINDIR       = $(CYGWIN_DIR)/bin
37CYGWIN_LIBDIR       = $(CYGWIN_DIR)/lib
38
39CompilerGCCi386. =
40    extends $(Compiler)
41    class CompilerGCCi386
42
43    CC                  = gcc$(GCC_SUFFIX)
44    CXX                 = g++$(GCC_SUFFIX)
45    CPP                 = cpp
46    AR                  = ar
47    LD                  = gcc$(GCC_SUFFIX)
48    AS                  = as
49    RANLIB              = ranlib
50    YACC                = yacc
51    LEX                 = lex
52
53    STRIP               = strip
54    DISAS               =
55
56    CCFLAGS_MACRO       =
57    CCFLAGS_WARNING     = -Wall
58    CCFLAGS_DEV_OPT     = -O0 --retain=calls
59    CCFLAGS             = -mno-cygwin -pipe
60
61    CFLAGS              = -c
62    CXXFLAGS            = -c
63    CSCANFLAGS          = -MM
64
65    LDFLAGS             = -mno-cygwin -L$(CYGWIN_LIBDIR)/mingw $`(LDFLAGS_WARNING) $`(LDFLAGS_INFO)
66    LDFLAGS_WARNING     = -Wall
67    LDFLAGS_INFO        =
68    LDRESP              =
69    ASFLAGS             =
70    ARFLAGS             = -rcuT
71
72    INCLUDES_OPT        = -I
73    CCOUT               = -o
74    LDOUT               = -o
75    ASOUT               = -o
76
77    new() =
78        return $(this)
79
80    getCCFlagsDebug(config) =
81        switch($(config.buildtype))
82        case $"Debug"
83            return -O0
84        case $"Development"
85            return -O2
86        case $"Release"
87            return -O2
88        return
89
90    getCCFlagsCPU(config) =
91        return $(EMPTY)
92
93    getASFlagsCPU(config) =
94        return $(EMPTY)
95
96    getMacroFlags(config) =
97        flags = -DNN_COMPILER_GCC
98        flags += $(config.getMacroFlags)
99        flags += $(Compiler::getMacroFlags $(config))
100        return $(flags)
101