###############################################################################
# Copyright (c) 2006, 2009 Intel 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:
#     Intel Corporation - initial API and implementation
###############################################################################
pluginName=Intel(R) Fortran Managed Build Definitions
providerName=Eclipse.org

# Build Model Names
TargetName.intel.fortran.exe=Executable (Intel(R) Fortran)
TargetName.intel.fortran.so=Shared Library (Intel(R) Fortran)
TargetName.intel.fortran.ar=Static Library (Intel(R) Fortran)

# Default Configuration Names
ConfigName.Rel=Release
ConfigName.Dbg=Debug
ConfigName.x86.Rel=Release_IA-32
ConfigName.x86.Dbg=Debug_IA-32
ConfigName.x86_64.Rel=Release_Intel64
ConfigName.x86_64.Dbg=Debug_Intel64
ConfigName.ipf.Rel=Release_IA-64
ConfigName.ipf.Dbg=Debug_IA-64

# Generic tool-chain names
ToolChainName.x86=Intel(R) Fortran Toolchain on IA-32
ToolChainName.x86_64=Intel(R) Fortran Toolchain on Intel(R) 64
ToolChainName.ipf=Intel(R) Fortran Toolchain on IA-64

# Generic platform names
PlatformName.x86=IA-32 Platform
PlatformName.x86_64=Intel(R) 64 Platform
PlatformName.ipf=IA-64 Platform

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

# Intel(R) tool names
#Using the (R) in the tool name exposes a bug in the mbs makefile generator.
#Use the correct (R) names after the bug gets fixed.
ToolName.compiler.intel.fortran.x86 = Intel(R) IA-32 Fortran Compiler
ToolName.compiler.intel.fortran.x86_64 = Intel(R) Intel(R) 64 Fortran Compiler
ToolName.compiler.intel.fortran.ipf = Intel(R) IA-64 Fortran Compiler
ToolName.linker.intel.fortran = Intel(R) Fortran Linker
ToolName.archiver.intel.fortran=Archiver

# Generic Category Names
OptionCategory.General = General
OptionCategory.Optimize=Optimization
OptionCategory.Debug=Debugging
OptionCategory.Preproc = Preprocessor
OptionCategory.Codegen = Code Generation
OptionCategory.Lang = Language
OptionCategory.Compat = Compatibility
OptionCategory.Diags = Compilation Diagnostics
OptionCategory.Data = Data
OptionCategory.Fltpt = Floating Point
OptionCategory.Extprocs = External Procedures
OptionCategory.Outfiles = Output Files
OptionCategory.Runtime = Runtime
OptionCategory.Libs = Libraries
OptionCategory.Cmdline = Command Line

OptionCategory.Source = Source
OptionCategory.Symbols = Symbols
OptionCategory.Dirs = Directories
OptionCategory.Warn=Warnings
OptionCategory.Misc=Miscellaneous
OptionCategory.Shared.Settings=Shared Library Settings

# Intel(R) Fortran specific option names

Option.intel.fortran.general.banner=Show Startup Banner (-V)
Option.intel.fortran.general.debug=Include Debug Information (-g)
Option.intel.fortran.general.optlvl=Optimization Level
Option.intel.fortran.general.optlvl.disable=Disable (-O0)
Option.intel.fortran.general.optlvl.minsize=Minimize Size (-O1)
Option.intel.fortran.general.optlvl.maxspeed=Maximize Speed (-O2)
Option.intel.fortran.general.optlvl.speedhlo=Maximize Speed Plus High Level Optimizations (-O3)
Option.intel.fortran.general.warnlvl=Warning Level
Option.intel.fortran.general.warnlvl.none=Disable All (-warn none)
Option.intel.fortran.general.warnlvl.all=Show All (-warn all)
Option.intel.fortran.general.warnlvl.custom=Custom

