From bd759a1e82e49f2f5410183b68897e4b84a46388 Mon Sep 17 00:00:00 2001 From: Chris Recoskie Date: Fri, 27 Apr 2007 02:19:35 +0000 Subject: [PATCH] initial xlc integration --- .../.classpath | 7 + .../.project | 28 + .../META-INF/MANIFEST.MF | 14 + .../about.html | 24 + .../build.properties | 4 + .../plugin.properties | 384 +++ .../plugin.xml | 2749 +++++++++++++++++ .../AixConfigurationEnvironmentSupplier.java | 51 + .../xlc/aix/AixPathResolver.java | 27 + .../HiddenOptionApplicabilityCalculator.java | 57 + .../managedbuilder/xlc/ui/XlcUIPlugin.java | 84 + 11 files changed, 3429 insertions(+) create mode 100644 xlc/org.eclipse.cdt.managedbuilder.xlc.ui/.classpath create mode 100644 xlc/org.eclipse.cdt.managedbuilder.xlc.ui/.project create mode 100644 xlc/org.eclipse.cdt.managedbuilder.xlc.ui/META-INF/MANIFEST.MF create mode 100644 xlc/org.eclipse.cdt.managedbuilder.xlc.ui/about.html create mode 100644 xlc/org.eclipse.cdt.managedbuilder.xlc.ui/build.properties create mode 100644 xlc/org.eclipse.cdt.managedbuilder.xlc.ui/plugin.properties create mode 100644 xlc/org.eclipse.cdt.managedbuilder.xlc.ui/plugin.xml create mode 100644 xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/aix/AixConfigurationEnvironmentSupplier.java create mode 100644 xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/aix/AixPathResolver.java create mode 100644 xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/HiddenOptionApplicabilityCalculator.java create mode 100644 xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/XlcUIPlugin.java diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/.classpath b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/.classpath new file mode 100644 index 00000000000..7398f97e2d0 --- /dev/null +++ b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/.project b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/.project new file mode 100644 index 00000000000..dcc854caa74 --- /dev/null +++ b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/.project @@ -0,0 +1,28 @@ + + + org.eclipse.cdt.managedbuilder.xlc.ui + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/META-INF/MANIFEST.MF b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/META-INF/MANIFEST.MF new file mode 100644 index 00000000000..1ba4bd9d1c1 --- /dev/null +++ b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/META-INF/MANIFEST.MF @@ -0,0 +1,14 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: org.eclipse.cdt.managedbuilder.xlc.ui; singleton := true +Bundle-Version: 4.0.0.qualifier +Bundle-Activator: org.eclipse.cdt.managedbuilder.xlc.ui.XlcUIPlugin +Bundle-Localization: plugin +Require-Bundle: org.eclipse.ui, + org.eclipse.core.runtime, + org.eclipse.cdt.managedbuilder.core, + org.eclipse.cdt.core +Eclipse-LazyStart: true +Export-Package: org.eclipse.cdt.managedbuilder.xlc.ui +Bundle-Vendor: %providerName diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/about.html b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/about.html new file mode 100644 index 00000000000..7a28ee529ef --- /dev/null +++ b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/about.html @@ -0,0 +1,24 @@ + + +About + + +

About This Content

+ +

April 26, 2007

+

License

+ +

The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise +indicated below, the Content is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available +at http://www.eclipse.org/legal/epl-v10.html. +For purposes of the EPL, "Program" will mean the Content.

+ +

If you did not receive this Content directly from the Eclipse Foundation, the Content is +being redistributed by another party ("Redistributor") and different terms and conditions may +apply to your use of any object code in the Content. Check the Redistributor's license that was +provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise +indicated below, the terms and conditions of the EPL still apply to any source code in the Content +and such source code may be obtained at http://www.eclipse.org.

