
# GNU Linux x PowerPC

set tc3 [snToolChain PowerPCTarget]
${tc3} SetLongName "GNUPro (PowerPC linux)"
${tc3} SetIsEmbedded 1
${tc3} SetShortName ppc
${tc3} SetDebuggerName powerpc-elix-linux-gnu-gdb
${tc3} AddRule CC .c.o powerpc-elix-linux-gnu-gcc "-c $<"
${tc3} AddRuleInfo CC "C" "Compile a C file"

#DEBUG FLAGS
${tc3} AddRuleFlagSet CC Debug "" DBG_DEFAULT
${tc3} AddRuleFlagSet CC Debug "" DBG_NONE
${tc3} AddRuleFlagSet CC Debug "-g" DBG_STD
#$tc3 AddRuleFlagSet CC Debug "-Z7" DBG_OLD

#OPRIMIZATION FLAGS
${tc3} AddRuleFlagSet CC Optimize "" OPT_DEFAULT
${tc3} AddRuleFlagSet CC Optimize "-O0" OPT_NONE
${tc3} AddRuleFlagSet CC Optimize "-Os" OPT_SIZE
${tc3} AddRuleFlagSet CC Optimize "-O1" OPT_L1
${tc3} AddRuleFlagSet CC Optimize "-O2" OPT_L2
${tc3} AddRuleFlagSet CC Optimize "-O3" OPT_L3

#CODE GENERATION FLAGS
${tc3} AddRuleFlagSet CC CodeGen "" CG_DEFAULT
${tc3} AddRuleFlagSet CC CodeGen "-fpic" CG_PIC
${tc3} AddRuleFlagSet CC CodeGen "-fshared-data" CG_SHAREDATA
${tc3} AddRuleFlagSet CC CodeGen "-fshort-enums" CG_SHORTENUMS

#WARNING FLAGS
${tc3} AddRuleFlagSet CC Warning "" WN_DEFAULT
${tc3} AddRuleFlagSet CC Warning "-w" WN_NONE
${tc3} AddRuleFlagSet CC Warning "-pedantic" WN_ANSI
${tc3} AddRuleFlagSet CC Warning "-W" WN_STD
${tc3} AddRuleFlagSet CC Warning "-Wall" WN_ALL
${tc3} AddRuleFlagSet CC Warning "-Werror" WN_ERR

${tc3} SetDefinesSpecProc CC GNUProcessDefines
${tc3} SetIncludeSpecProc CC GNUProcessIncludePaths

${tc3} AddRule CPP .cpp.o "powerpc-elix-linux-gnu-g++" "-c $<"
${tc3} AddRuleInfo CPP "C++" "Compile a C++ file"
${tc3} AddRuleSuffix CPP .C.o
${tc3} AddRuleSuffix CPP .cc.o
${tc3} AddRuleSuffix CPP .cxx.o

#DEBUG FLAGS
${tc3} AddRuleFlagSet CPP Debug "" DBG_DEFAULT
${tc3} AddRuleFlagSet CPP Debug "-g" DBG_STD
#$tc3 AddRuleFlagSet CPP Debug "-g2" DBG_OLD

#OPRIMIZATION FLAGS
${tc3} AddRuleFlagSet CPP Optimize "" OPT_DEFAULT
${tc3} AddRuleFlagSet CPP Optimize "-O0" OPT_NONE
${tc3} AddRuleFlagSet CPP Optimize "-Os" OPT_SIZE
${tc3} AddRuleFlagSet CPP Optimize "-O1" OPT_L1
${tc3} AddRuleFlagSet CPP Optimize "-O2" OPT_L2
${tc3} AddRuleFlagSet CPP Optimize "-O3" OPT_L3

#CODE GENERATION FLAGS
${tc3} AddRuleFlagSet CPP CodeGen "" CG_DEFAULT
${tc3} AddRuleFlagSet CPP CodeGen "-fnonnull-objects" CG_NONULL
${tc3} AddRuleFlagSet CPP CodeGen "-fpic" CG_PIC
${tc3} AddRuleFlagSet CPP CodeGen "-finline-functions" CG_INLINE

#WARNING FLAGS
${tc3} AddRuleFlagSet CPP Warning "" WN_DEFAULT
${tc3} AddRuleFlagSet CPP Warning "-w" WN_NONE
${tc3} AddRuleFlagSet CPP Warning "-pedantic" WN_ANSI
${tc3} AddRuleFlagSet CPP Warning "-W" WN_STD
${tc3} AddRuleFlagSet CPP Warning "-Wall" WN_ALL
${tc3} AddRuleFlagSet CPP Warning "-Werror" WN_ERR

${tc3} SetDefinesSpecProc CPP GNUProcessDefines
${tc3} SetIncludeSpecProc CPP GNUProcessIncludePaths

${tc3} SetDefinesSpecProc CPP GNUProcessDefines
${tc3} SetIncludeSpecProc CPP GNUProcessIncludePaths

${tc3} AddExeLinkerTool powerpc-elix-linux-gnu-gcc
${tc3} AddExeLinkerRule "-o"

${tc3} AddLibLinkerTool powerpc-elix-linux-gnu-ar
${tc3} AddLibLinkerRule "-r"

${tc3} AddRule JAVA .java.o "powerpc-elix-linux-gnu-gcj" "-c $<"
${tc3} AddRuleInfo JAVA "Java" "Compile a Java file"

${tc3} AddExeLinkerEntryPointFlag JAVA "--main="
${tc3} AddRuleSuffix JAVA .class

${tc3} SetDefinesSpecProc JAVA GNUProcessDefines
${tc3} SetIncludeSpecProc JAVA GNUProcessIncludePaths

#DEBUG FLAGS
${tc3} AddRuleFlagSet JAVA Debug "" DBG_DEFAULT
${tc3} AddRuleFlagSet JAVA Debug "-g" DBG_STD


#OPRIMIZATION FLAGS
${tc3} AddRuleFlagSet JAVA Optimize "" OPT_DEFAULT
${tc3} AddRuleFlagSet JAVA Optimize "-O0" OPT_NONE
${tc3} AddRuleFlagSet JAVA Optimize "-Os" OPT_SIZE
${tc3} AddRuleFlagSet JAVA Optimize "-O1" OPT_L1
${tc3} AddRuleFlagSet JAVA Optimize "-O2" OPT_L2
${tc3} AddRuleFlagSet JAVA Optimize "-O3" OPT_L3

#CODE GENERATION FLAGS
${tc3} AddRuleFlagSet JAVA CodeGen "" CG_DEFAULT
${tc3} AddRuleFlagSet JAVA CodeGen "-fnonnull-objects" CG_NONULL
${tc3} AddRuleFlagSet JAVA CodeGen "-fpic" CG_PIC
${tc3} AddRuleFlagSet JAVA CodeGen "-finline-functions" CG_INLINE
${tc3} AddRuleFlagSet JAVA CodeGen "-fno-bounds-check" CG_NOBOUND

#WARNING FLAGS
${tc3} AddRuleFlagSet JAVA Warning "" WN_DEFAULT
${tc3} AddRuleFlagSet JAVA Warning "-w" WN_NONE
${tc3} AddRuleFlagSet JAVA Warning "-pedantic" WN_ANSI
${tc3} AddRuleFlagSet JAVA Warning "-W" WN_STD
${tc3} AddRuleFlagSet JAVA Warning "-Wall" WN_ALL
${tc3} AddRuleFlagSet JAVA Warning "-Werror" WN_ERR
${tc3} AddRuleFlagSet JAVA Warning "-Wredundant-modifiers\
  -Wunsupported-jdk11" WN_STRICT_JAVA
