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-08-14#$
15# $Rev: 23808 $
16# $Author: okubata_ryoma $
17#----------------------------------------------------------------------------
18
19open configure/Configure
20
21declare public.GCC
22
23.STATIC:
24    GCC_SUFFIX =
25    if $(CheckProg_ gcc)
26        GCC_SUFFIX =
27    elseif $(CheckProg_ gcc-3)[
28        GCC_SUFFIX = -3
29    elseif $(CheckProg_ gcc-4)
30        GCC_SUFFIX = -4
31
32.STATIC:
33    GCC = $(where gcc$(GCC_SUFFIX))
34    if $(GCC)
35        GCC = $(nth 0, $(GCC))
36        export
37
38CYGWIN_DIR          = $(absname $(dirname $(GCC))/..)
39CYGWIN_BINDIR       = $(CYGWIN_DIR)/bin
40CYGWIN_LIBDIR       = $(CYGWIN_DIR)/lib
41
42CompilerGCCi386. =
43    extends $(Compiler)
44    class CompilerGCCi386
45
46    CC                  = gcc$(GCC_SUFFIX)
47    CXX                 = g++$(GCC_SUFFIX)
48    CPP                 = cpp
49    AR                  = ar
50    LD                  = gcc$(GCC_SUFFIX)
51    AS                  = as
52    RANLIB              = ranlib
53    YACC                = yacc
54    LEX                 = lex
55
56    STRIP               = strip
57    DISAS               =
58
59    CCFLAGS_MACRO       =
60    CCFLAGS_WARNING     = -Wall
61    CCFLAGS_DEV_OPT     = -O0 --retain=calls
62    CCFLAGS             = -mno-cygwin -pipe
63
64    CFLAGS              = -c
65    CXXFLAGS            = -c
66    CSCANFLAGS          = -MM
67
68    LDFLAGS             = -mno-cygwin -L$(CYGWIN_LIBDIR)/mingw $`(LDFLAGS_WARNING) $`(LDFLAGS_INFO)
69    LDFLAGS_WARNING     = -Wall
70    LDFLAGS_INFO        =
71    LDRESP              =
72    ASFLAGS             =
73    ARFLAGS             = -rcuT
74
75    INCLUDES_OPT        = -I
76    CCOUT               = -o
77    LDOUT               = -o
78    ASOUT               = -o
79
80    new() =
81        return $(this)
82
83    getCCFlagsDebug(config) =
84        switch($(config.buildtype))
85        case $"Debug"
86            return -O0
87        case $"Development"
88            return -O2
89        case $"Release"
90            return -O2
91        return
92
93    getCCFlagsCPU(config) =
94        return $(EMPTY)
95
96    getASFlagsCPU(config) =
97        return $(EMPTY)
98
99    getMacroFlags(config) =
100        flags = -DNN_COMPILER_GCC
101        flags += $(config.getMacroFlags)
102        flags += $(Compiler::getMacroFlags $(config))
103        return $(flags)
104