###############################################################################
# Copyright (c) 2007, 2009 IBM Corporation 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:
#     IBM Corporation - initial API and implementation
###############################################################################

pluginName = Remote XL C/C++ Managed Build UI Plugin
providerName = Eclipse.org

variableDescription = XL C/C++ Compiler Root Location

#Build model names
TargetName.xlc.exe = Remote Executable (XL C/C++)
TargetName.xlc.so = Remote Shared Library (XL C/C++)
TargetName.xlc.lib = Remote Static Library(XL C/C++)

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

# Generic tool-chain names
ToolChainName.Rel=XL C/C++ Tool Chain
ToolChainName.Dbg=XL C/C++ Tool Chain

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

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

# Tool names
ToolName.compiler.xlc.c = XL C Compiler
ToolName.compiler.xlc.cpp = XL C++ Compiler
ToolName.linker.xlc.c = XL C Executable Linker
ToolName.linker.xlc.cpp = XL C++ Executable Linker
ToolName.archiver.xlc = Archiver
ToolName.assembler.xlc = XL Assembler
ToolName.linker.xlc.cpp.so = XL C++ Shared Object Linker
ToolName.linker.xlc.c.so = XL C Shared Object Linker

# Generic Category Names
OptionCategory.Linking = Linking
OptionCategory.Libs = Libraries and Paths
OptionCategory.ifp = Integer and Floating Point
OptionCategory.cc = Compiler Customization
OptionCategory.lm = Listings and Messages
OptionCategory.ecd = Error Checking and Debugging
OptionCategory.Input = Input Control
OptionCategory.Output = Output Control
OptionCategory.Optimize=Optimization
OptionCategory.Comp = Compatibility
OptionCategory.Misc=Miscellaneous
OptionCategory.Assembler=Assembler Options
OptionCategory.General=General
OptionCategory.objcc=Object code control


# generic names used by multiple options
Option.none = none
Option.default = default

# Miscellaneous options
Option.compiler.other = Other compiler flags

# Input Control options
Option.Preproccomments = Preserve comments in pre-processed output (-C)
Option.DefSym = Define a macro name (-D)
Option.InclPaths = Specify an additional search path for #include s (-I)
Option.UndefSym = Undefine a macro name (-U)
Option.altivec = Enable compiler support for vector data types (-qaltivec)
Option.asm = Control the interpretation of and subsequent generation of code for asm statement (-qasm)
Option.asm.default = Default
Option.asm.stdcpp = Standard (-qasm=stdcpp)
Option.asm.gcc = GCC (-qasm=gcc)
Option.Cstdinc = Specify C standard search location (-qc_stdinc)
Option.cppstdinc = Specify C++ standard search location (-qcpp_stdinc)
Option.qcomplexgccincl = Wrap include files in GCC pragmas (-qcomplexgccincl)
Option.Nocplus = Don't recognize C++ comments in C source files(-qnocpluscmt)
Option.Mbcs = Enable recognition of multi-byte characters (-qmbcs)
Option.Digraph = Enable recognition of digraph characters (-qdigraph)
Option.Dollar = Allow $ symbols to be used in identifiers (-qdollar)
Option.Incdirfirst =  Change the search path (-qidirfirst)
Option.ignprag = Ignore certain pragmas (-qignprag=)
Option.ignprag.disjoint = disjoint
Option.ignprag.isolated = isolated
Option.ignprag.all = all
Option.ignprag.ibm = IBM(R)
Option.ignprag.omp = omp
Option.Keyword = Treat specified name as a keyword(-qkeyword)
Option.langlvl = Language level (-qlanglvl=)
Option.langlvl.classic = classic
Option.langlvl.extended = extended
Option.langlvl.saa = SAA
Option.langlvl.saal2 = SAA Level 2
Option.langlvl.stdc89 = C89 standard
Option.langlvl.stdc99 = C99 standard
Option.langlvl.extc89 = C89 with extensions
Option.langlvl.extc99 = C99 with extensions
Option.langlvl.ucs = UCS
Option.Macpstr = Convert pascal string literals into null-terminated string literals (-qmacpstr)
Option.Pascal = Recognize and accept the keyword pascal (-qpascal)
Option.sourcetype = Override source type (-qsourcetype)
Option.sourcetype.c = c
Option.sourcetype.c++ = C++
Option.sourcetype.assembler = assembler
Option.stdframework = Search standard framework directories (-qstdframework)
Option.frameworkdirs = Specify additional framework directories (-qframeworkdir)
Option.Input = Don't search the default search path directories (-qnostdinc)
Option.Warn.Syntax =Perform syntax checking without generating an object file(-qsyntaxonly) 
Option.Trigraph=Recognize tri-graph key combinations
Option.Utf=Enable recognition of UTF literal syntax (-qutf)
Option.plus = Compile any file as a C++ file (-+)
Option.cinc = Insert extern "C" {} in the specified include files (-qcinc)
Option.gcc_c_stdinc = Change GCC headers search location (-qgcc_c_stdinc)
Option.gcc_cpp_stdinc = Change G++ headers search location (-qgcc_cpp_stdinc)