Option.intel.fortran.optimize.fp=Provide Frame Pointers (-fno-omit-frame-pointer)
Option.intel.fortran.optimize.prefetch=Prefetch Insertion (-prefetch)
Option.intel.fortran.optimize.opt_prefetch=Enable Prefetch Insertion (-opt-prefetch=[n])
Option.intel.fortran.optimize.opt_prefetch.0=Disable
Option.intel.fortran.optimize.opt_prefetch.1=Minimum (-opt-prefetch=1)
Option.intel.fortran.optimize.opt_prefetch.2=Medium (-opt-prefetch=2)
Option.intel.fortran.optimize.opt_prefetch.3=Agressive (-opt-prefetch=3)
Option.intel.fortran.optimize.buffio=I/O Buffering (-assume buffered_io)
Option.intel.fortran.optimize.inline=Inline Function Expansion
Option.intel.fortran.optimize.inline.default=Default
Option.intel.fortran.optimize.inline.disable=Disable (-inline-level=0)
Option.intel.fortran.optimize.inline.inlinedir=Functions with the INLINE Keyword or Directive (-inline-level=1)
Option.intel.fortran.optimize.inline.anysuitable=Any Suitable (-inline-level=2)
Option.intel.fortran.optimize.forintelprocessor=Optimize for Intel(R) Processor
Option.intel.fortran.optimize.forintelprocessor.blended=Blended (-mtune pentium)
Option.intel.fortran.optimize.forintelprocessor.g1=Itanium(R) (-tpp1)
Option.intel.fortran.optimize.forintelprocessor.g2=Itanium(R)2 (-tpp2)
Option.intel.fortran.optimize.forintelprocessor.g5=Intel Pentium(R) and Pentium with MMX(TM) (-mtune pentium-mmx)
Option.intel.fortran.optimize.forintelprocessor.g6=Intel Pentium(R) Pro, Pentium II and III (-mtune pentiumpro)
Option.intel.fortran.optimize.forintelprocessor.g7=Intel Pentium(R) 4 and Other Intel Processors (-mtune pentium4)
Option.intel.fortran.optimize.unrollcnt=Loop Unroll Count(0=disable, default=blank) (-unroll[n])
Option.intel.fortran.optimize.parallel=Parallelization (-parallel)
Option.intel.fortran.optimize.parthreshold=Threshold For Auto-Parallelization (0 to 100, default=100) (-par-threshold[n])
Option.intel.fortran.optimize.ivdep=IVDEP Directive Memory Dependency (-ivdep-parallel)
Option.intel.fortran.optimize.forintelprocessor.g1=Itanium(R)
Option.intel.fortran.optimize.forintelprocessor.g2=Itanium(R)2


Option.intel.fortran.debug.infoparam=Information for PARAMETER constants
Option.intel.fortran.debug.infoparam.none=None (-debug-parameters none)
Option.intel.fortran.debug.infoparam.all=All (-debug-parameters all)
Option.intel.fortran.debug.infoparam.used=Used in the Program (-debug-parameters used)

Option.intel.fortran.preprocessor.fpp=Preprocess Source File (-fpp)
Option.intel.fortran.preprocessor.additionalidirs=Additional Include Directories (-I)
Option.intel.fortran.preprocessor.ignoreinclude=Ignore Standard Include Path (-X)
Option.intel.fortran.preprocessor.defaultincludepath=Default Include and Use Path (-assume source-include)
Option.intel.fortran.preprocessor.defsym=Preprocessor Definitions (-D)
Option.intel.fortran.preprocessor.undefsym=Undefine Preprocessor Definitions (-U)
Option.intel.fortran.preprocessor.defstofpponly=Preprocessor Definitions to FPP Only (-noD)
Option.intel.fortran.preprocessor.openmpcondcomp=OpenMP Conditional Compilation (-assume cc-omp)

Option.intel.fortran.codegen.recursive=Enable Recursive Routines (-recursive)
Option.intel.fortran.codegen.fpic=Generate Position-independent Code (-fpic)

Option.intel.fortran.codegen.genreent=Generate Reentrant Code
Option.intel.fortran.codegen.genreent.none=None (-reentrancy none)
Option.intel.fortran.codegen.genreent.async=Guard Against Asynchronous Interrupts (-reentrancy async)
Option.intel.fortran.codegen.genreent.threaded=Threaded (-reentrancy threaded)

