###############################################################################
# Copyright (c) 2005, 2010 Texas Instruments Inc. and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
# 
# Contributors:
#     Texas Instruments Inc. - initial API and implementation
#     IBM Corporation
###############################################################################

# plugin names
pluginName=GNU Managed Build Definitions
providerName=Eclipse CDT

# Build Model Names
TargetName.gnu=GNU
TargetName.gnu.exe=Gnu Executable
TargetName.gnu.so=Gnu Shared Library
TargetName.gnu.lib=Gnu Static Library
TargetName.cygw.exe=Cygwin Executable
TargetName.cygw.so=Cygwin DLL
TargetName.cygw.lib=Cygwin Library
TargetName.macosx.exe=MacOS X Executable
TargetName.macosx.so=MacOS X Shared Library
TargetName.macosx.lib=MacOS X Static Library
TargetName.solaris.exe=Solaris Gnu Executable
TargetName.solaris.so=Solaris Gnu Shared Library
TargetName.solaris.lib=Solaris Gnu Static Library

# No longer needed post-2.0
TargetName.cygw=Cygwin
TargetName.cygw.dll=Cygwin Export Library (DLL)
TargetName.linux=Linux
TargetName.linux.exe=Linux Executable
TargetName.linux.so=Linux Shared Library
TargetName.linux.lib=Linux Static Library
TargetName.solaris=Solaris

# Default Configuration Names
# START NON-TRANSLATABLE
ConfigName.Rel=Release
ConfigName.Dbg=Debug
# END NON-TRANSLATABLE

# Generic tool-chain names
ToolChainName.Rel=GCC Tool Chain
ToolChainName.Dbg=GCC Tool Chain

ToolChainName.Linux=Linux GCC
ToolChainName.Cygwin=Cygwin GCC
ToolChainName.MinGW=MinGW GCC
ToolChainName.Macosx=MacOSX GCC
ToolChainName.Solaris=Solaris GCC

# Generic platform names
PlatformName.Rel=Release Platform
PlatformName.Dbg=Debug Platform

# Generic builder names
BuilderName.Rel=Gnu Make
BuilderName.Dbg=Gnu Make

# Generic tool names
ToolName.preprocessor = Preprocessor
ToolName.compiler.c = C Compiler
ToolName.compiler.cpp = C++ Compiler
ToolName.archiver = Archiver
ToolName.linker.c = C Linker
ToolName.linker.cpp = C++ Linker
ToolName.windres = Resource compiler

# GNU tool names
ToolName.compiler.gnu.c = GCC C Compiler
ToolName.compiler.gnu.cpp = GCC C++ Compiler
ToolName.linker.gnu.c = GCC C Linker
ToolName.linker.gnu.cpp = GCC C++ Linker
ToolName.archiver.gnu = GCC Archiver
ToolName.assembler.gnu = GCC Assembler

#Cygwin tool names
ToolName.linker.cygwin.gnu.c=Cygwin C Linker
ToolName.linker.cygwin.gnu.cpp=Cygwin C++ Linker
ToolName.compiler.cygwin.gnu.c = Cygwin C Compiler
ToolName.compiler.cygwin.gnu.cpp = Cygwin C++ Compiler

#MinGW tool names
ToolName.linker.mingw.gnu.c=MinGW C Linker
ToolName.linker.mingw.gnu.cpp=MinGW C++ Linker

# Mach-O tool names
ToolName.linker.macosx.c = MacOS X C Linker
ToolName.linker.macosx.cpp = MacOS X C++ Linker

#Solaris tool names
ToolName.compiler.solaris.c = Solaris C Compiler
ToolName.compiler.solaris.cpp = Solaris C++ Compiler

# Generic Category Names
OptionCategory.Symbols = Symbols
OptionCategory.Dialect = Dialect
OptionCategory.Preproc = Preprocessor
OptionCategory.Dirs = Includes
OptionCategory.General = General
OptionCategory.Optimize=Optimization
OptionCategory.Debug=Debugging
OptionCategory.Warn=Warnings
OptionCategory.Misc=Miscellaneous
OptionCategory.Libs=Libraries
OptionCategory.Shared.Settings=Shared Library Settings

# Generic Option Names
Option.Posix.Dialect=Language standard
Option.Posix.Dialect.default=
Option.Posix.Dialect.c90=ISO C90 / ANSI C89 (-std=c90)
Option.Posix.Dialect.c99=ISO C99 (-std=c99)
Option.Posix.Dialect.c11=ISO C11 (-std=c11)
Option.Posix.Dialect.c++98=ISO C++98 (-std=c++98)
Option.Posix.Dialect.c++11=ISO C++11 (-std=c++0x)
Option.Posix.Dialect.c++1y=ISO C++1y (-std=c++1y)
Option.Posix.Dialect.Flags=Other dialect flags