+ + \ No newline at end of file diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/build.properties b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/build.properties new file mode 100644 index 00000000000..34d2e4d2dad --- /dev/null +++ b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/plugin.properties b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/plugin.properties new file mode 100644 index 00000000000..ebcf9a25a5a --- /dev/null +++ b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/plugin.properties @@ -0,0 +1,384 @@ +/******************************************************************************* + * Copyright (c) 2006 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 = XL C/C++ Managed Build Plugin +providerName = Eclipse.org + +#Build model names +TargetName.xlc.exe=Executable (XL C/C++) +TargetName.xlc.so=Shared Library (XL C/C++) +TargetName.xlc.lib=Static Library(XL C/C++) + +# Default Configuration Names +ConfigName.Rel=Release +ConfigName.Dbg=Debug + +# 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 + + +# 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.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® +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 ans 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.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.Power=Power +Option.Align.Natural=Natural +Option.Align.mac68k=mac68k +Option.Align.twobyte=twobyte +Option.Align.packed=packed +Option.Align.bitpacked=bitpacked +Option.alloca=Substitue 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(-qchars=signed) +Option.enablevmx=Enable generation of VMX instructions(-qenablevmx) +Option.Enum=Specify the amount of storage accupied 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.ansi = ANSI (-qnamemangling=ansi) +Option.namemangling.v6 = VisualAge® C++ v6 (-qnamemangling=v6) +Option.namemangling.v5 = VisualAge® C++ v5 (-qnamemangling=v5) +Option.namemangling.v4 = VisualAge® C++ v4 (-qnamemangling=v4) +Option.namemangling.v3 = Compatiblity mode (-qnamemangling=v3) +Option.objectmodel = Object model (-qobjmodel=) +Option.objectmodel.classic = classic (-qobjmodel=classic) +Option.objectmodel.ibm = IBM® (-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.novftable = Do not generate virtual function table (-qnovftable) +Option.vrsave = Maintain the VRSAVE register (-qvrsave) +Option.weaksymbol = Generate weak symbols (-qweaksymbol) + +# 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 = diable inlining (-Q!) +Option.Qplus = Specify functions to be inlined(-Q+=) +Option.Qminus = Specify functions to not inline (-Q-=) +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® 64-bit +Option.optimization.arch.ppcgr = PowerPC® with graphics instructions +Option.optimization.arch.ppc64gr = PowerPC® 64-bit with graphics instructions +Option.optimization.arch.ppc64grsq = PowerPC® 64-bit with graphics and square root instructions +Option.optimization.arch.ppc64v = PowerPC® 64-bit with AltiVec +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® C++ v5.0 compatibility +Option.optimization.exceptionhandling.v6 = VisualAge® 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® 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 instuctions 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 profilig information to the executable(-qshowpdf) +Option.optimization.smallstack = Reduce the size o fthe stack frame (-qsmallstack) +Option.optimization.smp = Enable parallelization of code (-qsmp) +Option.optimization.Spill = Specify the register allocation spill area(-qspill=) +Option.optimization.Strict = Turn off aggressive optimizations(-qstrict) +Option.optimization.loopinduction = Loop induction settings +Option.optimization.loopinduction.strict_induction = Strict induction +Option.optimization.loopinduction.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) + +#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 (-qlonglong) +Option.longlong = qlonglong +Option.nolonglong = 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 + +# 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.expfile = Save all the exported symbols in the designated file (-qexpfile=) +Option.maxmem = Amount of memory used during optimization (-qmaxmem=) +Option.path = Alternate program name for compiler components (-qpath=) +Option.tls = Specify the thread local strorage model (-qtls=) + +# 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 attribut 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.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 lisitngs(-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 mesages in stderr file (-qsrcmsg) +Option.suppress = Suppress the specified informational or warning messages (-qsuppress=) +Option.tabsize = Change the tab-size (-qtabsize=) +Option.xref = Produca 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 + +# Error Checking and Debugging +Option.g = Generate debugging information (-g) +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) + + + + + + diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/plugin.xml b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/plugin.xml new file mode 100644 index 00000000000..40ff5ef12e0 --- /dev/null +++ b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/plugin.xml @@ -0,0 +1,2749 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/aix/AixConfigurationEnvironmentSupplier.java b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/aix/AixConfigurationEnvironmentSupplier.java new file mode 100644 index 00000000000..6e327c70981 --- /dev/null +++ b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/aix/AixConfigurationEnvironmentSupplier.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * Copyright (c) 2006 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 + *******************************************************************************/ + +package org.eclipse.cdt.managedbuilder.xlc.aix; + +import org.eclipse.cdt.managedbuilder.core.IConfiguration; +import org.eclipse.cdt.managedbuilder.envvar.IBuildEnvironmentVariable; +import org.eclipse.cdt.managedbuilder.envvar.IConfigurationEnvironmentVariableSupplier; +import org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider; +import org.eclipse.cdt.managedbuilder.internal.envvar.BuildEnvVar; + +public class AixConfigurationEnvironmentSupplier implements + IConfigurationEnvironmentVariableSupplier { + static final String VARNAME = "PATH"; + static final String BINPATH = "/usr/vac/bin"; + static final String DELIMITER_AIX = ":"; + static final String PROPERTY_DELIMITER = "path.separator"; + static final String PROPERTY_OSNAME = "os.name"; + /* (non-Javadoc) + * @see org.eclipse.cdt.managedbuilder.envvar.IConfigurationEnvironmentVariableSupplier#getVariable(java.lang.String, org.eclipse.cdt.managedbuilder.core.IConfiguration, org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider) + */ + public IBuildEnvironmentVariable getVariable(String variableName, + IConfiguration configuration, IEnvironmentVariableProvider provider) { + + if (variableName == null) return null; + if (!VARNAME.equalsIgnoreCase(variableName)) return null; + return new BuildEnvVar(VARNAME, BINPATH, + IBuildEnvironmentVariable.ENVVAR_PREPEND, + System.getProperty(PROPERTY_DELIMITER, DELIMITER_AIX)); + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.managedbuilder.envvar.IConfigurationEnvironmentVariableSupplier#getVariables(org.eclipse.cdt.managedbuilder.core.IConfiguration, org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider) + */ + public IBuildEnvironmentVariable[] getVariables( + IConfiguration configuration, IEnvironmentVariableProvider provider) { + + IBuildEnvironmentVariable[] tmp = new IBuildEnvironmentVariable[1]; + tmp[0] = getVariable(VARNAME, configuration, provider); + if (tmp[0] != null) return tmp; + return null; + } +} diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/aix/AixPathResolver.java b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/aix/AixPathResolver.java new file mode 100644 index 00000000000..ffacfb94fd5 --- /dev/null +++ b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/aix/AixPathResolver.java @@ -0,0 +1,27 @@ +/******************************************************************************* + * Copyright (c) 2006 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 + *******************************************************************************/ + +package org.eclipse.cdt.managedbuilder.xlc.aix; + +import org.eclipse.cdt.managedbuilder.core.IBuildPathResolver; +import org.eclipse.cdt.managedbuilder.core.IConfiguration; + +public class AixPathResolver implements IBuildPathResolver { + static final String DELIMITER_AIX = ":"; + + /* (non-Javadoc) + * @see org.eclipse.cdt.managedbuilder.core.IBuildPathResolver#resolveBuildPaths(int, java.lang.String, java.lang.String, org.eclipse.cdt.managedbuilder.core.IConfiguration) + */ + public String[] resolveBuildPaths(int pathType, String variableName, + String variableValue, IConfiguration configuration) { + return variableValue.split(DELIMITER_AIX); + } +} diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/HiddenOptionApplicabilityCalculator.java b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/HiddenOptionApplicabilityCalculator.java new file mode 100644 index 00000000000..a0c159d6c48 --- /dev/null +++ b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/HiddenOptionApplicabilityCalculator.java @@ -0,0 +1,57 @@ +/******************************************************************************* + * Copyright (c) 2007 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 + *******************************************************************************/ + +package org.eclipse.cdt.managedbuilder.xlc.ui; + +import org.eclipse.cdt.managedbuilder.core.IBuildObject; +import org.eclipse.cdt.managedbuilder.core.IHoldsOptions; +import org.eclipse.cdt.managedbuilder.core.IOption; +import org.eclipse.cdt.managedbuilder.core.IOptionApplicability; + +/** + This class decides whether the make shared object + option is visible,enabled or used in command line or not */ + +public class HiddenOptionApplicabilityCalculator implements + IOptionApplicability { + + /** + * This function decides if the option for which this class + * is option applicability calculator is enabled or not. + */ + public boolean isOptionEnabled(IBuildObject configuration, + IHoldsOptions holder, IOption option) { + return false; + } + + /** + * This function decides if the option for which this class + * is option applicability calculator is used in command line + * or not. + */ + + public boolean isOptionUsedInCommandLine(IBuildObject configuration, + IHoldsOptions holder, IOption option) { + return true; + } + + /** + * This function decides if the option for which this class + * is option applicability calculator is visible or not. + */ + + public boolean isOptionVisible(IBuildObject configuration, + IHoldsOptions holder, IOption option) { + + return false; + } + +} diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/XlcUIPlugin.java b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/XlcUIPlugin.java new file mode 100644 index 00000000000..40ae8e94834 --- /dev/null +++ b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/XlcUIPlugin.java @@ -0,0 +1,84 @@ +/******************************************************************************* + * Copyright (c) 2006 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 + *******************************************************************************/ + +package org.eclipse.cdt.managedbuilder.xlc.ui; + +import org.eclipse.core.runtime.Plugin; +import org.osgi.framework.BundleContext; +import java.util.*; + +/** + * The main plugin class to be used in the desktop. + */ +public class XlcUIPlugin extends Plugin { + //The shared instance. + private static XlcUIPlugin plugin; + //Resource bundle. + private ResourceBundle resourceBundle; + + /** + * The constructor. + */ + public XlcUIPlugin() { + super(); + plugin = this; + } + + /** + * This method is called upon plug-in activation + */ + public void start(BundleContext context) throws Exception { + super.start(context); + } + + /** + * This method is called when the plug-in is stopped + */ + public void stop(BundleContext context) throws Exception { + super.stop(context); + plugin = null; + resourceBundle = null; + } + + /** + * Returns the shared instance. + */ + public static XlcUIPlugin getDefault() { + return plugin; + } + + /** + * Returns the string from the plugin's resource bundle, + * or 'key' if not found. + */ + public static String getResourceString(String key) { + ResourceBundle bundle = XlcUIPlugin.getDefault().getResourceBundle(); + try { + return (bundle != null) ? bundle.getString(key) : key; + } catch (MissingResourceException e) { + return key; + } + } + + /** + * Returns the plugin's resource bundle, + */ + public ResourceBundle getResourceBundle() { + try { + if (resourceBundle == null) + resourceBundle = ResourceBundle.getBundle("org.eclipse.cdt.managedbuilder.gnu.ui.XlcUIPluginResources"); //$NON-NLS-1$ + } catch (MissingResourceException x) { + resourceBundle = null; + } + return resourceBundle; + } + +}