Option.intel.fortran.codegen.useintelextensions=Use Intel(R) Processor Extensions
Option.intel.fortran.codegen.useintelextensions.none=None
Option.intel.fortran.codegen.useintelextensions.axk=Intel Pentium(R) III and Compatible Intel Processors (-axK)
Option.intel.fortran.codegen.useintelextensions.axn=Intel Pentium(R) 4 and Compatible Intel Processors (-axN)
Option.intel.fortran.codegen.useintelextensions.axb=Intel Pentium(R) M and Compatible Intel Processors (-axB)
Option.intel.fortran.codegen.useintelextensions.axp=Intel Pentium(R) 4 Processor with Streaming SIMD Extensions 3 (SSE3) (-axP)

Option.intel.fortran.codegen.reqintelextensions=Require Intel(R) Processor Extensions
Option.intel.fortran.codegen.reqintelextensions.none=None
Option.intel.fortran.codegen.reqintelextensions.xk=Intel Pentium(R) III and Compatible Intel Processors (-xK)
Option.intel.fortran.codegen.reqintelextensions.xn=Intel Pentium(R) 4 and Compatible Intel Processors (-xN)
Option.intel.fortran.codegen.reqintelextensions.xb=Intel Pentium(R) M and Compatible Intel Processors (-xB)
Option.intel.fortran.codegen.reqintelextensions.xp=Intel Pentium(R) 4 Processor with Streaming SIMD Extensions 3 (SSE3) (-xP)

Option.intel.fortran.codegen.useintelextensions.axSSE2 = Intel Netburst(R) Microarchitecture and Pentium(R) M Processor family with Streaming SIMD Extensions 2 (-axSSE2)
Option.intel.fortran.codegen.reqintelextensions.xSSE2 = Intel Netburst(R) Microarchitecture and Pentium(R) M Processor family with Streaming SIMD Extensions 2 (-xSSE2)
Option.intel.fortran.codegen.useintelextensions.axSSE3 = Intel Core(TM) and Intel Netburst(R) Microarchitectures with Streaming SIMD Extensions 3 (-axSSE3)
Option.intel.fortran.codegen.reqintelextensions.xSSE3 = Intel Core(TM) and Intel Netburst(R) Microarchitectures with Streaming SIMD Extensions 3 (-xSSE3)
Option.intel.fortran.codegen.reqintelextensions.xSSE3_ATOM = Intel Atom(TM) Processor family with MOVBE Instruction Support (-xSSE3_ATOM)
Option.intel.fortran.codegen.useintelextensions.axSSSE3 = Intel Core(TM)2 Processor family with Supplemental Streaming SIMD Extensions 3 (-axSSSE3)
Option.intel.fortran.codegen.reqintelextensions.xSSSE3 = Intel Core(TM)2 Processor family with Supplemental Streaming SIMD Extensions 3 (-xSSSE3)
Option.intel.fortran.codegen.useintelextensions.axSSE41 = Intel Core(TM)2 Processor family with SSE4 Vectorizing Compiler and Media Accelerators (-axSSE4.1)
Option.intel.fortran.codegen.reqintelextensions.xSSE41 = Intel Core(TM)2 Processor family with SSE4 Vectorizing Compiler and Media Accelerators (-xSSE4.1)

Option.intel.fortran.lang.srcfmt=Source File Format
Option.intel.fortran.lang.srcfmt.fileext=Use File Extension
Option.intel.fortran.lang.srcfmt.free=Use Free Format (-free)
Option.intel.fortran.lang.srcfmt.fixed=Use Fixed Format (-fixed)

Option.intel.fortran.lang.fixedlen=Fixed Form Line Length
Option.intel.fortran.lang.fixedlen.72=72 Columns (-extend-source 72)
Option.intel.fortran.lang.fixedlen.80=80 Columns (-extend-source 80)
Option.intel.fortran.lang.fixedlen.132=132 Columns (-extend-source 132)

