1#!/usr/bin/env omake
2#----------------------------------------------------------------------------
3# Project: Horizon
4# File:    commondefs.cctype.GCC-i386.om
5#
6# Copyright 2007-2009 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:: 2010-09-01#$
15# $Rev: 25011 $
16# $Author: hatamoto_minoru $
17#----------------------------------------------------------------------------
18
19Compiler. =
20    class Compiler
21
22    new() =
23        return $(this)
24
25    getCCFlagsDebug(config) =
26        eff =
27            switch($(config.effort))
28            case fast
29                value -Otime
30            case small
31                value -Ospace
32        eff +=
33            switch($(config.buildtype))
34            case $"Debug"
35                value -O0 --retain=calls
36            case $"Development"
37                if $(BUILD_APPLICATION)
38                    value $(CCFLAGS_DEV_OPT)
39                else
40                    value -O3 $(eff)
41            case $"Release"
42                value -O3 $(eff)
43        return $(eff)
44
45    getLDFlagsDebug(config) =
46        return $(EMPTY)
47
48    toSymbol(str) =
49        stdout = $(open-out-string)
50        fsubst($(open-in-string $(str)))
51        case $'[-\.]' g
52            value $'_'
53        result = $(out-contents $(stdout))
54        close($(stdout))
55        return $(uppercase $(result))
56
57    getCCFlags(config) =
58        return $(getCCFlagsDebug $(config)) $(getCCFlagsLtcg $(config)) $(getCCFlagsCPU $(config))
59
60    getLDFlags(config) =
61        return $(getLDFlagsDebug $(config)) $(getLDFlagsLtcg $(config))
62
63    getASFlags(config) =
64        return $(getASFlagsCPU $(config))
65
66    getMacroFlags(config) =
67        export flags
68        flags  =
69            switch($(config.effort))
70            case fast
71                value -DNN_EFFORT_FAST
72            case small
73                value -DNN_EFFORT_SMALL
74
75        flags += -DNN_PLATFORM_$(toSymbol $(config.platform))
76        flags += -DNN_HARDWARE_$(toSymbol $(config.hardware))
77        flags += -DNN_SYSTEM_$(toSymbol $(config.systemname))
78
79        #                     noopt   verbose release Debug   Dev.    Release
80        # DISABLE_DEBUG       �~      �~      ��      �~      �~      ��
81        # DISABLE_DEBUG_SDK   �~      �~      ��      �~      �~      ��
82        # DISABLE_ASSERT      �~      �~      ��      �~      �~      ��
83        # DISABLE_ASSERT_SDK  �~      �~      ��      �~      �~      ��
84        # ENABLE_HOST         ��      ��      �~      ��      ��      �~
85        #
86        # BUILD_NOOPT         ��      �~      �~      ��      �~      �~
87        # BUILD_VERBOSE       ��      ��      �~      ��      ��      �~
88        # BUILD_DEBUG         �~      �~      �~      ��      �~      �~
89        # BUILD_DEVELOPMENT   �~      �~      �~      �~      ��      �~
90        # BUILD_RELEASE       �~      �~      �~      �~      �~      ��
91        #
92
93        if $(equal $(config.buildtype),Release)
94            DEBUG_PRINT_DEFAULT        = false
95            DEBUG_PRINT_SDK_DEFAULT    = false
96            ASSERT_WARNING_DEFAULT     = false
97            ASSERT_WARNING_SDK_DEFAULT = false
98            export
99        else
100            DEBUG_PRINT_DEFAULT        = true
101            DEBUG_PRINT_SDK_DEFAULT    = true
102            ASSERT_WARNING_DEFAULT     = true
103            ASSERT_WARNING_SDK_DEFAULT = true
104            export
105
106        if $(not $(DEBUG_PRINT))
107            flags += -DNN_SWITCH_DISABLE_DEBUG_PRINT=1
108        if $(not $(DEBUG_PRINT_SDK))
109            flags += -DNN_SWITCH_DISABLE_DEBUG_PRINT_FOR_SDK=1
110        if $(not $(ASSERT_WARNING))
111            flags += -DNN_SWITCH_DISABLE_ASSERT_WARNING=1
112        if $(not $(ASSERT_WARNING_SDK))
113            flags += -DNN_SWITCH_DISABLE_ASSERT_WARNING_FOR_SDK=1
114        if $(config.isHostIoEnable)
115            flags += -DNN_SWITCH_ENABLE_HOST_IO=1
116
117        if $(or $(BUILD_APPLICATION), $(BUILD_KERNEL))
118            flags += -DNN_BUILD_$(toSymbol $(config.buildtype))
119
120        flags +=
121            switch($(config.buildtype))
122            case Debug          # noopt
123                value -DNN_BUILD_VERBOSE -DNN_BUILD_NOOPT
124            case Development    # verbose
125                value -DNN_BUILD_VERBOSE
126            case Release        # release
127                value $(EMPTY)
128
129        return $(flags)
130
131
132
133include $(ROOT_OMAKE)/commondefs.cctype.RVCT
134include $(ROOT_OMAKE)/commondefs.cctype.GCC
135
136# ������ include ���Ă����Ȃ��ƂȂ��� .STATIC �� Fatal Error
137include $(ROOT_OMAKE)/tooldefs
138
139public.CC               = $`(COMPILER.CC)
140public.CXX              = $`(COMPILER.CXX)
141public.CPP              = $`(COMPILER.CPP)
142public.AR               = $`(COMPILER.AR)
143public.LD               = $`(COMPILER.LD)
144public.AS               = $`(COMPILER.AS)
145
146public.STRIP            = $`(COMPILER.STRIP)
147public.DISAS            = $`(COMPILER.DISAS)
148
149public.CCFLAGS_MACRO    = $`(COMPILER.CCFLAGS_MACRO)
150public.CCFLAGS_WARNING  = $`(COMPILER.CCFLAGS_WARNING)
151public.CCFLAGS_DEV_OPT  = $`(COMPILER.CCFLAGS_DEV_OPT)
152
153public.CCFLAGS          = $`(COMPILER.CCFLAGS) $`(CCFLAGS_MACRO)
154public.CCFLAGS_BUILD    =
155
156public.CFLAGS           = $`(COMPILER.CFLAGS) $`(CCFLAGS)
157public.CXXFLAGS         = $`(COMPILER.CXXFLAGS) $`(CCFLAGS)
158public.CSCANFLAGS       = $`(COMPILER.CSCANFLAGS)
159
160public.LDFLAGS_WARNING  = $`(COMPILER.LDFLAGS_WARNING)
161public.LDFLAGS_INFO     = $`(COMPILER.LDFLAGS_INFO)
162public.ARFLAGS          = $`(COMPILER.ARFLAGS)
163public.RANLIB           = $`(COMPILER.RANLIB)
164public.INCLUDES_OPT     = $`(COMPILER.INCLUDES_OPT)
165public.YACC             = $`(COMPILER.YACC)
166public.LEX              = $`(COMPILER.LEX)
167public.LDFLAGS          = $`(COMPILER.LDFLAGS)
168public.LDRESP           = $`(COMPILER.LDRESP)
169
170public.CCOUT            = $`(COMPILER.CCOUT)
171public.LDOUT            = $`(COMPILER.LDOUT)
172public.ASOUT            = $`(COMPILER.ASOUT)
173public.ASFLAGS          = $`(COMPILER.ASFLAGS)
174
175
176public.ENTRYPOINT       = __ctr_start
177public.INCLUDES[]       = $(ROOT_INCLUDE) $(HORIZON_ROOT_INCLUDE)
178public.LIBS             = $`(DEFAULT_LIBS)
179public.LIBFILES         =
180public.MINIMUM_LIBS     =
181public.DEFAULT_LIBS     =
182public.LLIBS            =
183
184public.USE_GNU_EXTENTIONS = true
185#
186# Add the -I option to the includes lazily.
187# Don't redefine this variable unless you know what you are doing.
188#
189public.PREFIXED_INCLUDES = $`(addprefix $(INCLUDES_OPT), $(set $(absname $(INCLUDES))))
190