# Output Control options

Option.Trace=Preview the steps for compilation(-#)
Option.bmaxdata=Maximum size of the area shared by the static data and the heap (-bmaxdata=)
Option.c=Pass the source files through compiler component only(-c)
Option.PreprocOnly=Preprocess the source files and create an output preprocessed source file (-E)
Option.PreprocRemoveComments=Remove comments from preprocessed output (-C!)
Option.M=Create an output file that contains targets for the make command (-M)
Option.ma=Substitute inline code for calls to alloca (-ma)
Option.o=Specify an output location for the files created by the compiler (-o) 
Option.P=Preprocess the source files and create an output preprocessed source file for each source file(-P)
Option.Assem=Generate an assembler language file for each source file(-S)
Option.Strip=Strip symbol table, line number information and relocation information from source file(-s)
Option.64=Select 64-bit compiler mode(-q64)
Option.Align=Specify what alignment rules compiler uses for compilation(-qalign)
Option.Align.Full=full
Option.Align.Natural=natural
Option.Align.twobyte=two byte
Option.Align.packed=packed
Option.Align.bitpacked=bit packed
Option.alloca=Substitute inline code for calls to function alloca(-qalloca)
Option.Bitfields=Specify if bit fields are signed(-qbitfields)
Option.Bitfields.signed = signed
Option.Bitfields.unsigned = unsigned
Option.Chars=Specify if chars are signed
Option.chars.signed = signed (-qchars=signed)
Option.chars.unsigned = unsigned (-qcharse=unsigned)
Option.enablevmx=Enable generation of VMX instructions(-qenablevmx)
Option.Enum=Specify the amount of storage occupied by enumerations(-qenum=)
Option.enum.Int=Int
Option.enum.Intlong=Intlong
Option.enum.small=small
Option.enum.1=1
Option.enum.2=2
Option.enum.4=4
Option.enum.8=8
Option.Pic=Generate position independent code suitable for use in libraries(-qpic=)
Option.Pic.Small=Small
Option.Pic.Large=Large
Option.noro=Do not place string literals in read only storage (-qnoro)
Option.noroconst=Do not place constant values in read only storage (-qnoroconst)
Option.roptr=Place constant pointers in read only storage (-qroptr) 
Option.Statsym=Generate symbols for static variables (-qstatsym )
Option.xcall=Generate code to treat static functions as external functions (-qxcall )
Option.funcset=Place instructions for each function in a separate object file control section or csect (-qfuncset)
Option.ppline=Enable generation of #line directive in the preprocessed output (-qppline)
Option.upconv=Preserve the unsigned specification when performing integral promotions (-qupconv)
Option.namemangling=Name mangling scheme for external symbol names (-qnamemangling=)
Option.namemangling.v10.name=Name mangling scheme for external symbol names (-qnamemangling=)
Option.namemangling.ansi = ANSI (-qnamemangling=ansi)
Option.namemangling.v6 = VisualAge(R) C++ v6 (-qnamemangling=v6)
Option.namemangling.v5 = VisualAge(R) C++ v5 (-qnamemangling=v5)
Option.namemangling.v4 = VisualAge(R) C++ v4 (-qnamemangling=v4)
Option.namemangling.v3 = Compatibility mode (-qnamemangling=v3)
Option.namemangling.v7=IBM XL C/C++ v7 (-qnamemangling=v7)
Option.namemangling.v8=IBM XL C/C++ v8 (-qnamemangling=v8)
Option.namemangling.v9=IBM XL C/C++ v9 (-qnamemangling=v9)
Option.namemangling.v10=IBM XL C/C++ v10 (-qnamemangling=v10)
Option.objectmodel = Object model (-qobjmodel=)
Option.objectmodel.classic = classic (-qobjmodel=classic)
Option.objectmodel.ibm = IBM(R) (-qobjmodel=ibm)
Option.rtti = Generate RunTime Type Information (-qrtti)
Option.rtti.all = all (-qrrti=all)
Option.rtti.type = type (-qrtti=type)
Option.rtti.dynamiccast = dynamic cast (-qrtti=dynamiccast)
Option.saveopt = Save the command line compiler options into an object file  (-qsaveopt)
Option.staticinline = Treat inline functions as static (-qstaticinline)
Option.statsym = Add static variables to the symbol table  (-qstatsym)
Option.threaded = Enable multi-threaded execution (-qthreaded)
Option.unique = Generate unique names for static constructor/deconstructor file compilation units (-qunique)
Option.unique.v10 = Generate unique names for static constructor/deconstructor file compilation units (-qunique)
Option.novftable = Do not generate virtual function table (-qnovftable)
Option.vrsave = Maintain the VRSAVE register (-qvrsave)
Option.weaksymbol = Generate weak symbols (-qweaksymbol)
Option.macros=Emit macro definitions to preprocessed output (-qshowmacros)
Option.macros.all=all (-qshowmacros=all)
Option.macros.pre=predefined (-qshowmacros=pre)
Option.macros.nopre=no macros (-qshowmacros=nopre)
Options.timestamps=Suppress insert of implicit timestamps into an object file (-qnotimestamps)

# Optimization options
Option.OptLevel = Optimization level
Option.Optimize.Optimize = -O
Option.Optimize.Level2 = -O2
Option.Optimize.Level3 = -O3
Option.Optimize.Level4 = -O4
Option.Optimize.Level5 = -O5
Option.inlining = Function inlining
Option.inlining.Q = inline all functions (-Q)
Option.inlining.Qexclamation = disable inlining (-Q!)
Option.Qplus = Specify functions to be inlined(-Q+name1:name2:...:nameN)
Option.Qminus = Specify functions to not inline (-Q-name1:name2:...:nameN)
Option.aggrcopy = Enable destructive copy operations for structs and unions
Option.aggrcopy.nooverlap=no overlap (-qaggrcopy=nooverlap)
Option.aggrcopy.overlap=overlap (-qaggrcopy=overlap)
Option.alias= Apply aliasing instructions to compilation unit (-qalias=)
Option.alias.addrtaken= Variables are not disjoint from pointers (-qalias=addrtaken)
Option.alias.noaddrtaken=Variables are disjoint from pointers unless their address is taken (-qalias=notaddrtaken)
Option.alias.allptrs=Pointers are aliased (-qalias=allptrs)
Option.alias.noallptrs=Pointers are never aliased (-qalias=noallptrs)
Option.alias.ansi=Pointers can only point to an object of the same type (-qalias=ansi)
Option.alias.noansi=Pointers can point to an object of a different type (-qalias=notansi)
Option.alias.typeptr=Pointers to different types are aliased (-qalias=typeptr)
Option.alias.notypeptr=Pointers to different types are never aliased (-qalias=notypeptr)
Option.optimization.arch = Specify the processor architecture to generate code and optimize for (-qarch=)
Option.optimization.arch.ppc64 = PowerPC(R) 64-bit
Option.optimization.arch.ppcgr = PowerPC(R) with graphics instructions
Option.optimization.arch.ppc64gr = PowerPC(R) 64-bit with graphics instructions
Option.optimization.arch.ppc64grsq = PowerPC(R) 64-bit with graphics and square root instructions
Option.optimization.arch.ppc64v = PowerPC(R) 64-bit with AltiVec
Option.optimization.tune = Specify the processor architecture to tune code for (-qtune=)
Option.optimization.tune.auto = auto
Option.optimization.assert = Assert program behaviours (-qassert=)
Option.optimization.Cache = Specify the cache configuration (-qcache=option1:option2:...:optionN)
Option.compact = Avoid transformations that lead to code expansion (-qcompact)
Option.optimization.dataimported = Name the variables to be imported (-qdataimported=name1:name2:...:nameN)
Option.optimization.datalocal = Name the variables which are local (-qdatalocal=name1:name2:...:nameN)
Option.directstorage = Write-through enabled or cache-inhibited storage may be referenced (-qdirectstorage)
Option.optimization.exceptionhandling = Exception handling
Option.optimization.exceptionhandling.eh = Enable exception handling (-qeh)
Option.optimization.exceptionhandling.noeh = Disable exception handling (-qnoeh)
Option.optimization.exceptionhandling.v5 = VisualAge(R) C++ v5.0 compatibility
Option.optimization.exceptionhandling.v6 = VisualAge(R) C++ v6.0 compatibility
Option.fdpr = Include data required by fdpr utility (-qfdpr)
Option.optimization.hot = Perform high-order loop analysis and transformations during optimization (-qhot=)
Option.ignerrno = Perform optimizations which assume errno is not modified by system calls (-qignerrno)
Option.optimization.inline = Attempt to inline functions (-qinline=)
Option.optimization.ipa = Customize interprocedural analysis optimizations(-qipa=)
Option.optimization.isolatedcall = Functions in source file that have no side effects (-qisolated_call=name1:name2:...:nameN)
Option.optimization.keepinlines = 
Option.largepage = Exploit large page heaps available on POWER4(TM) systems running AIX(R) 5.1D or later (-qlargepage)
Option.libansi = Assume all functions in the name of ansi C function are system functions (-qlibansi)
Option.pdf1 = Tune optimizations through Profile Directed Feedback: first run (-qpdf1)
Option.pdf2 = Tune optimizations through Profile Directed Feedback: second run (-qpdf2)
Option.optimization.Prefetch = Disable generation of prefetching instructions in compiled code (-qnoprefetch)
Option.optimization.procimported = Mark functions as imported (-qprocimported=)
Option.optimization.proclocal = Mark functions as local (-qlocal=)
Option.optimization.procimported = Mark functions as imported (-qprocimported=)
Option.optimization.procunknown = Mark functions as unknown (-qprocunknown=)
Option.optimization.showpdf = Add additional call and block count profiling information to the executable (-qshowpdf)
Option.optimization.smallstack = Reduce the size of the stack frame (-qsmallstack)
Option.optimization.smp = Enable parallelization of code (-qsmp)
Option.optimization.smp.v10 = Specify parallelization of code (-qsmp=name1:name2:...:nameN)
Option.optimization.smp.v10.tooltip=Possible values: nostackcheck, opt, norec_locks, noomp, nonested_par, \nexplicit, auto, omp, nested_par, noauto, noexplicit, noopt, rec_locks, \nschedule=(runtime | auto | affinity=n | dynamic=n | guided=n | static=n), stackcheck, threshold=n
Option.optimization.Spill = Specify the register allocation spill area (-qspill=)
Option.optimization.Strict=Turn off aggressive optimizations (-qstrict)
Option.optimization.Strict.v10 = Specify the optimizations (-qstrict=name1:name2:...:nameN)
Option.optimization.Strict.v10.tooltip=Possible values: all, none, precision, noprecision, exceptions, noexceptions, \nieeefp, noieeefp, nans, nonans, infinities, noinfinities, subnormals, nosubnormals, \nzerosigns, nozerosigns, operationprecision, nooperationprecision, order, noorder, \nassociation, noassociation, reductionorder, noreductionorder, guards, noguards, library, nolibrary
Option.optimization.loopinduction = Loop induction settings
Option.optimization.strict_induction = Strict induction
Option.optimization.nostrict_induction = No induction
Option.optimization.tocdata = Mark data as local
Option.optimization.w = Specify options to pass to specific compiler components  (-W)

# Linker Options
Option.Linking.b = Control how shared objects are processed by the editor (-b)
Option.linking.brtl = Enable runtime linking for the output file (-brtl)
Option.linking.bundle = 
Option.Linking.bundle_loader
Option.Linking.e = Set the entry name for the shared executable(-e )
Option.Linking.f = 
Option.linking.G = Create a shared object enabled for runtime linking (-G)
Option.Linking.L = Search the path directory for the library files specified by the -lkey option (-L)
Option.Linking.l = Search the specified library file(-l)
Option.linking.r = Produce a relocatable object (-r)
Option.Linking.Z = Specify a prefix for library search path (-Z)
Option.linking.inlglue = Generate fast external linkage (-qinlglue)
Option.linking.lib = Link with standard system libraries (-qlib)
Option.Linking.mkshrobj = Create a shared object from generated object files (-qmkshrobj)
Option.Linking.priority = Specify the priority level for initialization of static objects (-qpriority)
Option.Linker.EnableRun=Enable Run time linking (-brtl)
Option.Linker.NoStartFiles=Do not use standard start files (-nostartfiles)
Option.Linker.NoDefLibs=Do not use default libraries (-nodefaultlibs)
Option.Linker.NoStdLibs=No startup or default libs (-nostdlib)
Option.Linker.Strip=Strip all symbol information (-s)
Option.Linker.Strip.debug=Strip debug symbol information (-S)
Option.Linker.Static=No shared libraries (-bstatic)
Option.Linker.WLinker=Other options (-Wl, [option1,option2,...optionN])
Option.Linker.Flags=Other linker flags
Option.Libs=Libraries (-l)
Option.Libsearch=Library search path (-L)
Option.UserObjs=Other objects
Option.Linker.Shared=Shared (-qmkshrobj)
Option.Linker.SOName=Shared object name (-o=)
Option.Linker.Implib=Import Library name (-Wl,--out-implib=)
Option.Linker.Defname=DEF file name (-Wl,--output-def=)
Option.linking.bundle = Create a bundle (-bundle)
Option.linking.bundle_loader = Specify the name of bundle loader program (-bundle_loader=)
Option.linking.f = Specify file containing a list of object files for the compiler to pass to the linker (-f)
Option.linking.expfile = Save all the exported symbols in the designated file (-qexpfile=)

#Archiver options
Option.Archiver.Flags=Other archiver flags

# Integer and Floating Point options
Option.y = Specify compile time rounding mode (-y)
Option.y.n = n
Option.y.m = m
Option.y.p = p
Option.y.z = z
Option.float = Specify floating point options (-qfloat=)
Option.flttrap = Trap floating point exceptions (-qflttrap=)
Option.longlong = Allow long long integer types in the program
Option.longlong.longlong = Allow long long (-qlonglong)
Option.longlong.nolonglong = Do not allow long long (-qnolonglong)
Option.rndflt = Control compile-time rounding mode of floating point expressions( -qrndflt)
Option.rndflt.nearest = Nearest
Option.rndflt.minusinf = Minus infinity
Option.rndflt.plusinf = Plus infinity
Option.rndflt.zero = Zero
Option.dfp = Decimal floating-point support for types and literals
Option.dfp.enabled = Enabled (-qdfp)
Option.dfp.disabled = Disabled (-qnodfp)

# Compiler Customization options
Option.B = Determine substitute program path name (-B)
Option.F = Specify alternate configuration file (-F)
Option.t = Add prefix to designated programs (-t)
Option.maxmem = Amount of memory used during optimization (-qmaxmem=)
Option.path = Alternate program name for compiler components (-qpath=)
Option.tls = Specify the thread local storage model (-qtls=)
Option.tls.unsupported=unsupported
Option.tls.default=default
Option.tls.global-dynamic=global-dynamic
Option.tls.initial-exec=initial-exec
Option.tls.local-dynamic=local-dynamic
Option.tls.local-exec=local-exec
Option.tls.notls=No tls

# Listings and Messages options
Option.V = Report information on the progress of compilation (-V)
Option.Warn.nowarn = Suppress warnings and low-level messages (-w)
Option.Warn.Pedandic=Pedantic (-pedantic)
Option.Warn.PedErrors=Pedantic warnings as errors (-pedantic-errors)
Option.Warn.nowarn=Inhibit all warnings (-w)
Option.Warn.allwarn=All warnings (-Wall)
Option.Warn.toerrs=Warnings as errors (-Werror)
Option.attr = Produce a compiler listing (-qattr)
Option.attr.noattr = Does not produce an attribute listing for identifiers in program (-qnoattr)
Option.attr.fullattr = Report attributes of all identifiers (-qattr=full)
Option.attr.attr = Report attributes of only used identifiers (-qattr)
Option.flag = Specify the minimum severity level of the diagnostic messages (-qflag=)
Option.format = Warn of possible problems with string input and output format specifications (-qformat=)
Option.halt = Instruct the compiler to stop after compilation if it encounters errors of specified severity or higher (-qhalt=)
Option.halt.information = Information (-qhalt=i)
Option.halt.warning = Warning (-qhalt=w)
Option.halt.error = Error (-qhalt=e)
Option.halt.severeError = Severe error (-qhalt=s)
Option.halt.unrecoverableError = Unrecoverable error (-qhalt=u)
Option.info = Produce informational messages (-qinfo=)
Option.list = Produce a compiler listing that includes an object listing (-qlist)
Option.listopt = Produce a compiler listing that displays all options in effect(-qlistopt)
Option.phsinfo = Report the time taken in each compilation phase (-qphsinfo)
Option.noprint = Suppress all listings (-qnoprint )
Option.report = Instruct the compiler to produce transformation reports (-qreport)
Option.showinc = Show all included files in the source listing (-qshowinc)
Option.source = Produce a compiler listing and include the source code (-qsource)
Option.srcmsg = Add the corresponding source code lines to the diagnostic messages in stderr file (-qsrcmsg)
Option.suppress = Suppress the specified informational or warning messages (-qsuppress=)
Option.tabsize = Change the tab-size (-qtabsize=)
Option.xref = Produce a cross reference listing of identifiers (-qxref)
Option.xref.noxref = Do not report identifiers in the program (-qnoxref)
Option.xref.fullxref = Report all the identifiers in the program (-qxref = full)
Option.xref.xref = Report only those identifiers which are used (-qxref)
Option.warnfourcharconsts = Enable warning of four-character constants in source
Option.report = Produce listing files that show how sections of code have been optimized (-qreport)

# Error Checking and Debugging
Option.g = Generate debugging information (-g)
Option.optdebug = Enable debugging of optimized code (-qoptdebug)
Option.DebugLevel=Debug Level
Option.Debug.Min=Minimal (-g1)
Option.Debug.Def=Default (-g)
Option.Debug.Max=Maximum (-g3)
Option.Debug.Other=Other debugging flags
Option.Debug.gprof=Generate gprof information (-pg)
Option.Debug.prof=Generate prof information (-p)
Option.Debug.Unref=Include information about unreferenced symbols (-qdbxextra)
Option.p = Generate prof information (-p)
Option.pg = Generate gprof information (-pg)
Option.check = Generate code which performs certain types of runtime checking (-qcheck)
Option.dbxextra = Include all typedefs, structs, unions, enums for debugging (-qdbxextra)
Option.extchk = Generate bind-time type checking information and check for compile time consistency (-qextchk)
Option.fullpath = Preserve absolute path name of source files used with -g option (-qfullpath)
Option.genproto = Produce ANSI prototypes from K&R definitions
Option.genproto = Generate prototypes with parameter names
Option.genproto.parmgenproto = Include parameter names in prototypes
Option.heapdebug = Enable debug versions of memory management functions (-qheapdebug)
Option.initauto = Initialize the automatic variables (-qinitauto=)
Option.linedebug = Generate line number and source file name info for the debugger (-qlinedebug)
Option.maxerr = Halt compilation after this many errors (-qmaxerr=)
Option.proto = All functions are prototyped (-qproto)


# Assembler options
Option.Xlc.Assembler.Flags=Other assembler flags
Option.Xlc.Assembler.warn.suppress=Suppress warnings (-W)
Option.Xlc.Assembler.version=Announce version (-v)


# XL C/C++ Preference page
XLCompilerPreferencePage.name = XL C/C++ Compiler
XLCompilerPropertyPage.name = XL C/C++ Compiler