Option.intel.fortran.lang.pad=Pad Fixed Form Source Lines (-pad-source)
Option.intel.fortran.lang.altparam=Enable Alternate PARAMETER Syntax (-altparam)
Option.intel.fortran.lang.f66=Enable FORTRAN 66 Semantics (-f66)
Option.intel.fortran.lang.dlines=Compile Lines With D in Column 1 (-d-lines)
Option.intel.fortran.lang.openmp=Process OpenMP Directives
Option.intel.fortran.lang.openmp.disable=Disable
Option.intel.fortran.lang.openmp.genpar=Generate Parallel Code (-openmp)
Option.intel.fortran.lang.openmp.genseq=Generate Sequential Code (-openmp-stubs)

Option.intel.fortran.compat.vms=Enable VMS Compatibility (-vms)
Option.intel.fortran.compat.f77rtl=Enable F77 Runtime Compatibility (-f77rtl)
Option.intel.fortran.compat.f77int=Use F77 Integer Constants (-intconstant)
Option.intel.fortran.compat.bscc=Treat Backslash as Normal Character in Strings (-assume bscc)
Option.intel.fortran.compat.unfmtfiles=Unformatted File Conversion
Option.intel.fortran.compat.unfmtfiles.none=None
Option.intel.fortran.compat.unfmtfiles.bigendian=Big Endian (-convert big_endian)
Option.intel.fortran.compat.unfmtfiles.cray=Cray (-convert cray)
Option.intel.fortran.compat.unfmtfiles.ibm=IBM (-convert ibm)
Option.intel.fortran.compat.unfmtfiles.littleendian=Little Endian (-convert little_endian)
Option.intel.fortran.compat.unfmtfiles.native=Native (-convert native)
Option.intel.fortran.compat.unfmtfiles.vaxg=VAXG (-convert vaxg)
Option.intel.fortran.compat.unfmtfiles.vaxd=VAXD (-convert vaxd)


Option.intel.fortran.diags.werror=Treat Warnings as Errors (-warn errors)
Option.intel.fortran.diags.stderrors=Treat Fortran Standard Warnings As Errors (-warn stderrors)
Option.intel.fortran.diags.wdecl=Warn For Undeclared Symbols (-warn declarations)
Option.intel.fortran.diags.wunused=Warn For Unused Variables (-warn unused)
Option.intel.fortran.diags.wignoreloc=Warn When Removing %LOC (-warn ignore-loc)
Option.intel.fortran.diags.wtruncsrc=Warn When Truncating Source Line (-warn truncated_source)
Option.intel.fortran.diags.walign=Warn For Unaligned Data (-warn alignments)
Option.intel.fortran.diags.wuncalled=Warn For Uncalled Routine (-warn uncalled)
Option.intel.fortran.diags.wusage=Suppress Usage Messages (-warn nousage)
Option.intel.fortran.diags.winterfaces=Check Routine Interfaces (-warn interfaces)
Option.intel.fortran.diags.errlimit=Error Limit (-error-limit n)
Option.intel.fortran.diags.standards=Warn For Non-standard Fortran
Option.intel.fortran.diags.std.none=None
Option.intel.fortran.diags.std.f90=Fortran 90 (-stand f90)
Option.intel.fortran.diags.std.f95=Fortran 95 (-stand f95)
Option.intel.fortran.diags.openmpreport=OpenMP Report
Option.intel.fortran.diags.openmp.none=None
Option.intel.fortran.diags.openmp.0=No Information (-openmp-report0)
Option.intel.fortran.diags.openmp.1=Loops, Regions, ... Parallelized (-openmp-report1)
Option.intel.fortran.diags.openmp.2=Plus Master Construct, ... (-openmp-report2)
Option.intel.fortran.diags.parreport=Autoparallelizer Report
Option.intel.fortran.diags.parnone=None
Option.intel.fortran.diags.par.0=No Information (-par-report0)
Option.intel.fortran.diags.par.1=Loops Successfully Parallelized (-par-report1)
Option.intel.fortran.diags.par.2=Plus Loops Unsuccessfully Parallelized (-par-report2)
Option.intel.fortran.diags.par.3=Plus Dependency Information (-par-report3)
Option.intel.fortran.diags.vecreport=Vectorizer Report
Option.intel.fortran.diags.vec.none=None
Option.intel.fortran.diags.vec.0=No Information (-vec-report0)
Option.intel.fortran.diags.vec.1=Loops Successfully Parallelized (-vec-report1)
Option.intel.fortran.diags.vec.2=Plus Loops Unsuccessfully Parallelized (-vec-report2)
Option.intel.fortran.diags.vec.3=Plus Dependency Information (-vec-report3)
Option.intel.fortran.diags.vec.4=Non-vectorized Loops (-vec-report4)
Option.intel.fortran.diags.vec.5=Plus Dependency Information (-vec-report5)