Option.Posix.PreprocOnly=Preprocess only (-E)
Option.Posix.Nostdinc=Do not search system directories (-nostdinc)

Option.Posix.DefSym=Defined symbols (-D)
Option.Posix.UndefSym=Undefined symbols (-U)

Option.Posix.InclPaths=Include paths (-I)
Option.Posix.InclFiles=Include files (-include)

Option.Posix.OptLevel=Optimization Level
Option.Posix.Optimize.None=None (-O0)
Option.Posix.Optimize.Optimize=Optimize (-O1)
Option.Posix.Optimize.More=Optimize more (-O2)
Option.Posix.Optimize.Most=Optimize most (-O3)
Option.Posix.Optimize.Size=Optimize for size (-Os)
Option.Posix.Optimize.Flags=Other optimization flags

Option.Posix.DebugLevel=Debug Level
Option.Posix.Debug.None=None
Option.Posix.Debug.Min=Minimal (-g1)
Option.Posix.Debug.Def=Default (-g)
Option.Posix.Debug.Max=Maximum (-g3)
Option.Posix.Debug.Other=Other debugging flags
Option.Posix.Debug.gprof=Generate gprof information (-pg)
Option.Posix.Debug.prof=Generate prof information (-p)

Option.Posix.Warn.Syntax=Check syntax only (-fsyntax-only)
Option.Posix.Warn.Pedandic=Pedantic (-pedantic)
Option.Posix.Warn.PedErrors=Pedantic warnings as errors (-pedantic-errors)
Option.Posix.Warn.nowarn=Inhibit all warnings (-w)
Option.Posix.Warn.allwarn=All warnings (-Wall)
Option.Posix.Warn.extrawarn=Extra warnings (-Wextra)
Option.Posix.Warn.toerrs=Warnings as errors (-Werror)
Option.Posix.Warn.wconversion=Implicit conversion warnings (-Wconversion)

Option.Posix.Verbose=Verbose (-v)
Option.OtherFlags=Other flags
Option.Posix.Ansi=Support ANSI programs (-ansi)
Option.PIC=Position Independent Code (-fPIC)
Option.codecov=Generate gcov information (-ftest-coverage -fprofile-arcs)
Option.codecovTip="Check this flag if you want to enable Profile Code Coverage in your application. Remember to enable this option in both the Compiler-&gt; Miscellaneous and Linker -&gt; General. Then rebuild your project and run Code Coverage again."

Option.Posix.Linker.NoStartFiles=Do not use standard start files (-nostartfiles)
Option.Posix.Linker.NoDefLibs=Do not use default libraries (-nodefaultlibs)
Option.Posix.Linker.NoStdLibs=No startup or default libs (-nostdlib)
Option.Posix.Linker.Strip=Omit all symbol information (-s)
Option.Posix.Linker.Strip.debug=Omit debug symbol information (-S)
Option.Posix.Linker.Static=No shared libraries (-static)
Option.Posix.Linker.XLinker=Other options (-Xlinker [option])
Option.Posix.Linker.Flags=Linker flags
Option.Posix.Libs=Libraries (-l)
Option.Posix.Libsearch=Library search path (-L)
Option.Posix.UserObjs=Other objects
Option.Posix.Linker.Shared=Shared (-shared)
Option.Posix.Linker.SOName=Shared object name (-Wl,-soname=)
Option.Posix.Linker.Implib=Import Library name (-Wl,--out-implib=)
Option.Posix.Linker.Defname=DEF file name (-Wl,--output-def=)

Option.Posix.Archiver.Flags=Archiver flags

Option.Gnu.Assembler.Flags=Assembler flags
Option.Gnu.Assembler.warn.suppress=Suppress warnings (-W)
Option.Gnu.Assembler.version=Announce version (-v)

# Platform specific option names
Option.Windows.Windres.OutputFormat = Output format
Option.Windows.Windres.OutputFormat.Coff = coff (--output-format coff)
Option.Windows.Windres.OutputFormat.RC = rc (--output-format rc)
Option.Windows.Windres.OutputFormat.Res = res (--output-format res)
Option.MacOSX.Linker.Shared=Shared (-dynamiclib)

GNUMakeBuilder.name=Gnu Make Builder

extension.name = Managed Build Tools Description