Option.intel.fortran.data.defintkind=Default Integer KIND
Option.intel.fortran.data.defintkind.2=2 (-integer-size 16)
Option.intel.fortran.data.defintkind.4=4 (-integer-size 32)
Option.intel.fortran.data.defintkind.8=8 (-integer-size 64)
Option.intel.fortran.data.defrealkind=Default Real KIND
Option.intel.fortran.data.defrealkind.4=4 (-real-size 32)
Option.intel.fortran.data.defrealkind.8=8 (-real-size 64)
Option.intel.fortran.data.defrealkind.16=16 (-real-size 128)
Option.intel.fortran.data.defdpkind=Default Double Precision KIND
Option.intel.fortran.data.defdpkind.8=8 (-double-size 64)
Option.intel.fortran.data.defdpkind.16=16 (-double-size 128)
Option.intel.fortran.data.locvarstg=Local Variable Storage
Option.intel.fortran.data.locvarstg.deflocstg=Default Local Storage
Option.intel.fortran.data.locvarstg.save=All Variables SAVE (-save)
Option.intel.fortran.data.locvarstg.autoscalar=Scalar Local Variables AUTOMATIC (-auto-scalar)
Option.intel.fortran.data.locvarstg.auto=Local Variables AUTOMATIC (-auto)
Option.intel.fortran.data.structalign=Structure Member Alignment
Option.intel.fortran.data.structalign.default=Default (-align records)
Option.intel.fortran.data.structalign.1=1 Byte (-align rec1byte)
Option.intel.fortran.data.structalign.2=2 Bytes (-align rec2byte)
Option.intel.fortran.data.structalign.4=4 Bytes (-align rec4byte)
Option.intel.fortran.data.structalign.8=8 Bytes (-align rec8byte)
Option.intel.fortran.data.structalign.16=16 Bytes (-align rec16byte)
Option.intel.fortran.data.commonalign=Common Element Alignment
Option.intel.fortran.data.commonalign.default=None (-align nocommons)
Option.intel.fortran.data.commonalign.4=4 Bytes (-align commons)
Option.intel.fortran.data.commonalign.8=8 Bytes (-align dcommons)
Option.intel.fortran.data.zero=Initialize Local Saved Scalars to Zero (-zero)
Option.intel.fortran.data.seq=SEQUENCE Types Obey Alignment Rules (-align sequence)
Option.intel.fortran.data.dummy=Assume Dummy Arguments Share Memory Locations (-assume dummy-aliases)
Option.intel.fortran.data.safecray=Assume CRAY Pointers Do Not Share Memory Locations (-safe-cray-ptr)
Option.intel.fortran.data.protectconst=Constant Actual Arguments Can Be Changed (-assume noprotect-constants)
Option.intel.fortran.data.byterecl=Use Bytes as RECL= Unit for Unformatted Files (-assume byterecl)
Option.intel.fortran.data.ftrapuv=Initialize Stack Variables to an Unusual Value (-ftrapuv)
Option.intel.fortran.data.dyncom=Dynamic Common Blocks (-dyncom)

Option.intel.fortran.fp.fpexcept=Reliable Floating Point Exceptions Model (-fp-model except)
Option.intel.fortran.fp.fltconsistency=Floating-Point Consistency (-fltconsistency)
Option.intel.fortran.fp.fpport=Round Floating-Point Results (-fp-port)
Option.intel.fortran.fp.ftz=Flush Denormal Results to Zero (-ftz)
Option.intel.fortran.fp.fpconstant=Extend Precision of Single Precision Constants (-fpconstant)
Option.intel.fortran.fp.minus0=Enable IEEE Minus Zero Support (-assume minus0)
Option.intel.fortran.fp.cmplxlimited=Limit COMPLEX Range (-complex-limited-range)
Option.intel.fortran.fp.stack=Check Floating Point Stack (-fp-stack-check)
Option.intel.fortran.fp.fpmodel=Floating Point Model
Option.intel.fortran.fp.fpmodel.precise=Precise (-fp-model precise)
Option.intel.fortran.fp.fpmodel.fast=Fast (default) (-fp-model fast)
Option.intel.fortran.fp.fpmodel.fast.2=Fast=2 (-fp-model fast=2)
Option.intel.fortran.fp.fpmodel.strict=Strict (-fp-model strict)
Option.intel.fortran.fp.fpmodel.source=Source (-fp-model source)
Option.intel.fortran.fp.fpe=Floating Point Exception Handling
Option.intel.fortran.fp.fpe.0=Underfow gives 0.0; Abort on other IEEE exceptions (-fpe0)
Option.intel.fortran.fp.fpe.1=Underfow gives 0.0; Other exceptions produce NaN or signed infinity (-fpe1)
Option.intel.fortran.fp.fpe.3=Produce NaN, signed infinities, and denormal results (-fpe3)

Option.intel.fortran.extprocs.underscore=Append Underscore to External Names (-assume underscore)
Option.intel.fortran.extprocs.interfaces=Generate Interface Blocks (-gen-interfaces)
Option.intel.fortran.extprocs.namecase=Name Case Interpretation
Option.intel.fortran.extprocs.namecase.upper=Upper Case (-names uppercase)
Option.intel.fortran.extprocs.namecase.lower=Lower Case (-names lowercase)
Option.intel.fortran.extprocs.namecase.asis=As-is (-names as-is)

Option.intel.fortran.outfiles.moddir=Module Path (-module path)

Option.intel.fortran.runtime.ccdefault=Default Output Carriage Control
Option.intel.fortran.runtime.ccdefault.default=Default
Option.intel.fortran.runtime.ccdefault.fortran=Fortran (-ccdefault fortran)
Option.intel.fortran.runtime.ccdefault.list=List (-ccdefault list)
Option.intel.fortran.runtime.ccdefault.none=None (-ccdefault none)
Option.intel.fortran.runtime.rterrorchk=Runtime Error Checking
Option.intel.fortran.runtime.rterrorchk.none=None (-check none)
Option.intel.fortran.runtime.rterrorchk.all=All (-check all)
Option.intel.fortran.runtime.rterrorchk.custom=Custom
Option.intel.fortran.runtime.traceback=Generate Traceback Information (-traceback)
Option.intel.fortran.runtime.chkbnds=Check Array and String Bounds (-check bounds)
Option.intel.fortran.runtime.chkoutcon=Check Edit Descriptor Data Size (-check output-conversion)
Option.intel.fortran.runtime.chkfmt=Check Edit Descriptor Data Type (-check format)
Option.intel.fortran.runtime.chkargtmp=Check For Actual Arguments Using Temporary Storage (-check arg-temp-created)

Option.intel.fortran.cmdline.addlopts=Additional Options

Option.intel.fortran.link.option.rtlibs=Intel Runtime Libraries
Option.intel.fortran.link.option.rtlibs.default=Default as Specified By the Compiler Driver
Option.intel.fortran.link.option.rtlibs.shared_intel=Dynamic Linking (-shared-intel)
Option.intel.fortran.link.option.rtlibs.static_intel=Static Linking (-static-intel)
Option.intel.fortran.link.option.l=Additional Libraries (-l)
Option.intel.fortran.link.option.libpath=Search Directory for Libraries (-L)

Option.archiver.intel.fortran.cmdline=Archiver Command Line
Option.archiver.intel.fortran.aroptions=Archiver Options
      
